# HG changeset patch # User hgs # Date 1283511560 -10800 # Node ID 2fa1fa551b0bda065ceb27bd3d2a6aba4f97a352 # Parent 35488577e2339e31c48f902f38c9bafb2f5e2d5b 201035 diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Bmarm/CBSCLIENTU.DEF --- a/cbs/CbsServer/Bmarm/CBSCLIENTU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -EXPORTS - __4RCbs @ 1 NONAME R3UNUSED ; RCbs::RCbs(void) - ChangeTopicHotmarkStatus__4RCbsUsi @ 2 NONAME R3UNUSED ; RCbs::ChangeTopicHotmarkStatus(unsigned short, int) - ChangeTopicNameAndNumber__4RCbsUsUsRCt4TBuf1i80 @ 3 NONAME ; RCbs::ChangeTopicNameAndNumber(unsigned short, unsigned short, TBuf<80> const &) - ChangeTopicSubscriptionStatus__4RCbsUsi @ 4 NONAME R3UNUSED ; RCbs::ChangeTopicSubscriptionStatus(unsigned short, int) - Close__4RCbs @ 5 NONAME R3UNUSED ; RCbs::Close(void) - Connect__4RCbs @ 6 NONAME R3UNUSED ; RCbs::Connect(void) - Connected__C4RCbs @ 7 NONAME R3UNUSED ; RCbs::Connected(void) const - CreateNewTopicList__4RCbsRC7TDesC16Ri @ 8 NONAME R3UNUSED ; RCbs::CreateNewTopicList(TDesC16 const &, int &) - DeleteAllTopics__4RCbs @ 9 NONAME R3UNUSED ; RCbs::DeleteAllTopics(void) - DeleteMessage__4RCbsRCUl @ 10 NONAME R3UNUSED ; RCbs::DeleteMessage(unsigned long const &) - DeleteTopicList__4RCbsRCi @ 11 NONAME R3UNUSED ; RCbs::DeleteTopicList(int const &) - DeleteTopic__4RCbsUs @ 12 NONAME R3UNUSED ; RCbs::DeleteTopic(unsigned short) - FindMessageByHandle__4RCbsRCUlR13TCbsDbMessage @ 13 NONAME R3UNUSED ; RCbs::FindMessageByHandle(unsigned long const &, TCbsDbMessage &) - FindTopicByNumber__4RCbsUsR11TCbsDbTopic @ 14 NONAME R3UNUSED ; RCbs::FindTopicByNumber(unsigned short, TCbsDbTopic &) - GetHotmarkedMessageHandle__4RCbsRUl @ 15 NONAME R3UNUSED ; RCbs::GetHotmarkedMessageHandle(unsigned long &) - GetLanguages__4RCbsR15TCbsDbLanguages @ 16 NONAME R3UNUSED ; RCbs::GetLanguages(TCbsDbLanguages &) - GetLatestTopicNumber__4RCbsRUs @ 17 NONAME R3UNUSED ; RCbs::GetLatestTopicNumber(unsigned short &) - GetMessageContents__4RCbsRCUlR6TDes16 @ 18 NONAME R3UNUSED ; RCbs::GetMessageContents(unsigned long const &, TDes16 &) - GetMessageCount__4RCbsUsRi @ 19 NONAME R3UNUSED ; RCbs::GetMessageCount(unsigned short, int &) - GetMessageIndexByHandle__4RCbsRCUlRi @ 20 NONAME R3UNUSED ; RCbs::GetMessageIndexByHandle(unsigned long const &, int &) - GetMessage__4RCbsUsiR13TCbsDbMessage @ 21 NONAME ; RCbs::GetMessage(unsigned short, int, TCbsDbMessage &) - GetNewTopicsCount__4RCbsRi @ 22 NONAME R3UNUSED ; RCbs::GetNewTopicsCount(int &) - GetNextAndPrevMessageHandle__4RCbsRCUlRUlT2Ri @ 23 NONAME ; RCbs::GetNextAndPrevMessageHandle(unsigned long const &, unsigned long &, unsigned long &, int &) - GetNextAndPrevTopicNumber__4RCbsRCUsRUsT2Ri @ 24 NONAME ; RCbs::GetNextAndPrevTopicNumber(unsigned short const &, unsigned short &, unsigned short &, int &) - GetReadFilesCleanupTime__4RCbsR18TTimeIntervalHours @ 25 NONAME R3UNUSED ; RCbs::GetReadFilesCleanupTime(TTimeIntervalHours &) - GetReceptionStatus__4RCbsRi @ 26 NONAME R3UNUSED ; RCbs::GetReceptionStatus(int &) - GetReceptionTime__4RCbsRiR5TTimeT2 @ 27 NONAME ; RCbs::GetReceptionTime(int &, TTime &, TTime &) - GetTopicCount__4RCbsRi @ 28 NONAME R3UNUSED ; RCbs::GetTopicCount(int &) - GetTopicDetectionStatus__4RCbsRi @ 29 NONAME R3UNUSED ; RCbs::GetTopicDetectionStatus(int &) - GetTopicListCount__4RCbsRi @ 30 NONAME R3UNUSED ; RCbs::GetTopicListCount(int &) - GetTopicList__4RCbsRiR15TCbsDbTopicList @ 31 NONAME R3UNUSED ; RCbs::GetTopicList(int &, TCbsDbTopicList &) - GetTopic__4RCbsiR11TCbsDbTopic @ 32 NONAME R3UNUSED ; RCbs::GetTopic(int, TCbsDbTopic &) - GetUnreadMessageCount__4RCbsRi @ 33 NONAME R3UNUSED ; RCbs::GetUnreadMessageCount(int &) - HasNextCollectionTopic__4RCbs @ 34 NONAME R3UNUSED ; RCbs::HasNextCollectionTopic(void) - LockMessage__4RCbsRCUl @ 35 NONAME R3UNUSED ; RCbs::LockMessage(unsigned long const &) - NextCollectionTopic__4RCbsR19TCbsDbTopicIdentity @ 36 NONAME R3UNUSED ; RCbs::NextCollectionTopic(TCbsDbTopicIdentity &) - NotifyOnTopicListEventCancel__4RCbs @ 37 NONAME R3UNUSED ; RCbs::NotifyOnTopicListEventCancel(void) - NotifyOnTopicListEvent__4RCbsR14TRequestStatusiR18TCbsTopicListEventRUs @ 38 NONAME ; RCbs::NotifyOnTopicListEvent(TRequestStatus &, int, TCbsTopicListEvent &, unsigned short &) - NotifySettingsChangedCancel__4RCbs @ 39 NONAME R3UNUSED ; RCbs::NotifySettingsChangedCancel(void) - NotifySettingsChanged__4RCbsR14TRequestStatusR17TCbsSettingsEvent @ 40 NONAME R3UNUSED ; RCbs::NotifySettingsChanged(TRequestStatus &, TCbsSettingsEvent &) - NumberOfUnreadHotmarkedMessages__4RCbs @ 41 NONAME R3UNUSED ; RCbs::NumberOfUnreadHotmarkedMessages(void) - ReadMessage__4RCbsRCUl @ 42 NONAME R3UNUSED ; RCbs::ReadMessage(unsigned long const &) - RenameTopicList__4RCbsiRC7TDesC16 @ 43 NONAME R3UNUSED ; RCbs::RenameTopicList(int, TDesC16 const &) - SaveMessage__4RCbsRCUl @ 44 NONAME R3UNUSED ; RCbs::SaveMessage(unsigned long const &) - SelectTopicList__4RCbsRCiR15TCbsDbTopicList @ 45 NONAME R3UNUSED ; RCbs::SelectTopicList(int const &, TCbsDbTopicList &) - SetLanguages__4RCbsRC15TCbsDbLanguages @ 46 NONAME R3UNUSED ; RCbs::SetLanguages(TCbsDbLanguages const &) - SetReadFilesCleanupTime__4RCbsG18TTimeIntervalHours @ 47 NONAME R3UNUSED ; RCbs::SetReadFilesCleanupTime(TTimeIntervalHours) - SetReceptionStatus__4RCbsi @ 48 NONAME R3UNUSED ; RCbs::SetReceptionStatus(int) - SetReceptionTime__4RCbsiG5TTimeT2 @ 49 NONAME ; RCbs::SetReceptionTime(int, TTime, TTime) - SetTopicDetectionStatus__4RCbsi @ 50 NONAME R3UNUSED ; RCbs::SetTopicDetectionStatus(int) - Shutdown__C4RCbs @ 51 NONAME R3UNUSED ; RCbs::Shutdown(void) const - StartCollectionBrowsing__4RCbs @ 52 NONAME R3UNUSED ; RCbs::StartCollectionBrowsing(void) - Version__C4RCbs @ 53 NONAME R3UNUSED ; RCbs::Version(void) const - "_._4RCbs" @ 54 NONAME R3UNUSED ; RCbs::~RCbs(void) - AddTopic__4RCbsR11TCbsDbTopic @ 55 NONAME R3UNUSED ; RCbs::AddTopic(TCbsDbTopic &) - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Bmarm/CBSMCNCLIENTU.DEF --- a/cbs/CbsServer/Bmarm/CBSMCNCLIENTU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -EXPORTS - NewL__4CMcn @ 1 NONAME R3UNUSED ; CMcn::NewL(void) - GetCellInfo__C4CMcnR6TDes16 @ 2 NONAME R3UNUSED ; CMcn::GetCellInfo(TDes16 &) const - NewL__14CMcnTopicArray @ 3 NONAME R3UNUSED ; CMcnTopicArray::NewL(void) - AddCbTopicL__14CMcnTopicArrayUs @ 4 NONAME R3UNUSED ; CMcnTopicArray::AddCbTopicL(unsigned short) - RegisterL__4CMcnP15MCbsMcnObserverRC14CMcnTopicArray @ 5 NONAME R3UNUSED ; CMcn::RegisterL(MCbsMcnObserver *, CMcnTopicArray const &) - Unregister__4CMcnP15MCbsMcnObserver @ 6 NONAME R3UNUSED ; CMcn::Unregister(MCbsMcnObserver *) - "_._4CMcn" @ 7 NONAME R3UNUSED ; CMcn::~CMcn(void) - GetInfoMessage__C4CMcnR6TDes16i @ 8 NONAME R3UNUSED ; CMcn::GetInfoMessage(TDes16 &, int) const - GetTopicNumber__C14CMcnTopicArrayRCUiRUi @ 9 NONAME R3UNUSED ; CMcnTopicArray::GetTopicNumber(unsigned int const &, unsigned int &) const - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Bwins/CBSCLIENTU.DEF --- a/cbs/CbsServer/Bwins/CBSCLIENTU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -EXPORTS - ??0RCbs@@QAE@XZ @ 1 NONAME ; RCbs::RCbs(void) - ??1RCbs@@QAE@XZ @ 2 NONAME ; RCbs::~RCbs(void) - ?AddTopic@RCbs@@QAEHAAUTCbsDbTopic@@@Z @ 3 NONAME ; int RCbs::AddTopic(struct TCbsDbTopic &) - ?ChangeTopicHotmarkStatus@RCbs@@QAEHGH@Z @ 4 NONAME ; int RCbs::ChangeTopicHotmarkStatus(unsigned short, int) - ?ChangeTopicNameAndNumber@RCbs@@QAEHGGABV?$TBuf@$0FA@@@@Z @ 5 NONAME ; int RCbs::ChangeTopicNameAndNumber(unsigned short, unsigned short, class TBuf<80> const &) - ?ChangeTopicSubscriptionStatus@RCbs@@QAEHGH@Z @ 6 NONAME ; int RCbs::ChangeTopicSubscriptionStatus(unsigned short, int) - ?Close@RCbs@@QAEXXZ @ 7 NONAME ; void RCbs::Close(void) - ?Connect@RCbs@@QAEHXZ @ 8 NONAME ; int RCbs::Connect(void) - ?Connected@RCbs@@QBEHXZ @ 9 NONAME ; int RCbs::Connected(void) const - ?DeleteAllTopics@RCbs@@QAEHXZ @ 10 NONAME ; int RCbs::DeleteAllTopics(void) - ?DeleteMessage@RCbs@@QAEHABK@Z @ 11 NONAME ; int RCbs::DeleteMessage(unsigned long const &) - ?DeleteTopic@RCbs@@QAEHG@Z @ 12 NONAME ; int RCbs::DeleteTopic(unsigned short) - ?FindMessageByHandle@RCbs@@QAEHABKAAUTCbsDbMessage@@@Z @ 13 NONAME ; int RCbs::FindMessageByHandle(unsigned long const &, struct TCbsDbMessage &) - ?FindTopicByNumber@RCbs@@QAEHGAAUTCbsDbTopic@@@Z @ 14 NONAME ; int RCbs::FindTopicByNumber(unsigned short, struct TCbsDbTopic &) - ?GetHotmarkedMessageHandle@RCbs@@QAEXAAK@Z @ 15 NONAME ; void RCbs::GetHotmarkedMessageHandle(unsigned long &) - ?GetLanguages@RCbs@@QAEXAAUTCbsDbLanguages@@@Z @ 16 NONAME ; void RCbs::GetLanguages(struct TCbsDbLanguages &) - ?GetLatestTopicNumber@RCbs@@QAEHAAG@Z @ 17 NONAME ; int RCbs::GetLatestTopicNumber(unsigned short &) - ?GetMessage@RCbs@@QAEHGHAAUTCbsDbMessage@@@Z @ 18 NONAME ; int RCbs::GetMessage(unsigned short, int, struct TCbsDbMessage &) - ?GetMessageContents@RCbs@@QAEHABKAAVTDes16@@@Z @ 19 NONAME ; int RCbs::GetMessageContents(unsigned long const &, class TDes16 &) - ?GetMessageCount@RCbs@@QAEHGAAH@Z @ 20 NONAME ; int RCbs::GetMessageCount(unsigned short, int &) - ?GetMessageIndexByHandle@RCbs@@QAEHABKAAH@Z @ 21 NONAME ; int RCbs::GetMessageIndexByHandle(unsigned long const &, int &) - ?GetNewTopicsCount@RCbs@@QAEHAAH@Z @ 22 NONAME ; int RCbs::GetNewTopicsCount(int &) - ?GetNextAndPrevMessageHandle@RCbs@@QAEHABKAAK1AAH@Z @ 23 NONAME ; int RCbs::GetNextAndPrevMessageHandle(unsigned long const &, unsigned long &, unsigned long &, int &) - ?GetNextAndPrevMessageHandle@RCbsTopicMessages@@QAEHABKAAK1AAH@Z @ 24 NONAME ; int RCbsTopicMessages::GetNextAndPrevMessageHandle(unsigned long const &, unsigned long &, unsigned long &, int &) - ?GetNextAndPrevTopicNumber@RCbs@@QAEHABGAAG1AAH@Z @ 25 NONAME ; int RCbs::GetNextAndPrevTopicNumber(unsigned short const &, unsigned short &, unsigned short &, int &) - ?GetReceptionStatus@RCbs@@QAEXAAH@Z @ 26 NONAME ; void RCbs::GetReceptionStatus(int &) - ?GetTopic@RCbs@@QAEHHAAUTCbsDbTopic@@@Z @ 27 NONAME ; int RCbs::GetTopic(int, struct TCbsDbTopic &) - ?GetTopicCount@RCbs@@QAEXAAH@Z @ 28 NONAME ; void RCbs::GetTopicCount(int &) - ?GetTopicDetectionStatus@RCbs@@QAEXAAH@Z @ 29 NONAME ; void RCbs::GetTopicDetectionStatus(int &) - ?GetUnreadMessageCount@RCbs@@QAEXAAH@Z @ 30 NONAME ; void RCbs::GetUnreadMessageCount(int &) - ?HasNextCollectionTopic@RCbs@@QAEHXZ @ 31 NONAME ; int RCbs::HasNextCollectionTopic(void) - ?LockMessage@RCbs@@QAEHABK@Z @ 32 NONAME ; int RCbs::LockMessage(unsigned long const &) - ?NewL@CCbsMessageClient@@SAPAV1@XZ @ 33 NONAME ; class CCbsMessageClient * CCbsMessageClient::NewL(void) - ?NextCollectionTopic@RCbs@@QAEHAAUTCbsDbTopicIdentity@@@Z @ 34 NONAME ; int RCbs::NextCollectionTopic(struct TCbsDbTopicIdentity &) - ?NotifyOnTopicListEvent@RCbs@@QAEXAAVTRequestStatus@@HAAW4TCbsTopicListEvent@@AAG@Z @ 35 NONAME ; void RCbs::NotifyOnTopicListEvent(class TRequestStatus &, int, enum TCbsTopicListEvent &, unsigned short &) - ?NotifyOnTopicListEventCancel@RCbs@@QAEXXZ @ 36 NONAME ; void RCbs::NotifyOnTopicListEventCancel(void) - ?NotifySettingsChanged@RCbs@@QAEXAAVTRequestStatus@@AAW4TCbsSettingsEvent@@@Z @ 37 NONAME ; void RCbs::NotifySettingsChanged(class TRequestStatus &, enum TCbsSettingsEvent &) - ?NotifySettingsChangedCancel@RCbs@@QAEXXZ @ 38 NONAME ; void RCbs::NotifySettingsChangedCancel(void) - ?NumberOfUnreadHotmarkedMessages@RCbs@@QAEHXZ @ 39 NONAME ; int RCbs::NumberOfUnreadHotmarkedMessages(void) - ?ReadMessage@RCbs@@QAEHABK@Z @ 40 NONAME ; int RCbs::ReadMessage(unsigned long const &) - ?SaveMessage@RCbs@@QAEHABK@Z @ 41 NONAME ; int RCbs::SaveMessage(unsigned long const &) - ?SetLanguages@RCbs@@QAEHABUTCbsDbLanguages@@@Z @ 42 NONAME ; int RCbs::SetLanguages(struct TCbsDbLanguages const &) - ?SetReceptionStatus@RCbs@@QAEHH@Z @ 43 NONAME ; int RCbs::SetReceptionStatus(int) - ?SetTopicDetectionStatus@RCbs@@QAEHH@Z @ 44 NONAME ; int RCbs::SetTopicDetectionStatus(int) - ?Shutdown@RCbs@@QBEXXZ @ 45 NONAME ; void RCbs::Shutdown(void) const - ?StartCollectionBrowsing@RCbs@@QAEXXZ @ 46 NONAME ; void RCbs::StartCollectionBrowsing(void) - ?Version@RCbs@@QBE?AVTVersion@@XZ @ 47 NONAME ; class TVersion RCbs::Version(void) const - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Bwins/CBSMCNCLIENTU.DEF --- a/cbs/CbsServer/Bwins/CBSMCNCLIENTU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,11 +0,0 @@ -EXPORTS - ??1CMcn@@UAE@XZ @ 1 NONAME ; public: virtual __thiscall CMcn::~CMcn(void) - ?AddCbTopicL@CMcnTopicArray@@QAEXG@Z @ 2 NONAME ; public: void __thiscall CMcnTopicArray::AddCbTopicL(unsigned short) - ?GetCellInfo@CMcn@@QBEHAAVTDes16@@@Z @ 3 NONAME ; public: int __thiscall CMcn::GetCellInfo(class TDes16 &)const - ?NewL@CMcn@@SAPAV1@XZ @ 4 NONAME ; public: static class CMcn * __cdecl CMcn::NewL(void) - ?NewL@CMcnTopicArray@@SAPAV1@XZ @ 5 NONAME ; public: static class CMcnTopicArray * __cdecl CMcnTopicArray::NewL(void) - ?RegisterL@CMcn@@QAEXPAVMCbsMcnObserver@@ABVCMcnTopicArray@@@Z @ 6 NONAME ; public: void __thiscall CMcn::RegisterL(class MCbsMcnObserver *,class CMcnTopicArray const &) - ?Unregister@CMcn@@QAEXPAVMCbsMcnObserver@@@Z @ 7 NONAME ; public: void __thiscall CMcn::Unregister(class MCbsMcnObserver *) - ?GetInfoMessage@CMcn@@QBEHAAVTDes16@@H@Z @ 8 NONAME ; public: int __thiscall CMcn::GetInfoMessage(class TDes16 &,int)const - ?GetTopicNumber@CMcnTopicArray@@QBEXABIAAI@Z @ 9 NONAME ; public: void __thiscall CMcnTopicArray::GetTopicNumber(unsigned int const &,unsigned int &)const - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Bwins/CBSSERVERU.DEF --- a/cbs/CbsServer/Bwins/CBSSERVERU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -EXPORTS - ?WinsMain@@YAHPAX@Z @ 1 NONAME ; int __cdecl WinsMain(void *) - ?__DbgTestInvariant@CCbsDbImpSettings@@QBEXXZ @ 2 NONAME ; public: void __thiscall CCbsDbImpSettings::__DbgTestInvariant(void)const - ?__DbgTestInvariant@CCbsDbImpTopicList@@QBEXXZ @ 3 NONAME ; public: void __thiscall CCbsDbImpTopicList::__DbgTestInvariant(void)const - ?__DbgTestInvariant@CCbsRecEtel@@QBEXXZ @ 4 NONAME ; public: void __thiscall CCbsRecEtel::__DbgTestInvariant(void)const - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/CenRep/keys_cbsserver.xls Binary file cbs/CbsServer/CenRep/keys_cbsserver.xls has changed diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientInc/CbsCommon.h --- a/cbs/CbsServer/ClientInc/CbsCommon.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,200 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains The only common header file between CBS UI and -* CbsClient packages. -* -*/ - - - -#ifndef CBSCOMMON_H -#define CBSCOMMON_H - -// INCLUDES -#include -#include -#include - -// CONSTANTS - -// Max count of topic lists in the root -const TInt KCbsRootItemsSize = 1; - -// DATA TYPES - -/** -* Type for representing handles to the topics. -* -* For each topic there is an unique handle that does not change. -* When the topic is deleted, the same handle can be used again. -*/ -typedef TUint16 TCbsDbTopicHandle; - -// A handle to a topic. -typedef TCbsDbTopicHandle TCbsTopicHandle; - -// A topic name. -typedef TCbsDbTopicName TCbsTopicName; - -/** -* The structure that represents information about single topic. -* -* When an index message is received, then a new topic collection is created. -* In deed, records of this type are created. -*/ -struct TCbsDbTopicIdentity - { - // Name of the topic - TCbsDbTopicName iName; - - // The topic number (that is, the message identifier) - TCbsDbTopicNumber iNumber; - }; - -// Type returned by RCbs::GetNextAndPrevTopicNumber and -// RCbs::GetNextAndPrevMessageHandle to specify whether the item in question -// is the first or the last (or both) in list. -enum TCbsPositionInList - { - ECbsHead = 0x01, - ECbsTail = 0x02 - }; - -// Enumerates the different language settings. -enum TCbsDbLanguage - { - ECbsGerman, // German - ECbsEnglish, // English - ECbsItalian, // Italian - ECbsFrench, // French - ECbsSpanish, // Spanish - ECbsDutch, // Dutch - ECbsSwedish, // Swedish - ECbsDanish, // Danish - ECbsPortuguese, // Portuguese - ECbsFinnish, // Finnish - ECbsNorwegian, // Norwegian - ECbsGreek, // Greek - ECbsTurkish, // Turkish - ECbsHungarian, // Hungarian - ECbsPolish, // Polish - ECbsCzech, // Czech - ECbsHebrew, // Hebrew - ECbsArabic, // Arabic - ECbsRussian, // Russian - ECbsIcelandic, // Icelandic - ECbsOther, // Other - ECbsAll, // All - ECbsCount // The amount of languages, - // this must be the last element - }; - - -// Structure to contain user-selected languages -struct TCbsDbLanguages - { - TBool iLanguages[ ECbsCount ]; - }; - -// Structure containing cached information on topic -struct TCbsDbImpTopic - { - // The stream identifier to the topic information. - TStreamId iTopicId; - - // The stream identifier to the messages of the topic. - TStreamId iTopicMessagesId; - - // The rest of the topic information - TCbsDbTopic iTopicData; - }; - -// Structure that contains information about a topic list -struct TCbsDbTopicList - { - // Name of the topic list - TBuf< KCbsDbTopicNameLength > iTopicListName; - - // Is this topic list the default topic list - TBool iIsDefaultTopicList; - - // The integer identifier of the list - TInt iNumber; - - // NUmber of topic lists in this list - TInt iTopicCount; - }; - - -// The structure that contains (root) stream information. -struct TCbsDbImpTopicList - { - // Name of the topic list - TBuf< KCbsDbTopicNameLength > iTopicListName; - - // Is this topic list the default topic list - TBool iIsDefaultTopicList; - - // The integer identifier of the list - TInt iNumber; - - // NUmber of topic lists in this list - TInt iTopicCount; - - // The ID to topic list stream of this topic list - TStreamId iTopicListId; - }; - -// Enumerates the reasons for the client panic. -enum TCbsSessionPanic - { - ECbsBadRequest, - ECbsBadDescriptor - }; - -// Enumerates the different types of settings-session related events. -enum TCbsSettingsEvent - { - ECbsModifiedReceptionStatus, // Reception status was modified - ECbsModifiedTopicDetectionStatus, // Topic detection status was modified - ECbsModifiedLanguages, // Preferred languages were modified - ECbsModifiedLimitedReceptionStatus, // Time-limited reception status modified - ECbsModifiedCleanupTime // Clean up time of read messages modified - }; - -// Enumerates the different types of topic list events that can occur. -enum TCbsTopicListEvent - { - ECbsTopicListInitialized = 0x01, - ECbsTopicAdded = 0x02, - ECbsTopicModified = 0x04, - ECbsTopicDeleted = 0x08, - ECbsTopicReceivedNewMessage = 0x10, - ECbsTopicAllEvents = ( 0x01 | 0x02 | 0x04 | 0x08 | 0x10 ) - }; - -// Structure to contain user-selected languages -typedef TCbsDbLanguages TCbsSettingsLanguages; - -// A structure that contains information about a topic list -typedef TCbsDbTopicList TCbsTopicList; - -// A structure that contains information about one topic (information -// that is retrieved from the index topic). -typedef TCbsDbTopicIdentity TCbsTopicInfo; - -#endif // CBSCOMMON_H - -// End of File - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientInc/RCbs.h --- a/cbs/CbsServer/ClientInc/RCbs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,629 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the RCbs class. -* -* The client of the CBS Server is required to import this header file -* into project. The connection to the server is made with Connect() -* and closed with Close(). -* -* RCbs provides the interface to CBS clients for accessing the -* CBS server. It uses subsession classes RCbsSettings, RCbsTopicList, -* RCbsTopicMessages and RCbsTopicCollection to actually carry out -* the required ITC between client and server threads. -* -* -*/ - - - -#ifndef RCBS_H -#define RCBS_H - -// INCLUDES -#include -#include "CbsCommon.h" -#include "RCbsSettings.h" -#include "RCbsTopicCollection.h" -#include "RCbsTopicList.h" -#include "RCbsTopicMessages.h" - -// CLASS DECLARATION - -/** -* This represents the client-side session to the cbs server. -* -* Every client must have an instance of the class to be able to communicate -* with the server. -* -* Note that both client and server must use the same versions of the API. -* Otherwise the server will terminate the client process. -* -* - The server does not buffer events. This must be taken into -* account when using notifications. -* - There can only be one pending notification request per subsession object. -* The behaviour is undefined, if you try to make several for only one -* subsession. -*/ -class RCbs - : public RSessionBase - { - public: // New functions - /** - * Constructor. - */ - IMPORT_C RCbs(); - - /** - * Destructor. - */ - IMPORT_C ~RCbs(); - - /** - * Creates connection to the server. - * - * Note that the method must be called before calling any other - * methods. The method returns an error code and, therefore, - * the caller is responsible of checking that everything went just - * fine. - * - * @return Error code. - */ - IMPORT_C TInt Connect(); - - /** - * Closes the session to the server. - */ - IMPORT_C void Close(); - - /** - * Returns the version of CbsClient. - * - * CbsServer and CbsClient must be of same version. - * - * @return Returns the version of CbsClient. - */ - IMPORT_C TVersion Version() const; - - // === Settings-related methods - - /** - * Returns the reception status in aStatus, which is ETrue if the reception is - * on. Otherwise it is EFalse. - * - * @param aStatus The method returns the reception status in this parameter. - */ - IMPORT_C void GetReceptionStatus( TBool& aStatus ); - - /** - * Changes the reception status to aStatus. - * - * @param aStatus It contains the new reception status. - * @return KErrNone if succeeded. - */ - IMPORT_C TInt SetReceptionStatus( TBool aStatus ); - - /** - * Returns the topic detection status in aStatus, which is ETrue if the detection - * is on. Otherwise it is EFalse. - * - * @param aStatus The method returns the topic detection status in this parameter. - */ - IMPORT_C void GetTopicDetectionStatus( TBool& aStatus ); - - /** - * Changes the topic detection status to aStatus. - * - * @param aStatus It contains the new topic detection status. - * @return KErrNone if succeeded. - */ - IMPORT_C TInt SetTopicDetectionStatus( TBool aStatus ); - - /** - * Returns the preferred languages in aLanguages. - * - * @param aLanguages The method returns the languages in this parameter. - */ - IMPORT_C void GetLanguages( TCbsSettingsLanguages& aLanguages ); - - /** - * Changes the preferred languages to aLanguages. - * - * @param aLanguages It contains the new preferred languages. - * @return KErrNone if succeeded. - */ - IMPORT_C TInt SetLanguages( const TCbsSettingsLanguages& aLanguages ); - - /** - * Requests the server to notify the client whenever any settings will be - * changed. - * - * Note that for each subsession only one this kind of request can be pending. Each - * client is responsible of assuring this. - * - * @param aStatus It is the variable that the server will modify - * whenever an event occurs. - * @param aEvent The server will store the type of occurred event - * to this variable. - */ - IMPORT_C void NotifySettingsChanged( TRequestStatus& aStatus, - TCbsSettingsEvent& aEvent ); - - /** - * Cancels the request to notify the client. - */ - IMPORT_C void NotifySettingsChangedCancel(); - - // === Topic Collection-related methods - - /** - * Resets the iterator. Must be called prior any call to HasNextTopic() - * or NextTopic()! - */ - IMPORT_C void StartCollectionBrowsing(); - - /** - * Returns ETrue, if there is a topic not accessed with NextTopic() - * - * @return ETrue, if there is a topic. EFalse if the end of the collection - * has been reached. - */ - IMPORT_C TBool HasNextCollectionTopic(); - - /** - * Returns the next topic in the topic collection skipping all topics with - * a topic number matching a topic already listed in the current topic list. - * This function will return KErrNotFound if the collection is tried to - * access beyond the end of the list. Otherwise the error code will be - * the same returned by GetTopicInfo(). - * - * @param aInfo The topic information will be stored here. - * @return The error code. KErrNotFound if there are no topics left. - */ - IMPORT_C TInt NextCollectionTopic( TCbsTopicInfo& aInfo ); - - // === Topic list-related methods - - /** - * Returns the total amount of topics the topic list contains. - * - * @param aCount It will contain the total amount of topics. - */ - IMPORT_C void GetTopicCount( TInt& aCount ); - - /** - * Returns information about a topic from the topic list. - * - * Return values: - * KErrArgument Topic was not found. - * - * Rest of return values indicate a file error. - * - * @param aIndex It is the index to the topic. - * @param aTopic It will contain the topic information. - * @return Error code. - */ - IMPORT_C TInt GetTopic( const TInt aIndex, TCbsTopic& aTopic ); - - /** - * Finds the topic by the given number. - * - * Return values: - * KErrNone Topic returned in parameter aTopic. - * KErrNotFound Topic was not found. - * - * @param aNumber Number of the topic - * @param aTopic Return: contains the topic information - * @return Error code - */ - IMPORT_C TInt FindTopicByNumber( TCbsTopicNumber aNumber, - TCbsTopic& aTopic ); - - /** - * Deletes an existing topic. - * - * @param aNumber Number of the topic to be deleted - * @return Error code - */ - IMPORT_C TInt DeleteTopic( TCbsTopicNumber aNumber ); - - /** - * Delete all topics. - * - * @return Error code. - */ - IMPORT_C TInt DeleteAllTopics(); - - /** - * Adds a new topic. The handle assigned to the topic will be returned - * in aTopic. - * - * Return values: - * KErrNone Topic was successfully added. - * KErrAlreadyExists A topic of the same number already exists in DB - * KErrArgument Topic number given was not in a proper range. - * KErrDiskFull Topic not added - FFS out of space - * - * Note that the number of the new topic must be unused. - * - * @param aTopic Contains the information of the new topic. - * On return, aTopic also contains the topic - * handle. - * @return Error code. - */ - IMPORT_C TInt AddTopic( TCbsTopic& aTopic ); - - /** - * Changes the name and number of the existing topic. - * - * Note that the changing fails in case there is another topic with - * the new topic number. It also fails if the topic is protected. - * - * Return values: - * KErrNone Topic name and number successfully changed. - * KErrDiskFull Topic information not changed - FFS out of space - * - * @param aOldNumber Number of the topic to be changed - * @param aNewNumber Number to be given for the topic - * @param aName Name to be given for the topic - * @return Error code - */ - IMPORT_C TInt ChangeTopicNameAndNumber( - TCbsTopicNumber aOldNumber, - TCbsTopicNumber aNewNumber, - const TCbsTopicName& aName ); - - /** - * Changes topic subscription status. - * - * @param aNumber Number of the topic - * @param aNewStatus New subscription status - * @return Error code - */ - IMPORT_C TInt ChangeTopicSubscriptionStatus( - TCbsTopicNumber aNumber, TBool aNewStatus ); - - /** - * Changes topic hotmark status. - * - * @param aNumber Number of the topic - * @param aNewStatus New hotmark status - * @return Error code - */ - IMPORT_C TInt ChangeTopicHotmarkStatus( TCbsTopicNumber aNumber, - TBool aNewStatus ); - - /** - * Requests the server to notify the client whenever an event occurs - * that changes the information of the topics. - * - * Note that the client may select what kind of events it is - * interested in. Note also that there can be at most one pending - * request per instance of the class. - * - * @param aStatus The variable that the server will modify - * whenever an event occurs. - * @param aRequested Events the client is interested in - * @param aEvent Indicates the variable that will contain the - * type of event that occured. - * @param aNumber Indicates the variable that will contain the - * topic number that was changed in event. - */ - IMPORT_C void NotifyOnTopicListEvent( - TRequestStatus& aStatus, - const TInt aRequested, - TCbsTopicListEvent& aEvent, - TCbsTopicNumber& aNumber ); - - /** - * Cancels the pending notify request. - */ - IMPORT_C void NotifyOnTopicListEventCancel(); - - /** - * Returns the number of topics added since last GetNewTopicsCount() - * by the topic detection feature. - * - * @param aCount It will contain the amount of new topics. - * @return TInt Result code. - */ - IMPORT_C TInt GetNewTopicsCount( TInt& aCount ); - - /** - * Returns the number of the topic which was last added - * to topic list. - * - * Note: if a topic list cache is maintained by the client - * (as CBS UI application does), this function has to - * be called BEFORE calling GetTopicCount() and GetTopic() - * to make sure that no topic is added in between - * GetTopic() and GetLatestTopicHandle() calls. If this - * happens, GetLatestTopicHandle() will return a handle - * to a topic that is not cached client-side. - * - * Return codes: - * KErrNone aNumber is a valid topic number. - * KErrNotFound No topic added since server start, - * aNumber is not valid. - * - * @param aNumber Returns: number of the topic last added - * @return Result code - */ - IMPORT_C TInt GetLatestTopicNumber( TCbsTopicNumber& aNumber ); - - /** - * Returns the total amount of unread messages. - * - * @param aCount Return: number of unread messages - */ - IMPORT_C void GetUnreadMessageCount( TInt& aCount ); - - /** - * Returns the handle to the latest hotmarked message that has been - * received after the system has started up. - * - * @param aMessage Handle to the message - */ - IMPORT_C void GetHotmarkedMessageHandle( TCbsMessageHandle& aMessage ); - - /** - * Returns the number of unread messages in hotmarked topics. - * - * This function is to used by the client when deciding whether - * the message or topic list view should be opened to display - * a hotmarked message(s). - * - * @return Number of unread hotmarked messages - */ - IMPORT_C TInt NumberOfUnreadHotmarkedMessages(); - - /** - * Returns the numbers of topics that precede and succeed the given - * topic in server-side topic list. - * - * If the given topic is the first topic in list, aPosition has - * ECbsHead bit up. If the given topic is the last topic in list, - * aPosition has ECbsTail bit up. - * - * Return code values: - * KErrNone aPrevTopicNumber, aNextTopicNumber and aPosition - * contain valid values. - * KErrNotFound aCurrentTopicNumber specified a topic that was not - * on topic list. - * - * @param aCurrentTopicNumber Number that specifies the topic - * whose surroundings are returned - * @param aPrevTopicNumber Returns: number of topic preceding - * the given topic - * @param aNextTopicNumber Returns: number of topic succeeding - * the given topic - * @param aPosition Returns: position of current - * topic in list. - * @return Result code - */ - IMPORT_C TInt GetNextAndPrevTopicNumber( - const TCbsTopicNumber& aCurrentTopicNumber, - TCbsTopicNumber& aPrevTopicNumber, - TCbsTopicNumber& aNextTopicNumber, - TInt& aPosition ); - - // === Topic Messages-related methods - - /** - * Returns the total amount of messages the topic contains. - * - * Return codes: - * KErrNotFound Invalid handle. - * KErrNone aCount contains the number of messages - * in topic - * - * @param aNumber Number of the topic. - * @param aCount Number of messages in given topic. - * @return Result code - */ - IMPORT_C TInt GetMessageCount( TCbsTopicNumber aNumber, - TInt& aCount ); - - /** - * Returns message information. - * - * Return codes: - * KErrNotFound Topic or message not found. - * KErrNone aMessage contains the message information. - * - * @param aNumber Number of the topic - * @param aIndex Index to the message in topic. - * @param aMessage Returns: the message information - * @return Error code - */ - IMPORT_C TInt GetMessage( TCbsTopicNumber aNumber, TInt aIndex, - TCbsMessage& aMessage ); - - /** - * Finds a message by given handle. - * - * @param aHandle Handle to the message. - * @param aMessage Return: contains the message information. - * @return Error code. - */ - IMPORT_C TInt FindMessageByHandle( - const TCbsMessageHandle& aHandle, - TCbsMessage& aMessage ); - - /** - * Returns the index of a message with given handle in topic. - * - * Result code KErrNotFound indicates that no message was found with - * the given handle. - * - * @param aHandle Handle of the message - * @param aIndex Return: index of the message in message topic - * @return Result code - */ - IMPORT_C TInt GetMessageIndexByHandle( - const TCbsMessageHandle& aHandle, TInt& aIndex ); - - /** - * Deletes an existing message. - * - * Note that it does not care a lot about the status of the message. - * - * Please check also the description of LockMessage(). - * - * @param aHandle It is handle to the message. - * @return Error code. - */ - IMPORT_C TInt DeleteMessage( const TCbsMessageHandle& aHandle ); - - /** - * Saves a message (the saved message won't be deleted to make - * room for new messages). - * - * Return codes: - * KErrNone Message is saved. - * KErrGeneral Message not saved -- total maximum of saved - * messages reached. - * KErrNotFound Message not saved -- no message associated - * with the given handle. - * KErrDiskFull Message not saved -- FFS out of space. - * - * @param aHandle Handle to the message to be saved. - * @return Return code. - */ - IMPORT_C TInt SaveMessage( const TCbsMessageHandle& aHandle ); - - /** - * Locks the message. - * - * Note that a single topic messages subsession can have at most one locked - * message. - * - * Message can be unlocked by trying to lock a null message. Locked message - * will also be automatically unlocked when subsession is closed. If a message - * is locked, then it will not be deleted from the database. Thus, deleting a - * message or trying to delete a topic that contains such a message will fail. - * - * Locking a message does not prevent to save the message nor read the message. - * - * @param aHandle It is handle to the message to be locked. - * @return Error code. - */ - IMPORT_C TInt LockMessage( const TCbsMessageHandle& aHandle ); - - /** - * Sets the message as read. - * - * @param aHandle It is handle to the message to be set read. - * @return Error code. - */ - IMPORT_C TInt ReadMessage( const TCbsMessageHandle& aHandle ); - - /** - * Returns the message contents. - * - * @param aHandle It is handle to the message. - * @param aBuffer It will contain the contents (as much as it fits). - * @return Error code. - */ - IMPORT_C TInt GetMessageContents( - const TCbsMessageHandle& aHandle, - TDes& aBuffer ); - - /** - * Returns the handles of messages that precede and succeed the - * given message in server-side list of topic messages. - * - * Topic is resolved from the given message handle - * - * If the given handle specifies the first message in topic, - * aPosition has ECbsHead bit up. If the given handle specifies - * the last message in topic, aPosition has ECbsTail bit up. - * - * Return code values: - * KErrNone aPrevMsgHandle, aNextMsgHandle and aPosition - * contain valid values. - * KErrNotFound aCurrentMsgHandle specified a message that was not - * found. - * - * @param aCurrentMsgHandle Handle that specifies the message - * whose surroundings are returned - * @param aPrevMsgHandle Returns: handle of message - * preceding the given message - * @param aNextMsgHandle Returns: handle of message - * succeeding the given topic - * @param aPosition Returns: position of current topic - * in list - * @return Result code - */ - IMPORT_C TInt GetNextAndPrevMessageHandle( - const TCbsMessageHandle& aCurrentMsgHandle, - TCbsMessageHandle& aPrevMsgHandle, - TCbsMessageHandle& aNextMsgHandle, - TInt& aPosition ); - - // Other methods - - /** - * Returns ETrue if CbsServer session has been established. - * - * @return ETrue, if session open. - */ - IMPORT_C TBool Connected() const; - - /** - * Forces the server to shut down. - * - */ - IMPORT_C void Shutdown() const; - - private: // starting server - /** - * Starts the server. - */ - TInt StartServer(); - - /** - * Checks if the server is already started. - */ - TBool IsServerStarted(); - - private: - - // Copy constructor - RCbs( const RCbs& ); - - // Assignment operator - RCbs& operator=( const RCbs& ); - - private: - // Settings subsession - RCbsSettings iSettings; - - // Topic list subsession - RCbsTopicList iTopicList; - - // Topic messages subsession - RCbsTopicMessages iTopicMessages; - - // Collection subsession - RCbsTopicCollection iTopicCollection; - - // ETrue, if the session has been established - TBool iConnected; - }; - -#endif // RCbs_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientInc/RCbsSettings.h --- a/cbs/CbsServer/ClientInc/RCbsSettings.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the RCbsSettings class -* -* Client-side subsession which handles requests regarding -* CbsServer settings, i.e. receive state, topic detection state and -* selected languages. -* -* -*/ - - - -#ifndef RCBSSETTINGS_H -#define RCBSSETTINGS_H - -// INCLUDES -#include -#include "CbsCommon.h" - - -// FORWARD DECLARATIONS -class RCbs; - -// CLASS DECLARATION - -/** -* This represents the client-side subsession to modify and retrieve settings. -*/ -class RCbsSettings - : public RSubSessionBase - { - public: // New functions - - /** - * Constructor. - */ - RCbsSettings(); - - /** - * Creates a subsession to the server. - * - * Note that this method must be called before using any other method. - * - * @param aServer It is the session. - * @return Error code. - */ - TInt Open( RCbs& aServer ); - - /** - * Closes the subsession. - * - * @return Error code. - */ - TInt Close(); - - /** - * Returns the reception status in aStatus, which is ETrue if the - * reception is on. Otherwise it is EFalse. - * - * @param aStatus The method returns the reception status in - * this parameter. - */ - void GetReceptionStatus( TBool& aStatus ); - - /** - * Changes the reception status to aStatus. - * - * @param aStatus It contains the new reception status. - * @return Result code. KErrNone if no errors. - */ - TInt SetReceptionStatus( TBool aStatus ); - - /** - * Returns the topic detection status in aStatus, which is ETrue if - * the detection is on. Otherwise it is EFalse. - * - * @param aStatus The method returns the topic detection status - * in this parameter. - */ - void GetTopicDetectionStatus( TBool& aStatus ); - - /** - * Changes the topic detection status to aStatus. - * - * @param aStatus It contains the new topic detection status. - * @return Result code. KErrNone if no errors. - */ - TInt SetTopicDetectionStatus( TBool aStatus ); - - /** - * Returns the preferred languages in aLanguages. - * - * @param aLanguages The method returns the languages in this - * parameter. - */ - void GetLanguages( TCbsSettingsLanguages& aLanguages ); - - /** - * Changes the preferred languages to aLanguages. - * - * @param aLanguages It contains the new preferred languages. - * @return Result code. KErrNone if no errors. - */ - TInt SetLanguages( const TCbsSettingsLanguages& aLanguages ); - - /** - * Requests the server to notify the client whenever any settings - * will be changed. - * - * Note that for each subsession only one this kind of request can - * be pending. Each client is responsible of assuring this. - * - * @param aStatus It is the variable that the server will - * modify whenever an event occurs. - * @param aEvent The server will store the type of occurred - * event to this variable. - */ - void NotifySettingsChanged( TRequestStatus& aStatus, - TCbsSettingsEvent& aEvent ); - - /** - * Cancels the request to notify the client. - */ - void NotifySettingsChangedCancel(); - - private: // prohibited functions - // Prohibited copy constructor - RCbsSettings( const RCbsSettings& ); - - // Prohibited assignment operator - RCbsSettings& operator=( const RCbsSettings& ); - - private: // Data - - // Pointer descriptor used to transfer information during a notify - // request. - TPtr8 iNotifyEventPtr; - }; - - -#endif // RCBSSETTINGS_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientInc/RCbsTopicCollection.h --- a/cbs/CbsServer/ClientInc/RCbsTopicCollection.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,154 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the RCbsTopicCollection class. -* This is the client-side subsession which handles requests regarding -* topic identities stored on CBS Server. -* -* -*/ - - - -#ifndef RCBSTOPICCOLLECTION_H -#define RCBSTOPICCOLLECTION_H - -// INCLUDES - -#include -#include "CbsCommon.h" - -// FORWARD DECLARATIONS -class RCbs; - -// CLASS DECLARATION - -/** -* This represents the client-side subsession to retrieve information -* from topic collections. -*/ -class RCbsTopicCollection - : public RSubSessionBase - { - public: // New functions - /** - * Constructor. - */ - RCbsTopicCollection(); - - /** - * Creates a subsession to the server. - * - * Note that the method must be called before any other method - * can be used. - * - * @param aServer The base session. - * @return Error code. - */ - TInt Open( RCbs& aServer ); - - /** - * Closes the subsession. - * - * @return Error code. - */ - TInt Close(); - - /** - * Returns the total amount of topic information the topic collection - * contains. - * - * @param aCount It will contain the amount. - */ - void GetTopicCount( TInt& aCount ); - - /** - * Returns a topic information structure. - * - * @param aIndex It is index to the topic info. - * @param aInfo It will contain the information. - * @return Error code. - */ - TInt GetTopicInfo( TInt aIndex, TCbsTopicInfo& aInfo ); - - /** - * Notifies the client next time when topic collection changes. - * - * @param aStatus It will be changed when topic collection - * changes. - */ - void NotifyOnChange( TRequestStatus& aStatus ); - - /** - * Cancels the pending request to notify. - */ - void NotifyOnChangeCancel(); - - /** - * Resets the iterator. Must be called prior any call to HasNextTopic() - * or NextTopic()! - */ - void Start(); - - /** - * Returns ETrue, if there is a topic not accessed with NextTopic() - * - * @return ETrue, if there is a topic. EFalse if the end of the - * collection has been reached. - */ - TBool HasNextTopic(); - - /** - * Returns the next topic in the topic collection skipping all topics with - * a topic number matching a topic already listed in the current topic list. - * This function will return KErrNotFound if the collection is tried to - * access beyond the end of the list. Otherwise the error code will be - * the same returned by GetTopicInfo(). - * - * @param aInfo The topic information will be stored here. - * @return The error code. KErrNotFound if there are no topics - * left. - */ - TInt NextTopic( TCbsTopicInfo& aInfo ); - - private: - - /** - * Returns information whether the topic was in topic list. - * - * @param aIndex Topic index - * @param aInList Was the topic in the list - * @return Error code. KErrNotFound, if topic - * didn't exist. - */ - TInt TopicInList( TInt aIndex, TBool& aInList ); - - private:// prohibited functions - // Prohibited copy constructor - RCbsTopicCollection( const RCbsTopicCollection& ); - - // Prohibited assignment operator - RCbsTopicCollection& operator=( const RCbsTopicCollection& ); - - private: // Data - //Iterator is used to point to the next unlisted topic in topic collection. - //Unlisted topic is a topic which is not listed in the current topic list but - //is awailable in the topic collection - TInt iIterator; - }; - -#endif // RCBSTOPICCOLLECTION_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientInc/RCbsTopicList.h --- a/cbs/CbsServer/ClientInc/RCbsTopicList.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,278 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the RCbsTopicList class -* -* RCbsTopicList provides an interface to CBS clients which -* allows accessing the Cell Broadcast topics stored -* in the CBS Server. Note: This class should not be directly -* accessed by the client application. -* -* Services include accessing and modifying topic information, -* deleting a single or all topics, and a notification service, -* that enables the client to receive notifications on -* events modifying the server's topic list. -* -* -*/ - - - -#ifndef RCBSTOPICLIST_H -#define RCBSTOPICLIST_H - -// INCLUDES -#include -#include "CbsCommon.h" - -// FORWARD DECLARATIONS -class RCbs; - -// CLASS DECLARATION - -/** -* This class represents the client-side subsession to handle topic lists. -*/ - -class RCbsTopicList - : public RSubSessionBase - { - public: // New functions - /** - * Constructor. - */ - RCbsTopicList(); - - /** - * Creates a subsession to the server. Before using any other method it - * must be called. - - * @param aServer It is the cbs server. - * @return Error code. - */ - TInt Open( RCbs& aServer ); - - /** - * Closes the subsession and connection to the server. - * - * @return Error code. - */ - TInt Close(); - - /** - * Returns the total amount of topics the topic list contains. - * - * @param aCount It will contain the total amount of topics. - */ - void GetTopicCount( TInt& aCount ); - - /** - * Returns information about a topic from the topic list. - * - * @param aIndex It is the index to the topic. - * @param aTopic It will contain the topic information. - * @return Error code. - */ - TInt GetTopic( const TInt aIndex, TCbsTopic& aTopic ); - - /** - * Finds the topic by given number. - * - * @param aNumber It is the number of the topic. - * @param aTopic It will contain the topic information. - * @return Error code. - */ - TInt FindTopicByNumber( TCbsTopicNumber aNumber, TCbsTopic& aTopic ); - - /** - * Deletes an existing topic. - * - * Note that the topic must exists. - * - * @param aNumber It is the handle to the topic to be deleted. - * @return Error code. - */ - TInt DeleteTopic( TCbsTopicNumber aNumber ); - - /** - * Delete all topics. - * - * @return Error code. - */ - TInt DeleteAllTopics(); - - /** - * Adds a new topic. - * - * Note that the number of the new topic must be unused. - * - * @param aTopic It contains the information of the new topic. - * @return Error code. - */ - TInt AddTopic( TCbsTopic& aTopic ); - - /** - * Changes the name and number of the existing topic. - * - * Note that the changing fails in case there is another topic with the new topic number. - * It also fails if the topic is protected. - * - * @param aOldNumber Old topic number - * @param aNewNumber New topic number - * @param aName It is the new name of the topic. - * @return Error code. - */ - TInt ChangeTopicNameAndNumber( - TCbsTopicNumber aOldNumber, - TCbsTopicNumber aNewNumber, - const TCbsTopicName& aName ); - - /** - * Changes topic subscription status. - * - * @param aNumber Number of the topic - * @param aNewStatus It is the new subscription status. - * @return Error code. - */ - TInt ChangeTopicSubscriptionStatus( TCbsTopicNumber aNumber, - TBool aNewStatus ); - - /** - * Changes topic hotmark status. - * - * @param aNumber Number of the topic - * @param aNewStatus It is the new hotmark status. - * @return Error code. - */ - TInt ChangeTopicHotmarkStatus( TCbsTopicNumber aNumber, TBool aNewStatus ); - - /** - * Requests the server to notify the client whenever an event occurs that changes - * the information of the topics. - * - * Note that the client may select what kind of events it is interested in. Note also that - * there can be at most one pending request per instance of the class. - * - * @param aStatus It is the variable that the server will modify whenever an event occurs. - * @param aRequested It contains the events the client is listening to. - * @param aEvent It will contain the event that occurred. - * @param aNumber Number of topic - */ - void NotifyOnEvent( - TRequestStatus& aStatus, - const TInt aRequested, - TCbsTopicListEvent& aEvent, - TCbsTopicNumber& aNumber ); - - /** - * Cancels the pending notify request. - */ - void NotifyOnEventCancel(); - - /** - * Returns the number of session-specific new topics and resets the counter. - * New topics are added by the topic detection feature in absence of - * CBS UI Application. - * - * @param aCount On return contains the amount of new topics. - * @return Result code. - */ - TInt GetNewTopicsCount( TInt& aCount ); - - /** - * Returns the latest topic's number. - * - * @param aNumber Number of the topic - * @return Result code. - */ - TInt GetLatestTopicNumber( TCbsTopicNumber& aNumber ); - - /** - * Returns the total amount of unread messages. - * - * @param aCount It will contain the amount of unread messages. - */ - void GetUnreadMessageCount( TInt& aCount ); - - /** - * Returns the handle to the latest hotmarked message that has been - * received after the system has started up. - * - * @param aMessage It is handle to the message. - */ - void GetHotmarkedMessageHandle( TCbsMessageHandle& aMessage ); - - /** - * Returns the number of unread messages in hotmarked topics. - * - * This function is to used by the client when deciding whether - * the message or topic list view should be opened to display - * a hotmarked message(s). - * - * @return Number of unread hotmarked messages - */ - TInt NumberOfUnreadHotmarkedMessages(); - - /** - * Returns the numbers of topics that precede and succeed the given - * topic in server-side topic list. - * - * If the given topic is the first topic in list, aPosition has - * ECbsHead bit up. If the given topic is the last topic in list, - * aPosition has ECbsTail bit up. - * - * Return code values: - * KErrNone aPrevTopicNumber, aNextTopicNumber and aPosition - * contain valid values. - * KErrNotFound aCurrentTopicNumber specified a topic that was not - * on topic list. - * - * @param aCurrentTopicNumber Number that specifies the topic - * whose surroundings are returned - * @param aPrevTopicNumber Returns: number of topic preceding - * the given topic - * @param aNextTopicNumber Returns: number of topic succeeding - * the given topic - * @param aPosition Returns: position of current - * topic in list. - * @return Result code - */ - TInt GetNextAndPrevTopicNumber( - const TCbsTopicNumber& aCurrentTopicNumber, - TCbsTopicNumber& aPrevTopicNumber, - TCbsTopicNumber& aNextTopicNumber, - TInt& aPosition ); - - private: // prohibited functions - // Prohibited copy constructor - RCbsTopicList( const RCbsTopicList& ); - - // Prohibited assignment operator - RCbsTopicList& operator=( const RCbsTopicList& ); - - private: // Data - - // A pointer descriptor used to transfer information - // during a notify request. - TPtr8 iNotifyEventPtr; - - // A pointer descriptor used to transfer information - // during a notify request. - TPtr8 iNotifyHandlePtr; - }; - -#endif // RCBSTOPICLIST_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientInc/RCbsTopicMessages.h --- a/cbs/CbsServer/ClientInc/RCbsTopicMessages.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,208 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the RCbsTopicMessages class -* -* Client-side subsession handling requests which regard -* CB messages. -* -* -*/ - - - -#ifndef RCBSTOPICMESSAGES_H -#define RCBSTOPICMESSAGES_H - -// INCLUDES -#include -#include "CbsCommon.h" - -// FORWARD DECLARATIONS -class RCbs; - -// CLASS DECLARATION - -// Client-side subsession handling requests regarding -// CB messages. -// -class RCbsTopicMessages - : public RSubSessionBase - { - public: // New functions - /** - * Constructor. - */ - RCbsTopicMessages(); - - /** - * Creates a subsession to the server. Before using any other method - * it must be called. - * - * @param aServer It is the cbs server. - * @return Return code. - */ - TInt Open( RCbs& aServer ); - - /** - * Closes the subsession. - * - * @return Return code. - */ - TInt Close(); - - /** - * Returns the total amount of messages the topic contains. - * - * @param aNumber Topic number. - * @param aCount It will contain the total amount of - * messages. - */ - TInt GetMessageCount( TCbsTopicNumber aNumber, TInt& aCount ); - - /** - * Returns message information. - * - * @param aNumber Topic number - * @param aIndex It is index to the message in topic. - * @param aMessage It will contain the message information. - * @return Return code. - */ - TInt GetMessage( TCbsTopicNumber aNumber, TInt aIndex, - TCbsMessage& aMessage ); - - /** - * Finds a message by given handle. - * - * @param aHandle It is handle to the message. - * @param aMessage It will contain the message information. - * @return Return code. - */ - TInt FindMessageByHandle( const TCbsMessageHandle& aHandle, - TCbsMessage& aMessage ); - - /** - * Returns the index of a message with given handle in topic. - * - * Result code KErrNotFound indicates that no message was found with - * the given handle. - * - * @param aHandle Handle of the message - * @param aIndex Return: index of the message in message topic - * @return Result code - */ - TInt GetMessageIndexByHandle( - const TCbsMessageHandle& aHandle, TInt& aIndex ); - - /** - * Deletes an existing message. - * - * Note that it does not care a lot about the status of the message. - * - * Check also the description of LockMessage method. - * - * @param aHandle It is handle to the message. - * @return Return code. - */ - TInt DeleteMessage( const TCbsMessageHandle& aHandle ); - - /** - * Saves a message (i.e., the saved message won't be deleted to make - * room for new messages). - * - * Return codes: - * KErrNone Message is saved. - * KErrGeneral Message not saved -- total maximum of saved - * messages reached. - * - * @param aHandle Handle to the message to be saved. - * @return Return code. - */ - TInt SaveMessage( const TCbsMessageHandle& aHandle ); - - /** - * Locks the message. - * - * Note that a single topic messages subsession can have at most one - * locked message. - * - * Message can be unlocked by trying to lock a null message. Locked - * message will also be automatically unlocked when subsession is - * closed. If a message is locked, then it will not be deleted from - * the database. Thus, deleting a message or trying to delete a - * topic that contains such a message will fail. - * - * Locking a message does not prevent to save the message nor read - * the message. - * - * @param aHandle It is handle to the message to be locked. - * @return Return code. - */ - TInt LockMessage( const TCbsMessageHandle& aHandle ); - - /** - * Sets the message as read. - * - * @param aHandle It is handle to the message to be set read. - */ - TInt ReadMessage( const TCbsMessageHandle& aHandle ); - - /** - * Returns the message contents. - * - * @param aHandle It is handle to the message. - * @param aBuffer It will contain the contents (as much as it fits). - * @return Return code. - */ - TInt GetMessageContents( const TCbsMessageHandle& aHandle, - TDes& aBuffer ); - - /** - * Returns the handles of messages that precede and succeed the - * given message in server-side list of topic messages. - * - * Topic is resolved from the given message handle - * - * If the given handle specifies the first message in topic, - * aPosition has ECbsHead bit up. If the given handle specifies - * the last message in topic, aPosition has ECbsTail bit up. - * - * Return code values: - * KErrNone aPrevMsgHandle, aNextMsgHandle and aPosition - * contain valid values. - * KErrNotFound aCurrentMsgHandle specified a message that was not - * found. - * - * @param aCurrentMsgHandle Handle that specifies the message - * whose surroundings are returned - * @param aPrevMsgHandle Returns: handle of message - * preceding the given message - * @param aNextMsgHandle Returns: handle of message - * succeeding the given topic - * @param aPosition Returns: position of current topic - * in list - * @return Result code - */ - IMPORT_C TInt GetNextAndPrevMessageHandle( - const TCbsMessageHandle& aCurrentMsgHandle, - TCbsMessageHandle& aPrevMsgHandle, - TCbsMessageHandle& aNextMsgHandle, - TInt& aPosition ); - - }; - -#endif // RCBSTOPICMESSAGES_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientInc/ccbsmessageclientimpl.h --- a/cbs/CbsServer/ClientInc/ccbsmessageclientimpl.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,152 +0,0 @@ -/* -* Copyright (c) 2007 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: This file contains the header file of the CCbsMessageClientImpl class. -* -* -*/ - - - -#ifndef CCBSMESSAGECLIENTIMPL_H -#define CCBSMESSAGECLIENTIMPL_H - -// INCLUDES -#include -#include -#include "RCbs.h" - -// CLASS DECLARATION - -/** -* Implementation of CCbsMessageClient interface. -* -* @lib CbsClient.lib -* @since 3.2 -*/ -NONSHARABLE_CLASS( CCbsMessageClientImpl ) : public CCbsMessageClient - { - public: // Construction - - /** - * Instantiates new CCbsMessageClientImpl object and establishes a session with - * CBS server. - * - * Active scheduler has to be installed prior to calling this function. - * - * @return A new instance of CCbsMessageClientImpl - */ - static CCbsMessageClientImpl* NewL(); - - /** - * Destructor. - */ - ~CCbsMessageClientImpl(); - - public: // From base class - - /** - * Finds a message by given handle. - * - * @see CCbsMessageClient::FindMessageByHandle - */ - TInt FindMessageByHandle( - const TCbsMessageHandle& aHandle, - TCbsMessage& aMessage ); - - /** - * Finds the topic by the given number. - * - * @see CCbsMessageClient::FindTopicByNumber - */ - TInt FindTopicByNumber( TCbsTopicNumber aNumber, - TCbsTopic& aTopic ); - - /** - * Returns the total amount of topics the topic list contains. - * - * @see CCbsMessageClient::TopicCount - */ - TInt TopicCount(); - - /** - * Returns information about a topic from the topic list. - * - * @see CCbsMessageClient::GetTopic - */ - TInt GetTopic( const TInt aIndex, TCbsTopic& aTopic ); - - /** - * Returns the total amount of unread messages. - * - * @see CCbsMessageClient::UnreadMessageCount - */ - TInt UnreadMessageCount(); - - /** - * Returns the total amount of messages the topic contains. - * - * @see CCbsMessageClient::GetMessageCount - */ - TInt GetMessageCount( TCbsTopicNumber aNumber, - TInt& aCount ); - - /** - * Returns message information. - * - * @see CCbsMessageClient::GetMessage - */ - TInt GetMessage( TCbsTopicNumber aNumber, TInt aIndex, - TCbsMessage& aMessage ); - - /** - * Returns the message contents. - * - * @see CCbsMessageClient::GetMessageContents - */ - TInt GetMessageContents( - const TCbsMessageHandle& aHandle, - TDes& aBuffer ); - - /** - * Sets the message as read. - * - * @see CCbsMessageClient::SetMessageAsRead - */ - TInt SetMessageAsRead( const TCbsMessageHandle& aHandle ); - - private: - - /** - * Default constructor. - */ - CCbsMessageClientImpl(); - - /** - * 2nd-phase constructor - */ - void ConstructL(); - - private: // Data - - // CBS Client API - RCbs iCbsClient; - }; - - - -#endif // CCBSMESSAGECLIENTIMPL_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientSrc/RCbs.cpp --- a/cbs/CbsServer/ClientSrc/RCbs.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,757 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of RCbs class - member functions. -* -*/ - - -// INCLUDES -#include "RCbs.h" -#include "CbsCommon.h" -#include "CbsServerConstants.h" -#include - -// CONSTANTS -// Server name -_LIT( KCbsServerExe, "CbsServer.exe"); - -// How many microseconds to wait for server -const TInt KWaitForServerRetries = 10; -const TInt KWaitForServerTime = 500000; - -// ==================== LOCAL FUNCTIONS ==================== - - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// RCbs::RCbs -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C RCbs::RCbs() //lint -e1926 - //lint -e1928 - : iConnected( EFalse ) - { - } //lint +e1926 - //lint +e1928 - -// Destructor -EXPORT_C RCbs::~RCbs() - { - // Close subsession and session. - Close(); - } - -// ----------------------------------------------------------------------------- -// RCbs::Connect -// Creates connection to the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::Connect() - { - TInt result( KErrNone ); - - if ( !iConnected ) - { - // Start the server if it isn't already started - StartServer(); - - // Create a session to the server. - result = CreateSession( KCbsServerName, - Version(), - KCbsServerDefaultSlots ); - - if ( result == KErrNone ) - { - // Create a settings subsession - result = iSettings.Open( *this ); - } - if ( result == KErrNone ) - { - // Create a topic list subsession - result = iTopicList.Open( *this ); - } - if ( result == KErrNone ) - { - // Create a topic messages subsession - result = iTopicMessages.Open( *this ); - } - if ( result == KErrNone ) - { - // Create a topic collection subsession - result = iTopicCollection.Open( *this ); - if ( result == KErrNone ) - { - iConnected = ETrue; - } - else - { - iConnected = EFalse; - } - } - } - // Return the result code - return result; - } - -// ----------------------------------------------------------------------------- -// RCbs::Close -// Closes the session to the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCbs::Close() - { - if ( iConnected ) - { - // First close all subsessions. - iTopicCollection.Close(); - iTopicMessages.Close(); - iTopicList.Close(); - iSettings.Close(); - - // Then close the server session. - - // Try to tell the server we've closed the session. - // Just ignore if that fails. - const TIpcArgs args( TIpcArgs::ENothing ); - SendReceive( ECbsCloseSession, args ); - - RHandleBase::Close(); - iConnected = EFalse; - } - } - -// ----------------------------------------------------------------------------- -// RCbs::Version -// Returns the version of CbsClient. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TVersion RCbs::Version() const - { - // Create version and return it. - return TVersion( KCbsServerVersionMajor, - KCbsServerVersionMinor, - KCbsServerVersionBuild ); - } - -// Settings-related methods - -// ----------------------------------------------------------------------------- -// RCbs::GetReceptionStatus -// Requests the reception status from the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCbs::GetReceptionStatus( - TBool& aStatus ) - { - iSettings.GetReceptionStatus( aStatus ); - } - -// ----------------------------------------------------------------------------- -// RCbs::SetReceptionStatus -// Changes the reception status to aStatus. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::SetReceptionStatus( - TBool aStatus ) - { - // Change the reception status - return iSettings.SetReceptionStatus( aStatus ); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetTopicDetectionStatus -// Requests the current topic detection status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCbs::GetTopicDetectionStatus( - TBool& aStatus ) - { - iSettings.GetTopicDetectionStatus( aStatus ); - } - -// ----------------------------------------------------------------------------- -// RCbs::SetTopicDetectionStatus -// Changes the topic detection status to aStatus. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::SetTopicDetectionStatus( - TBool aStatus ) - { - return iSettings.SetTopicDetectionStatus( aStatus ); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetLanguages -// Requests for the current language settings from the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCbs::GetLanguages( - TCbsSettingsLanguages& aLanguages ) - { - iSettings.GetLanguages( aLanguages ); - } -// ----------------------------------------------------------------------------- -// RCbs::SetLanguages -// Sets a new set of languages to the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::SetLanguages( - const TCbsSettingsLanguages& aLanguages ) - { - return iSettings.SetLanguages( aLanguages ); - } - -// ----------------------------------------------------------------------------- -// RCbs::NotifySettingsChanged -// Requests the server to notify the client whenever any settings will be -// changed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCbs::NotifySettingsChanged( - TRequestStatus& aStatus, - TCbsSettingsEvent& aEvent ) - { - iSettings.NotifySettingsChanged( aStatus, aEvent ); - } - -// ----------------------------------------------------------------------------- -// RCbs::NotifySettingsChangedCancel -// Cancels the request to notify the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCbs::NotifySettingsChangedCancel() - { - iSettings.NotifySettingsChangedCancel(); - } - -// Topic Collection -related methods - -// ----------------------------------------------------------------------------- -// RCbs::StartCollectionBrowsing -// Resets the iterator. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCbs::StartCollectionBrowsing() - { - iTopicCollection.Start(); - } - -// ----------------------------------------------------------------------------- -// RCbs::HasNextCollectionTopic -// Returns ETrue, if there is a topic not accessed with NextTopic() -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool RCbs::HasNextCollectionTopic() - { - return iTopicCollection.HasNextTopic(); - } - -// ----------------------------------------------------------------------------- -// RCbs::NextCollectionTopic -// Returns the next topic identity if one exists. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::NextCollectionTopic( - TCbsTopicInfo& aInfo ) - { - return iTopicCollection.NextTopic( aInfo ); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetTopicCount -// Returns the total amount of topics the topic list contains. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCbs::GetTopicCount( - TInt& aCount ) - { - iTopicList.GetTopicCount( aCount ); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetTopic -// Returns information about a topic from the topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::GetTopic( - const TInt aIndex, - TCbsTopic& aTopic ) - { - return iTopicList.GetTopic( aIndex, aTopic ); - } - -// ----------------------------------------------------------------------------- -// RCbs::FindTopicByNumber -// Finds the topic by the given number. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::FindTopicByNumber( - TCbsTopicNumber aNumber, - TCbsTopic& aTopic ) - { - return iTopicList.FindTopicByNumber( aNumber, aTopic ); - } - -// ----------------------------------------------------------------------------- -// RCbs::DeleteTopic -// Deletes an existing topic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::DeleteTopic( - TCbsTopicNumber aNumber ) - { - return iTopicList.DeleteTopic( aNumber ); - } - -// ----------------------------------------------------------------------------- -// RCbs::DeleteAllTopics -// Delete all topics. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::DeleteAllTopics() - { - return iTopicList.DeleteAllTopics(); - } - -// ----------------------------------------------------------------------------- -// RCbs::AddTopic -// Adds a new topic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::AddTopic( - TCbsTopic& aTopic ) - { - return iTopicList.AddTopic( aTopic ); - } - -// ----------------------------------------------------------------------------- -// RCbs::ChangeTopicNameAndNumber -// Changes the name and number of the existing topic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::ChangeTopicNameAndNumber( - TCbsTopicNumber aOldNumber, - TCbsTopicNumber aNewNumber, - const TCbsTopicName& aName ) - { - return iTopicList.ChangeTopicNameAndNumber( - aOldNumber, aNewNumber, aName ); - } - -// ----------------------------------------------------------------------------- -// RCbs::ChangeTopicSubscriptionStatus -// Changes topic subscription status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::ChangeTopicSubscriptionStatus( - TCbsTopicNumber aNumber, - TBool aNewStatus ) - { - return iTopicList.ChangeTopicSubscriptionStatus( aNumber, aNewStatus ); - } - -// ----------------------------------------------------------------------------- -// RCbs::ChangeTopicHotmarkStatus -// Changes topic hotmark status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::ChangeTopicHotmarkStatus( - TCbsTopicNumber aNumber, - TBool aNewStatus ) - { - return iTopicList.ChangeTopicHotmarkStatus( aNumber, aNewStatus ); - } - -// ----------------------------------------------------------------------------- -// RCbs::NotifyOnTopicListEvent -// Requests the server to notify the client whenever an event occurs -// that changes the information of the topics. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCbs::NotifyOnTopicListEvent( - TRequestStatus& aStatus, - const TInt aRequested, - TCbsTopicListEvent& aEvent, - TCbsTopicNumber& aNumber ) - { - iTopicList.NotifyOnEvent( aStatus, aRequested, aEvent, aNumber ); - } - -// ----------------------------------------------------------------------------- -// RCbs::NotifyOnTopicListEventCancel -// Cancels the pending notify request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCbs::NotifyOnTopicListEventCancel() - { - iTopicList.NotifyOnEventCancel(); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetNewTopicsCount -// Returns the number of topics added since last GetNewTopicsCount() -// by the topic detection feature. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::GetNewTopicsCount( - TInt& aCount ) - { - return iTopicList.GetNewTopicsCount( aCount ); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetLatestTopicNumber -// Returns the number of the topic which was last added -// to topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::GetLatestTopicNumber( - TCbsTopicNumber& aNumber ) - { - return iTopicList.GetLatestTopicNumber( aNumber ); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetUnreadMessageCount -// Returns the total amount of unread messages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCbs::GetUnreadMessageCount( - TInt& aCount ) - { - iTopicList.GetUnreadMessageCount( aCount ); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetHotmarkedMessageHandle -// Returns the handle to the latest hotmarked message that has been -// received after the system has started up. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCbs::GetHotmarkedMessageHandle( - TCbsMessageHandle& aMessage ) - { - iTopicList.GetHotmarkedMessageHandle( aMessage ); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetHotmarkedMessageHandle -// Returns the number of unread messages in hotmarked topics. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::NumberOfUnreadHotmarkedMessages() - { - return iTopicList.NumberOfUnreadHotmarkedMessages(); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetNextAndPrevTopicNumber -// Returns the numbers of topics that precede and succeed the given -// topic in server-side topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::GetNextAndPrevTopicNumber( - const TCbsTopicNumber& aCurrentTopicNumber, - TCbsTopicNumber& aPrevTopicNumber, - TCbsTopicNumber& aNextTopicNumber, - TInt& aPosition ) - { - return iTopicList.GetNextAndPrevTopicNumber( - aCurrentTopicNumber, - aPrevTopicNumber, - aNextTopicNumber, - aPosition); - } - - -// Topic Messages-related methods - -// ----------------------------------------------------------------------------- -// RCbs::GetMessageCount -// Returns the total amount of messages the topic contains. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::GetMessageCount( - TCbsTopicNumber aNumber, - TInt& aCount ) - { - return iTopicMessages.GetMessageCount( aNumber, aCount ); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetMessage -// Returns message information. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::GetMessage( - TCbsTopicNumber aNumber, - TInt aIndex, - TCbsMessage& aMessage ) - { - return iTopicMessages.GetMessage( aNumber, aIndex, aMessage ); - } - -// ----------------------------------------------------------------------------- -// RCbs::FindMessageByHandle -// Finds a message by given handle. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::FindMessageByHandle( - const TCbsMessageHandle& aHandle, - TCbsMessage& aMessage ) - { - return iTopicMessages.FindMessageByHandle( aHandle, aMessage ); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetMessageIndexByHandle -// Returns the index of a message with given handle in topic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::GetMessageIndexByHandle( - const TCbsMessageHandle& aHandle, - TInt& aIndex ) - { - return iTopicMessages.GetMessageIndexByHandle( aHandle, aIndex ); - } - -// ----------------------------------------------------------------------------- -// RCbs::DeleteMessage -// Deletes an existing message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::DeleteMessage( - const TCbsMessageHandle& aHandle ) - { - return iTopicMessages.DeleteMessage( aHandle ); - } - -// ----------------------------------------------------------------------------- -// RCbs::SaveMessage -// Saves a message (the saved message won't be deleted to make -// room for new messages). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::SaveMessage( - const TCbsMessageHandle& aHandle ) - { - return iTopicMessages.SaveMessage( aHandle ); - } - -// ----------------------------------------------------------------------------- -// RCbs::LockMessage -// Locks the message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::LockMessage( - const TCbsMessageHandle& aHandle ) - { - return iTopicMessages.LockMessage( aHandle ); - } - -// ----------------------------------------------------------------------------- -// RCbs::ReadMessage -// Sets the message as read. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::ReadMessage( - const TCbsMessageHandle& aHandle ) - { - return iTopicMessages.ReadMessage( aHandle ); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetMessageContents -// Returns the message contents. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::GetMessageContents( - const TCbsMessageHandle& aHandle, - TDes& aBuffer ) - { - return iTopicMessages.GetMessageContents( aHandle, aBuffer ); - } - -// ----------------------------------------------------------------------------- -// RCbs::GetNextAndPrevMessageHandle -// Returns the handles of messages that precede and succeed the -// given message in server-side list of topic messages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCbs::GetNextAndPrevMessageHandle( - const TCbsMessageHandle& aCurrentMsgHandle, - TCbsMessageHandle& aPrevMsgHandle, - TCbsMessageHandle& aNextMsgHandle, - TInt& aPosition ) - { - return iTopicMessages.GetNextAndPrevMessageHandle( - aCurrentMsgHandle, - aPrevMsgHandle, - aNextMsgHandle, - aPosition ); - } - -// ----------------------------------------------------------------------------- -// RCbs::Connected -// Returns ETrue if CbsServer session has been established. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool RCbs::Connected() const - { - return iConnected; - } - -// ----------------------------------------------------------------------------- -// RCbs::Shutdown -// Forces the server to shut down. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCbs::Shutdown() const - { - const TIpcArgs args( TIpcArgs::ENothing ); - SendReceive( ECbsShutdown, args ); - } - -// ----------------------------------------------------------------------------- -// RCbs::StartServer -// Starts the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbs::StartServer() - { - TInt errorCode( KErrNone ); - RMutex serverStartMutex; - - if ( !IsServerStarted() ) - { - TInt mutexExists( serverStartMutex.CreateGlobal( _L("CBSSERVERMTX") ) ); - if ( mutexExists ) - { - TInt openErr( serverStartMutex.OpenGlobal( _L("CBSSERVERMTX") ) ); - if ( openErr ) - { - return openErr; - } - } - // Mutex exists, wait until server is finished with it's tasks - if ( mutexExists == KErrAlreadyExists ) - { - serverStartMutex.Wait(); - } - - // Create and start a new process. - TBuf<1> arguments; - RProcess p; - - #ifdef __WINS__ - errorCode = p.Create( KCbsServerExe, arguments ); - #else - // Use the correct path depending on whether using data caging or not - // Use path \sys\bin - TBuf<64> fullPath; - fullPath = KDC_PROGRAMS_DIR; - fullPath.Append( KCbsServerExe ); - errorCode = p.Create( fullPath, arguments ); - #endif - - if ( errorCode == KErrNone ) - { - p.Resume(); - p.Close(); - - TInt i( 0 ); - for ( i = 0; i < KWaitForServerRetries; i++ ) - { - if ( IsServerStarted() ) - { - break; - } - - User::After( KWaitForServerTime ); - } - } - // Finished with startup sequence, release the mutex - if ( mutexExists == KErrAlreadyExists ) - { - serverStartMutex.Signal(); - } - serverStartMutex.Close(); - } - return errorCode; - } - -// ----------------------------------------------------------------------------- -// RCbs::IsServerStarted -// Checks if the server is already started. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool RCbs::IsServerStarted() - { - TFindServer findServer( KCbsServerName ); - TFullName name; - return ( findServer.Next( name ) == KErrNone ); - } - -// ================= OTHER EXPORTED FUNCTIONS ============== - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientSrc/RCbsSettings.cpp --- a/cbs/CbsServer/ClientSrc/RCbsSettings.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,196 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of RCbsSettings class - member functions. -* -*/ - - -// INCLUDE FILES - -#include "CbsServerConstants.h" -#include "RCbsTopicMessages.h" -#include "RCbsSettings.h" -#include "RCbs.h" - -// ================= MEMBER FUNCTIONS ======================= - -// C++ default constructor can NOT contain any code, that -// might leave. -// -RCbsSettings::RCbsSettings() - : iNotifyEventPtr( NULL, 0, 0 ) - { - } - -// ----------------------------------------------------------------------------- -// RCbsSettings::Open -// Creates a subsession to the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - -TInt RCbsSettings::Open( - RCbs& aServer ) - { - // Open the subsession. - const TIpcArgs args( TIpcArgs::ENothing ); - return CreateSubSession( aServer, ECbsCreateSettingsSubsession, args ); - } -// ----------------------------------------------------------------------------- -// RCbsSettings::Close -// Closes the subsession. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - -TInt RCbsSettings::Close() - { - // Close the subsession. - RSubSessionBase::CloseSubSession( ECbsCloseSettingsSubsession ); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// RCbsSettings::GetReceptionStatus -// Requests the reception status from the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsSettings::GetReceptionStatus( - TBool& aStatus ) - { - // Send request to the server. Get the current reception status. - aStatus = EFalse; - TPckgBuf< TBool > pckg( aStatus ); - const TIpcArgs args( &pckg ); - - SendReceive( ECbsGetReceptionStatus, args ); - - aStatus = pckg(); - } - -// ----------------------------------------------------------------------------- -// RCbsSettings::SetReceptionStatus -// Changes the reception status to aStatus. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsSettings::SetReceptionStatus( - TBool aStatus ) - { - // Change the reception status - TPckgBuf< TBool > pckg( aStatus ); - const TIpcArgs args( &pckg ); - return SendReceive( ECbsSetReceptionStatus, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsSettings::GetTopicDetectionStatus -// Requests the current topic detection status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsSettings::GetTopicDetectionStatus( - TBool& aStatus ) - { - // Get the current topic detection status. - TPckgBuf< TBool > pckg; - const TIpcArgs args( &pckg ); - SendReceive( ECbsGetTopicDetectionStatus, args ); - aStatus = pckg(); - } - -// ----------------------------------------------------------------------------- -// RCbsSettings::SetTopicDetectionStatus -// Sets a new topic detection status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsSettings::SetTopicDetectionStatus( - TBool aStatus ) - { - // Change the topic detection status. - TPckgBuf< TBool > pckg( aStatus ); - const TIpcArgs args( &pckg ); - return SendReceive( ECbsSetTopicDetectionStatus, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsSettings::GetLanguages -// Returns the preferred languages in aLanguages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsSettings::GetLanguages( - TCbsSettingsLanguages& aLanguages ) - { - // Get the preferred languages - TPckgBuf< TCbsSettingsLanguages > pckg; - const TIpcArgs args( &pckg ); - SendReceive( ECbsGetLanguages, args ); - aLanguages = pckg(); - } - -// ----------------------------------------------------------------------------- -// RCbsSettings::SetLanguages -// Sets a new set of languages to the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsSettings::SetLanguages( - const TCbsSettingsLanguages& aLanguages ) - { - // Change the preferred languages - TPckgBuf< TCbsSettingsLanguages > pckg( aLanguages ); - const TIpcArgs args( &pckg ); - return SendReceive( ECbsSetLanguages, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsSettings::NotifySettingsChanged -// Requests the server to notify the client whenever any settings -// will be changed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsSettings::NotifySettingsChanged( - TRequestStatus& aStatus, - TCbsSettingsEvent& aEvent ) - { - // Set up the notify! - iNotifyEventPtr.Set( reinterpret_cast( &aEvent ), - sizeof( TCbsSettingsEvent ), - sizeof( TCbsSettingsEvent ) ); - - // Server writes through the pointer descriptor - const TIpcArgs args( &iNotifyEventPtr ); - SendReceive( ECbsNotifySettingsChanged, args, aStatus ); - } - -// ----------------------------------------------------------------------------- -// RCbsSettings::NotifySettingsChangedCancel -// Cancels the request to notify the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsSettings::NotifySettingsChangedCancel() - { - const TIpcArgs args( TIpcArgs::ENothing ); - SendReceive( ECbsNotifySettingsChangedCancel, args ); - } - -// ================= OTHER EXPORTED FUNCTIONS ============== - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientSrc/RCbsTopicCollection.cpp --- a/cbs/CbsServer/ClientSrc/RCbsTopicCollection.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,219 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of RCbsTopicCollection class - member functions. -* -*/ - - -// INCLUDE FILES - -#include "CbsServerConstants.h" -#include "RCbs.h" -#include "RCbsTopicCollection.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// RCbsTopicCollection::RCbsTopicCollection -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -RCbsTopicCollection::RCbsTopicCollection() - : iIterator( 0 ) - { - } - -// ----------------------------------------------------------------------------- -// RCbsTopicCollection::Open -// Creates a subsession to the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicCollection::Open( - RCbs& aServer ) - { - // Open the subsession. - const TIpcArgs args( TIpcArgs::ENothing ); - return CreateSubSession( aServer, ECbsCreateTopicCollectionSubsession, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicCollection::Close -// Closes a subsession to the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicCollection::Close() - { - // Close the subsession - RSubSessionBase::CloseSubSession( ECbsCloseTopicCollectionSubsession ); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicCollection::GetTopicCount -// Returns the total amount of topic information the topic collection -// contains. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsTopicCollection::GetTopicCount( - TInt& aCount ) - { - // Get the topic count from the server - TPckgBuf< TInt > pckgCount; - const TIpcArgs args( &pckgCount ); - SendReceive( ECbsGetTopicInfoCount, args ); - aCount = pckgCount(); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicCollection::GetTopicInfo -// Returns a topic information structure. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicCollection::GetTopicInfo( - TInt aIndex, - TCbsTopicInfo& aInfo ) - { - // Get topic information from the server - TPckgBuf< TCbsTopicInfo > pckgInfo( aInfo ); - const TIpcArgs args( aIndex, &pckgInfo ); - TInt result( SendReceive( ECbsGetTopicInfo, args ) ); - - if ( result == KErrNone ) - { - aInfo = pckgInfo(); - } - return result; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicCollection::NotifyOnChange -// Notifies the client next time when topic collection changes. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsTopicCollection::NotifyOnChange( - TRequestStatus& aStatus ) - { - // Send notification on change - const TIpcArgs args( TIpcArgs::ENothing ); - SendReceive( ECbsNotifyOnChange, args, aStatus ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicCollection::NotifyOnChangeCancel -// Cancels the pending request to notify. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsTopicCollection::NotifyOnChangeCancel() - { - // Cancel pending notification request. - const TIpcArgs args( TIpcArgs::ENothing ); - SendReceive( ECbsNotifyOnChangeCancel, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicCollection::Start -// Interface for topic collection browsing. Resets the iterator. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsTopicCollection::Start() - { - iIterator = 0; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicCollection::HasNextTopic -// Returns ETrue, if the topic collection has topic identities -// unaccessed with NextTopic(). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool RCbsTopicCollection::HasNextTopic() - { - TInt count( 0 ); - TInt result( KErrNone ); - TBool inList( EFalse ); - - GetTopicCount( count ); - for ( ; iIterator < count; iIterator++ ) - { - // Check if the current topic is in the topic list. - result = TopicInList( iIterator, inList ); - if ( result != KErrNone ) - { - return EFalse; - } - else if ( !inList ) - { - return ETrue; // this topic is not in the list; - } - } - - return EFalse; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicCollection::NextTopic -// Returns the next topic identity if one exists. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicCollection::NextTopic( - TCbsTopicInfo& aInfo ) - { - // iIterator points to the next unlisted topic: return the topic - // and error code. - TInt result( KErrNone ); - result = GetTopicInfo( iIterator, aInfo ); - if ( result == KErrNone ) - { - iIterator++; // advance to the next topic - } - return result; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicCollection::TopicInList -// Returns information whether the topic was in topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicCollection::TopicInList( - TInt aIndex, - TBool& aInList ) - { - // value returned by the server gets stored here - TPckgBuf< TBool > pckgInList; - const TIpcArgs args( aIndex, &pckgInList ); - - TInt result = SendReceive( ECbsTopicInList, args ); - if ( result == KErrNone ) - { - aInList = pckgInList(); - } - - return result; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientSrc/RCbsTopicList.cpp --- a/cbs/CbsServer/ClientSrc/RCbsTopicList.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,416 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of RCbsTopicList class - member functions. -* -*/ - - - -// INCLUDE FILES - -#include "CbsServerConstants.h" -#include "RCbs.h" -#include "RCbsTopicList.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// RCbsTopicList::RCbsTopicList -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -RCbsTopicList::RCbsTopicList() - : iNotifyEventPtr( NULL, 0, 0 ), - iNotifyHandlePtr( NULL, 0, 0 ) - { - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::Open -// Creates a subsession to the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::Open( - RCbs& aServer ) - { - const TIpcArgs args( TIpcArgs::ENothing ); - return CreateSubSession( aServer, ECbsCreateTopicListSubsession, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::Close -// Closes the subsession and connection to the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::Close() - { - // Close the subsession. - RSubSessionBase::CloseSubSession( ECbsCloseTopicListSubsession ); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::GetTopicCount -// Returns the total amount of topics the topic list contains. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsTopicList::GetTopicCount( - TInt& aCount ) - { - // Send request to the server. Get the total amount of topics. - aCount = 0; - TPckgBuf< TInt > pckg( aCount ); - const TIpcArgs args( &pckg ); - - TInt result = SendReceive( ECbsGetTopicCount, args ); - // In case everything went just fine update the parameter! - if ( result == KErrNone ) - { - aCount = pckg(); - } - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::GetTopic -// Returns information about a topic from the topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::GetTopic( - const TInt aIndex, - TCbsTopic& aTopic ) - { - TPckgBuf< TCbsTopic > pckgTopic; - const TIpcArgs args( aIndex, &pckgTopic ); - - TInt result = SendReceive( ECbsGetTopic, args ); - - // Update if everything went just fine - if ( result == KErrNone ) - { - aTopic = pckgTopic(); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::FindTopicByNumber -// Finds the topic by given number. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::FindTopicByNumber( - TCbsTopicNumber aNumber, - TCbsTopic& aTopic ) - { - TPckgBuf< TCbsTopic > pckgTopic; - const TIpcArgs args( aNumber, &pckgTopic ); - - TInt result = SendReceive( ECbsFindTopicByNumber, args ); - - // Update aTopic if everything went just fine. - if ( result == KErrNone ) - { - aTopic = pckgTopic(); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::DeleteTopic -// Deletes an existing topic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::DeleteTopic( - TCbsTopicNumber aNumber ) - { - // Send request to the server to delete a topic by handle - const TIpcArgs args( aNumber ); - return SendReceive( ECbsDeleteTopic, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::DeleteAllTopics -// Delete all topics. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::DeleteAllTopics() - { - const TIpcArgs args( TIpcArgs::ENothing ); - return SendReceive( ECbsDeleteAll, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::AddTopic -// Adds a new topic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::AddTopic( - TCbsTopic& aTopic ) - { - // Send request to add a topic to the list. - TPckgBuf< TCbsTopic > pckgTopic( aTopic ); - const TIpcArgs args( &pckgTopic ); - - TInt result = SendReceive( ECbsAddTopic, args ); - - if ( result == KErrNone ) - { - // Update the topic information (only handle). - aTopic = pckgTopic(); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::ChangeTopicNameAndNumber -// Changes the name and number of the existing topic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::ChangeTopicNameAndNumber( - TCbsTopicNumber aOldNumber, - TCbsTopicNumber aNewNumber, - const TCbsTopicName& aName ) - { - // Send request to the server - const TIpcArgs args( aOldNumber, aNewNumber, &aName ); - return SendReceive( ECbsChangeTopicNameAndNumber, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::ChangeTopicSubscriptionStatus -// Changes topic subscription status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::ChangeTopicSubscriptionStatus( - TCbsTopicNumber aNumber, - TBool aNewStatus ) - { - // Send request to the server - TPckgBuf< TBool > pckgStatus( aNewStatus ); - const TIpcArgs args( aNumber, &pckgStatus ); - return SendReceive( ECbsChangeTopicSubscriptionStatus, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::ChangeTopicHotmarkStatus -// Changes topic hotmark status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::ChangeTopicHotmarkStatus( - TCbsTopicNumber aNumber, - TBool aNewStatus ) - { - // Send request to the server - TPckgBuf< TBool > pckgStatus( aNewStatus ); - const TIpcArgs args( aNumber, &pckgStatus ); - return SendReceive( ECbsChangeTopicHotmarkStatus, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::NotifyOnEvent -// Requests the server to notify the client whenever an event occurs that -// changes the information of the topics. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsTopicList::NotifyOnEvent( - TRequestStatus& aStatus, - const TInt aRequested, - TCbsTopicListEvent& aEvent, - TCbsTopicNumber& aHandle ) - { - // Send request for the notify - iNotifyEventPtr.Set( reinterpret_cast< TText8* >( &aEvent ), - sizeof( TCbsTopicListEvent ), - sizeof( TCbsTopicListEvent ) ); - iNotifyHandlePtr.Set( reinterpret_cast< TText8* >( &aHandle ), - sizeof( TCbsTopicNumber ), - sizeof( TCbsTopicNumber ) ); - - const TIpcArgs args( aRequested, &iNotifyEventPtr, &iNotifyHandlePtr ); - SendReceive( ECbsNotifyOnEvent, args, aStatus ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::NotifyOnEventCancel -// Cancels the pending notify request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsTopicList::NotifyOnEventCancel() - { - const TIpcArgs args( TIpcArgs::ENothing ); - SendReceive( ECbsNotifyOnEventCancel, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::GetNewTopicsCount -// Returns the number of session-specific new topics and resets the counter. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::GetNewTopicsCount( - TInt& aCount ) - { - // Send request to the server to get the total amount of new topics - aCount = 0; - TPckgBuf pckg( aCount ); - const TIpcArgs args( &pckg ); - - TInt result( SendReceive( ECbsGetNewTopicsCount, args ) ); - - if ( result == KErrNone ) - { - aCount = pckg(); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::GetLatestTopicNumber -// Returns the latest topic's number. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::GetLatestTopicNumber( - TCbsTopicNumber& aNumber ) - { - aNumber = 0; - TPckgBuf pckg( aNumber ); - const TIpcArgs args( &pckg ); - - TInt result( SendReceive( ECbsGetLatestTopicNumber, args ) ); - - if ( result == KErrNone ) - { - aNumber = pckg(); - } - return result; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::GetUnreadMessageCount -// Returns the total amount of unread messages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsTopicList::GetUnreadMessageCount( - TInt& aCount ) - { - // Send request to the server to get the total amount of unread messages - TPckgBuf pckg( aCount ); - const TIpcArgs args( &pckg ); - - TInt result = SendReceive( ECbsGetUnreadMessageCount, args ); - - // In case everything went just fine update the parameter - if ( result == KErrNone ) - { - aCount = pckg(); - } - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::GetHotmarkedMessageHandle -// Returns the handle to the latest hotmarked message that has been -// received after the system has started up. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsTopicList::GetHotmarkedMessageHandle( - TCbsMessageHandle& aMessage ) - { - // Send request to the server to get the handle to the hotmarked message - TPckgBuf pckgMessageHandle( aMessage ); - const TIpcArgs args( &pckgMessageHandle ); - - TInt result = SendReceive( ECbsGetHotmarkedMessageHandle, args ); - - if ( result == KErrNone ) - { - aMessage = pckgMessageHandle(); - } - else - { - aMessage = 0; - } - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::NumberOfUnreadHotmarkedMessages -// Returns the number of unread messages in hotmarked topics. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::NumberOfUnreadHotmarkedMessages() - { - TInt hotMsgCount( 0 ); - TPckgBuf pckgHotMsgCount; - const TIpcArgs args( &pckgHotMsgCount ); - - if ( SendReceive( ECbsGetUnreadHotmarkedMessageCount, args ) == KErrNone ) - { - hotMsgCount = pckgHotMsgCount(); - } - - return hotMsgCount; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicList::GetNextAndPrevTopicNumber -// Returns the numbers of topics that precede and succeed the given -// topic in server-side topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicList::GetNextAndPrevTopicNumber( - const TCbsTopicNumber& aCurrentTopicNumber, - TCbsTopicNumber& aPrevTopicNumber, - TCbsTopicNumber& aNextTopicNumber, - TInt& aPosition ) - { - TPckgBuf pckgCurrentTopic( aCurrentTopicNumber ); - TPckgBuf pckgResults; - - const TIpcArgs args( &pckgCurrentTopic, &pckgResults ); - - TInt result( SendReceive( ECbsGetNextAndPrevTopicNumber, args ) ); - if ( result == KErrNone ) - { - aPrevTopicNumber = pckgResults().iPrevTopic; - aNextTopicNumber = pckgResults().iNextTopic; - aPosition = pckgResults().iPosition; - } - return result; - } - -// ================= OTHER EXPORTED FUNCTIONS ============== - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientSrc/RCbsTopicMessages.cpp --- a/cbs/CbsServer/ClientSrc/RCbsTopicMessages.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,291 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of RCbsTopicMessages class - member functions. -* -*/ - - - -// INCLUDE FILES - -#include "CbsServerConstants.h" -#include "RCbs.h" -#include "RCbsTopicMessages.h" - - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// RCbsTopicMessages::RCbsTopicMessages -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -RCbsTopicMessages::RCbsTopicMessages() - { - } - -// ----------------------------------------------------------------------------- -// RCbsTopicMessages::Open -// Creates a subsession to the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicMessages::Open( - RCbs& aServer ) - { - const TIpcArgs args( TIpcArgs::ENothing ); - return CreateSubSession( aServer, ECbsCreateTopicMessagesSubsession, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicMessages::Close -// Closes the subsession. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicMessages::Close() - { - // Release locked message, if any - TCbsMessageHandle handle( 0 ); - LockMessage( handle ); - - // Close the subsession. - RSubSessionBase::CloseSubSession( ECbsCloseTopicMessagesSubsession ); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicMessages::GetMessageCount -// Returns the total amount of messages the topic contains. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicMessages::GetMessageCount( - TCbsTopicNumber aNumber, - TInt& aCount ) - { - // Send request to get the total amount of messages - aCount = 0; - TPckgBuf< TInt > pckgCount( aCount ); - const TIpcArgs args( aNumber, &pckgCount ); - - TInt result = SendReceive( ECbsGetMessageCount, args ); - - // If everything went fine, give the result to the client. - if ( result == KErrNone ) - { - aCount = pckgCount(); - } - return result; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicMessages::GetMessage -// Returns message information. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicMessages::GetMessage( - TCbsTopicNumber aNumber, - TInt aIndex, - TCbsMessage& aMessage ) - { - // Send request to get the message from server - TPckgBuf< TCbsMessage > pckgMessage; - const TIpcArgs args( aNumber, aIndex, &pckgMessage ); - - TInt result = SendReceive( ECbsGetMessage, args ); - - if ( result == KErrNone ) - { - aMessage = pckgMessage(); - } - else - { - aMessage.iHandle = 0; - } - - return result; - - } - -// ----------------------------------------------------------------------------- -// RCbsTopicMessages::FindMessageByHandle -// Finds a message by given handle. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicMessages::FindMessageByHandle( - const TCbsMessageHandle& aHandle, - TCbsMessage& aMessage ) - { - // Send request to the server to find a message by handle - TPckgBuf< TCbsMessageHandle > pckgHandle( aHandle ); - TPckgBuf< TCbsMessage > pckgMessage; - const TIpcArgs args( &pckgHandle, &pckgMessage ); - - TInt result = SendReceive( ECbsFindMessageByHandle, args ); - - // If everything went fine, update the message - if ( result == KErrNone ) - { - aMessage = pckgMessage(); - } - else - { - aMessage.iHandle = 0; - } - - return result; - - } - -// ----------------------------------------------------------------------------- -// RCbsTopicMessages::GetMessageIndexByHandle -// Returns the index of a message with given handle in topic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicMessages::GetMessageIndexByHandle( - const TCbsMessageHandle& aHandle, - TInt& aIndex ) - { - TPckgBuf< TCbsMessageHandle > pckgHandle( aHandle ); - TPckgBuf< TInt > pckgIndex( 0 ); - const TIpcArgs args( &pckgHandle, &pckgIndex ); - - TInt result( SendReceive( ECbsGetMessageIndexByHandle, args ) ); - - if ( result == KErrNone ) - { - aIndex = pckgIndex(); - } - return result; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicMessages::DeleteMessage -// Deletes an existing message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicMessages::DeleteMessage( - const TCbsMessageHandle& aHandle ) - { - // Send request to delete a message by handle - TPckgBuf< TCbsMessageHandle > pckgHandle( aHandle ); - const TIpcArgs args( &pckgHandle ); - return SendReceive( ECbsDeleteMessage, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicMessages::SaveMessage -// Saves a message (i.e., the saved message won't be deleted to make -// room for new messages). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicMessages::SaveMessage( - const TCbsMessageHandle& aHandle ) - { - // Send request to save a message by handle - TPckgBuf< TCbsMessageHandle > pckgHandle( aHandle ); - const TIpcArgs args( &pckgHandle ); - return SendReceive( ECbsSaveMessage, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicMessages::LockMessage -// Locks the message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicMessages::LockMessage( - const TCbsMessageHandle& aHandle ) - { - TPckgBuf< TCbsMessageHandle > pckgHandle( aHandle ); - const TIpcArgs args( &pckgHandle ); - return SendReceive( ECbsLockMessage, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicMessages::ReadMessage -// Sets the message as read. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicMessages::ReadMessage( - const TCbsMessageHandle& aHandle ) - { - // Send request to set message read by handle - TPckgBuf< TCbsMessageHandle > pckgHandle( aHandle ); - const TIpcArgs args( &pckgHandle ); - return SendReceive( ECbsReadMessage, args ); - } - -// ----------------------------------------------------------------------------- -// RCbsTopicMessages::GetMessageContents -// Returns the message contents. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicMessages::GetMessageContents( - const TCbsMessageHandle& aHandle, - TDes& aBuffer ) - { - // Send request to get the message contents - TPckgBuf< TCbsMessageHandle > pckgHandle( aHandle ); - TInt length = aBuffer.MaxLength(); - const TIpcArgs args( &pckgHandle, length, &aBuffer ); - - TInt result( SendReceive( ECbsGetMessageContents, args ) ); - if ( result != KErrNone ) - { - aBuffer.Zero(); - } - return result; - } - -// ----------------------------------------------------------------------------- -// RCbsTopicMessages::GetNextAndPrevMessageHandle -// Returns the handles of messages that precede and succeed the -// given message in server-side list of topic messages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsTopicMessages::GetNextAndPrevMessageHandle( - const TCbsMessageHandle& aCurrentMsgHandle, - TCbsMessageHandle& aPrevMsgHandle, - TCbsMessageHandle& aNextMsgHandle, - TInt& aPosition ) - { - TPckgBuf< TCbsMessageHandle > pckgCurrentMsg( aCurrentMsgHandle ); - TPckgBuf< TCbsNextPrevMsgAndPosition > pckgResults; - const TIpcArgs args( &pckgCurrentMsg, &pckgResults ); - - TInt result( SendReceive( ECbsGetNextAndPrevMsgHandle, args ) ); - if ( result == KErrNone ) - { - aPrevMsgHandle = pckgResults().iPrevMsg; - aNextMsgHandle = pckgResults().iNextMsg; - aPosition = pckgResults().iPosition; - } - return result; - } - -// ================= OTHER EXPORTED FUNCTIONS ============== - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientSrc/ccbsmessageclient.cpp --- a/cbs/CbsServer/ClientSrc/ccbsmessageclient.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2007 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: Implementation of the class CCbsMessageClient. -* -*/ - - -// INCLUDE FILES -#include -#include "ccbsmessageclientimpl.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CCbsMessageClient::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CCbsMessageClient* CCbsMessageClient::NewL() - { - return CCbsMessageClientImpl::NewL(); - } - -// ----------------------------------------------------------------------------- -// CCbsMessageClient::CCbsMessageClient -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsMessageClient::CCbsMessageClient() - { - } - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ClientSrc/ccbsmessageclientimpl.cpp --- a/cbs/CbsServer/ClientSrc/ccbsmessageclientimpl.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -/* -* Copyright (c) 2007 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: Implementation of the class CCbsMessageClientImpl. -* -*/ - - -// INCLUDE FILES -#include "ccbsmessageclientimpl.h" -#include "RCbs.h" - -// ==================== LOCAL FUNCTIONS ==================== - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsMessageClientImpl::CCbsMessageClientImpl -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsMessageClientImpl::CCbsMessageClientImpl() - { - } - -// ----------------------------------------------------------------------------- -// CCbsMessageClientImpl::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsMessageClientImpl::ConstructL() - { - User::LeaveIfError( iCbsClient.Connect() ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessageClientImpl::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsMessageClientImpl* CCbsMessageClientImpl::NewL() - { - CCbsMessageClientImpl* self = new ( ELeave ) CCbsMessageClientImpl(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - - -// Destructor -CCbsMessageClientImpl::~CCbsMessageClientImpl() - { - iCbsClient.Close(); - } - -// ----------------------------------------------------------------------------- -// CCbsMessageClientImpl::FindMessageByHandle -// -// (Other items were commented in a header) -// ----------------------------------------------------------------------------- -// -TInt CCbsMessageClientImpl::FindMessageByHandle( const TCbsMessageHandle& aHandle, - TCbsMessage& aMessage ) - { - return iCbsClient.FindMessageByHandle( aHandle, aMessage ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessageClientImpl::FindTopicByNumber -// -// (Other items were commented in a header) -// ----------------------------------------------------------------------------- -// -TInt CCbsMessageClientImpl::FindTopicByNumber( const TCbsTopicNumber aNumber, - TCbsTopic& aTopic ) - { - return iCbsClient.FindTopicByNumber( aNumber, aTopic ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessageClientImpl::TopicCount -// -// (Other items were commented in a header) -// ----------------------------------------------------------------------------- -// -TInt CCbsMessageClientImpl::TopicCount() - { - TInt topicCount( 0 ); - iCbsClient.GetTopicCount( topicCount ); - return topicCount; - } - -// ----------------------------------------------------------------------------- -// CCbsMessageClientImpl::GetTopic -// -// (Other items were commented in a header) -// ----------------------------------------------------------------------------- -// -TInt CCbsMessageClientImpl::GetTopic( const TInt aIndex, TCbsTopic& aTopic ) - { - return iCbsClient.GetTopic( aIndex, aTopic ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessageClientImpl::GetUnreadMessageCount -// -// (Other items were commented in a header) -// ----------------------------------------------------------------------------- -// -TInt CCbsMessageClientImpl::UnreadMessageCount() - { - TInt msgCount( 0 ); - iCbsClient.GetUnreadMessageCount( msgCount ); - return msgCount; - } - -// ----------------------------------------------------------------------------- -// CCbsMessageClientImpl::GetMessageCount -// -// (Other items were commented in a header) -// ----------------------------------------------------------------------------- -// -TInt CCbsMessageClientImpl::GetMessageCount( const TCbsTopicNumber aNumber, - TInt& aCount ) - { - return iCbsClient.GetMessageCount( aNumber, aCount ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessageClientImpl::GetMessage -// -// (Other items were commented in a header) -// ----------------------------------------------------------------------------- -// -TInt CCbsMessageClientImpl::GetMessage( const TCbsTopicNumber aNumber, - const TInt aIndex, - TCbsMessage& aMessage ) - { - return iCbsClient.GetMessage( aNumber, aIndex, aMessage ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessageClientImpl::GetMessageContents -// -// (Other items were commented in a header) -// ----------------------------------------------------------------------------- -// -TInt CCbsMessageClientImpl::GetMessageContents( const TCbsMessageHandle& aHandle, - TDes& aBuffer ) - { - return iCbsClient.GetMessageContents( aHandle, aBuffer ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessageClientImpl::SetMessageAsRead -// -// (Other items were commented in a header) -// ----------------------------------------------------------------------------- -// -TInt CCbsMessageClientImpl::SetMessageAsRead( const TCbsMessageHandle& aHandle ) - { - return iCbsClient.ReadMessage( aHandle ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Data/CbsServer.rss --- a/cbs/CbsServer/Data/CbsServer.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/* -* Copyright (c) 2003 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: Resource file of Cbs server -* -*/ - - -// INCLUDES -#include -#include -#include - -RESOURCE RSS_SIGNATURE { } - -/******************* Localized texts **********************/ - -// --------------------------------------------------------- -// -// r_text_index_topic -// Defines localized text, Index message text -// -// --------------------------------------------------------- -// -RESOURCE LBUF r_text_index_topic { txt = qtn_cb_litext_index; } - -// --------------------------------------------------------- -// -// r_text_sim_topic -// Defines localized text, SIM Topic text -// -// --------------------------------------------------------- -// -RESOURCE LBUF r_text_sim_topic { txt = qtn_cb_litext_sim_topic; } - -// --------------------------------------------------------- -// -// r_text_standard_topic_list -// Defines localized text, Standard Topic List name -// -// --------------------------------------------------------- -// -RESOURCE LBUF r_text_standard_topic_list { txt = qtn_cb_litext_standard_topic_list; } - - -/******************* Default file paths **********************/ - -// --------------------------------------------------------- -// -// r_file_settings -// CBS settings file path -// -// --------------------------------------------------------- -// -RESOURCE LBUF r_file_settings { txt = "C:\\system\\data\\cbs\\cbsettings.dat"; } - -// --------------------------------------------------------- -// -// r_file_topics -// CBS topics file path -// -// --------------------------------------------------------- -// -RESOURCE LBUF r_file_topics { txt = "C:\\system\\data\\cbs\\cbtopicsmsgs.dat"; } - -// --------------------------------------------------------- -// -// r_file_unsaved -// CBS unsaved messages file paths -// -// --------------------------------------------------------- -// -RESOURCE LBUF r_file_unsaved_wins { txt = "C:\\system\\data\\cbs\\cbunsaved.dat"; } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Data/cbsclient.pkg --- a/cbs/CbsServer/Data/cbsclient.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +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: -; -; Languages -&EN - -; Header -#{"CbsClient"},(0x1000A85A),10,1,0,TYPE=PU - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -"\epoc32\release\armv5\urel\cbsclient.dll"-"!:\sys\bin\cbsclient.dll" diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Data/cbsclient_stub.pkg --- a/cbs/CbsServer/Data/cbsclient_stub.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +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: -; -; Languages -&EN - -; Header -#{"CbsClient"}, (0x1000A85A), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\cbsclient.dll" diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Data/cbsclient_stub.sis Binary file cbs/CbsServer/Data/cbsclient_stub.sis has changed diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Data/cbsmcnclient.pkg --- a/cbs/CbsServer/Data/cbsmcnclient.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +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: -; -; Languages -&EN - -; Header -#{"CbsMcnClient patch"},(0x1000A85B),10,1,0,TYPE=PU - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -"\epoc32\release\armv5\urel\cbsmcnclient.dll"-"!:\sys\bin\cbsmcnclient.dll" diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Data/cbsmcnclient_stub.pkg --- a/cbs/CbsServer/Data/cbsmcnclient_stub.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +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: -; -; Languages -&EN - -; Header -#{"CbsMcnClient"}, (0x1000A85B), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\cbsmcnclient.dll" diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Data/cbsmcnclient_stub.sis Binary file cbs/CbsServer/Data/cbsmcnclient_stub.sis has changed diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Data/cbsserver.pkg --- a/cbs/CbsServer/Data/cbsserver.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +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: -; -; Languages -&EN - -; Header -#{"CbsServer patch"},(0x1000A859),10,1,0,TYPE=PU - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -"\epoc32\release\armv5\urel\cbsserver.exe"-"!:\sys\bin\cbsserver.exe" -"\epoc32\data\z\resource\cbsserver.rsc"-"!:\resource\cbsserver.rsc" diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Data/cbsserver_stub.pkg --- a/cbs/CbsServer/Data/cbsserver_stub.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +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: -; -; Languages -&EN - -; Header -#{"CbsServer"}, (0x1000A859), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\cbsserver.exe" -""-"z:\resource\cbsserver.rsc" - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Data/cbsserver_stub.sis Binary file cbs/CbsServer/Data/cbsserver_stub.sis has changed diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/EABI/CbsClientU.DEF --- a/cbs/CbsServer/EABI/CbsClientU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -EXPORTS - _ZN17CCbsMessageClient4NewLEv @ 1 NONAME - _ZN4RCbs10GetMessageEtiR13TCbsDbMessage @ 2 NONAME - _ZN4RCbs11DeleteTopicEt @ 3 NONAME - _ZN4RCbs11LockMessageERKm @ 4 NONAME - _ZN4RCbs11ReadMessageERKm @ 5 NONAME - _ZN4RCbs11SaveMessageERKm @ 6 NONAME - _ZN4RCbs12GetLanguagesER15TCbsDbLanguages @ 7 NONAME - _ZN4RCbs12SetLanguagesERK15TCbsDbLanguages @ 8 NONAME - _ZN4RCbs13DeleteMessageERKm @ 9 NONAME - _ZN4RCbs13GetTopicCountERi @ 10 NONAME - _ZN4RCbs15DeleteAllTopicsEv @ 11 NONAME - _ZN4RCbs15GetMessageCountEtRi @ 12 NONAME - _ZN4RCbs17FindTopicByNumberEtR11TCbsDbTopic @ 13 NONAME - _ZN4RCbs17GetNewTopicsCountERi @ 14 NONAME - _ZN4RCbs18GetMessageContentsERKmR6TDes16 @ 15 NONAME - _ZN4RCbs18GetReceptionStatusERi @ 16 NONAME - _ZN4RCbs18SetReceptionStatusEi @ 17 NONAME - _ZN4RCbs19FindMessageByHandleERKmR13TCbsDbMessage @ 18 NONAME - _ZN4RCbs19NextCollectionTopicER19TCbsDbTopicIdentity @ 19 NONAME - _ZN4RCbs20GetLatestTopicNumberERt @ 20 NONAME - _ZN4RCbs21GetUnreadMessageCountERi @ 21 NONAME - _ZN4RCbs21NotifySettingsChangedER14TRequestStatusR17TCbsSettingsEvent @ 22 NONAME - _ZN4RCbs22HasNextCollectionTopicEv @ 23 NONAME - _ZN4RCbs22NotifyOnTopicListEventER14TRequestStatusiR18TCbsTopicListEventRt @ 24 NONAME - _ZN4RCbs23GetMessageIndexByHandleERKmRi @ 25 NONAME - _ZN4RCbs23GetTopicDetectionStatusERi @ 26 NONAME - _ZN4RCbs23SetTopicDetectionStatusEi @ 27 NONAME - _ZN4RCbs23StartCollectionBrowsingEv @ 28 NONAME - _ZN4RCbs24ChangeTopicHotmarkStatusEti @ 29 NONAME - _ZN4RCbs24ChangeTopicNameAndNumberEttRK4TBufILi80EE @ 30 NONAME - _ZN4RCbs25GetHotmarkedMessageHandleERm @ 31 NONAME - _ZN4RCbs25GetNextAndPrevTopicNumberERKtRtS2_Ri @ 32 NONAME - _ZN4RCbs27GetNextAndPrevMessageHandleERKmRmS2_Ri @ 33 NONAME - _ZN4RCbs27NotifySettingsChangedCancelEv @ 34 NONAME - _ZN4RCbs28NotifyOnTopicListEventCancelEv @ 35 NONAME - _ZN4RCbs29ChangeTopicSubscriptionStatusEti @ 36 NONAME - _ZN4RCbs31NumberOfUnreadHotmarkedMessagesEv @ 37 NONAME - _ZN4RCbs5CloseEv @ 38 NONAME - _ZN4RCbs7ConnectEv @ 39 NONAME - _ZN4RCbs8AddTopicER11TCbsDbTopic @ 40 NONAME - _ZN4RCbs8GetTopicEiR11TCbsDbTopic @ 41 NONAME - _ZN4RCbsC1Ev @ 42 NONAME - _ZN4RCbsC2Ev @ 43 NONAME - _ZN4RCbsD1Ev @ 44 NONAME - _ZN4RCbsD2Ev @ 45 NONAME - _ZNK4RCbs7VersionEv @ 46 NONAME - _ZNK4RCbs8ShutdownEv @ 47 NONAME - _ZNK4RCbs9ConnectedEv @ 48 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/EABI/CbsMcnClientU.DEF --- a/cbs/CbsServer/EABI/CbsMcnClientU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,19 +0,0 @@ -EXPORTS - _ZN14CMcnTopicArray11AddCbTopicLEt @ 1 NONAME - _ZN14CMcnTopicArray4NewLEv @ 2 NONAME - _ZN4CMcn10UnregisterEP15MCbsMcnObserver @ 3 NONAME - _ZN4CMcn4NewLEv @ 4 NONAME - _ZN4CMcn9RegisterLEP15MCbsMcnObserverRK14CMcnTopicArray @ 5 NONAME - _ZN4CMcnD0Ev @ 6 NONAME - _ZN4CMcnD1Ev @ 7 NONAME - _ZN4CMcnD2Ev @ 8 NONAME - _ZNK14CMcnTopicArray14GetTopicNumberERKjRj @ 9 NONAME - _ZNK4CMcn11GetCellInfoER6TDes16 @ 10 NONAME - _ZNK4CMcn14GetInfoMessageER6TDes16i @ 11 NONAME - _ZTI14CMcnTopicArray @ 12 NONAME ; ## - _ZTI15CCbsMcnListener @ 13 NONAME ; ## - _ZTI4CMcn @ 14 NONAME ; ## - _ZTV14CMcnTopicArray @ 15 NONAME ; ## - _ZTV15CCbsMcnListener @ 16 NONAME ; ## - _ZTV4CMcn @ 17 NONAME ; ## - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/EABI/CbsServerU.def --- a/cbs/CbsServer/EABI/CbsServerU.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -EXPORTS - _ZTI10CCbsObject @ 1 NONAME ; ## - _ZTI10CCbsServer @ 2 NONAME ; ## - _ZTI11CCbsMessage @ 3 NONAME ; ## - _ZTI11CCbsRecEtel @ 4 NONAME ; ## - _ZTI11CCbsSession @ 5 NONAME ; ## - _ZTI12CCbsSettings @ 6 NONAME ; ## - _ZTI13CCbsScheduler @ 7 NONAME ; ## - _ZTI13CCbsTopicList @ 8 NONAME ; ## - _ZTI14CCbsMcnSession @ 9 NONAME ; ## - _ZTI14CCbsRecDecoder @ 10 NONAME ; ## - _ZTI14CCbsRecMessage @ 11 NONAME ; ## - _ZTI14CCbsSatRefresh @ 12 NONAME ; ## - _ZTI16CCbsRecCollector @ 13 NONAME ; ## - _ZTI17CCbsBackupMonitor @ 14 NONAME ; ## - _ZTI17CCbsDbImpSettings @ 15 NONAME ; ## - _ZTI17CCbsEtelMessaging @ 16 NONAME ; ## - _ZTI17CCbsTopicMessages @ 17 NONAME ; ## - _ZTI18CCbsDbImpTopicList @ 18 NONAME ; ## - _ZTI18CCbsMessageFactory @ 19 NONAME ; ## - _ZTI18CCbsRecEtelMonitor @ 20 NONAME ; ## - _ZTI18CCbsReceiverHelper @ 21 NONAME ; ## - _ZTI19CCbsLivecastHandler @ 22 NONAME ; ## - _ZTI19CCbsRecWcdmaMessage @ 23 NONAME ; ## - _ZTI19CCbsShutdownMonitor @ 24 NONAME ; ## - _ZTI19CCbsTopicCollection @ 25 NONAME ; ## - _ZTI20CCbsDiskSpaceMonitor @ 26 NONAME ; ## - _ZTI22CCbsDbImpTopicMessages @ 27 NONAME ; ## - _ZTI22CCbsRecNetworkListener @ 28 NONAME ; ## - _ZTI23CCbsMessageCleanupTimer @ 29 NONAME ; ## - _ZTI24CCbsDbImpTopicCollection @ 30 NONAME ; ## - _ZTI27CCbsSetFilterSettingHandler @ 31 NONAME ; ## - _ZTI9CCbsDbImp @ 32 NONAME ; ## - _ZTV10CCbsObject @ 33 NONAME ; ## - _ZTV10CCbsServer @ 34 NONAME ; ## - _ZTV11CCbsMessage @ 35 NONAME ; ## - _ZTV11CCbsRecEtel @ 36 NONAME ; ## - _ZTV11CCbsSession @ 37 NONAME ; ## - _ZTV12CCbsSettings @ 38 NONAME ; ## - _ZTV13CCbsScheduler @ 39 NONAME ; ## - _ZTV13CCbsTopicList @ 40 NONAME ; ## - _ZTV14CCbsMcnSession @ 41 NONAME ; ## - _ZTV14CCbsRecDecoder @ 42 NONAME ; ## - _ZTV14CCbsRecMessage @ 43 NONAME ; ## - _ZTV14CCbsSatRefresh @ 44 NONAME ; ## - _ZTV16CCbsRecCollector @ 45 NONAME ; ## - _ZTV17CCbsBackupMonitor @ 46 NONAME ; ## - _ZTV17CCbsDbImpSettings @ 47 NONAME ; ## - _ZTV17CCbsEtelMessaging @ 48 NONAME ; ## - _ZTV17CCbsTopicMessages @ 49 NONAME ; ## - _ZTV18CCbsDbImpTopicList @ 50 NONAME ; ## - _ZTV18CCbsMessageFactory @ 51 NONAME ; ## - _ZTV18CCbsRecEtelMonitor @ 52 NONAME ; ## - _ZTV18CCbsReceiverHelper @ 53 NONAME ; ## - _ZTV19CCbsLivecastHandler @ 54 NONAME ; ## - _ZTV19CCbsRecWcdmaMessage @ 55 NONAME ; ## - _ZTV19CCbsShutdownMonitor @ 56 NONAME ; ## - _ZTV19CCbsTopicCollection @ 57 NONAME ; ## - _ZTV20CCbsDiskSpaceMonitor @ 58 NONAME ; ## - _ZTV22CCbsDbImpTopicMessages @ 59 NONAME ; ## - _ZTV22CCbsRecNetworkListener @ 60 NONAME ; ## - _ZTV23CCbsMessageCleanupTimer @ 61 NONAME ; ## - _ZTV24CCbsDbImpTopicCollection @ 62 NONAME ; ## - _ZTV27CCbsSetFilterSettingHandler @ 63 NONAME ; ## - _ZTV9CCbsDbImp @ 64 NONAME ; ## - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Group/CbsClient.mmp --- a/cbs/CbsServer/Group/CbsClient.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2003-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: This is project specification file for CbsClient. -* This file is used to generate makefile with MAKMAKE utility. -* -*/ - -#include - -VENDORID VID_DEFAULT - -TARGET CbsClient.dll -TARGETTYPE dll -UID 0x1000008d 0x1000A85A - -CAPABILITY CAP_CLIENT_DLL - -lang SC - -SOURCEPATH ../Group -SOURCEPATH ../ClientInc -SOURCEPATH ../ClientSrc - -// Client interface -SOURCE RCbs.cpp -SOURCE RCbsSettings.cpp -SOURCE RCbsTopicList.cpp -SOURCE RCbsTopicMessages.cpp -SOURCE RCbsTopicCollection.cpp -SOURCE ccbsmessageclient.cpp -SOURCE ccbsmessageclientimpl.cpp - -USERINCLUDE ../ClientInc -USERINCLUDE ../ClientSrc -USERINCLUDE ../ServerInc - -APP_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Group/CbsMcnClient.mmp --- a/cbs/CbsServer/Group/CbsMcnClient.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 2003-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: This is project specification file for CbsMcnClient. -* This file is used to generate makefile with MAKMAKE utility. -* -*/ - -#include - -VENDORID VID_DEFAULT -TARGET CbsMcnClient.dll -TARGETTYPE dll -UID 0x1000008d 0x1000A85B - -CAPABILITY CAP_CLIENT_DLL - -LANGUAGE_IDS - -SOURCEPATH ../Group -SOURCEPATH ../McnClientInc -SOURCEPATH ../McnClientSrc - -SOURCE CMcn.cpp -SOURCE Rcbsmcnsession.cpp -SOURCE CCbsMcnListener.cpp -SOURCE CMcnTopicArray.cpp -SOURCE CbsMcnPanic.cpp -SOURCE Rmcnsubsession.cpp - -USERINCLUDE ../McnClientInc -USERINCLUDE ../McnClientSrc -USERINCLUDE ../ServerInc -USERINCLUDE ../ClientInc -APP_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib -LIBRARY flogger.lib diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Group/CbsServer.mmp --- a/cbs/CbsServer/Group/CbsServer.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,138 +0,0 @@ -/* -* Copyright (c) 2003-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: This is project specification file for CbsServer. -* This file is used to generate makefile with MAKMAKE utility. -* -*/ - - -VENDORID VID_DEFAULT - -#include -#include "CbsServerUid.h" -#include - -TARGET CbsServer.exe - -#if defined( WINSCW ) -TARGETTYPE exe -#else -TARGETTYPE exexp -#endif - -CAPABILITY CAP_SERVER - -UID KCbsServerUid2 KCbsServerUid3 - -EPOCHEAPSIZE 0x1000 0x100000 - -START RESOURCE ../Data/CbsServer.rss -HEADER -TARGETPATH RESOURCE_FILES_DIR -LANGUAGE_IDS -END - - -sourcepath ../Group -sourcepath ../ServerInc -sourcepath ../ServerSrc - -#if defined( EABI ) -deffile ../EABI/ -#elif defined( WINS ) -// no .def file used -#elif defined( WINSCW ) -//no .def file used -#else -deffile ../BMARM/ -#endif - -// Server base - -SOURCE CCbsServer.cpp -SOURCE CbsServerPanic.cpp -SOURCE CCbsReceiverHelper.cpp -SOURCE CCbsScheduler.cpp -SOURCE CCbsMessageCleanUpTimer.cpp - -// Server side interface - -SOURCE CCbsSession.cpp -SOURCE CCbsObject.cpp -SOURCE CCbsSettings.cpp -SOURCE CCbsTopicList.cpp -SOURCE CCbsTopicMessages.cpp -SOURCE CCbsTopicCollection.cpp -SOURCE CCbsMcnSession.cpp - -// Database implementation - -SOURCE CbsStreamHelper.cpp -SOURCE CCbsDbImp.cpp -SOURCE CCbsDbImpSettings.cpp -SOURCE CCbsDbImpTopicList.cpp -SOURCE CCbsDbImpTopicMessages.cpp -SOURCE CCbsDbImpTopicCollection.cpp - -// ETel receiver -SOURCE Ccbsrecetel.cpp -SOURCE Ccbsrecetelmonitor.cpp -SOURCE CCbsRecMessage.cpp -SOURCE Ccbsreccollector.cpp -SOURCE Ccbsrecdecoder.cpp -SOURCE Ccbsrecnetworklistener.cpp -SOURCE CCbsSetFilterSettingHandler.cpp -SOURCE CCbsRecWcdmaMessage.cpp -SOURCE CCbsMessageFactory.cpp -SOURCE CCbsMessage.cpp - -// Wrapper classes for ETel -SOURCE CCbsEtelMessaging.cpp - -// Utilities -SOURCE CbsUtils.cpp -SOURCE CCbsLivecastHandler.cpp -SOURCE CCbsShutdownMonitor.cpp -SOURCE CCbsBackupMonitor.cpp -SOURCE CCbsSatRefresh.cpp -SOURCE CCbsDiskSpaceMonitor.cpp - -USERINCLUDE . ../ServerInc -USERINCLUDE ../ServerSrc -USERINCLUDE ../ClientInc -USERINCLUDE ../McnClientInc -USERINCLUDE ../loc - -APP_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib -LIBRARY estor.lib -LIBRARY efsrv.lib -LIBRARY etel.lib // Core ETel functions -LIBRARY etelmm.lib // Multimode ETel -LIBRARY charconv.lib // Message decoding -LIBRARY bafl.lib // Resource access -LIBRARY sysutil.lib // SysUtil module, FFS critical level check -LIBRARY hal.lib -LIBRARY satclient.lib // for sat refresh -LIBRARY flogger.lib -LIBRARY centralrepository.lib -LIBRARY diskspacereserver.lib -LIBRARY FeatMgr.lib // Feature Manager -LIBRARY CustomApi.lib // SIM Topics usage -LIBRARY ViewCli.lib // View server access -LIBRARY aknnotify.lib // Soft notifications - - -EPOCSTACKSIZE 0x4000 diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Group/CbsServerUid.h --- a/cbs/CbsServer/Group/CbsServerUid.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the UIDs of the FR CBS Server. -* -*/ - - -#ifndef CBSSERVERUID_H -#define CBSSERVERUID_H - -// INCLUDES -// None - -// CONSTANTS -#define KCbsServerUid2 0x1000008d - -#define KCbsServerUid3 0x1000A859 - -// MACROS -// None - -// DATA TYPES -// None - -// FUNCTION PROTOTYPES -// None - -// FORWARD DECLARATIONS -// None - -// CLASS DECLARATION -// None - -#endif // CBSSERVERUID_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Group/backup_registration.xml --- a/cbs/CbsServer/Group/backup_registration.xml Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Group/bld.inf --- a/cbs/CbsServer/Group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -/* -* Copyright (c) 2003-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: This file provides information required for building the CBS -* module with BLDMAKE utility. -* -*/ - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_MMPFILES -./CbsServer.mmp -./CbsClient.mmp -./CbsMcnClient.mmp - -PRJ_EXPORTS - - - -// Internal -// UI CLIENT API -../ClientInc/RCbs.h |../../../inc/RCbs.h -../ClientInc/RCbsSettings.h |../../../inc/RCbsSettings.h -../ClientInc/RCbsTopicList.h |../../../inc/RCbsTopicList.h -../ClientInc/RCbsTopicMessages.h |../../../inc/RCbsTopicMessages.h -../ClientInc/RCbsTopicCollection.h |../../../inc/RCbsTopicCollection.h -../ClientInc/CbsCommon.h |../../../inc/CbsCommon.h -../ServerInc/CbsServerInternalPSKeys.h |../../../inc/CbsServerInternalPSKeys.h - -// Backup registration file -backup_registration.xml /epoc32/data/z/private/1000A859/backup_registration.xml -backup_registration.xml /epoc32/release/winscw/udeb/z/private/1000A859/backup_registration.xml -backup_registration.xml /epoc32/release/winscw/urel/z/private/1000A859/backup_registration.xml - -// SIS stubs -../Data/cbsserver_stub.sis /epoc32/data/z/system/install/cbsserver_stub.sis -../Data/cbsclient_stub.sis /epoc32/data/z/system/install/cbsclient_stub.sis -../Data/cbsmcnclient_stub.sis /epoc32/data/z/system/install/cbsmcnclient_stub.sis - -// IBY files -../Rom/cbsserver.iby CORE_MW_LAYER_IBY_EXPORT_PATH(cbsserver.iby) -../Rom/CbsServerResources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(CbsServerResources.iby) - -// LOC files -../loc/CbsServer.loc MW_LAYER_LOC_EXPORT_PATH(cbsserver.loc) - -// Generic configuration interface for component cenrep settings -../conf/cbsserver.confml MW_LAYER_CONFML(cbsserver.confml) -../conf/cbsserver_102078EE.crml MW_LAYER_CRML(cbsserver_102078EE.crml) -../conf/cbsserver_1020298F.crml MW_LAYER_CRML(cbsserver_1020298F.crml) \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/McnClientSrc/CCbsMcnListener.cpp --- a/cbs/CbsServer/McnClientSrc/CCbsMcnListener.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,136 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains Implementation of the class CCbsMcnListener member -* functions. -* -*/ - - -// INCLUDE FILES - -#include -#include -#include -#include "CbsLogger.h" - -// CONSTANTS - -const TInt KMcnListenerPriority = CActive::EPriorityStandard; - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsMcnListener::CCbsMcnListener -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsMcnListener::CCbsMcnListener( - CMcn& aMcn, - RCbsMcnSession& aSession ) - : CActive( KMcnListenerPriority ), - iMcn( aMcn ), - iSession( aSession ), - iMcnPckg( iMcnMessage ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsMcnListener::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsMcnListener::ConstructL() - { - CBSLOGSTRING("CBSMCNCLIENT: >>> CCbsMcnListener::ConstructL()"); - - CActiveScheduler::Add( this ); - Receive(); - - CBSLOGSTRING("CBSMCNCLIENT: <<< CCbsMcnListener::ConstructL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsMcnListener::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsMcnListener* CCbsMcnListener::NewL( - CMcn& aMcn, - RCbsMcnSession& aSession ) - { - CCbsMcnListener* self = new ( ELeave ) CCbsMcnListener( aMcn, aSession ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - - -// Destructor -CCbsMcnListener::~CCbsMcnListener() - { - Cancel(); - } -// ----------------------------------------------------------------------------- -// CCbsMcnListener::RunL -// This method is called when an Mcn message is received. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMcnListener::RunL() - { - CBSLOGSTRING2("CBSMCNCLIENT: >>> CCbsMcnListener::RunL(): iStatus: %d", iStatus.Int() ); - CBSLOGSTRING2("CBSMCNCLIENT: CCbsMcnListener::RunL(): Msg topic number: %d", iMcnMessage.iTopicNumber ); - CBSLOGSTRING2("CBSMCNCLIENT: CCbsMcnListener::RunL(): Msg network mode: %d", iMcnMessage.iNetworkMode ); - - // MCN message and parameters received from the network - // and stored into iMcnMessage - iMcn.RelayMessage( iMcnMessage ); - if ( iStatus.Int() != KErrServerTerminated && iStatus.Int() != KErrCancel ) - { - Receive(); - } - - CBSLOGSTRING("CBSMCNCLIENT: <<< CCbsMcnListener::RunL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsMcnListener::DoCancel -// Cancels the outstanding Mcn request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMcnListener::DoCancel() - { - iSession.ReadMcnMessageCancel(); - } - -// ----------------------------------------------------------------------------- -// CCbsMcnListener::Receive -// Receive an Mcn message from network. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMcnListener::Receive() - { - CBSLOGSTRING("CBSMCNCLIENT: >>> CCbsMcnListener::Receive()"); - - iSession.ReadMcnMessage( iStatus, iMcnPckg ); - - SetActive(); - CBSLOGSTRING("CBSMCNCLIENT: <<< CCbsMcnListener::Receive()"); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/McnClientSrc/CMcn.cpp --- a/cbs/CbsServer/McnClientSrc/CMcn.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,203 +0,0 @@ -/* -* Copyright (c) 2003 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: Implementation of the class CMcn. -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include "CbsLogger.h" -#include - -// CONSTANTS -const TInt KReservedSpaceForMcnObservers = 3; - -// ==================== LOCAL FUNCTIONS ==================== - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CMcn::CMcn -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CMcn::CMcn() - { - } - -// ----------------------------------------------------------------------------- -// CMcn::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CMcn::ConstructL() - { - CBSLOGSTRING("CBSMCNCLIENT: >>> CMcn::ConstructL()"); - - User::LeaveIfError( iSession.Connect() ); - iObservers = new ( ELeave ) CArrayPtrFlat< MCbsMcnObserver > - ( KReservedSpaceForMcnObservers ); - iMcnListener = CCbsMcnListener::NewL( *this, iSession ); - - CBSLOGSTRING("CBSMCNCLIENT: <<< CMcn::ConstructL()"); - } - -// ----------------------------------------------------------------------------- -// CMcn::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CMcn* CMcn::NewL() - { - CMcn* self = new ( ELeave ) CMcn; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - - -// Destructor -EXPORT_C CMcn::~CMcn() - { - if ( iObservers != NULL ) - { - iObservers->ResetAndDestroy(); - } - delete iObservers; - delete iMcnListener; - iSession.Close(); - } - -// ----------------------------------------------------------------------------- -// CMcn::RegisterL -// Registers an observer to CBS server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CMcn::RegisterL( - MCbsMcnObserver* aObserver, - const CMcnTopicArray& aArray ) - { - CBSLOGSTRING("CBSMCNCLIENT: >>> CMcn::RegisterL()"); - - __ASSERT_DEBUG( aObserver != 0, CbsMcnPanic( EMcnObserverNull ) ); - iObservers->AppendL( aObserver ); - iSession.RegisterL( aArray ); - - CBSLOGSTRING("CBSMCNCLIENT: <<< CMcn::RegisterL()"); - } - -// ----------------------------------------------------------------------------- -// CMcn::UnregisterL -// Unregisters a previously registered MCN observer clearing -// any topic subscriptions of this client in CBS server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CMcn::Unregister( - MCbsMcnObserver* aObserver ) - { - CBSLOGSTRING("CBSMCNCLIENT: >>> CMcn::Unregister()"); - - __ASSERT_DEBUG( aObserver !=0 , CbsMcnPanic( EMcnObserverNull ) ); - TInt count( iObservers->Count() ); - for( TInt i = 0; i < count; i++ ) - { - MCbsMcnObserver* observer = iObservers->At( i ); - if ( observer == aObserver ) - { - iObservers->Delete( i ); - break; - } - } - - // ignore result for now - TInt result( KErrNone ); - TRAP( result, iSession.ClearSubscriptionsL() ); - - CBSLOGSTRING("CBSMCNCLIENT: <<< CMcn::Unregister()"); - } - -// ----------------------------------------------------------------------------- -// CMcn::GetCellInfo -// Retrieves the current MCN message (Cell Info, topic 050) from CBS -// server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CMcn::GetCellInfo( - TDes& aMcnMessage ) const - { - return iSession.GetCellInfo( aMcnMessage ); - } - -// ----------------------------------------------------------------------------- -// CMcn::RelayMessageL -// Relays aMcnMessage and topic number to the registered observers. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CMcn::RelayMessage( - TCbsMcnMessage& aMcnMessage ) - { - CBSLOGSTRING("CBSMCNCLIENT: >>> CMcn::RelayMessage()"); - - TInt count( iObservers->Count() ); - - CBSLOGSTRING2("CBSMCNCLIENT: CMcn::RelayMessage(): topicNumber: %d", aMcnMessage.iTopicNumber ); - CBSLOGSTRING2("CBSMCNCLIENT: CMcn::RelayMessage(): Network mode: %d (0=GSM, 1=WCDMA, 2=Not defined)", aMcnMessage.iNetworkMode ); - CBSLOGSTRING2("CBSMCNCLIENT: CMcn::RelayMessage(): Observer count: %d", count ); - - for ( TInt i = 0; i < count; ) - { - TInt prevCount = count; - - CBSLOGSTRING2("CBSMCNCLIENT: CMcn::RelayMessage(): Calling CellInfoChanged... Observer: %d", i); - - // Notify all registered observers - iObservers->At( i )->CellInfoChanged( aMcnMessage ); - CBSLOGSTRING("CBSMCNCLIENT: CMcn::RelayMessage(): CellInfoChanged call finished."); - - // Check if the client unregistered it's observer. If so, we don't - // increase the loop counter. - count = iObservers->Count(); - if ( count == prevCount ) - { - i++; - } - } - CBSLOGSTRING("CBSMCNCLIENT: <<< CMcn::RelayMessage()"); - } - -// ----------------------------------------------------------------------------- -// CMcn::GetInfoMessage -// Retrieves the current info message from CBS server. -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CMcn::GetInfoMessage( - TDes& aInfoMessage, - TInt aTopicNumber ) const - { - return iSession.GetInfoMessage( aInfoMessage, aTopicNumber ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/McnClientSrc/CMcnTopicArray.cpp --- a/cbs/CbsServer/McnClientSrc/CMcnTopicArray.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* Copyright (c) 2003 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: Implementation of the class CMcnTopicArray. -* -*/ - - - -// INCLUDE FILES - -#include - -// CONSTANTS - -const TInt KInitialSpaceForTopicEntries = 3; - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CMcnTopicArray::CMcnTopicArray -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CMcnTopicArray::CMcnTopicArray() - { - } - -// ----------------------------------------------------------------------------- -// CMcnTopicArray::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CMcnTopicArray::ConstructL() - { - iTopicList = new ( ELeave ) CArrayFixFlat< TUint > - ( KInitialSpaceForTopicEntries ); - } - -// ----------------------------------------------------------------------------- -// CMcnTopicArray::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CMcnTopicArray* CMcnTopicArray::NewL() - { - CMcnTopicArray* self = new ( ELeave ) CMcnTopicArray(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - - -// Destructor -CMcnTopicArray::~CMcnTopicArray() - { - delete iTopicList; - } - -// ----------------------------------------------------------------------------- -// CMcnTopicArray::AddCbTopicL -// Adds a single CB topic to the topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CMcnTopicArray::AddCbTopicL( - TUint16 aTopicNumber ) - { - iTopicList->AppendL( aTopicNumber ); - } - -// ----------------------------------------------------------------------------- -// CMcnTopicArray::EnumerateEntries -// Returns the number of topic entries in parameter aEntries. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CMcnTopicArray::EnumerateEntries( - TUint& aEntries ) const - { - aEntries = iTopicList->Count(); - } - -// ----------------------------------------------------------------------------- -// CMcnTopicArray::GetTopicNumber -// Returns the topicnumber in aTopicNumber corresponding to the index -// given in aIndex. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CMcnTopicArray::GetTopicNumber( - const TUint& aIndex, - TUint& aTopicNumber ) const - { - aTopicNumber = iTopicList->At( aIndex ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/McnClientSrc/CbsMcnPanic.cpp --- a/cbs/CbsServer/McnClientSrc/CbsMcnPanic.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* -* Copyright (c) 2003 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: This is called by this library's functions on critical error situations. -* -*/ - - -// INCLUDE FILES - -#include -#include // common header - -// CONSTANTS - -_LIT( KMcnPanic, "CbsMcn" ); - -// ==================== LOCAL FUNCTIONS ==================== - -// ----------------------------------------------------------------------------- -// CbsMcnPanic -// Panics the McnClient -// Returns: None -// ----------------------------------------------------------------------------- -// -GLDEF_C void CbsMcnPanic( - TInt aPanic ) - { - User::Panic( KMcnPanic, aPanic ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/McnClientSrc/Rcbsmcnsession.cpp --- a/cbs/CbsServer/McnClientSrc/Rcbsmcnsession.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,210 +0,0 @@ -/* -* Copyright (c) 2003 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: Implementation of the class RCbsMcnSession. -* -*/ - - -// INCLUDE FILES - -#include "CbsServerConstants.h" -#include -#include -#include -#include -#include -#include "CbsLogger.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// RCbsMcnSession::RCbsMcnSession -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -RCbsMcnSession::RCbsMcnSession() - : iConnected( EFalse ) - { //lint !e1928 !e1926 - } - -// Destructor -RCbsMcnSession::~RCbsMcnSession() - { - Close(); - } - -// ----------------------------------------------------------------------------- -// RCbsMcnSession::GetCellInfo -// Retrieves the current MCN message from CBS server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsMcnSession::GetCellInfo( - TDes& aMcnMessage ) const - { - return GetInfoMessage( aMcnMessage, KCellInfoTopic ); - } - -// ----------------------------------------------------------------------------- -// RCbsMcnSession::GetInfoMessage -// Retrieves the current HomeZone message from CBS server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsMcnSession::GetInfoMessage( - TDes& aMessage, - const TInt aTopicNumber ) const - { - __ASSERT_DEBUG( iConnected, CbsMcnPanic( EMcnNotConnected ) ); - - const TIpcArgs args( &aMessage, aTopicNumber ); - TInt result( SendReceive( EMcnGetInfoMessage, args ) ); - return result; - } - -// ----------------------------------------------------------------------------- -// RCbsMcnSession::ReadMcnMessage -// Request next subscribed MCN message to be delivered to this session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsMcnSession::ReadMcnMessage( - TRequestStatus& aStatus, - TPckg& aMcnPckg ) - { - __ASSERT_DEBUG( iConnected, CbsMcnPanic( EMcnNotConnected ) ); - iSubSession.ReadMcnMessage( aStatus, aMcnPckg ); - } - -// ----------------------------------------------------------------------------- -// RCbsMcnSession::ReadMcnMessageCancel -// Cancels an outstanding request. Passed to the subsession object. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsMcnSession::ReadMcnMessageCancel() - { - __ASSERT_DEBUG( iConnected, CbsMcnPanic( EMcnNotConnected ) ); - return iSubSession.ReadMcnMessageCancel(); - } - -// ----------------------------------------------------------------------------- -// RCbsMcnSession::RegisterL -// Subscribes topics given in aArray. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsMcnSession::RegisterL( - const CMcnTopicArray& aArray ) - { - CBSLOGSTRING("CBSMCNCLIENT: >>> RCbsMcnSession::RegisterL()"); - - __ASSERT_DEBUG( iConnected, CbsMcnPanic( EMcnNotConnected ) ); - iSubSession.RegisterL( aArray ); - - CBSLOGSTRING("CBSMCNCLIENT: <<< RCbsMcnSession::RegisterL()"); - } - -// ----------------------------------------------------------------------------- -// RCbsMcnSession::ClearSubscriptionsL -// Clears all topic subscriptions of this session in CbsServer. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsMcnSession::ClearSubscriptionsL() - { - CBSLOGSTRING("CBSMCNCLIENT: >>> RCbsMcnSession::ClearSubscriptionsL()"); - - __ASSERT_DEBUG( iConnected, CbsMcnPanic( EMcnNotConnected ) ); - iSubSession.ClearSubscriptionsL(); - - CBSLOGSTRING("CBSMCNCLIENT: <<< RCbsMcnSession::ClearSubscriptionsL()"); - } - -// ----------------------------------------------------------------------------- -// RCbsMcnSession::Connect -// Establishes a connection with CbsServer. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RCbsMcnSession::Connect() - { - CBSLOGSTRING("CBSMCNCLIENT: >>> RCbsMcnSession::Connect()"); - - // Create a session to the server. - TInt result = CreateSession( KCbsServerName, - Version(), KCbsServerDefaultSlots ); - - CBSLOGSTRING2("CBSMCNCLIENT: RCbsMcnSession::Connect(): CreateSession() result: %d", result ); - - if ( result == KErrNone ) - { - TInt error = iSubSession.Open( *this ); - if ( !error ) - { - iConnected = ETrue; - CBSLOGSTRING("CBSMCNCLIENT: RCbsMcnSession::Connect(): Subsession opened."); - } - CBSLOGSTRING2("CBSMCNCLIENT: RCbsMcnSession::Connect(): Subsession opening failed, error: %d", error ); - } - else - { - iConnected = EFalse; - CBSLOGSTRING2("CBSMCNCLIENT: RCbsMcnSession::Connect(): CreateSession failed, errorCode: %d", result ); - } - - CBSLOGSTRING2("CBSMCNCLIENT: <<< RCbsMcnSession::Connect(), iConnected: %d", iConnected ); - return result; - } - -// ----------------------------------------------------------------------------- -// RCbsMcnSession::Close -// Closes the connection with CbsServer. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RCbsMcnSession::Close() - { - CBSLOGSTRING("CBSMCNCLIENT: >>> RCbsMcnSession::Close()"); - - if ( iConnected ) - { - iSubSession.Close(); - - const TIpcArgs args( TIpcArgs::ENothing ); - SendReceive( EMcnCloseSession, args ); - RSessionBase::Close(); - iConnected = EFalse; - - CBSLOGSTRING("CBSMCNCLIENT: RCbsMcnSession::Close(): Connected -> subsession closed."); - } - CBSLOGSTRING("CBSMCNCLIENT: <<< RCbsMcnSession::Close()"); - } - -// ----------------------------------------------------------------------------- -// RCbsMcnSession::Version -// Returns version information of this dll. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TVersion RCbsMcnSession::Version() const - { - // Create version and return it. - return TVersion( KCbsServerVersionMajor, - KCbsServerVersionMinor, - KCbsServerVersionBuild ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/McnClientSrc/Rmcnsubsession.cpp --- a/cbs/CbsServer/McnClientSrc/Rmcnsubsession.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,180 +0,0 @@ -/* -* Copyright (c) 2003 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: Implementation of the class RMcnSubSession. -* -*/ - - -// INCLUDE FILES -#include "CbsServerConstants.h" -#include -#include -#include -#include -#include -#include "CbsLogger.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// RMcnSubSession::RMcnSubSession -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -RMcnSubSession::RMcnSubSession() - : iConnected( EFalse ) - { //lint !e1928 - } - -// Destructor -RMcnSubSession::~RMcnSubSession() - { - Close(); - } - -// ----------------------------------------------------------------------------- -// RMcnSubSession::Open -// Creates a MCN subsession to CbsServer. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RMcnSubSession::Open( - RCbsMcnSession& aMcnSession ) - { - CBSLOGSTRING("CBSMCNCLIENT: >>> RMcnSubSession::Open()"); - - if ( !iConnected ) - { - const TIpcArgs args( TIpcArgs::ENothing ); - TInt result( CreateSubSession( aMcnSession, EMcnCreateSubsession, args ) ); - - if ( result == KErrNone ) - { - CBSLOGSTRING2("CBSMCNCLIENT: RMcnSubSession::Open(): Subsession created, result: %d", result ); - iConnected = ETrue; - } - else - { - iConnected = EFalse; - } - CBSLOGSTRING2("CBSMCNCLIENT: RMcnSubSession::Open(), returning %d.", result ); - return result; - } - CBSLOGSTRING("CBSMCNCLIENT: <<< RMcnSubSession::Open(), returning KErrGeneral."); - return KErrGeneral; - } - -// ----------------------------------------------------------------------------- -// RMcnSubSession::Close -// Closes the subsession. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RMcnSubSession::Close() - { - CBSLOGSTRING("CBSMCNCLIENT: >>> RMcnSubSession::Close()"); - - if ( iConnected ) - { - RSubSessionBase::CloseSubSession( EMcnCloseSubsession ); - iConnected = EFalse; - } - CBSLOGSTRING("CBSMCNCLIENT: <<< RMcnSubSession::Close()"); - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// RMcnSubSession::ReadMcnMessage -// Request next subscribed MCN message to be delivered to this session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RMcnSubSession::ReadMcnMessage( - TRequestStatus& aStatus, - TPckg& aMcnPckg ) - { - __ASSERT_DEBUG( iConnected, CbsMcnPanic( EMcnNotConnected ) ); - const TIpcArgs args( &aMcnPckg ); - - SendReceive( EMcnNotifyOnChange, args, aStatus ); // asynchronous - } - -// ----------------------------------------------------------------------------- -// RMcnSubSession::ReadMcnMessageCancel -// Cancels an outstanding request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt RMcnSubSession::ReadMcnMessageCancel() - { - __ASSERT_DEBUG( iConnected, CbsMcnPanic( EMcnNotConnected ) ); - const TIpcArgs args( TIpcArgs::ENothing ); - return SendReceive( EMcnNotifyOnChangeCancel, args ); - } - -// ----------------------------------------------------------------------------- -// RMcnSubSession::RegisterL -// Subscribes topics given in aArray. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RMcnSubSession::RegisterL( - const CMcnTopicArray& aArray ) - { - CBSLOGSTRING("CBSMCNCLIENT: >>> RMcnSubSession::RegisterL()"); - - __ASSERT_DEBUG( iConnected, CbsMcnPanic( EMcnNotConnected ) ); - // Store topic numbers into a descriptor. - TUint entries( 0 ); - aArray.EnumerateEntries( entries ); - TUint number( 0 ); - - // Request registration, pass topic numbers one at time to server-side. - - for( TUint i = 0; i < entries; i++ ) - { - aArray.GetTopicNumber( i, number ); - const TIpcArgs args( number ); - - CBSLOGSTRING2("CBSMCNCLIENT: RMcnSubSession::RegisterL(): Passing topic number to server: %d", number ); - User::LeaveIfError( SendReceive( EMcnSubscribeTopic, args ) ); - CBSLOGSTRING("CBSMCNCLIENT: RMcnSubSession::RegisterL(): Topic number passed to server OK." ); - } - - // Tell the server this was enough. - const TIpcArgs args2( TIpcArgs::ENothing ); - User::LeaveIfError( SendReceive( EMcnNoMoreSubscriptions, args2 ) ); - - CBSLOGSTRING("CBSMCNCLIENT: <<< RMcnSubSession::RegisterL()"); - } - -// ----------------------------------------------------------------------------- -// RMcnSubSession::ClearSubscriptionsL -// Clears topic subscriptions of this session in CbsServer -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RMcnSubSession::ClearSubscriptionsL() - { - CBSLOGSTRING("CBSMCNCLIENT: >>> RMcnSubSession::ClearSubscriptionsL()"); - - __ASSERT_DEBUG( iConnected, CbsMcnPanic( EMcnNotConnected ) ); - const TIpcArgs args( TIpcArgs::ENothing ); - User::LeaveIfError( SendReceive( EMcnClearSubscriptions, args ) ); - - CBSLOGSTRING("CBSMCNCLIENT: <<< RMcnSubSession::ClearSubscriptionsL(), cleared OK."); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Rom/CbsServerResources.iby --- a/cbs/CbsServer/Rom/CbsServerResources.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: IBY file of CbsServer resources -* -*/ - - -#ifndef CBSSERVERRESOURCES_IBY -#define CBSSERVERRESOURCES_IBY - -data=ZRESOURCE\cbsserver.rsc RESOURCE_FILES_DIR\cbsserver.rsc - -#endif // CBSSERVERRESOURCES_IBY - -// End of File \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/Rom/cbsserver.iby --- a/cbs/CbsServer/Rom/cbsserver.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: IBY file of CbsServer -* -*/ - - -#ifndef CBSSERVER_IBY -#define CBSSERVER_IBY - -file=ABI_DIR\BUILD_DIR\CBSSERVER.EXE PROGRAMS_DIR\CBSSERVER.EXE -file=ABI_DIR\BUILD_DIR\CBSCLIENT.DLL SHARED_LIB_DIR\CBSCLIENT.DLL -file=ABI_DIR\BUILD_DIR\CBSMCNCLIENT.DLL SHARED_LIB_DIR\CBSMCNCLIENT.DLL - -data=DATAZ_\private\1000A859\backup_registration.xml private\1000A859\backup_registration.xml - -data=ZSYSTEM\install\cbsserver_stub.sis System\Install\cbsserver_stub.sis -data=ZSYSTEM\install\cbsclient_stub.sis System\Install\cbsclient_stub.sis -data=ZSYSTEM\install\cbsmcnclient_stub.sis System\Install\cbsmcnclient_stub.sis - -#endif // CBSSERVER_IBY - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsBackupMonitor.h --- a/cbs/CbsServer/ServerInc/CCbsBackupMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -/* -* Copyright (c) 2004 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: This file contains the header file of the CCbsBackupMonitor class -* -* -*/ - - -#ifndef CCBSBACKUPMONITOR_H -#define CCBSBACKUPMONITOR_H - -// INCLUDES -#include -#include -#include "CCbsDbImp.H" - -// CLASS DECLARATION - -/** -* The CCbsBackupMonitor instance listens to -* shutdown signal via Publish and Subscribe. On device shutdown, -* the listener stops server operation by stopping the active scheduler. -* CbsServer will then be terminated. -*/ -class CCbsBackupMonitor : public CActive - { - public: // New functions - - /** - * Creates an instance of the class. - * - * @param aServer Server reference - * @return A new instance of CCbsBackupMonitor - */ - static CCbsBackupMonitor* NewL( CCbsDbImp& aDbImp ); - - /** - * Destructor. - */ - ~CCbsBackupMonitor(); - - /** - * Reissues the Subscribe request. - */ - void IssueRequest(); - - private: // From CActive - - /** - * Gets called when the system state changes. - */ - void RunL(); - - /** - * Cancels an outstanding Subscribe request. - */ - void DoCancel(); - - private: - - /** - * The constructor. - * - */ - CCbsBackupMonitor( CCbsDbImp& aDbImp ); - - /** - * Finalizes the construction. - */ - void ConstructL(); - - private: // Data - - // PubSub connection - RProperty iProperty; - - // DB reference - CCbsDbImp& iDbImp; - }; - -#endif // CCBSBACKUPMONITOR_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsDbImp.H --- a/cbs/CbsServer/ServerInc/CCbsDbImp.H Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,224 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsDbImp class -* -*/ - - - - -#ifndef CCBSDBIMP_H -#define CCBSDBIMP_H - -// INCLUDES -#include - -// CONSTANTS -enum TCbsBackupRequest - { - ECbsNoBackup, - ECbsBackup, - ECbsRestore, - ECbsBackupNotDefined - }; - -// FORWARD DECLARATIONS -class CCbsDbImpSettings; -class CCbsDbImpTopicList; -class CCbsDbImpTopicCollection; -class CCbsDbImpTopicMessages; -class CBaBackupSessionWrapper; -class CCbsBackupMonitor; -class CCbsDiskSpaceMonitor; - -// CLASS DECLARATION - -/** -* Basis for the implementation of the database. -* -* Constructs instances of database subclasses CCbsDbImpSettings, -* CCbsDbImpTopicCollection, CCbsDbTopicList and CCbsDbTopicMessages. -* On initialization determines whether datafiles already exist. -* If all of them are present and valid, no special action is taken. -* -* If some or all datafiles are missing or corrupt, all datafiles -* are deleted and new files created. -* Factory default settings, if available, are then loaded from -* Shared Data and stored in server datafiles. This is done by -* database subinstances. -*/ -class CCbsDbImp : public CBase - { - public: // New functions - - /** - * Creates an instance of the class. - */ - static CCbsDbImp* NewL(); - - /** - * The destructor. - */ - ~CCbsDbImp(); - - public: - - /** - * Returns a reference to the current active topic list. - * - * Using that instance the clients of the database can manage the - * topic list such as add and delete topics. - * - * @return reference to the topic list. - */ - CCbsDbImpTopicList& TopicListL(); - - /** - * Returns a reference to the current topic messages DB object. - * - * @return reference to the topic messages. - */ - CCbsDbImpTopicMessages& TopicMessagesL(); - - /** - * Returns a reference to the settings DB object. - * - * @return reference to the settings. - */ - CCbsDbImpSettings& SettingsL(); - - /** - * Returns a reference to the topic collection. - * - * @return reference to the topic collection. - */ - CCbsDbImpTopicCollection& TopicCollectionL(); - - /** - * Returns a reference to the backup wrapper. - * - * @return reference to the backup wrapper. - */ - CBaBackupSessionWrapper& BackupWrapperL(); - - /** - * Checks if the database is initialized. - * - * @return ETrue if database has been initialized. - */ - TBool IsInitialized() const; - - /** - * Registers for a notification for critical level. - */ - void WaitForCriticalLevel(); - - /** - * Deregisters from critical level notification. - */ - void WaitForCriticalLevelCancel(); - - /** - * Changes file lock states as requested. - */ - void ChangeFileLocksL( const TCbsBackupRequest& aRequest ); - - /** - * Constructs DB components. - * - */ - void CreateComponentsL(); - - private: - - /** - * Constructor. - */ - CCbsDbImp(); - - /** - * The method creates the member variables and so finalizes - * the construction. It will leave if the construction fails. - */ - void ConstructL(); - - /** - * Constructs CCbsDbImpSettings. - * - * @param aFileName Name of the settings file. - * @return A ready-made CCbsDbImpSettings object. - */ - CCbsDbImpSettings* CreateSettingsL(); - - /** - * Constructs CCbsDbImpTopicList. - * - * @param aTopicsFile Name of the topics file. - * @param aMessagesFile Name of the messages file. - * @return A ready-made CCbsDbImpTopicList object. - */ - CCbsDbImpTopicList* CreateTopicListL( const TDesC& aTopicsFile, - const TDesC& aMessagesFile ); - - /** - * Constructs CCbsDbImpTopicMessages. - * - * @param aTopicList The CCbsDbImpTopicList to link to. - * @return A ready-made CCbsDbImpTopicMessages object. - */ - CCbsDbImpTopicMessages* CreateTopicMessagesL( CCbsDbImpTopicList& aTopicList ); - - /** - * Constructs CCbsDbImpTopicCollection. - * - * @param aTopicList The CCbsDbImpTopicList to link to. - * @return A ready-made CCbsDbImpTopicCollection object. - */ - CCbsDbImpTopicCollection* CreateTopicCollectionL(); - - /** - * Free DB components. - */ - void DeleteComponents(); - - private: - // Owns: DB settings object. - CCbsDbImpSettings* iSettings; - - // Owns: DB topic list object. - CCbsDbImpTopicList* iTopicList; - - // Owns: DB topic collection object. - CCbsDbImpTopicCollection* iTopicCollection; - - // Owns: DB topic messages object. - CCbsDbImpTopicMessages* iTopicMessages; - - // File server session shared by all DB objects. - RFs iFs; - - // Owns: The backup wrapper - CBaBackupSessionWrapper* iBackupWrapper; - - // Owns: The backup monitor, uses PubSub - CCbsBackupMonitor* iBackupMonitor; - - // Owns: Disk space monitor, uses PubSub - CCbsDiskSpaceMonitor* iDiskSpaceMonitor; - - }; - -#endif // CCBSDBIMP_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsDbImpSettings.H --- a/cbs/CbsServer/ServerInc/CCbsDbImpSettings.H Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,238 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsDbImpSettings class -* -* This class represents the settings stored in the database. -* -*/ - - - -#ifndef CCBSDBIMPSETTINGS_H -#define CCBSDBIMPSETTINGS_H - -// INCLUDES -#include "CbsCommon.h" -#include "CCbsDbImp.H" - -// FORWARD DECLARATIONS -class MCbsDbSettingsObserver; - -// CLASS DECLARATION - -/** -* CCbsDbImpSettings represents server persistent settings. -* These settings include receive mode, topic detection mode -* and user selected languages. -* -* Receive mode controls whether any CB messages are received -* or not. If topic detection is enabled and a message belonging -* to a previously unknown topic (i.e., a topic not on topic list) -* is received, the topic of this message is added onto the topic -* list. -* -* User selected languages determine which message are received. -* The language of an incoming message has to be on the array -* of these preferred languages. Selection "All" allows reception -* of all messages, regardless of language. -* -* Settings are modifiable only through UI client requests. -* MCN client requests have no effect on these settings, -* that is, the settings in the file store. MCN client requests -* are taken into account when a call to CCbsRecEtel::ApplyStateChangesL() -* is made. -* -*/ -class CCbsDbImpSettings : public CBase - - { - public: // New functions - /** - * Creates a new instance of the class. - * - * @param aDatabase Reference to the main DB instance. - * @return Returns a pointer to the created - * instance of the class. - */ - static CCbsDbImpSettings* NewL( CCbsDbImp& aDatabase ); - - /** - * Destructor. - */ - ~CCbsDbImpSettings(); - - /** - * Changes the topic detection status. - * - * @param aStatus New topic detection status. - */ - void SetTopicDetectionStatusL( TBool aStatus ); - - /** - * Returns the current value of the topic detection status. - * - * @param aStatus The method will store to - * the variable the current topic - * detection status. - */ - void GetTopicDetectionStatus( TBool& aStatus ) const; - - /** - * Changes the reception status. - * - * @param aStatus New reception status. - */ - void SetReceptionStatusL( TBool aStatus ); - - /** - * Returns the current value of the topic reception status. - * - * @param aStatus The method will store to - * the variable - * the current reception status. - */ - void GetReceptionStatus( TBool& aStatus ) const; - - /** - * Changes the preferred languages. - * - * @param aLanguages New preferred languages. - */ - void SetLanguagesL( const TCbsDbLanguages& aLanguages ); - - /** - * Returns the preferred languages. - * - * @param aLanguages The method will store to the variable - * the current preferred languages. - */ - void GetLanguages( TCbsDbLanguages& aLanguages ) const; - - /** - * Adds an observer to the settings. - * - * Observers are notified when an event occurs on the settings. - * - * Panics if aObserver is null. - * - * @param aObserver Pointer to the observer that is - * requested to be added. - */ - void AddObserverL( MCbsDbSettingsObserver* aObserver ); - - /** - * Removes database observer. - * - * The method will panic, if there is no such observer added - * or the given observer is null. - * - * @param aObserver Pointer to the observer that is - * requested to be removed. - */ - void RemoveObserver( const MCbsDbSettingsObserver* aObserver ); - - private: - - // A structure that contains the settings. - struct TCbsDbImpSettings - { - // Reception status. ETrue, if the reception is enabled. - TBool iReceptionStatus; - - // Topic detection status. ETrue, if the topic detection is enabled. - TBool iTopicDetectionStatus; - - // Language settings. - TCbsDbLanguages iLanguageStatus; - }; - - /** - * Constructor. - * - * @param aDatabase Reference to the main database object. - */ - CCbsDbImpSettings( CCbsDbImp& aDatabase ); - - /** - * Creates the instances. - * - */ - void ConstructL(); - - /** - * Saves the settings to the shared data. - * - * @return Boolean value indicating whether the saving succeeded. - */ - TBool SaveSettings(); - - /** - * Saves the settings to the shared data. - * - * The method leaves in case the writing to the stream does not - * succeed. - */ - void DoSaveSettingsL(); - - /** - * Loads the settings, i.e. values for reception status, - * topic detection and language subscriptions. - * - * These values are retrieved from Central Repository, associated with - * the UID of CbsServer. - * - */ - void LoadSettingsL(); - - /** - * Determines whether the language settings are equal. - * - * @param aLanguage1 First language set. - * @param aLanguage2 Second language set. - * @return ETrue, if the languages are equal. - */ - TBool IsLanguagesEqual( const TCbsDbLanguages& aLanguage1, - const TCbsDbLanguages& aLanguage2 ) const; - - /** - * Sets default language settings. - * - * @param aLanguage Place where to put the default - * settings. - */ - void SetDefaultLanguageSettings( TCbsDbLanguages& aLanguage ) const; - - /** - * Reads settings from shared data. - * - */ - //void ReadSettingsL( ); - - private: - - // The main database object. - CCbsDbImp& iDatabase; - - // Cached CB settings. - TCbsDbImpSettings iSettings; - - // Owns: Array containing registered settings observers. - CArrayFixFlat* iObservers; - - __DECLARE_TEST; - }; - -#endif // CCBSDBIMPSETTINGS_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsDbImpTopicCollection.h --- a/cbs/CbsServer/ServerInc/CCbsDbImpTopicCollection.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,205 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsDbImpTopicCollection class. -* -* This class represents the topic collection stored in the database. -* Topic collection keeps a record of topic identities received from -* the network. Topic identity includes a topic name and a topic number. -* These can be accessed but not modified. -* -*/ - - -#ifndef CCBSDBIMPTOPICCOLLECTION_H -#define CCBSDBIMPTOPICCOLLECTION_H - -// INCLUDES - -#include -#include -#include -#include -#include - -#include "MCbsDbTopicCollectionObserver.H" - -// CLASS DECLARATION - -class CCbsDbImp; - -/** -* This class defines the interface for handling topic collections. -* -* User's Guide for accessing stored topic identities: -* GetTopicIdentityCount(TInt&) -* Retrieves the number of topic identities currently stored in the -* topic collection. -* GetTopicIdentityL(TInt&, TCbsDbTopicIdentity&) -* Retrieves a single topic identity identified with an index. -* -* User's Guide for observing the topic collection. -* AddObserverL(MCbsDbTopicCollectionObserver*) -* Registers an observer which is notified of changes in the topic -* collection. -* RemoveObserverL(MCbsDbTopicCollectionObserver*) -* Unregisters an observer. -* -* User's Guide for modifying the topic collection: -* Clear() -* Clears the current topic collection. This is called by the index -* message parsing routine when it's about to parse a root index -* message. Topic identities contained in subsequent child subindex -* messages, if any, are then simply added with AddTopicIdentityL() -* AddTopicIdentityL(TCbsDbTopicIdentity&) -* Adds a topic identity into the topic collection's buffer. -* Apply() -* Writes the topic identity buffer into persistent storage. -* Clears the buffer. -* -*/ -class CCbsDbImpTopicCollection : public CBase - { - - public: // New functions. - /** - * Creates a new instance of the class. - * - * @return A pointer to the created - * CCbsDbImpTopicCollection instance. - */ - static CCbsDbImpTopicCollection* NewL(); - - /** - * Destructor. - */ - ~CCbsDbImpTopicCollection(); - - public: - /** - * Returns the total amount of topic identities - * the collection contans. - * - * @param aCount The method stores the topic identity - * count to this variable. - */ - void GetTopicIdentityCount( TInt& aCount ) const; - - /** - * Stores a topic identity (index is aIndex in the list) to aIdentity. - * The method leaves if the parameter aIndex is invalid. - * - * Exceptions: - * KErrNotFound The requested topic identity was not - * found. - * - * @param aIndex Used to index identities. - * @param aIdentity The method stores a topic identity to - * the parameter. - */ - void GetTopicIdentityL( - TInt& aIndex, - TCbsDbTopicIdentity& aIdentity ) const; - - /** - * Adds a topic collection observer. - * - * Panics if aObserver is null. - * - * Exceptions: - * KErrNoMemory OOM - * - * @param aObserver Pointer to the new observer to be added - */ - void AddObserverL( MCbsDbTopicCollectionObserver* aObserver ); - - /** - * Removes a topic collection observer. - * - * Panics if aObserver is null or aObserver is not registered - * as an observer. - * - * @param aObserver Pointer to the observer to be removed - */ - void RemoveObserver( const MCbsDbTopicCollectionObserver* aObserver ); - - /** - * Clears the topic collection builder's buffered topic list. - * This does not have any effect on identities stored in - * the database. - * - * This method should be called prior to parsing a root index - * message. Any topic identities extracted from subindex messages - * should be appended into collection with AddTopicIdentityL() - * without any call to Clear(). - */ - void Clear(); - - /** - * Stores topic identities which were added to the topic - * collection with AddTopicIdentityL() after previous call to - * Apply(). - * - */ - void Apply(); - - /** - * Adds a new topic identity to the buffered collection. - * A topic identity contains topic name and number. If the - * topic exists already, nothing is done. - * - * This method will return KErrAlreadyExists, if there is already - * another topic identity that has the same number. - * - * Exceptions: - * KErrNoMemory OOM - * KErrArgument Topic number of the given identity is - * out of valid range. - * - * @param aIdentity Topic identity to be added. - */ - void AddTopicIdentityL( const TCbsDbTopicIdentity& aIdentity ); - - private: - - /** - * Constructor. - * - */ - CCbsDbImpTopicCollection(); - - /** - * Finalizes the construction. - * - */ - void ConstructL(); - - /** - * Notifies topic collection observers about changed topic - * collection. - */ - void NotifyObservers(); - - private: - - // Own: Contains the observers. - CArrayFixFlat< MCbsDbTopicCollectionObserver* >* iObservers; - - // Own: Contains buffered topic identities. - CArrayFix< TCbsDbTopicIdentity >* iIdentities; - - }; - -#endif // CCBSDBIMPTOPICCOLLECTION_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsDbImpTopicList.h --- a/cbs/CbsServer/ServerInc/CCbsDbImpTopicList.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,852 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsDmImpTopicList class -* -* This class represents the topic list stored in the database. -* -*/ - - -#ifndef CCBSDBIMPTOPICLIST_H -#define CCBSDBIMPTOPICLIST_H - -// INCLUDES -#include - -#ifndef __SECURE_BACKUP__ -#include -#endif - -#include "CbsCommon.h" -#include "CCbsDbImp.H" - -// FORWARD DECLARATIONS -//class CCbsDbImp; -class CCbsDbImpTopicMessages; -class MCbsDbTopicListObserver; -class CFileStore; -// CLASS DECLARATION - -/** -* CCbsDbImpTopicList is the database topic list manager. -* -*/ -class CCbsDbImpTopicList : public CBase -#ifndef __SECURE_BACKUP__ -, public MBackupObserver -#endif - { - #ifndef __SECURE_BACKUP__ - public: // MBackupObserver - /** - * Closes or reopens the settings file if requested by a backup. - * - * @param aFileName The name of the file to close. - * @param aFlags The action to be performed. - * - */ - void ChangeFileLockL( const TDesC& aFileName, TFileLockFlags aFlags ); - #else - - public: - /** - * Closes or reopens the settings file if requested by a backup. - * - * @param aRequest Current request - * - */ - void ChangeFileLockL( const TCbsBackupRequest& aRequest ); - - #endif - - private: - /** - * Check if the server has a file lock. Leaves with - * KErrLocked if not. - */ - void CheckFileLockL() const; - - public: // New functions - - /** - * Creates an instance of the class. - * - * @param aFs Open file server session. - * @param aTopicsFile Name of the file containing topics. - * @param aUnsavedMessagesFile Name of the file containing unsaved - * messages. - * @param aDatabase Reference to database object - * @return Pointer to the created instance. - */ - static CCbsDbImpTopicList* NewL( RFs& aFs, - const TDesC& aTopicsFile, - const TDesC& aUnsavedMessagesFile, - CCbsDbImp& aDatabase ); - - /** - * Destructor. - */ - ~CCbsDbImpTopicList(); - - public: - - /** - * Creates a new topic list - * - * @param aTopicListName Name of the new topic list - * @param aTopicListIndex Returns: Index number of the new list - */ - void CreateNewTopicListL( const TDesC& aTopicListName ); - - - /** - * Deletes old read messages. The clean up interval is set - * by the user. - * - */ - void CleanupReadMessagesL(); - - /** - * Sets the topic messages manager. - * - * Note that this function does not transfer ownership - * of aMessages. - * - * @param aMessages Pointer to the topic messages - * manager. - */ - void SetTopicMessages( CCbsDbImpTopicMessages* aMessages ); - - /** - * Returns pointer to the current store which contains topics - * of the server (i.e., Topics-file) and saved messages. - * Leaves with KErrLocked if the store is locked by backup. - * - * @return Pointer to topics store. - */ - CFileStore* TopicStoreL() const; - - /** - * Returns a pointer to the name of the file, which contains unsaved - * messages of the server. - * - * @return Reference to the file name. - */ - const TDesC& TopicFilename() const; - - /** - * Returns a pointer to the store, which contains unsaved - * messages of the server. - * - * @return Pointer to unsaved messages store. - */ - CFileStore* UnsavedMessagesStore() const; - - /** - * Returns a pointer to the name of the file, which contains unsaved - * messages of the server (Unsaved Messages-file, "cbs4.dat"). - * - * @return Reference to the file name. - */ - const TDesC& UnsavedMessagesFilename() const; - - /** - * Returns the topic messages stream id by topic handle. - * - * @param aNumber Topic number - * @param aId Returns: the stream id to the topic - * messages stream. - */ - void GetTopicMessagesIdL( TCbsDbTopicNumber aNumber, - TStreamId& aId ) const; - - /** - * Updates the topic messages stream id by topic handle. The new - * identifier is expected not to be a null id. - * - * Note that the method will not commit changes to the store. - * It also changes the internal state and thus if the method leaves, - * it is good to reload the whole root stream. - * - * The method will delete the old topic messages stream. - * - * @param aNumber Topic number - * @param aNewId New stream id. - */ - void UpdateTopicMessagesIdL( TCbsDbTopicNumber aNumber, - const TStreamId& aNewId ); - - /** - * Generates a message handle. - * - * Note that it must be checked that the message handle is unique - * in that topic. - * - * @param aNumber Topic number - * @param aRandom Number generated in some way. - * @return New message handle. - */ - TCbsDbMessageHandle GenerateMessageHandle( - const TCbsDbTopicNumber aNumber, TUint16 aRandom ) const; - - /** - * Informs that a new message has been received in a topic. - * - * @param aMessageHandle Handle of the received message. - */ - void InformNewMessageReceivedL( - const TCbsDbMessageHandle& aMessageHandle ); - - /** - * Informs that a message has been set as saved. - * - * @param aMessageHandle Handle of the saved message. - */ - void InformMessageSavedL( const TCbsDbMessageHandle& aMessageHandle ); - - /** - * Informs that an unread message has been read. - * - * @param aMessageHandle Handle of the read message. - */ - void InformUnreadMessageReadL( - const TCbsDbMessageHandle& aMessageHandle ); - - /** - * Informs that a message has been deleted. - * - * @param aMessageHandle Handle of the deleted message. - * @param aPermanent ETrue, if the message was permanent. - * @param aRead ETrue, if the message was read. - */ - void InformMessageDeletedL( - const TCbsDbMessageHandle& aMessageHandle, - TBool aPermanent, TBool aRead ); - - /** - * Extracts topic handle from message handle. - * - * Note that the method does not check that the message exists. - * - * @param aHandle Handle to a message. - * @return Returns the number of the topic to - * which the message belongs. - */ - TCbsDbTopicNumber ExtractTopicNumber( - const TCbsDbMessageHandle& aHandle ) const; - - /** - * Initialises the whole topic list. - */ - void InitializeListL( const TBool aFileOpenFailed ); - - /** - * Returns the total amount of saved messages. - * - * @return Number of saved messages. - */ - TInt TotalSavedMessages() const; - - /** - * Returns the amount of topics the list contains. - * - * @param aCount Returns: number of topics in topic list - */ - void GetTopicCount( TInt& aCount ) const; - - /** - * Returns a topic by index. - * - * Return values: - * KErrNone Parameter aTopic contains the requested - * topic. - * KErrArgument Index out of bounds. - * - * Leaves if file read fails. - * - * @param aIndex Index to the topic. - * @param aTopic Returns: topic information. - */ - void GetTopicL( TInt aIndex, TCbsDbTopic& aTopic ); - - /** - * Returns a topic by topic number. - * - * Leaves with KErrNotFound, if a topic with the given number - * is not found. - * - * @param aNumber Number of the topic. - * @param aTopic Returns: topic information. - */ - void FindTopicByNumberL( TCbsDbTopicNumber aNumber, - TCbsDbTopic& aTopic ); - - /** - * Reads the name of the index topic from resource. - * - * @return Name of the index topic - */ - HBufC* ReadIndexTopicNameLC(); - - /** - * Adds a new topic to the list. - * - * @param aTopic Topic information. - * @param aDetected Was the topic detected automatically - */ - void AddTopicL( TCbsDbTopic& aTopic, const TBool aDetected ); - - /** - * Updates the topic name and number. - * - * @param aOldNumber Old number of the topic. - * @param aNewNumber New number of the topic. - * @param aName New name of the topic. - */ - void UpdateTopicNameAndNumberL( - TCbsDbTopicNumber aOldNumber, - TCbsDbTopicNumber aNewNumber, - const TCbsDbTopicName& aName ); - - /** - * Updates the topic subscription status. - * - * @param aNumber Topic number - * @param aStatus New subscription status. - */ - void UpdateTopicSubscriptionStatusL( - TCbsDbTopicNumber aNumber, - TBool aStatus ); - - /** - * Updates the topic hotmark status. - * - * @param aNumber Topic number - * @param aStatus New hotmark status. - */ - void UpdateTopicHotmarkStatusL( - TCbsDbTopicNumber aNumber, - TBool aStatus ); - - /** - * Deletes an existing topic and all its messages. - * - * @param aNumber Number of the topic to be deleted. - */ - void DeleteTopicL( TCbsDbTopicNumber aNumber ); - - /** - * Gets the total amount of unread messages. - * - * @param aCount Returns: number of unread topics. - */ - void GetUnreadMessageCount( TInt& aCount ) const; - - /** - * Returns the handle to the latest hotmarked message. - * - * The method leaves if there is no such message. - * - * @param aMessage Returns: Handle to a message that has - * been received under a hotmarked topic - */ - void GetHotmarkedMessageHandleL( TCbsDbMessageHandle& aMessage ); - - /** - * Adds a topic list observer. - * - * After an observer is added to the topic list, it will be notified - * whenever an event occurs. - * - * @param aObserver New observer for the list. - */ - void AddObserverL( MCbsDbTopicListObserver* aObserver ); - - /** - * Removes a topic list observer. - * - * If aObserver is not in the list, the method will panic. - * - * @param aObserver Pointer to the observer to be removed. - */ - void RemoveObserver( const MCbsDbTopicListObserver* aObserver ); - - /** - * Adds numbers of subscribed topics to the given array. - * - * @param aSubscriptions Dynamic array into which the topic - * numbers are inserted. - */ - void AppendSubscribedTopicsL( CArrayFixFlat< TUint16 >& aSubscriptions ) - const; - - /** - * Reverts all changes made to three datafiles handled by this - * class. - */ - void RevertFilesL(); - - /** - * Commits all changes made to three datafiles handled by this - * class. - */ - void CommitFilesL(); - - /** - * Returns the number of the topic that was added last - * to the database by topic detection feature. - * - * Result code KErrNotFound indicates that no topic has ever - * been added to the database. - * - * @param aNumber Returns: topic number - * @return Result code - */ - TInt GetLatestTopicNumber( TCbsTopicNumber& aNumber ) const; - - /** - * Finds the index of the topic matching the given topic number - * in the topic list. - * - * @param aNumber Topic number - * @return Index to the position of topic in - * the topic list. - */ - TInt TopicIndexInList( TCbsDbTopicNumber aNumber ) const; - - /** - * Returns the number of unread messages in hotmarked topics. - */ - TInt UnreadHotmarkedMessageCount() const; - - /** - * Retrieves numbers of topics that precede and succeed the topic - * with number aCurrentTopic. - * - * @param aCurrentTopic Topic number of current topic - * @param aNextTopic Topic number of next topic - * @param aPrevTopic Topic number of previous topic - * @param aPosition Position of topic in the topic list - */ - void GetNextAndPrevTopicNumberL( const TCbsTopicNumber& aCurrentTopic, - TCbsTopicNumber& aNextTopic, TCbsTopicNumber& aPrevTopic, - TInt& aPosition ); - - /** - * Notifies each observer that a new message has arrived to a topic. - * - * @param aHandle Handle to the topic. - */ - void NotifyNewMessageArrivedL( const TCbsDbMessageHandle& aHandle ); - - /** - * Notifies each observer that a topic has been modified. - * - * @param aNumber Topic number - */ - void NotifyTopicModifiedL( TCbsDbTopicNumber aNumber ); - - /** - * Loads the topic stream to the memory. - * - */ - void LoadDefaultTopicStreamL(); - - private: - - /** - * Constructor. - * - * @param aFs Open file server session. - * @param aDatabase Reference to database object - */ - CCbsDbImpTopicList( RFs& aFs, CCbsDbImp& aDatabase ); - - /** - * Returns the total amount of topics the list contains. - * - * @return The total amount of topics in the list. - */ - TInt TopicCount() const; - - /** - * Returns the total amount of topic lists. - * - * @return The total amount of topic lists. - */ - TInt TopicListCount() const; - - /** - * Finalizes the construction. - * - * @param aTopicFile File name of the topic file - * @param aUnsavedMessagesFile File name of the unsaved messages file. - */ - void ConstructL( const TDesC& aTopicsFile, - const TDesC& aUnsavedMessagesFile ); - - /** - * Loads the root stream to the memory. - * - * Root stream contains stream ids for each topic list and the total - * count of topic lists. - */ - void LoadRootStreamL(); - - /** - * Reloads the root stream to the memory. - */ - void ReloadRootStreamL(); - - /** - * Reads all information on topic list found with stream ID. - * - * @param aId Stream id to the topic information - * @param aTopicList Returns: topic list information - */ - void ReadTopicListInformationL(const TStreamId& aId, - TCbsDbImpTopicList& aTopicList ) const; - - /** - * Reads all information on topic found in stream aId - * into aTopic. - * - * This function is called when details of a topic are needed. - * - * @param aId Stream id to the topic information - * @param aTopic Returns: topic information. - */ - void ReadTopicInformationL( const TStreamId& aId, TCbsDbImpTopic& aTopic ) const; - - /** - * Adds a topic to the database. - * - * @param aTopic Information on added topic. - */ - void DoAddTopicL( const TCbsDbTopic& aTopic ); - - /** - * Updates a topic information. - * - * @param aTopic Contains topic information. - * @param aNeedToChange Indicates whether or not it is required - * to change position in the array - * @param aOldPosition Old position. - * @param aDeleting Whether the call is due to a deletion. - */ - void DoUpdateTopicL( const TCbsDbTopic& aTopic, - TBool aNeedToChange, TInt aOldPosition, TBool aDeleting ); - - /** - * Deletes an existing topic. - * - * @param aPosition Position of the topic to be deleted. - */ - void DoDeleteTopicL( TInt aPosition ); - - /** - * Updates a topic list information. - * - * @param aTopicList Contains topic list information. - * @param aDeleting Info if we are deleting an entry. - */ - void UpdateTopicListStreamL( TCbsDbImpTopicList& aTopicList, - TBool aDeleting ); - - /** - * Updates the root stream. - * If required, it will create a new stream. - * - * @param aDeleting Info if we are deleting an entry. - */ - void UpdateRootStreamL( TBool aDeleting ); - - /** - * Updates the topic information. - * - * @param aTopic Updated topic information. - */ - void UpdateTopicL( TCbsDbTopicNumber aTopicNumber, - TCbsDbTopic& aTopic ); - - /** - * Checks that the topic number is valid. - * - * @param aNumber The topic number. - * @return Boolean value indicating if number - * is ok. - */ - TBool CheckTopicNumber( TCbsDbTopicNumber aNumber ) const; - - /** - * Write the root stream. - * - * @param aOut The stream to which the data is - * written. - */ - void WriteRootStreamL( RWriteStream& aOut ) const; - - /** - * Write the Topic list stream - * - * @param aOut The stream to which the data is - * written. - */ - void WriteTopicListStreamL( RWriteStream& aOut, TCbsDbImpTopicList& aTopicList ) const; - - /** - * Notifies each observer that the topic list has been initialized. - */ - void NotifyTopicListInitializedL(); - - /** - * Notifies each observer that a topic has been added. - * - * @param aNumber Topic number - */ - void NotifyTopicAddedL( TCbsDbTopicNumber aNumber ); - - /** - * Notifies each observer that a topic has been deleted. - * - * @param aNumber Topic number - */ - void NotifyTopicDeletedL( TCbsDbTopicNumber aNumber ); - - /** - * Sets the hotmarked message handle. - * - * @param aMessageHandle Handle to the message. - */ - void SetHotmarkedMessage( const TCbsDbMessageHandle& aMessageHandle ); - - /** - * Creates a default root stream. - * - * The method may leave, if the creation or writing fails. - * - * @param aStore The stream to to which the root - * stream is written. - * @return Returns the stream identifier to - * that created stream. - */ - TStreamId CreateDefaultRootStreamL( CStreamStore& aStore ) const; - - /** - * Writes topic information to the stream. - * - * @param aOutstream The stream to which the data is written. - * @param aTopic Topic information. - * @param aTopicMessagesId The stream identifier to the - * topic messages. - */ - void WriteTopicInformationL( RWriteStream& aOutstream, - const TCbsDbTopic& aTopic, const TStreamId& aTopicMessagesId ) const; - - /** - * Extracts topic information (name, number, subscription and - * hotmark status) from a factory defaults topics line - * and adds that topic to the topic list. - * - * @param aLine Factory defaults line. - */ - void AddDefaultTopicL( const TDesC& aLine ); - - /** - * After a call to this function, the file stores can be assumed - * to be open and initialized. - * - * @param aDeleteExistingFiles A flag whether to recreate and - * initialize the files or not - * @param aCreateNewTopicList ETrue, if the first topic list - * needs to be created - */ - void OpenFilesL( TBool aDeleteExistingFiles, TBool aCreateNewTopicList ); - - /** - * Creates CBS files, if appropriate. - * - * @param aUnsavedMsgFileExisted Returns ETrue if unsaved messages - * file already existed. - */ - void CreateFilesIfNecessaryL( TBool& aUnsavedMsgFileExisted ); - - /** - * Tries to open topic and unsaved messages files. - * - * @param aDeleteUnsavedMsgStreamIds ETrue, if unsaved msg file - * has been deleted - * @param aCreateNewTopicList ETrue, if the first topic list - * needs to be created - */ - void TryToOpenFilesL( TBool aDeleteUnsavedMsgStreamIds, TBool aCreateNewTopicList ); - - /** - * Adds index topic to topic list. - */ - void AddIndexTopicL(); - - /** - * Creates an empty file store with the given filename. - * - * @param aFilename Filename to be created. - */ - void DoCreateStoreL( const TDesC& aFilename ); - - /** - * Deletes the unsaved messages' store and rebuilds it. - */ - void RebuildUnsavedMessageStoreL(); - - /** - * Deletes the topics' and unsaved messages' store and rebuilds them. - */ - void RebuildTopicAndUnsavedStoresL(); - - /** - * Called to repair the database when Unsaved messages -file - * has been deleted, but Topics-file still contains information - * on unsaved messages. - * - * Things that are done here: - * - Reset unread message counters, because a saved message - * is always also read. - * - Remove stream ids to unsaved messages from - * Topic messages -streams. - */ - void HandleDeletionOfUnsavedMessagesFileL(); - - /** - * Called by HandleDeletionOfUnsavedMessagesFileL(). - * Executes the necessary file operations. - */ - void DoHandleDeletionOfUnsavedMessagesFileL(); - - /** - * Replaces the given Topic message -stream with a stream which - * contains all ids of saved messages but no ids of unsaved messages. - * - * @param aMsgStreamId Topic messages -stream id - */ - void DeleteUnsavedMessageStreamIdsL( const TStreamId& aMsgStreamId ) const; - - /** - * Resolves the topic position in topic list and uses this information - * to call DoUpdateTopicL. Changes to stores are NOT commited. - * Call to DoUpdateTopicL is not trapped. - * - * @param aTopic Topic to be written into stream. - * @param aDeleting Whether the call is due to a deletion. - */ - void UpdateTopicCountersL( const TCbsDbTopic& aTopic, - const TBool aDeleting ); - - /** - * Creates a standard topic list, which has it's topics and other settings - * stored in Shared Data. - * - */ - void CreateStandardTopicListL(); - - /** - * Load the topic IDs belonging to a specified topic list - * - * @param aTopicListStreamId Stream ID of the topic list - */ - void LoadTopicsIdsL( const TStreamId& aTopicListStreamId ); - - /** - * Load the topics specified by the topic list stream ID - * - * @param aTopicListStreamId Stream ID of the topic list - */ - void LoadTopicsL( const TStreamId& aTopicListStreamId ); - - /** - * Updates the topic stream IDs in topic lists - * - * @param aTopicNumber The topic number - */ - void UpdateTopicStreamIdsL( const TCbsDbTopicNumber aTopicNumber ); - - private: // Data - - // Ref: Database - CCbsDbImp& iDatabase; - - // Ref: Topic messages manager. - CCbsDbImpTopicMessages* iMessages; - - // Session to the file server. - RFs& iFs; - - // Own: Store which contains topics. - CFileStore* iTopicStore; - - // Own: Store which contains unsaved messages. - CFileStore* iUnsavedMessageStore; - - // The last time iTopicStore and iUnsavedMessageStore were compacted - TTime iPreviousCompact; - - // Current topic list in use - TCbsDbImpTopicList iCurrentTopicList; - - // Own: Cached topic information. - CArrayFixFlat< TCbsDbImpTopic >* iTopics; - - // Own: Registered topic list observers. - CArrayFixFlat< MCbsDbTopicListObserver* >* iObservers; - - // Last topic added to topic list with topic detection. - TCbsTopicNumber iLastTopicNumber; - - // Indicates whether there is a hotmarked message - TBool iIsHotmarkedMessage; - - // Handle to the hotmarked message. - TCbsDbMessageHandle iMessageHandle; - - // Own: Buffer containing the filename of topics file - HBufC* iTopicsFilename; - - // Own: Buffer containing the filename of unsaved messages file - HBufC* iUnsavedMessagesFilename; - - // Own: Cached topic list information. - CArrayFixFlat< TCbsDbImpTopicList >* iTopicLists; - - // Own: Cached topic IDs - CArrayFixFlat< TStreamId >* iTopicIds; - - // Global topic count - TInt iTopicCount; - - // Are we initializing Standard Topic list - TBool iInitializing; - - // Are we deleting all topics from current topic list - TBool iDeleteAllTopics; - - // Local variation bits - TInt iLVBits; - - __DECLARE_TEST; - }; - -#endif // CCBSDBIMPTOPICLIST_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsDbImpTopicMessages.h --- a/cbs/CbsServer/ServerInc/CCbsDbImpTopicMessages.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,576 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsDbImpTopicMessages class. -* -* This class represents the topic messages stored in the database. -* -*/ - - - -#ifndef CCBSDBIMPTOPICMESSAGES_H -#define CCBSDBIMPTOPICMESSAGES_H - -// INCLUDES -#include -#include -#include "CbsCommon.h" - -// FORWARD DECLARATIONS -class CCbsDbImp; -class CCbsDbImpTopicList; -class CCbsRecEtel; - -// CLASS DECLARATION - -/** -* CCbsDbImpTopicMessages represents CB messages stored in persistent memory. -* CBS server has two files to accommodate messages: one for unsaved -* and one for saved messages. "Topic messages"-stream contains information -* on whether a message is saved or not, and what is message's stream id. -* CCbsDbImpTopicMessages determines the correct data file depending on -* message's save status. -* -* Changes are written to stores immediately after operations. Message cache -* iMessageList contains header information of all messages in a single topic -* at once. A call to LoadCacheL() is thus made prior to any operation to -* make sure that the appropriate topic is being used. -*/ -class CCbsDbImpTopicMessages : public CBase - { - public: // New functions - /** - * Creates an instance of the class. - * - * @param aTopicList Topic list database manager - * @param aFs File server session - * @return Pointer to the created instance - */ - static CCbsDbImpTopicMessages* NewL( CCbsDbImpTopicList& aTopicList, - RFs& aFs ); - - /** - * Destructor. - */ - ~CCbsDbImpTopicMessages(); - - public: - /** - * Invalidates the cache. - */ - void InvalidateCache(); - - /** - * Invalidates the cache if the cache contains messages of the topic. - * - * @param aNumber Number of the topic that is - * invalidated. - */ - void InvalidateCacheIfTopic( const TCbsDbTopicNumber& aNumber ); - - /** - * Creates a default topic messages stream. - * - * @param aStore Store to which the stream is created. - * @return Stream identifier to the created stream - */ - static TStreamId CreateDefaultTopicMessagesStreamL( - CStreamStore& aStore ); - - /** - * Delete all topics messages. - * - * @param aSavedStore Store which contains saved messages. - * @param aUnsavedStore Store which contains unsaved messages. - * @param aIn Stream for topic messages. - */ - static void DeleteAllTopicMessagesL( CStreamStore& aSavedStore, - CStreamStore& aUnsavedStore, RReadStream& aIn ); - - /** - * Determines whether or not there are any locked messages in - * the topic. - * - * @param aNumber Number of the topic. - * @return Boolean value indicating if there are - * locked messages in topic. - */ - TBool IsLockedMessagesInTopic( const TCbsDbTopicNumber& aNumber ) - const; - - /** - * Determines whether there is at least one locked message. - * - * @return ETrue, if there's at least one locked - * message. - */ - TBool IsLockedMessages() const; - - /** - * Returns the total amount of messages the topic contains. - * - * @param aNumber Number of the topic. - * @param aCount Returns: number of messages in given - * topic - */ - void GetMessageCountL( const TCbsDbTopicNumber& aNumber, - TInt& aCount ); - - /** - * Returns message information. - * - * @param aNumber Number of the topic. - * @param aIndex Index to the message in topic. - * @param aMessage Returns: message information. - */ - void GetMessageL( const TCbsDbTopicNumber& aNumber, - TInt aIndex, TCbsDbMessage& aMessage ); - - /** - * Finds the message for given handle and returns it. - * - * @param aHandle Handle to the message. - * @param aMessage Returns: message information. - */ - void FindMessageByHandleL( const TCbsDbMessageHandle& aHandle, - TCbsDbMessage& aMessage ); - - /** - * Finds the message by message key. - * - * @param aNumber Number of the topic. - * @param aKey Message key to be looked for. - * @return Handle to the message, or KErrNotFound if no - * such message was found. - */ - TInt FindMessageByKeyL( TCbsDbTopicNumber aNumber, - TCbsDbMessageKey aKey, - TCbsDbMessage& aMessage ); - - /** - * Stores the contents of the message to the buffer aContents. - * If aContents is too small to contain the whole message - * body, the message body is truncated. - * - * @param aHandle Handle to the message. - * @param aContents Returns: message body - * @param aSize Number of bytes to read - */ - void GetMessageContentsL( const TCbsDbMessageHandle& aHandle, - TPtr& aContents, TUint aSize ); - - /** - * Deletes a message from the topic. - * - * @param aHandle Handle to the message to be deleted. - * @param aReceiver Receiver. - */ - void DeleteMessageL( const TCbsDbMessageHandle& aHandle, - const CCbsRecEtel& aReceiver ); - - /** - * Creates a new message to the topic. - * - * FFS critical level check is made prior to operation. - * - * @param aNumber Number of the topic to which - * the message is to be added. - * @param aMessage Contains the message information - * (i.e., header, not body). - * @param aContents The contents of the message. - */ - void AddMessageL( const TCbsDbTopicNumber& aNumber, - TCbsDbMessage& aMessage, const TPtrC& aContents ); - - /** - * Saves the message. - * - * FFS critical level check is made prior to the operation. - * - * @param aHandle Handle to the message to be saved. - * @param aReceiver Receiver. - */ - void SaveMessageL( const TCbsDbMessageHandle& aHandle, - const CCbsRecEtel& aReceiver ); - - /** - * Sets the message as read. - * - * @param aHandle Handle to the message to be set read. - * @param aReceiver Receiver. - */ - void ReadMessageL( const TCbsDbMessageHandle& aHandle, - const CCbsRecEtel& aReceiver ); - - /** - * Updates handles of messages in the topic with the number given in - * aOldTopicNumber to match new topic number. - * - * @param aOldTopicNumber Number of topic to be changed - * @param aNewTopicNumber Change handles to match this number - */ - void UpdateHandlesOfTopicMessagesL( - const TCbsDbTopicNumber& aOldTopicNumber, - const TCbsDbTopicNumber& aNewTopicNumber ); - - /** - * Unlocks one message and then locks another message. - * - * Message that is locked can not be removed. Topic that - * contains a locked message can not be removed. - * - * Note that locking status is not persistent in the sense that - * when the power is switched off and turned on, no messages - * are automatically locked. - * - * @param aUnlock Handle to the message to be unlocked. - * @param aLock Handle to the message to be locked. - */ - void LockMessageL( const TCbsDbMessageHandle& aUnlock, - const TCbsDbMessageHandle& aLock ); - - /** - * Retrieves handles of messages that precede and succeed the message - * with handle aCurrentMsg. - */ - void GetNextAndPrevMsgHandleL( - const TCbsDbMessageHandle& aCurrentMsg, - TCbsDbMessageHandle& aNextMsg, - TCbsDbMessageHandle& aPrevMsg, - TInt& aPosition); - - /** - * Finds message position by message handle. - * - * The method leaves in case the message is not found. - * - * @param aHandle Handle to the message to be looked for. - * @return The position of the message. - */ - TInt FindMessagePositionByHandleL( - const TCbsDbMessageHandle& aMessage ); - - private: - - // The structure that represents the topic messages cache item. - struct TCbsDbImpTopicMessagesCacheItem - { - // The stream identifier for the message information. - TStreamId iId; - - // Whether this message is saved or not - TBool iIsSaved; - - // Indicates whether iMessage and iContentsId are valid. - TBool iIsMessage; - - // Message header - valid only if iIsMessage is true. - TCbsDbMessage iMessage; - - // Stream identifier for message body-valid if iIsMessage is ETrue - TStreamId iContentsId; - }; - - typedef CArrayFixFlat< TCbsDbImpTopicMessagesCacheItem > - TCbsDbImpTopicMessagesCache; - - /** - * Constructor. - * - * @param aTopicList Topic list database object - * @param aFs File server session - */ - CCbsDbImpTopicMessages( CCbsDbImpTopicList& aTopicList, RFs& aFs ); - - /** - * Finalizes the construction. - */ - void ConstructL(); - - /** - * Adds a message. - * - * @param aMessage Contains the message information. - * @param aContents Contains the message contents. - */ - void DoAddMessageL( TCbsDbMessage& aMessage, const TDesC& aContents ); - - /** - * Deletes a message. - * - * @param aPosition Position in the internal array where - * the message is. - */ - void DoDeleteMessageL( TInt aPosition ); - - /** - * Updates message information. - * - * @param aId Stream id to which the information is - * written. - * @param aMessage Contains the message information. - * @param aContentsId Contains the contents id. - */ - void DoUpdateMessageL( const TStreamId& aId, - const TCbsDbMessage& aMessage, const TStreamId& aContentsId ) const; - - /** - * Sets the message read. - * - * @param aId Stream id to which the information is - * written. - * @param aMessage Contains the message information. - * @param aContentsId Stream idenfitier to the contents. - */ - void DoReadMessageL( const TStreamId& aId, const TCbsDbMessage& aMessage, - const TStreamId& aContentsId ); - - /** - * Deletes messages that are not supposed to be in the topic. - * - * Because of message locking it is possible that there are more - * received messages than there should be. This method tries to - * delete this kind of message. - */ - void DoDeleteL(); - - /** - * Loads the cache, if it is not already loaded with this topic - * information. - * - * The method does not load any message information to the cache - * - only what is really necessary. - * - * @param aNumber Number of the topic to be loaded - * to the cache. - */ - void LoadCacheL( const TCbsDbTopicNumber& aNumber ); - - /** - * Loads the message header to the cache. - * - * Note that it is assumed that the index is in proper range! - * And the cache is already loaded! - * - * @param aIndex The index to the message in cache. - * @param aMessage Returns: message information. - */ - void LoadMessageL( TInt aIndex, TCbsDbMessage& aMessage ); - - /** - * Loads message contents (as much as it fits). - * - * Save status of message is required because saved and unsaved - * messages are stored on separate files. - * - * @param aContentsId Stream identifier to the content. - * @param aContents Returns: message body. - * @param aIsSaved ETrue, if the message is saved. - * @param aSize Size of the message. - */ - void LoadMessageContentsL( const TStreamId& aContentsId, TPtr& aContents, - TBool aIsSaved, TUint aSize ) const; - - /** - * Generates a new message handle. - * - * @param aNumber Number of the topic which will contain - * the message. - * @return Returns the new message handle. - */ - TCbsDbMessageHandle GenerateNewMessageHandle( - const TCbsDbTopicNumber& aNumber ); - - /** - * Checks that if there are too many received messages in - * the internal cache, then they will be deleted if they - * are not locked. - * - * @return Boolean value indicating if some - * changes was made. - */ - TBool DeleteReceivedIfNecessaryL(); - - /** - * Deletes message by its position in the internal cache. - * - * Note that after the call the internal cache won't contain - * the item. - * - * @param aPosition The position to the message. - */ - void DeleteMessageByPositionL( TInt index ); - - /** - * Determines whether or not the message is locked. - * - * @param aHandle The handle to the message. - * @return Boolean value indicating if - * the message is locked. - */ - TBool IsMessageLocked( const TCbsDbMessageHandle& aHandle ) const; - - /** - * Deletes from the locked messages. - * - * @param aHandle Message to be unlocked. - */ - void DeleteFromLocked( const TCbsDbMessageHandle& aHandle ); - - /** - * Adds a handle to the locked messages. - * - * @param aHandle Message to be locked. - */ - void InsertToLockedL( const TCbsDbMessageHandle& aHandle ); - - /** - * Updates topic messages stream from the internal cache. - * - * @param aDeleting Whether the call is due to a deletion. - */ - void UpdateTopicMessagesStreamL( TBool aDeleting ); - - /** - * Writes topic messages stream from the internal cache. - * - * @param aOut Stream to which data is written. - */ - void WriteTopicMessagesStreamL( RWriteStream& aOut ); - - /** - * Saves the message. - * - * @param aMessage The message to be saved. - * @param aItem The cache item to the previous instance of the - * message. - * @param aContentPtr The contents of the message. - * @param aPosition The position of the message in the cache. - */ - void DoSaveMessageL( - TCbsDbMessage& aMessage, - const TCbsDbImpTopicMessagesCacheItem& aItem, - const TDesC& aContentPtr, - TInt aPosition ); - - /** - * Reverts any not commited file operation in data files, - * reloads cache and then leaves with aReason. - * - * @param aReason Leave code - */ - void RevertFileOperationL( TInt aReason ); - - /** - * Creates a new message content stream. - * - * @param aStore Store to which the stream is created. - * @param aContents Message content. - */ - static TStreamId CreateMessageContentsStreamL( CStreamStore& aStore, - const TDesC& aContents ); - - /** - * Creates a new message stream. - * - * @param aStore Store to which the stream is created. - * @param aMessage Message information. - * @param aContents Stream identifier to the contents. - */ - static TStreamId CreateMessageStreamL( CStreamStore& aStore, - TCbsDbMessage& aMessage, const TStreamId& aContents ); - - /** - * Reads all cache items for a topic. - * - * @param aStore Reference to the store. - * @param aId Stream id to the topic messages stream. - * @param aCache Empty cache where it is supposed that - * these messages are put. - * @param aSpace Contain the amount of space for - * messages. - */ - static void ReadTopicMessagesCacheItemsL( const CStreamStore& aStore, - const TStreamId& aId, - TCbsDbImpTopicMessagesCache& aCache, - TInt& aSpace ); - - /** - * Reads necessary message information from the store. - * - * @param aStore Store that contains the information. - * @param aId Stream identifier to the message - * stream. - * @param aMessage Contain message information. - * @param aContentsId Contain the stream identifier to - * the contents. - */ - static void ReadMessageInformationL( - const CStreamStore& aStore, - const TStreamId& aId, - TCbsDbMessage& aMessage, - TStreamId& aContentsId ); - - /** - * Writes message information to the store. - * - * @param aOut Stream to which data is written. - * @param aMessage Contains the message information to be - * written. - * @param aContentsId Stream identifier to the contents. - */ - static void WriteMessageInformationL( RWriteStream& aOut, - const TCbsDbMessage& aMessage, const TStreamId& aContentsId ); - - /** - * Updates the soft notification (dialog) when unread message - * count changes. - * - * @param aHandle Handle to the message to be set as read - * @param aReceiver Receiver. - */ - void UpdateSoftNotificationL( const TCbsDbMessageHandle& aHandle, - const CCbsRecEtel& aReceiver ); - - private: - - // Topic list manager. - CCbsDbImpTopicList& iTopicList; - - // Indicates whether the cache is valid or not. - TBool iCacheValid; - - // If cache is valid, then it contains the topic handle of the - // cached topic. - TCbsDbTopicNumber iCachedTopicNumber; - - // If cache is valid, then it tells how many messages the stream - // can hold. - TInt iSpaceForMessages; - - // Own: If cache is valid, it contains some information of the - // topic messages for fast access. - TCbsDbImpTopicMessagesCache* iMessageList; - - // Own: handles of the locked messages. - CArrayFixFlat< TCbsDbMessageHandle >* iLockedMessages; - - // Reference to a file server session of CCbsDbImp - RFs& iFs; - - }; - -#endif // CCBSDBIMPTOPICMESSAGES_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsDiskSpaceMonitor.h --- a/cbs/CbsServer/ServerInc/CCbsDiskSpaceMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* -* Copyright (c) 2004 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: This file contains the header file of the CCbsDiskSpaceMonitor class -* -* -*/ - - -#ifndef CCBSDISKSPACEMONITOR_H -#define CCBSDISKSPACEMONITOR_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class CCbsDbImp; - -// CLASS DECLARATION - -/** -* The CCbsDiskSpaceMonitor instance listens to -* shutdown signal via Publish and Subscribe. On device shutdown, -* the listener stops server operation by stopping the active scheduler. -* CbsServer will then be terminated. -*/ -class CCbsDiskSpaceMonitor : public CActive - { - public: // New functions - - /** - * Creates an instance of the class. - * - * @param aDbImp DB reference - * @return A new instance of CCbsDiskSpaceMonitor - */ - static CCbsDiskSpaceMonitor* NewL( CCbsDbImp& aDbImp ); - - /** - * Destructor. - */ - ~CCbsDiskSpaceMonitor(); - - /** - * Reissues the Subscribe request. - */ - void IssueRequest(); - - private: // From CActive - - /** - * Gets called when the system state changes. - */ - void RunL(); - - /** - * Cancels an outstanding Subscribe request. - */ - void DoCancel(); - - private: - - /** - * The constructor. - * - */ - CCbsDiskSpaceMonitor( CCbsDbImp& aServer ); - - /** - * Finalizes the construction. - */ - void ConstructL(); - - private: // Data - - // PubSub connection - RProperty iProperty; - - // DB reference - CCbsDbImp& iDbImp; - }; - -#endif // CCBSSHUTDOWNMONITOR_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsEtelMessaging.h --- a/cbs/CbsServer/ServerInc/CCbsEtelMessaging.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsEtelMessaging class. -* -* CCbsEtelMessaging is a wrapper to RMobileBroadcastMessaging used -* in network builds. -* -*/ - - - -#ifndef CCBSETELMESSAGING_H -#define CCBSETELMESSAGING_H - -// INCLUDES - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -#include - -#include -#include "MCbsEtelMessaging.h" - -// CLASS DECLARATION - -/** -* CCbsEtelMessaging acts as a wrapper to RMobileBroadcastMessaging instance. -* -*/ -class CCbsEtelMessaging : public CBase, public MCbsEtelMessaging - { - public: - - /** - * Creates and returns a new instance of CCbsEtelMessaging. - * - * @return Instance of CCbsEtelMessaging. - */ - static CCbsEtelMessaging* NewL(); - - /** - * Destructor. - */ - virtual ~CCbsEtelMessaging(); - - public: // MCbsEtelMessaging - - /** - * Opens an emulated ETel messaging session. - * - * @param aPhone RMobilePhone-session - */ - TInt Open( RMobilePhone& aPhone ); - - /** - * Closes ETel messaging session. - */ - void Close(); - - /** - * Requests forwarding of the next received CB message. - * - * @param aReqStatus Client request status - * @param aMsgData CBS message data descriptor - * @param aMsgAttributes CBS message attributes - */ - void ReceiveMessage( TRequestStatus& aReqStatus, TDes8& aMsgData, - TDes8& aMsgAttributes ); - - /** - * Cancels an outstanding ReceiveMessage() request. - */ - void ReceiveMessageCancel(); - - /** - * Sets CBS receive mode (filter setting). - * - * @param aReqStatus Returns: status of async operation - * @param aSetting The new filter setting to be set to ETel - */ - void SetFilterSetting( TRequestStatus& aReqStatus, - RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter aSetting ) const; - - /** - * Cancels an outstanding SetFilterSetting() request. - * - */ - void SetFilterSettingCancel(); - - /** - * Retrieves the current CBS receive mode (filter setting). - * - * @param aSetting The setting to beffiled by ETel - * @return Result code - */ - TInt GetFilterSetting( - RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter& aSetting ); - - private: // Private methods - - /** - * Constructor. - */ - CCbsEtelMessaging(); - - /** - * Finalizes the construction. - */ - void ConstructL(); - - private: // Data - - // ETel messaging session to which calls to this class are forwarded. - RMobileBroadcastMessaging iMessaging; - }; - -#endif // CCBSETELMESSAGING_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsLivecastHandler.h --- a/cbs/CbsServer/ServerInc/CCbsLivecastHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -/* -* Copyright (c) 2004 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: Definition of CCbsLivecasetHandler class. -* -*/ - - -#ifndef CCBSLIVECASTHANDLER_H -#define CCBSLIVECASTHANDLER_H - -// INCLUDES - -#include -#include "CCbsMessage.h" - -// FORWARD DECLARATIONS -class CCbsRecEtel; - -// CLASS DECLARATION - -/** -* CCbsLivecastHandler constructs CB messages based on a page -* received through ETel. -* -* The selection between GSM and WCDMA messages is made when -* constructing the message. -*/ -class CCbsLivecastHandler : public CBase - { - public: // New functions - - /** - * Constructs a new CCbsLivecastHandler - * - * @param aRecEtel CCbsRecEtel reference - * @return A new instance of CCbsLivecastHandler - */ - static CCbsLivecastHandler* NewL( CCbsRecEtel& aRecEtel ); - - /** - * Destructor - */ - ~CCbsLivecastHandler(); - - /** - * Processes Livecast messages - */ - void HandleLivecastMessageL( CCbsMessage* aLivecastMessage ); - - private: - - /** - * Default constructor - */ - CCbsLivecastHandler( CCbsRecEtel& aRecEtel ); - - /** - * 2nd-phase constructor - */ - void ConstructL(); - - private: // Data - - // CCbsRecEtel instance to which CB messages are passed. - CCbsRecEtel& iRecEtel; - - }; - -#endif // CCBSLIVECASTHANDLER_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsMcnSession.h --- a/cbs/CbsServer/ServerInc/CCbsMcnSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,191 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsMcnSession class which -* responds to client MCN-related requests. -* -*/ - - - - -#ifndef CCBSMCNSESSION_H -#define CCBSMCNSESSION_H - -// INCLUDES - -#include -#include "CCbsObject.h" -#include "MCbsMcnSubscriptionsProvider.h" -#include - -// FORWARD DECLARATIONS - -class CCbsDbImpSettings; -class CCbsRecEtel; -class CCbsReceiverHelper; -class CCbsRecMessage; -class CCbsSession; - -// CLASS DECLARATION - -/** -* CCbsMcnSession is the server-side subsession object, which takes care -* of client-side MCN requests. -*/ -class CCbsMcnSession - : public CCbsObject, public MCbsMcnSubscriptionsProvider - { - public: // New functions - /** - * Creates a new instance of the class. - * - * @param aSession Main session instance. - * @param aReceiver Receiver instance. - * @return New instance of CCbsMcnSession. - */ - static CCbsMcnSession* NewL( CCbsSession& aSession, - CCbsRecEtel& aReceiver ); - - /** - * Destructor. - */ - ~CCbsMcnSession(); - - public: // From CCbsObject - /** - * Handle the requests for the object. - * - * @param aMessage Message to be handled. - * @return Indicates whether the message was - * handled. - */ - TBool HandleRequestsL( const RMessage2& aMessage ); - - public: // From MCbsMcnSubscriptionsProvider - /** - * Returns the number of topic subscriptions of this MCN client. - * - * @return Number of subscribed CB topics - */ - TUint NumberOfSubscriptions() const; - - /** - * If aMessage is of topic subscribed by the client, - * aMessage is copied to client-side. - * - * @param aMessage CB message. - */ - void RouteMessageL( const CCbsMessage& aMessage ); - - private: - /** - * Constructor. - * - * @param aSession Main session object. - * @param aReceiver Receiver instance. - */ - CCbsMcnSession( CCbsSession& aSession, CCbsRecEtel& aReceiver ); - - /** - * Finalizes construction. - */ - void ConstructL(); - - /** - * Close the subsession. - */ - void CloseMcnSession(); - - /** - * Handles client request for message routing. - */ - void NotifyOnChange(); - - /** - * Handles client request to cancel an outstanding - * routing request. - */ - void NotifyOnChangeCancel(); - - /** - * Handles client request to subscribe a topic. - * - * Note: ApplySubscriptionL has to be called in order to - * apply receiver changes. - */ - void SubscribeTopicL(); - - /** - * Called by RouteMessageL() to actually copy the message content - * to client side. - * - * @param aMcnPckg Package containing the MCN message - * and it's parameters. - */ - void NotifyClientL( const TPckg& aMcnPckg ); - - /** - * Clears all topic subscriptions of this MCN session. - * - * Leaves only if CCbsRecEtel::ApplyStateChangesL() leaves. - */ - void ClearSubscriptionsL(); - - /** - * Forces receiver to reload CB topic subscriptions. - * - * This function has to be called after MCN client has subscribed - * topics with SubscribeTopicL(). - */ - void ApplySubscriptionsL(); - - private: // Prohibited operators and functions - - // Copy constructor - CCbsMcnSession( const CCbsMcnSession& ); - - // Assignment operator - CCbsMcnSession& operator=( const CCbsMcnSession& ); - - - private: // Data - - /// Receiver object. - CCbsRecEtel& iReceiver; - - /** - * Indicates whether iMessage is a valid message; that is, there - * is a pending notify request. - */ - TBool iIsMessage; - - /// Message for the pending notify request - RMessage2 iMessage; - - /// Array of topic numbers subscribed by the client. - CArrayFixFlat< TUint16 >* iSubscribedTopics; - - // MCN message - TCbsMcnMessage iMcnMessage; - - // MCN message package for IPC - TPckg iMcnPckg; - - }; - -#endif // CCBSMCNSESSION_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsMessage.h --- a/cbs/CbsServer/ServerInc/CCbsMessage.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,603 +0,0 @@ -/* -* Copyright (c) 2004 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: This file contains the header file of the CCbsMessage class. -* -*/ - - - -#ifndef CCBSMESSAGE_H -#define CCBSMESSAGE_H - -// INCLUDES -#include -#include "CbsReceiverTypes.h" -#include "CbsCommon.h" -#include - -// CONSTANTS -// If this constant is set to iPLMN.iMCC, iPLMN does not contain network info -_LIT( KRecMessageNoNetworkInfo, "-1" ); - -/// Defines association element (ISO639-code, language) -struct TCbsIso639ToLangMapElement - { - const TLitC< 3 > iCode; - const TCbsDbLanguage iLang; - - TCbsIso639ToLangMapElement::TCbsIso639ToLangMapElement( - const TLitC< 3 > aCode, - TCbsDbLanguage aLang ) - :iCode( aCode ), - iLang( aLang ) { } - }; - -// ISO639 codes defining recognized languages -_LIT( KIso639Danish, "DA" ); -_LIT( KIso639German, "DE" ); -_LIT( KIso639Greek, "EL" ); -_LIT( KIso639English, "EN" ); -_LIT( KIso639Spanish, "ES" ); -_LIT( KIso639Finnish, "FI" ); -_LIT( KIso639French, "FR" ); -_LIT( KIso639Italian, "IT" ); -_LIT( KIso639Dutch, "NL" ); -_LIT( KIso639Norwegian, "NO" ); -_LIT( KIso639Portuguese, "PT" ); -_LIT( KIso639Swedish, "SV" ); -_LIT( KIso639Turkish, "TR" ); -_LIT( KIso639Hungarian, "HU" ); -_LIT( KIso639Polish, "PL" ); -_LIT( KIso639Czech, "CS" ); -_LIT( KIso639Hebrew, "HE" ); -_LIT( KIso639Arabic, "AR" ); -_LIT( KIso639Russian, "RU" ); -_LIT( KIso639Icelandic, "IS" ); -// Amount of languages that are mapped to ISO639 codes. -const TInt KNumberOfLanguageMappings = 20; - -// CB message header size in bytes. -const TInt KHeaderLength = 6; - -// Offset in CB message to index header in characters. -const TInt KIndexHeaderPosition = 0; - -// Index header length in characters (e.g., "EI1") -const TInt KIndexHeaderLength = 5; // including trailing - -// Offset to language indication, if applicable -const TInt KLanguageIndicationPosition = 0; - -// Fixed length of language indication preceding message body -const TInt KLanguageIndicationLength = 3; - -// Fixed length of language indication without trailing CR. -const TInt KLanguageIndicationLengthWithoutCR = 2; - -// Geographical scope of CB message: cell wide / immediate display -const TInt KGeographicalScopeCellImmediate = 0x00; - -// Geographical scope of CB message: operator wide / normal display -const TInt KGeographicalScopePLMNNormal = 0x01; - -// Geographical scope of CB message: location area wide / normal display -const TInt KGeographicalScopeLACNormal = 0x02; - -// Geographical scope of CB message: cell wide / normal display -const TInt KGeographicalScopeCellNormal = 0x03; - -// Message code of an index message. -const TUint16 KIndexMessageCode = 0x02AA; // 1010101010b - -const TUint8 KPageParameterSingle = 0x11; // this page: 1, total pages: 1 - -// ETSI DCS specification -const TUint8 DCS_MASK_GENERAL_DATA_CODING_INDICATION = 0xcc; -const TUint8 DCS_MASK_MESSAGE_HANDLING = 0xf4; -const TUint8 DCS_MASK_LANGUAGE_INDICATION_PRECEDES = 0xff; -const TUint8 DCS_GDCI_8BIT = 0x44; -const TUint8 DCS_GDCI_UCS2 = 0x48; -const TUint8 DCS_DCMH_8BIT = 0xf4; -const TUint8 DCS_MPLI_UCS2 = 0x11; -const TUint16 KMessageCodeMask = 0x3FF0; -const TUint8 DCS_MASK_UDH = 0x9c; -const TUint8 DCS_UDH_8BIT = 0x94; - -const TUint8 DCS_MASK_CLASS0 = 0xd3; -const TUint8 DCS_CLASS0 = 0x50; - -// Message identifier value indicating that the message contains -// a base station identity. -const TUint16 KCbsBaseStationId = 50; - -// Information on Data Coding Scheme values. -// Refer to ETSI GSM 03.38 for details. -enum - { - // Bits 4-7 0000: Language specified with bits 0-3, default alphabet. - ECbsRecLanguageGerman = 0, - ECbsRecLanguageEnglish = 1, - ECbsRecLanguageItalian = 2, - ECbsRecLanguageFrench = 3, - ECbsRecLanguageSpanish = 4, - ECbsRecLanguageDutch = 5, - ECbsRecLanguageSwedish = 6, - ECbsRecLanguageDanish = 7, - ECbsRecLanguagePortuguese = 8, - ECbsRecLanguageFinnish = 9, - ECbsRecLanguageNorwegian = 10, - ECbsRecLanguageGreek = 11, - ECbsRecLanguageTurkish = 12, - ECbsRecLanguageHungarian = 13, - ECbsRecLanguagePolish = 14, - ECbsRecLanguageUnspecified = 15, - // Bits 4-7 0001: Message preceded by language indication, - // default or UCS2 alphabet. - ECbsRecDCSDefaultMsgPrecededByLanguage = 16, - ECbsRecDCSUCS2MsgPrecededByLanguage = 17, - // Bits 4-7 0010: Czech language, reservations for European languages - // using the default alphabet. - ECbsRecLanguageCzech = 32, - ECbsRecLanguageHebrew = 33, - ECbsRecLanguageArabic = 34, - ECbsRecLanguageRussian = 35, - ECbsRecLanguageIcelandic = 36, - // Bits 4-7 0011: Reserved for European languages using the default - // alphabet, with unspecified handling at the MS. - // Max value of language enum, this MUST remain as last - ECbsRecLanguageMax = 100 - }; - -// Message types, GSM, WCDMA, Livecast -enum TCbsMessageType - { - ECbsMessageGsm, - ECbsMessageWcdma, - ECbsMessageLivecast, - ECbsMessageTypeUnspecified - }; - - -// CLASS DECLARATION - -/** -* CCbsMessage is the base class for GSM anf WCDMA message classes. -* -*/ -class CCbsMessage : public CBase - { - public: - - /** - * Virtual destructor - */ - virtual ~CCbsMessage(); - - public: - /** - * Returns the type of the message (only in WCDMA) - * - * @return Type of this message - */ - virtual TInt MessageType() const = 0; - - /** - * Returns ETrue, if this message is a child subindex message. - * - * Child subindex messages have message code 1010101010b and - * message identifier other than 0. - * - * @return ETrue, if the message is child subindex - */ - virtual TBool IsChildSubindex() const; - - /** - * Returns ETrue, if this message is a livecast message. - * - * - * @return ETrue, if the message is livecast message - */ - - TBool IsLivecastMessage() const; - - /** - * Returns the message code of the message. - * - * @return Message Code. - */ - TCbsRecMessageCode MessageCode() const; - - /** - * Returns the update number of the message. - * - * @return Update Number. - */ - TCbsRecUpdateNumber UpdateNumber() const; - - /** - * Returns the alphabet set of this message. - * - * Possible values are: - * - * ECbsRecAlphabetDefault 7-bit GSM encoding - * ECbsRecAlphabet8bit 8-bit data, unknown encoding - * ECbsRecAlphabetUCS2 16-bit, UCS-2 encoding - * ECbsRecAlphabetUnspecified Unknown encoding - * - * @return Alphabet - */ - TCbsRecAlphabet Alphabet() const; - - /** - * Appends another message's content to this message's content. - * - * @param aMsg Message that is appended - * to this msg. - */ - void AppendContent( const TDesC& aMsg ); - - /** - * Appends another 8-bit message's content to this message's content. - * - * @param aMsg Message that is appended - * to this msg. - */ - void AppendContent8( const TDesC8& aMsg ); - - /** - * Returns identifier of the cell in which the phone was when this - * message was received. - * - * @return Cell identifier - */ - TUint CellId() const; - - /** - * Returns a pointer descriptor to the Unicode contents of the - * message. - * - * Panics if 16-bit presentation is not prepared. - * - * @return Pointer descriptor to the contents of - * the message. - */ - const TDesC& Contents() const; - - /** - * Returns a pointer descriptor to 8-bit descriptor representation - * of the message body. Panics if 8-bit representation - * is not prepared. - * - * @return Pointer descriptor to the 8-bit - * representation of this message's body. - */ - const TDesC8& Contents8() const; - - /** - * Returns the Data Coding Scheme of this message page. - * - * Refer to GSM specification 03.38 for details on DCS. - * - * @return Data Coding Scheme. - */ - TCbsRecDCS DCS() const; - - /** - * Returns the geographical scope of the message. - * - * @return Geographical scope. - */ - TCbsRecGeographicalScope GeographicalScope() const; - - /** - * On return, aNetworkId contains identity of the network - * in which the phone was when this message was received. - * - * @param aNetworkInfo Returns: Operator information - */ - void GetPLMN( RMobilePhone::TMobilePhoneNetworkInfoV1& aNetworkInfo ) const; - - /** - * Returns ETrue, if this message is a Class 0 message according - * to ETSI GSM specification 03.38. - */ - TBool IsClass0() const; - - /** - * Returns ETrue, if the message is compressed. - * - * @return ETrue, if the message is compressed. - */ - TBool IsCompressed() const; - - /** - * Returns boolean value indicating if this is the index message. - * - * Index messages have message code 1010101010b. - * - * Refer to GSM specifications to for details. - * - * @return Boolean value indicating if this is - * an index message. - */ - TBool IsIndexMessage() const; - - /** - * Returns the key of the message (serial number). - * - * Refer to GSM specifications for details. - * - * @return Key of the message. - */ - TCbsDbMessageKey Key() const; - - /** - * Returns the LAC (Location Area Code) of the area where the phone - * was when this message was received. - * - * @return Location area code - */ - TUint LAC() const; - - /** - * Returns the language in which the message is written. - * - * Function will panic, if the language has not been resolved - * with ResolveLanguage(). - * - * @return The language of the message. - */ - TCbsDbLanguage Language() const; - - /** - * Determines and returns the language of this message - * based on first two characters of message content. - * Assumes that the message content contains language - * indication and that the content has been decoded - * into UCS-2 representation. - * - * @returns Language of the message - */ - TCbsDbLanguage LanguagePrecedingMessage() const; - - /** - * Determines and returns the language of this message - * based on DCS value. Assumes that the same DCS value - * indicates, that the language can be determined in this - * way (and not from message content). - * - * @returns Language of the message - */ - TCbsDbLanguage LanguageWithDefaultAlphabet() const; - - /** - * Returns the 16-bit representation of the message - * contents. - * - * @returns Message contents - */ - HBufC* Message() const; - - /** - * Returns the 8-bit representation of the message - * contents. - * - * @returns Message contents - */ - HBufC8* Message8() const; - - /** - * Returns the message class of the message. - * - * @return Message Class. - */ - TInt MessageClass() const; - - /** - * Returns ECbsRecLanguageIndicationBody, if message's content is - * preceded by language indication (see GSM 03.38). - * - * Return values: - * ECbsRecLanguageIndicationHeader Language indicated by the message - * header DCS value - * ECbsRecLanguageIndicationBody Language indicated by - * a two-character prefix in message - * body. - * - * @return Indication location. - */ - TCbsRecLanguageIndication MessagePrecededByLanguageIndication() const; - - /** - * Returns the network mode (GSM/WCDMA) of this message page. - * - * @return Network in which this message was - * received (GSM/WCDMA). - */ - TCbsNetworkMode NetworkMode() const; - - /** - * Returns the page parameter of this message page. - * - * Total and this page -fields can be accessed with - * methods TotalPages() and ThisPage(). - * - * @return Page Parameter. - */ - TCbsRecPageParameter PageParameter() const; - - /** - * Frees the memory allocated for 8-bit representation of message - * content. - */ - void ReleaseEightBitRepresentation(); - - /** - * Removes any index header prefix from the message body. - * - * This method assumes that the index header is contained in the - * first line of message body. This line, including trailing - * is removed. - * - * Index header prefix is assumed to contain "EIn", where n - * specifies the version number this index message claims to - * follow and is a carriage return + line feed. - * - * It is also assumed that any language indication prefix has - * already been removed prior to this operation. - * - * Message must be in UCS-2 representation. - * - * Leave reasons: - * KErrUnderflow Message is too short to contain index header. - */ - void RemoveIndexHeaderL(); - - /** - * Removes language indication field from the message body. - * - * Presence of an indication is verified with the DCS value - * according to ETSI specifications. Message is assumed to - * contain valid indication, i.e., three bytes preceding the message - * body specifying the language code. - * - * The correctness of this operation is not checked. If the - * indication is invalid, the message body is likely to either have - * a couple of characters too many or few. - * - * Message is assumed to be decoded into UCS-2. - * - * Leave reasons: - * KErrUnderflow Message is too short to contain language indication. - */ - void RemoveLanguageIndicationFromBodyL(); - - /** - * Returns ETrue, if this message requires to be displayed - * immediately. - * - * The CB message has to be displayed immediately - * if either it is flagged as a Class 0 message (see GSM 03.38) - * or has a geographical scope of the type "Immediate" - * (see GSM 03.41). - * - * This function always returns EFalse for Base station ID messages - * (message identifier = 50). - * - * @return Immediate display indication. - */ - TBool RequiresImmediateDisplay() const; - - /** - * Increases the space allocated for message content. - * - * @param aLength New number of characters in msg - * content. - */ - void ReserveContentSizeL( TInt aLength ); - - /** - * Increases the space allocated for 8-bit message content. - * - * @param aLength New number of characters in msg - * content. - */ - void ReserveContentSize8L( TInt aLength ); - - /** - * Determines language of this message so that calls to Language() - * will return the correct value. - * - * Language information may be determined from Data Coding Scheme - * of message header or from the first characters in message body. - * For the latter to succeed, the message has to be decoded into - * UCS-2. - */ - void ResolveLanguage(); - - /** - * Sets the network information of this message. - * - * @param aNetworkInfo Network information - * @param aArea Area information - */ - void SetNetworkInfo( - const RMobilePhone::TMobilePhoneNetworkInfoV1& aNetworkInfo, - const RMobilePhone::TMobilePhoneLocationAreaV1& aArea ); - - /** - * Returns the page number of this page in the message page sequence, - * - * @return Page number of this page. - */ - virtual TUint ThisPage() const = 0; - - /** - * Returns the topic number to which the message belongs. - * (Message Identifier) - * - * @return The number of the topic - */ - TCbsDbTopicNumber TopicNumber() const; - - /** - * Returns the total number of pages in this page's message. - * - * @return Total number of pages in this message - */ - virtual TUint TotalPages() const = 0; - - protected: - CCbsMessage(); - - protected: - // Data Coding Scheme (language, encoding, compression) - TCbsRecDCS iDCS; - - // Own: contents of the message page in 16-bit representation - HBufC* iMessage; - - // Own: contents of the message page in 8-bit representation - HBufC8* iMessage8; - - // Serial Number (GS, Message Code, Update Number) - TUint16 iSerialNumber; - - // Message Identifier (Topic number) - TUint16 iMessageIdentifier; - - // Page Parameter (this page, total pages) - TCbsRecPageParameter iPageParameter; - - // Total number of pages - TInt iTotalNumberOfPages; - - // Location area information - RMobilePhone::TMobilePhoneLocationAreaV1 iLocationArea; - - // Network information - RMobilePhone::TMobilePhoneNetworkInfoV1 iNetworkInfo; - - // Language of this message - TCbsDbLanguage iLanguage; - - // Network in which current message was received - TCbsNetworkMode iNetworkMode; - }; - -#endif // CCBSMESSAGE_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsMessageCleanUpTimer.h --- a/cbs/CbsServer/ServerInc/CCbsMessageCleanUpTimer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsMessageCleanupTimer class. -* -*/ - - -#ifndef CCBSMESSAGECLEANUPTIMER_H -#define CCBSMESSAGECLEANUPTIMER_H - -#include - -// FORWARD DECLARATIONS -class CCbsDbImpTopicList; -class CCbsDbImpSettings; -class CCbsMessage; -class CCbsRecCollector; - -typedef CArrayPtrFlat CMessageBuffer; - - -// CLASS DECLARATION - -// DESCRIPTION -// Handles the cleaning up of read messages, according to time interval -// set by the user. - -class CCbsMessageCleanupTimer : public CTimer - { - public: // Constructors and destructor - - /** - * C++ default constructor. - * - * @param aTopicList Reference to topic list database - * @param aSettings Reference to settings database - */ - CCbsMessageCleanupTimer( CCbsRecCollector& aCbsRecCollector, CMessageBuffer& aArray ); - - /** - * Two-phased constructor. - * - * @param aTopicList Reference to topic list database - * @param aSettings Reference to settings database - */ - static CCbsMessageCleanupTimer* NewL( CCbsRecCollector& aCbsRecCollector, CMessageBuffer& aArray ); - - /** - * Destructor. - */ - ~CCbsMessageCleanupTimer(); - - public: // New functions - - /** - * Requests the timer to be started. - */ - void StartTimer(); - - /** - * Requests the timer to be stopped. - */ - void StopTimer(); - - public: // Functions from base classes - - /** - * Called when the timer expires. Renews the request. - */ - void RunL(); - - private: - - /** - * By default constructor is private. - */ - void ConstructL(); - - private: // Data - - TTimeIntervalMinutes iInterval; - CCbsRecCollector& iCbsRecCollector; - CMessageBuffer& iArray; - }; - -#endif // CCbsMessageCleanupTimer_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsMessageFactory.h --- a/cbs/CbsServer/ServerInc/CCbsMessageFactory.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -/* -* Copyright (c) 2004 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: Header file for the CCbsMessageFactory class. -* -*/ - - -#ifndef CCBSMESSAGEFACTORY_H -#define CCBSMESSAGEFACTORY_H - -// INCLUDES - -#include -#include -#include "CCbsMessage.h" - -// FORWARD DECLARATIONS -class CCbsRecEtel; - -// CLASS DECLARATION - -/** -* CCbsMessageFactory constructs CB messages based on a page -* received through ETel. -* -* The selection between GSM and WCDMA messages is made when -* constructing the message. -*/ -class CCbsMessageFactory : public CBase - { - public: // New functions - - /** - * Constructs a new CCbsMessage based on TDes8& - * (which is a descriptor) received from EPOC Telephony Server. - * - * @param aRecEtel CCbsRecEtel reference - * @return A new instance of CCbsMessageFactory - */ - static CCbsMessageFactory* NewL( CCbsRecEtel& aRecEtel ); - - /** - * Destructor - */ - ~CCbsMessageFactory(); - - /** - * Creates a new message. - * - * @param aMessagePage Source message descriptor - * @param aAttributes Message attributes - * @return aMsgType Message type (GSM/WCDMA/Livecast) - * @return Current instance of CCbsMessage - */ - CCbsMessage* CreateMessageL( const TDes8& aMessagePage, - const RMobileBroadcastMessaging::TMobileBroadcastAttributesV2& aAttributes, - TCbsMessageType& aMsgType ); - - /** - * Creates a new message. - * - * @param aMessage Message from which to create the new msg - * @return Current instance of CCbsMessage - */ - CCbsMessage* CreateMessageL( const CCbsMessage& aMessage ); - - private: - - /** - * Default constructor - */ - CCbsMessageFactory( CCbsRecEtel& aRecEtel ); - - /** - * 2nd-phase constructor - */ - void ConstructL(); - - - private: // Data - - // Message attributes, mainly used with WCDMA - RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 iAttributes; - - // CCbsRecEtel instance to which CB messages are passed. - CCbsRecEtel& iRecEtel; - - }; - -#endif // CCBSMESSAGEFACTORY_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsObject.h --- a/cbs/CbsServer/ServerInc/CCbsObject.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -/* -* Copyright (c) 2003 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: This class represents the base class for all server-side subsession -* classes. -* -*/ - - -#ifndef CCBSOBJECT_H -#define CCBSOBJECT_H - -// INCLUDES - -#include -#include "CbsCommon.h" - -// FORWARD DECLARATIONS -class CCbsSession; - -// CLASS DECLARATION - -/** -* CCbsSession is the base class for the classes that represent -* server-side subsessions. -* -* It provides some convience functions is remove redundancy of -* subsession classes. -*/ -class CCbsObject : public CObject - { - public: // New functions - /** - * Constructor. - * - * @param aSession Pointer to the session. - */ - CCbsObject( CCbsSession& aSession ); - - /** - * Destructor. - */ - ~CCbsObject(); - - /** - * Handles the requests for the object. - * - * Implemented in subsession classes. - * - * @param aMessage Request to be handled. - * @return Boolean value indicating whether - * the request was handled. - */ - virtual TBool HandleRequestsL( const RMessage2& aMessage ) = 0; - - /** - * Returns the message of current client request. - * - * @return The message object of the current - * client request. - */ - const RMessage2& Message(); - - /** - * Returns a reference to the session. - * - * @return Main session object. - */ - CCbsSession& Session(); - - /** - * Panics the client. - * - * @param aPanic Reason for panic. - */ - void PanicClient( TCbsSessionPanic aPanic ) const; - - private: // Data - - // The session to which this object belongs. - CCbsSession& iSession; - - }; - -#endif // CCBSOBJECT_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsRecCollector.h --- a/cbs/CbsServer/ServerInc/CCbsRecCollector.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,207 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsRecCollector class. -* -*/ - - -#ifndef CCBSRECCOLLECTOR_H -#define CCBSRECCOLLECTOR_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class TCbsMessageCompletion; -class CCbsRecMessage; -class CCbsMessage; -class CCbsMessageFactory; -class CCbsMessageCleanupTimer; - -// DATA TYPES -// Dynamic array that contains collected message pages -typedef CArrayPtrFlat CMessageBuffer; - - -// CLASS DECLARATION - -/** -* This class represents a collector, which stores pages of multipaged -* messages. Complete messages are assembled and returned back to -* the caller of CollectL() method. -* -* CCbsRecCollector stores message pages in a number of dynamic arrays. -* If all but one page of a message are present in collector, and -* the remaining page is received, the pages will be assembled and -* the corresponding message chain deleted. -* -* The maximum number of incomplete messages stored in collector at once -* is fixed and determined by KMaxCollectorMessages in CCbsRecCollector.cpp. -* -* CCbsRecCollector implements a circular list to contain message. -* Each incomplete message occupies a slot in this list. If the list already -* contains KMaxCollectorMessages messages, the next received multipaged -* message will delete all received pages of the oldest message in list. -* -* On receival of a message page, the collector compares network information -* (PLMN, LAC, CellId) of both messages to decide whether pages are of -* the same message. In short, for pages to be of the same message -* their network information have to meet the requirements set by the -* geographical scope of the already collected page. -* See ETSI GSM 03.41 for a detailed description. -* -*/ -class CCbsRecCollector : public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aFactory Message factory instance - * @return New CCbsRecCollector instance - */ - static CCbsRecCollector* NewL( CCbsMessageFactory& aFactory ); - - /** - * Destructor. - */ - virtual ~CCbsRecCollector(); - - public: // New functions - - /** - * Called by the Receiver when a multipaged message is received. - * This method checks for other pages of this message to be - * present in the collector. If all pages are present the - * collector returns a pointer to completed message. - * - * If some pages are still missing, function stores - * the message page and returns NULL. - * - * @param aMessage Multipaged message page - * @return NULL or completed CB message - */ - CCbsMessage* CollectL( CCbsMessage* aMessage, TInt aMessageType ); - - /** - * Deletes all message pages contained in aArray. - * - * @param aArray Message chain. - */ - void DeleteChainL( CMessageBuffer& aArray ) const; - - private: // new functions - - /** - * C++ default constructor. - * - * @param aListener Message factory instance - */ - CCbsRecCollector( CCbsMessageFactory& aFactory ); - - /** - * By default constructor is private. - */ - void ConstructL(); - - /** - * Counts pages in message chain aArray and compares the result - * against the total number of pages in the message. - - * @param aArray Message chain. - * @return ETrue, if the chain contains all pages - * of the message and is ready to be - * merged. - */ - TBool AllPagesPresent( const CMessageBuffer& aArray ) const; - - /** - * Merges all pages in message chain aArray and returns - * a pointer to the resulting assembled message. The pointer - * is also left on the cleanup stack. - * - * @param aArray Message chain - * @return Completed CB message - */ - CCbsMessage* MergePagesLC( CMessageBuffer& aArray ) const; - - /** - * Finds and returns a message chain which already contains pages - * of aMessage's message. If none is found, NULL is returned. - * - * @param aMessage Message page for which a correct chain - * is sought. - * @return NULL or message chain that contains - * aMessage's pages. - */ - CMessageBuffer* FindChainContainingPage( const CCbsMessage& aMessage ) const; - - /** - * Adds message page aMessage to the correct position in message chain - * aArray. Message chains are ordered in ascending page number order. - * Duplicate pages are not accepted. - * - * Ownership of aMessage is transferred to aArray, if the given page - * hasn't been already collected. The given page will be deleted, - * if it already exists in the chain. - * - * @param aMessage Message page, which is inserted into - * the chain. - * @param aArray Message chain. - */ - void AddMessageToChainL( CCbsMessage* aMessage, - CMessageBuffer& aArray ) const; - - /** - * Checks if these pages can be merged. Returns ETrue, if merging is - * acceptable. - * - * Decision is based network information and geographical scope of - * pages. Network information consists of cell id, location area code - * and operator id. - * - * @param aPage1 Message page. - * @param aPage2 Message page. - */ - TBool CheckPageAreaInfoMatch( const CCbsMessage& aPage1, - const CCbsMessage& aPage2 ) const; - - private: // prohibited functions - // Prohibited copy constructor - CCbsRecCollector( const CCbsRecCollector& ); - - // Prohibited assignment operator - CCbsRecCollector& operator=( const CCbsRecCollector& ); - - private: // data - // Contains pointers to buffers, each containing a single partial - // message with 1 or more pages. - CArrayPtrFlat< CMessageBuffer >* iRootNodeArray; - - // An iterator which points to a location in iRootNodeArray next used - // to store a page of a message, which is "new" to the collector. - // Being "new" here means that the collector doesn't contain any - // pages of this message. - TInt iRootNodeIterator; - - // Message factory - CCbsMessageFactory& iFactory; - CArrayPtrFlat< CCbsMessageCleanupTimer >* iMessageCleanupTimerArray; - - }; - -#endif // CCBSRECCOLLECTOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsRecDecoder.h --- a/cbs/CbsServer/ServerInc/CCbsRecDecoder.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,150 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsRecDecoder class -* -*/ - - -#ifndef CCBSRECDECODER_H -#define CCBSRECDECODER_H - -// INCLUDES - -#include -#include - -// FORWARD DECLARATIONS - -class CCnvCharacterSetConverter; -class CCbsRecMessage; -class CCbsRecWcdmaMessage; -class CCbsMessage; - -// CLASS DECLARATION - -/** -* CCbsRecDecoder handles decoding of message contents. -* -* CbsServer receives messages stored in 8-bit descriptors -* from ETel. This class converts them into 16-bit descriptors -* and decodes the message representation into UCS-2 (which -* is used by Symbian OS internally). -* -*/ -class CCbsRecDecoder : public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @returns New instance of CCbsRecDecoder. - */ - static CCbsRecDecoder* NewL(); - - /** - * Destructor. - */ - virtual ~CCbsRecDecoder(); - - public: // New functions - - /** - * Decodes message page into Unicode representation. - * - * If the message has a language indication prefixed - * in the message body, the indication is removed. - * - * Compressed messages are not supported. - * - * Leave reasons: - * KErrNotSupported Message compressed or of unsupported character - * coding. - * KErrNoMemory OOM. - * KErrGeneral Failed due to other reasons. - * - * @param aMessage Message page. - */ - void DecodeL( CCbsMessage& aMessage ); - - private: // New functions - - // Default constructor. - CCbsRecDecoder(); - - // Prohibited copy constructor. - CCbsRecDecoder( const CCbsRecDecoder& ); - - // Prohibited assignment operator. - CCbsRecDecoder& operator=( const CCbsRecDecoder& ); - - /** - * 2nd-phase constructor. - */ - void ConstructL(); - - /** - * Decodes the given message's content. - * - * @param aMessage CB message - */ - void DoDecodeL( CCbsMessage& aMessage ); - - /** - * Decodes 8-bit and Unicode message representations. - * - * @param aMsg CB message encoded in UCS2 - */ - void UnicodeDecodeL( CCbsMessage& aMsg ); - - /** - * Decodes 7-bit message representation. - * - * @param aMsg CB message encoded in 7-bit - */ - void DefaultAlphabetDecodeL( CCbsMessage& aMsg ); - - /** - * Decodes 8-bit message representation. - * - * @param aMsg CB message encoded in 8-bit - */ - void EightbitAlphabetDecodeL( CCbsMessage& aMsg ); - - /** - * Removes the trailing CRs from a message. - * - * @param aText Text from which the CR is to be removed - */ - TPtrC RemoveTrailingCR( const TDesC& aText ); - - /** - * Removes trailing CRs and LFs from a 7-bit Cell info message. - * - * @param aText Text from which the CR is to be removed - * @return Text with no CRs or LFs - */ - TPtrC8 RemoveTrailingControlChars( const TDesC8& aText ); - - private: // Data - // Own: character converter for 8-bit and UCS2 encodings - CCnvCharacterSetConverter* iConverter; - - // File server session - RFs iFs; - }; - -#endif // CBSRECDECODER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsRecEtel.h --- a/cbs/CbsServer/ServerInc/CCbsRecEtel.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,457 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsRecEtel class -* -*/ - - -#ifndef CCBSRECETEL_H -#define CCBSRECETEL_H - - -// INCLUDES -#include -#include "MCbsEtelMessaging.h" - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -#include // SIM topics - -// CONSTANTS - /***************************************************** - * Series 60 Customer / TSY - * Needs customer TSY implementation - *****************************************************/ - -// FORWARD DECLARATIONS -class CCbsEtelFactory; -class CCbsRecEtelMonitor; -class CCbsRecCollector; -class CCbsRecDecoder; -class CCbsRecNetworkListener; -class CCbsRecMessage; -class CCbsReceiverHelper; -class MCbsMcnSubscriptionsProvider; -class CCbsSetFilterSettingHandler; -class CCbsRecWcdmaMessage; -class CCbsMessage; -class CCbsMessageFactory; -class CCbsLivecastHandler; - - -// CLASS DECLARATION - -/** -* CCbsRecEtel sets up the receiver subsystem for receiving CBS messages -* from the ETEL server. -* -* This class creates instances of CCbsRecEtelMonitor to communicate with -* ETel server, CCbsRecDecoder to decode message pages and -* CCbsRecCollector to combine partial messages together. CCbsRecEtel -* sends completed messages to the database via an interface -* class CCbsReceiverHelper. -* -* An instance of CCbsRecNetworkListener is created to monitor network -* state changes and report them to CCbsRecEtel instance. -* -* CCbsRecEtel is also responsible for controlling the CBMI list entries -* in ME defining Message Identifiers and DCSes that are to be received. -* -* CCbsRecEtel instance does not store information on what topics and -* languages to subscribe. Instead, on call to ApplyStateChangesL(), -* subscriptions and other CB settings are retrieved from the database -* and passed to EPOC Telephony server. -* -* Thus, after topic subscriptions, languages or reception status have -* been modified, a call to ApplyStateChangesL() has to be made in order -* to actually bring the changes into effect. -* -* ON SUBSCRIPTION OF TOPICS AND LANGUAGES -* -* Although EPOC Telephony server can be requested to relay messages of certain topics and -* languages, there is a couple of things to note. -* -* 1. In order to detect topics broadcasted within the current region, all -* CB messages have to be received. This is done by subscribing all topics -* and languages. -* -* 2. Since MCN clients may subscribe any number of topics, topic filtering -* has to be made to remove messages not requested by the UI client. -* -* 3. All languages have to be subscribed at all times. This is because -* TSY limits the number of languages and a single language (e.g., English), -* may be represented by multiple DCS values. In addition, CBS specification -* tells that any message in unspecified language has to be received. -* Thus the only possibility here is to ignore EPOC Telephony server provided facilities -* to filter languages, and implement filtering in CbsServer. -* This is done in CCbsReceiverHelper. -*/ -class CCbsRecEtel : public CBase - { - public: // New functions - - /** - * Creates an instance of the class. - * - * @return A new instance of CCbsRecEtel. - */ - static CCbsRecEtel* NewL(); - - /** - * Destructor. - */ - ~CCbsRecEtel(); - - /** - * Called by the network listener (instance of CCbsRecEtelMonitor) - * to indicate that a new message has been received and must be - * handled. - * - * The message page is decoded, cell information (if present) is - * extracted and routed to MCN clients. Pages of multipaged messages - * are then given to the collector. If the message is completed - * (all pages collected) or the message is singlepaged, it is - * given onwards to CCbsReceiverHelper. - * - * Note that a multipaged message page is routed to MCN clients - * before it is assembled. This is acceptable because maximum - * length of a MCN message is specified to be 20 characters. - * - * Ownership of aMessage transferred to CCbsRecEtel. - * - * @param aMessage A pointer to the message page received. - */ - void HandleMessageReceivedL( CCbsMessage* aMessage ); - - /** - * Augments aMessage with current network information (i.e., PLMN, LAC - * and Cell ID). Does nothing if the network listener iListener - * is unavailable. - * - * @param aMessage Message page. - */ - TInt AddNetworkInfo( CCbsMessage& aMessage ) const; - - /** - * Sets the interface to which all accepted messages are given. - * - * @param aInterface A pointer to the receiver interface. - */ - void SetInterface( CCbsReceiverHelper* aInterface ); - - /** - * Returns the current and maximum number of subscribed topics. - * - * Topic restrictions are imposed by the TSY in use. - * - * @param aTotal Total amount of subscribed topics. - * @param aMax Maximum amount of subscribed topics. - */ - void GetSubscriptionsLimitsL( TInt& aTotal, TInt& aMax ); - - /** - * MCN client sessions register to CCbsRecEtel using this function. - * - * When topic subscriptions are gathered during execution of - * ApplyStateChangesL(), subscriptions of each registered subscription - * provider are added to the CBMI list that determines which - * topics are received. - * - * @param aProvider Topic subscription providing instance - */ - void AddSubscriptionProviderL( - MCbsMcnSubscriptionsProvider* aProvider ); - - /** - * Removes a topic subscription provider. - * - * @param aProvider Topic subscription providing instance - */ - void RemoveSubscriptionProviderL( - const MCbsMcnSubscriptionsProvider* aProvider ); - - /** - * Retrieves current subscriptions, languages and settings - * from DB. This data is augmented by topic subscription - * information retrieved from MCN client(s). Resulting - * topic subscriptions, languages and settings will then - * be requested from EPOC Telephony server. - * - */ - void ApplyStateChangesL(); - - /** - * Returns the current cell information. - * - * The information is retrieved from the last cell information - * message received. - * - * Result codes: - * KErrNone Operation successful, aCellInfo - * contains a valid cell info message - * KErrNotFound Cell information hasn't been received - * yet - aCellInfo is invalid. - * - * @param aInfoMessage Current info message - * @param aTopicNumber Number of the topic that - * the msg belongs to - * @return Result code - */ - TInt GetCurrentMessage( TDes& aInfoMessage, TInt aTopicNumber ); - - /** - * Loads CB topics from SIM and adds them on the topic list. - * A topic is not added on the list if the same topic - * already exists on the list. This identification is done - * by the number of the topic only. - * - * The name of an added topic will be taken from SIM. - * If no name has been associated with the topic, the string - * will be given to the topic. - * - * Result codes: - * KErrNotSupported TSY does not support SIM topics. - * - * @return Result code. - */ - TInt LoadSimTopicsL(); - - /** - * Deletes a CB topic matching the given topic number from SIM. - * - * Leaves if the operation is unsuccessful. - * - * @param aNumber Number of topic to be deleted from SIM. - * @param aDeleteAll Are we deleting all SIM topics, ETrue/EFalse - */ - void DeleteSimTopicL( const TUint16 aNumber, const TBool aDeleteAll ); - - /** - * Deletes all topics from the SIM card. - * - * Leaves if the operation is unsuccessful. - * - */ - void DeleteAllSimTopicsL(); - - /** - * Passes the given CB message to each registered subscriptions - * provider (a subscription provider is a MCN client wishing - * CB message routing service). - * - * @param aMessage CB message - */ - void RouteMessageL( const CCbsMessage& aMessage ); - - /** - * Returns the message collector reference. - * - * @return Collector reference - */ - CCbsRecCollector& Collector(); - - /** - * Returns the receiver helper reference. - * - * @return Receiver helper reference - */ - CCbsReceiverHelper& Interface() const; - - private: - - /** - * Constructor. - */ - CCbsRecEtel(); - - /** - * Finalizes the construction. - */ - void ConstructL(); - - /** - * Establishes a connection with the EPOC Telephony server. - * - * Also opens the necessary EPOC Telephony server resources such as RMobilePhone and - * RMobileBroadcastMessaging sessions. - */ - void ConnectToEtelL(); - - /** - * Sets the given CB reception mode on ME. - * - * @param aSetting CB receive mode - */ - void SetReceptionStatusL( - RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter aSetting ); - - /** - * Returns the total number of topic subscriptions made by - * MCN clients registered to the server. - * - * @return Number of subscriptions by - * MCN clients. - */ - TUint NumberOfMcnSubscriptions() const; - - /** - * Copies cell information message body into an internal - * cache. This way MCN clients can be provided the current - * cell information message even without message routing service. - * - * The given message is assumed to be a valid cell information - * message (CB message of topic 050). - * - * @param aMessage Cell information message - */ - void ExtractCellInformation( const CCbsMessage& aMessage ); - - /** - * Copies cell information message body into an internal - * cache. This way MCN clients can be provided the current - * HomeZone message even without message routing service. - * - * The given message is assumed to be a valid HomeZone - * message (CB message of topic 221). - * - * @param aMessage Cell information message - */ - void ExtractHomeZoneInformation( const CCbsMessage& aMessage ); - - /** - * Checks if the time of the day is such that the user does - * not want to receive any messages. - * - * @param aMessage CB message - * @return ETrue if the message should - * be recived, otherwise EFalse. - */ - TBool CheckTimeL( const CCbsMessage* aMessage ); - - private: // Data - - // Own: Collector, which is responsible for combining multipaged - // messages. - CCbsRecCollector* iCollector; - - // Own: responsible for converting 7-bit and 8-bit representations - // into UCS-2. - CCbsRecDecoder* iDecoder; - - // Current reception status. This is a cached version of - // a variable stored in ME/SIM. - RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter iReception; - - // Ref: interface to the server. - CCbsReceiverHelper* iInterface; - - // Own: SMS messaging object for receiving CBS message pages - // from the EPOC Telephony server. - MCbsEtelMessaging* iMessaging; - - // Own: ETel monitor receives the message pages and forwards them to - // CCbsRecEtel. - CCbsRecEtelMonitor* iEtelMonitor; - - // Own: Filter setting handler processes asynchronous - // Set Filter Setting command. - CCbsSetFilterSettingHandler* iFilterSettingHandler; - - // EPOC Telephony server session. - RTelServer iEtelServer; - - // Represents the GSM phone used for messaging and network information - // retrieving. - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone iGsmPhone; - - // Custom API is used for SIM Topic handling. - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMmCustomAPI iCustomPhone; - - // Own: active object which listens to changes in network state - // and reports them to CCbsRecEtel instance. - CCbsRecNetworkListener* iNetworkListener; - - // Own: set of MCN sessions that provide their topic subscriptions and - // get cell information routing services - CArrayFixFlat< MCbsMcnSubscriptionsProvider* >* iSubscriptionProviders; - - // ETrue if a cell information message has been received. - TBool iCellInfoReceived; - - // Current reception status. This is a cached version of - // a variable stored in ME. - TBool iReceptionEnabled; - - // Current cell information message. - TMcnMessage iCurrentCellInfoMessage; - - // Has the user set a time to limit the reception - TBool iLimitedReception; - - // The current time - TTime iNow; - TDateTime iDateTimeNow; - - // Start and end times of limited reception - TTime iStartTime; - TTime iEndTime; - - // Cell info cache variables - RMobilePhone::TMobilePhoneNetworkInfoV1 iCellInfoPLMN; - TUint iCellInfoLAC; - TUint iCellInfoCellId; - - // ETrue if HomeZone message has been received - TBool iHomeZoneReceived; - - // HomeZone cache variables - RMobilePhone::TMobilePhoneNetworkInfoV1 iHomeZonePLMN; - TUint iHomeZoneLAC; - TUint iHomeZoneCellId; - - // Current HomeZone message - TMcnMessage iCurrentHomeZoneMessage; - - // Message factory - CCbsMessageFactory* iFactory; - - // LC message handler - CCbsLivecastHandler* iLivecastHandler; - - // Local variation bits, fetched from CenRep - TInt iLVBits; - - // Indication of new SIM Topics - TBool iNewSimTopicsAdded; - - __DECLARE_TEST; - }; - -#endif // CCBSRECETEL_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsRecEtelMonitor.h --- a/cbs/CbsServer/ServerInc/CCbsRecEtelMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,150 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsRecEtelMonitor class -* -* This class receives CBS message pages from the EPOC Telephony server and -* sends them to a CCbsRecEtel instance. -* -*/ - - - -#ifndef CCBSRECETELMONITOR_H -#define CCBSRECETELMONITOR_H - -// INCLUDES - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -#include - -// FORWARD DECLARATIONS -class TGsmBroadcastMessageData; -class CCbsRecEtel; -class MCbsEtelMessaging; -class CCbsMessageFactory; -class CCbsLivecastHandler; - -// CLASS DECLARATION - -/** -* CCbsRecEtelMonitor is an active object handling the reception of -* CB message pages from the EPOC Telephony server. -* -* CCbsRecMessages are constructed from the received CBS message pages and -* forwarded to an instance of CCbsRecEtel for decoding. -* Constructing a whole message, in case of multipage messages, is also left -* to CCbsRecEtel and CCbsRecCollector. -*/ -class CCbsRecEtelMonitor : public CActive - { - public: // New functions - - /** - * Creates an instance of the class. - * - * @param aEtel A reference to the receiver - * @param aSmsMessaging A reference to the messaging object - * @param aFactory A reference to the message factory - * @param aLivecastHandler A reference to the Livecast handler - * @return A new instance of CCbsRecEtelMonitor - */ - static CCbsRecEtelMonitor* NewL( CCbsRecEtel& aEtel, - MCbsEtelMessaging& aSmsMessaging, - CCbsMessageFactory& aFactory, - CCbsLivecastHandler& aLivecastHandler ); - - /** - * Destructor. - */ - ~CCbsRecEtelMonitor(); - - /** - * Requests EPOC Telephony server to forward next received CB message to - * this object. - */ - void IssueRequest(); - - private: // From CActive - - /** - * Becomes active when EPOC Telephony server has copied a CB message to - * iCbsMessagePage. The page is then given to CCbsRecEtel for - * processing. - * - * Finally this function reissues the ReceiveMessage request. - */ - void RunL(); - - /** - * Cancels an outstanding ReceiveMessage request. - */ - void DoCancel(); - - private: - - /** - * The constructor. - * - * @param aEtel CCbsRecEtel object. - * @param aMessaging ETel messaging object - * @param aFactory A reference to the message factory - * @param aLivecastHandler A reference to the Livecast handler - */ - CCbsRecEtelMonitor( CCbsRecEtel& aEtel, MCbsEtelMessaging& aMessaging, - CCbsMessageFactory& aFactory, CCbsLivecastHandler& aLivecastHandler ); - - /** - * Finalizes the construction. - */ - void ConstructL(); - - private: // Data - - // CCbsRecEtel instance to which CB messages are passed. - CCbsRecEtel& iEtel; - - // Messaging subsession. - MCbsEtelMessaging& iSmsMessaging; - - /** - * Message page is stored here when the monitor becomes active - * due the arrival of a CBS message. - */ - // Message data - RMobileBroadcastMessaging::TBroadcastPageData iMsgData; - - // Attributedata of an incoming broadcast message - RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 iAttributes; - - // Attributepackage of an incoming broadcast message - RMobileBroadcastMessaging::TMobileBroadcastAttributesV2Pckg iMsgAttributesPckg; - - // Message factory - CCbsMessageFactory& iFactory; - - // LC message handler - CCbsLivecastHandler& iLivecastHandler; - - // Is Newsticker feature supported - TBool iNewstickerSupported; - - }; - -#endif // CCBSRECETELMONITOR_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsRecMessage.h --- a/cbs/CbsServer/ServerInc/CCbsRecMessage.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsRecMessage class -* -*/ - - -#ifndef CCBSRECMESSAGE_H -#define CCBSRECMESSAGE_H - -// INCLUDES - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -#include - -#include "CbsCommon.h" -#include "CCbsMessage.h" - -// CLASS DECLARATION - -/** -* CCbsRecMessage represents a message page generated by CCbsRecEtelMonitor. -* -* CCbsRecMessage is constructed from a CB message page received from -* EPOC Telephony Server. -*/ -class CCbsRecMessage : public CCbsMessage - { - public: // Constructors and destructors - - /** - * Constructs a new CCbsRecMessage based on TDes8& - * (which is a descriptor) received from EPOC Telephony Server. - * - * @param aMessagePage Source message descriptor - * @return A new instance of CCbsRecMessage - */ - static CCbsRecMessage* NewL( const TDes8& aMessagePage ); - - /** - * Copy constructor - * - * @param aMessagePage Source CCbsRecMessage instance - * @return A new instance of CCbsRecMessage - */ - static CCbsRecMessage* NewL( const CCbsMessage& aMessagePage ); - - /** - * Destructor - */ - ~CCbsRecMessage(); - - public: - - /** - * Returns the page number of this page in the message page sequence, - * - * @return Page number of this page. - */ - TUint ThisPage() const; - - /** - * Returns the total number of pages in this page's message. - * - * @return Total number of pages in this message - */ - TUint TotalPages() const; - - public: // from CCbsMessage - - /** - * Returns the type of the message (only in WCDMA) - * - * @return Type of this message - */ - TInt MessageType() const; - - protected: - - /** - * Default constructor - */ - CCbsRecMessage(); - - private: - - /** - * 2nd-phase constructor. - * - * @param aMessagePage Message page - */ - void ConstructL( const TDes8& aMessagePage ); - - /** - * 2nd-phase copy constructor. - * - * @param aMessagePage Message page - */ - void ConstructL( const CCbsMessage& aMessagePage ); - - - private: // prohibited functions and operators - - // Copy constructor: NewL() used instead - CCbsRecMessage( const CCbsRecMessage& ); - - // Assignment operator - CCbsRecMessage& operator=( const CCbsRecMessage& ); - - }; - -#endif // CCBSRECMESSAGE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsRecNetworkListener.h --- a/cbs/CbsServer/ServerInc/CCbsRecNetworkListener.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,168 +0,0 @@ -/* -* Copyright (c) 2003-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: This file contains the header file of the CCbsRecNetworkListener class -* -*/ - - -#ifndef CCBSRECNETWORKLISTENER_H -#define CCBSRECNETWORKLISTENER_H - -// FORWARD DECLARATIONS -class RMobilePhone; - -// CLASS DECLARATION - -/** -* CCbsRecNetworkListener is used to keep CbsServer up to date -* with the current network information. This information -* is used to assemble multipaged CB messages. -* -* This is an active object which receives notifications from EPOC Telephony Server -* when the current network information changes. A request for -* new network information is constantly held active at EPOC Telephony Server, -* first requested at the time of construction of CCbsRecNetworkListener. -* -* Network information can be retrieved from CCbsRecNetworkListener -* with GetCurrentNetworkInfo(). -*/ -class CCbsRecNetworkListener : public CActive - { - public: // New functions - - /** - * Creates an instance of the class. - * - * @param aPhone Open phone session. - * @return A pointer to the created instance. - */ - static CCbsRecNetworkListener* NewL( RMobilePhone& aPhone ); - - /** - * Destructor. - */ - ~CCbsRecNetworkListener(); - - /** - * Fetches the current networking info. - * - * Returns KErrNotFound, if the current network info hasn't been - * received yet. Otherwise KErrNone is returned. - * - * @param aNetworkInfo Return: current network information. - * @param aArea Return: current area information - * @return Result code - */ - TInt GetCurrentNetworkInfo( - RMobilePhone::TMobilePhoneNetworkInfoV1& aNetworkInfo, - RMobilePhone::TMobilePhoneLocationAreaV1& aArea ); - - private: // From CActive - /** - * Called whenever EPOC Telephony Server notifies this object of the presence - * of updated network information. - */ - void RunL(); - - /** - * Called whenever the listener has been requested to cancel. - */ - void DoCancel(); - - private: // new functions - - /** - * Default constructor. - * - * @param aPhone Reference to phone object - */ - CCbsRecNetworkListener( RMobilePhone& aPhone ); - - /** - * Finalizes the construction. - */ - void ConstructL(); - - /** - * Requests getting current network from EPOC Telephony Server. - * - * Called when CCbsRecNetworkListener is constructed. - */ - void IssueGetCurrentNwRequest(); - - /** - * Requests notification of network registration state change from - * EPOC Telephony Server. - */ - void IssueNotifyNwRegChangeRequest(); - - /** - * Requests notification of network state change from EPOC Telephony Server. - */ - void IssueNotifyNwChangeRequest(); - - /** - * When the current request is GetCurrentNetwork, handle the return result - */ - void HandleGetCurrentNetworkResult(); - - /** - * When the current request is NotifyNetworkRegistrationStatusChange, - * handle the return result - */ - void HandleNotifyNetworkRegistrationStatusChangeResult(); - - /** - * When the current request is NotifyCurrentNetworkChange, - * handle the return result - */ - void HandleNotifyCurrentNetworkChangeResult(); - - // Prohibited copy constructor - CCbsRecNetworkListener( const RMobilePhone& ); - - // Prohibited assignment operator - CCbsRecNetworkListener& operator=( const RMobilePhone& ); - - private: // Data - // ETrue, if iNetworkInfo contains current network information - TBool iNetworkInfoRetrieved; - - // Phone instance - RMobilePhone& iPhone; - - // Current network information data - RMobilePhone::TMobilePhoneNetworkInfoV1 iNetworkInfo; - - // Current network information package - RMobilePhone::TMobilePhoneNetworkInfoV1Pckg iNetworkInfoPckg; - - // Current area information - RMobilePhone::TMobilePhoneLocationAreaV1 iArea; - - // Status info - TBool iGetCurrentNetworkActive; - - // Status of notification of network registration state change - TBool iNotifyNwRegChange; - - // Network registration information - RMobilePhone::TMobilePhoneRegistrationStatus iRegistration; - }; - -#endif // CCBSRECNETWORKLISTENER_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsRecWcdmaMessage.h --- a/cbs/CbsServer/ServerInc/CCbsRecWcdmaMessage.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,144 +0,0 @@ -/* -* Copyright (c) 2004 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: This file contains the header file of the CCbsRecWcdmaMessage -* class. -* -*/ - - -#ifndef CCBSRECWCDMAMESSAGE_H -#define CCBSRECWCDMAMESSAGE_H - -// INCLUDES - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -#include - -#include "CbsCommon.h" -#include "CbsReceiverTypes.h" -#include "CCbsMessage.h" - - -// CLASS DECLARATION - -/** -* CCbsRecWcdmaMessage represents a WCDMA message page generated by -* CCbsRecEtelMonitor. -* -* CCbsRecWcdmaMessage is constructed from a CB message page received from -* EPOC Telephony Server. -*/ -class CCbsRecWcdmaMessage : public CCbsMessage - { - public: // Constructors and Destructors - /** - * Constructs a new CCbsRecMessage based on TDes8& - * (which is a descriptor) received from EPOC Telephony Server. - * - * @param aMessagePage Source message descriptor - * @param aAttributes Message attributes - * @return A new instance of CCbsRecWcdmaMessage - */ - static CCbsRecWcdmaMessage* NewL( const TDes8& aMessagePage, - const RMobileBroadcastMessaging::TMobileBroadcastAttributesV2& aAttributes ); - - /** - * Constructs a new CCbsRecMessage based on TDes8& - * (which is a descriptor) received from EPOC Telephony Server. - * - * @param aMessage Source message - * @return A new instance of CCbsRecWcdmaMessage - */ - static CCbsRecWcdmaMessage* NewL( const CCbsMessage& aMessage ); - - /** - * Destructor - */ - ~CCbsRecWcdmaMessage(); - - public: - /** - * Returns the page number of this page in the message page sequence, - * - * @return Page number of this page. - */ - TUint ThisPage() const; - - /** - * Returns the total number of pages in this page's message. - * - * @return Total number of pages in this message - */ - TUint TotalPages() const; - - public: // from CCbsMessage - - /** - * Appends another message's content to this message's content. - * - * @return Type of this message - */ - TInt MessageType() const; - - private: - - /** - * 2nd-phase constructor. - * - * @param aMessagePage Message page - * @param aAttributes Message attributes - */ - void ConstructL( const TDes8& aMessagePage, - const RMobileBroadcastMessaging::TMobileBroadcastAttributesV2& aAttributes ); - - /** - * 2nd-phase constructor. - * - * @param aMessage Message page - */ - void ConstructL( const CCbsMessage& aMessage ); - - /** - * Default constructor - */ - CCbsRecWcdmaMessage( const RMobileBroadcastMessaging::TMobileBroadcastAttributesV2& aAttributes ); - - /** - * Default constructor - */ - CCbsRecWcdmaMessage(); - - private: // prohibited functions and operators - - // Copy constructor: NewL() used instead - CCbsRecWcdmaMessage( const CCbsRecWcdmaMessage& ); - - // Assignment operator - CCbsRecWcdmaMessage& operator=( const CCbsRecWcdmaMessage& ); - - private: // data - - // Message type (CBS message, schedule message, CBS41 message) - TUint8 iMessageType; - - // WCDMA message attributes - RMobileBroadcastMessaging::TMobileBroadcastAttributesV2 iWcdmaAttributes; - - }; - -#endif // CCBSRECWCDMAMESSAGE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsReceiverHelper.h --- a/cbs/CbsServer/ServerInc/CCbsReceiverHelper.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,275 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsReceiverHelper class. -* -*/ - - -#ifndef CCBSRECEIVERHELPER_H -#define CCBSRECEIVERHELPER_H - -// INCLUDES -#include -#include "CbsCommon.h" - -// FORWARD DECLARATIONS -class CCbsRecMessage; -class CCbsServer; -class CCbsDbImp; -class CVwsSessionWrapper; -class CCbsMessage; - - -// CLASS DECLARATION - -/** -* CCbsReceiverHelper gets the messages from the receiver and -* sends them to the database. All received messages are -* sent to CCbsReceiverHelper instance by CCbsRecEtel. -* This class makes subscription and existence checks -* to these messages and also implements topic detection -* feature. -*/ -class CCbsReceiverHelper : public CBase - { - public: // New functions - - /** - * Creates an instance of the class. - * - * @param aDatabase Database object. - * @return New CCbsReceiverHelper instance. - */ - static CCbsReceiverHelper* NewL( CCbsDbImp& aDatabase ); - - /** - * The destructor. - */ - ~CCbsReceiverHelper(); - - /** - * Clears the topic detected counter. - */ - void ClearTopicsDetectedCounter(); - - /** - * Returns the amount of detected topics. - * - * @return The amount of detected topics. - */ - TUint TopicsDetected() const; - - /** - * This function is called when a message is received. - * - * Assumptions; - * 1. The message doesn't have it's permanent or read - * flags raised - method leaves with KErrNotSupported - * if this is the case. - * 2. If an index message (root or subindex) is passed as - * a parameter, the language indication prefix, if any, - * has been removed before HandleReceivedMessageL() is called. - * - * Assumption (2) holds because language indications are removed - * by Receiver module in an instance of CCbsRecDecoder. - * - * Exceptions: - * KErrNoMemory OOM occurred. - * KErrNotSupported aMessage's flags were invalid. - * KErrAlreadyExists aMessage is already stored in - * the database. - * - * @param aMessage Interface to get the information - * about the message. - */ - void HandleReceivedMessageL( CCbsMessage& aMessage ); - - /** - * Checks if aMessage's topic is in the topic list. - * If the topic detection is enabled and the aMessage's topic - * is not in the list, the topic is added. The method - * will then return ETrue. Otherwise EFalse is returned. - * - * @param aMessage Message page. - * @return ETrue, if topic added - */ - TBool CheckForNewTopicL( const CCbsMessage& aMessage ); - - /** - * Checks if aMessage's topic is subscribed and - * if the message already exists in the database. - * - * Returns ETrue only if the message does not exist in the - * database and the message's topic is subscribed. - * - * @param aMessage Message page. - * @return ETrue, if message can be received - */ - TBool CheckForSubscriptionAndExistenceL( const CCbsMessage& aMessage ); - - /** - * Checks if aMessage's language has been subscribed by the user. - * - * ETrue is returned either if the language specified has been - * subscribed, message language is "Other" or the user has - * preferred to receive messages of all languages. - * - * @param aMessage Message page - * @return ETrue, if message can be received - */ - TBool LanguageOfMessageSubscribedL( const CCbsMessage& aMessage ); - - /** - * Stores the CB topic (aNumber, aName) retrieved from - * SIM into the DB. If a topic of the same number already exists - * in DB, does nothing. - * - * @param aNumber Number of the topic. - * @param aName Name of the topic. - */ - void AddSimTopicL( const TUint aNumber, const TDesC& aName ); - - /** - * Returns a reference to the CCbsDbImp instance. - * - * @return Main database object. - */ - CCbsDbImp& Database() const; - - /** - * Returns a reference to SIM Topic array - * - * @return SIM Topic array. - */ - CArrayFixFlat& SimTopics() const; - - /** - * Deletes a topic from the local SIM Topic array. - * - * @param aNumber Number of the topic. - */ - void DeleteFromSimTopicCache( const TUint16 aNumber ); - - /** - * Requests a notification to be launched when a message - * arrives to a hotmarked topic. - * - * @param aPlayTone Should the message alert tone be - * played. - */ - void LaunchMessageSoftNotificationL( const TBool aPlayTone ); - - private: - - /** - * The constructor. - * - * @param aDatabase Database object. - * @param aServer Server object. - */ - CCbsReceiverHelper( CCbsDbImp& aDatabase ); - - /** - Finalizes the construction. - */ - void ConstructL(); - - /** - * Handles detected topic. - * - * @param iTopicNumber The number of the topic detected. - * @return ETrue if the detected topic is added - * to the topic list. EFalse otherwise. - */ - TBool HandleTopicDetectedL( const TCbsDbTopicNumber& iTopicNumber ); - - /** - * Handles index message. Parses topic identities and - * stores them into the database. - * - * Leave reasons: - * KErrNoMemory OOM occured. - * KErrNotSupported Index message was of unsupported - * version. - * KErrCorrupt Parsing of the index message failed. - * - * @param aContents Index message body. - * @param aIsChildSubIndex ETrue, if child subindex. - * EFalse, if root index. - * @return Result code. - */ - void HandleIndexMessageL( const TDesC& aContents, - const TBool aIsChildSubIndex ); - - /** - * Parses all topic identities from aText which is assumed to be - * an index message's content. - * - * Leave code values: - * KErrNoMemory Storing of topic identities failed - * because of insufficient memory. - * KErrNotSupported Index message identifies itself as - * an index of unknown type to the server. - * KErrCorrupt A problem was encountered while parsing - * the index message content. - * KErrAlreadyExists Index message contained two or more - * identities which shared the same topic - * number. - * - * @param aText Index message body - */ - void ParseTopicIdentitiesL( const TDesC& aText ); - - /** - * Requests a notification to be launched about a message that - * requires immediate displaying. - * - * @param aMessage Message to be displayed - */ - void LaunchMessageImmediateDisplay( const TCbsDbMessage& aMessage ); - - /** - * Turn lights on - */ - void TurnLightsOn(); - - /** - * Play Cbs tone. - */ - void PlayCbsTone(); - - private: // Member variables - - // Reference to the database - CCbsDbImp& iDatabase; - - // Number of topics detected after startup. - TUint iTopicsDetected; - - CArrayFixFlat* iSimTopics; - - // View server session wrapper. - // Used to launch CBS UI application on arrival of - // CB messages designated "requiring immediate display". - CVwsSessionWrapper* iVwsSession; - - // Local variation bits, fetched from CenRep - TInt iLVBits; - }; - -#endif // CCBSRECEIVERHELPER_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsSatRefresh.h --- a/cbs/CbsServer/ServerInc/CCbsSatRefresh.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Monitors sat refresh for cbsserver -* -*/ - - - -#ifndef CCBSSATREFRESH_H -#define CCBSSATREFRESH_H - -// INCLUDES -#include -#include - - -// FORWARD DECLARATIONS -//class CNWGsmMessageHandler; -class RSatSession; -class RSatRefresh; -class RSystemAgent; -class CCbsServer; - -// CLASS DECLARATION - -/** -* Monitors sat refresh for cbsserver -* -*/ -class CCbsSatRefresh : public CBase, public MSatRefreshObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CCbsSatRefresh* NewL( CCbsServer& aCbsServer ); - - /** - * Destructor. - */ - virtual ~CCbsSatRefresh(); - - - private: - - /** - * Executes the NotifyNetworkConnectionFailure function. - * - */ - void IssueRequest(); - - /** - * C++ default constructor. - */ - CCbsSatRefresh( CCbsServer& aCbsServer ); - - - /** - * Refresh query. Client should determine whether it allow the - * refresh to happen. In this method the client should not close or - * cancel the RSatRefresh subsession. - * @since 2.6 - * @param aType Refresh type. - * @param aFiles Elementary files which are to be changed. - * May be zero length. - * @return ETrue to allow refresh, EFalse to decline refresh. - */ - TBool AllowRefresh( TSatRefreshType aType, const TSatRefreshFiles& aFiles ); - - /** - * Notification of refresh. In this method the client should not close - * or cancel the RSatRefresh subsession. - * @since 2.6 - * @param aType Type of refresh which has happened. - * @param aFiles List of elementary files which has been changed. - * May be zero length. - */ - void Refresh( TSatRefreshType aType, const TSatRefreshFiles& aFiles ); - - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - // Reference to cbsserver - CCbsServer& iCbsServer; - // Sat session connection. - RSatSession* iSatSession; - // Sat refresh connection - RSatRefresh* iSatRefresh; - // System agent connection - RSystemAgent* iSystemAgent; - // Is refresh allowed to do. - TBool iAllowRefresh; - }; - -#endif // CCbsSatRefresh_H - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsScheduler.h --- a/cbs/CbsServer/ServerInc/CCbsScheduler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsScheduler class. -* -*/ - - -#ifndef CCBSSCHEDULER_H -#define CCBSSCHEDULER_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class CCbsServer; - -// CLASS DECLARATION - -/** -* CbsServer includes a scheduler of it's own to simplify -* client request handling code. All active object leaves are -* handled in function Error(). The behaviour of Error() -* depends on whether there is an outstanding client request -* or not: it will tell the client the reason for inability -* to handle the client request. It will also panic the -* client if the descriptor passed to the server was malformed. -* Finally, a panic is raised if the error does not originate -* from the server itself. -* -* See Tasker: Professional Symbian Programming, Chapter 20 -* for details. -*/ -class CCbsScheduler : public CActiveScheduler - { -public: // new - - /** - * Default constructor - */ - CCbsScheduler(); - - /** - * Gives a pointer of the current CCbsServer instance - * to the scheduler. - * - * @param aServer The current server pointer - */ - void SetServer( CCbsServer* aServer ); - -public: // from CActiveScheduler - - /** - * Overridden to handle leaves in request functions and - * unexpected situations. - * - * @param aError Error code, - * see Symbian OS system documentation. - */ - void Error( TInt aError ) const; - -private: // prohibited operators and functions - - // Copy constructor - CCbsScheduler( const CCbsScheduler& ); - - // Assignment operator - CCbsScheduler& operator=( const CCbsScheduler& ); - -private: // data - - // Ref: server instance - CCbsServer* iServer; - }; - -#endif // CCBSSCHEDULER_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsServer.h --- a/cbs/CbsServer/ServerInc/CCbsServer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,256 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsServer class -* -* Represents CBS Server. Derives from EPOC client-server framework base -* class CServer. -* -*/ - - - - -#ifndef CCBSSERVER_H -#define CCBSSERVER_H - -// INCLUDES -#include -#include "CbsCommon.h" -#include "MCbsDbTopicListObserver.H" - -// CONSTANTS -// This is the priority of the server active object. -const TInt KCbsServerPriority = CActive::EPriorityStandard; - -// FORWARD DECLARATIONS -#ifdef __WINS__ -// Required to satify EPOCEXE target type build criteria -IMPORT_C TInt WinsMain( TAny * ); -#endif - -class CObjectConIx; -class CCbsDbImp; -class CCbsRecEtel; -class CCbsReceiverHelper; -class CCbsObject; -class CCbsSatRefresh; -class CCbsShutdownMonitor; - -// CLASS DECLARATION - -/** -* CCbsServer is the core part of CBS Server. -* -* CCbsServer allocates all server-side resources on startup and -* creates CCbsSession objects in response to client requests. -*/ -class CCbsServer : public CServer2 - { - public: // New functions - /** - * Creates an instance of the class. - * - * The name of the server will be KCbsServerName as specified - * in CbsServerConstants.h. - * - * After the call is made, the server is responsible of releasing - * both database and receiver during destruction. - * - * @return The method returns a pointer to the - * new CCbsServer object. - */ - static CCbsServer* NewL(); - - /** - * Destructor. - */ - ~CCbsServer(); - - /** - * Creates a new session object container. - * - * It is the responsibility of the caller to delete the object - * container, when it is no longer used. - * - * @return A pointer to the new object container. - */ - CObjectCon* NewContainerL(); - - /** - * Returns a reference to the database. - * - * @return Database object - */ - CCbsDbImp& Database(); - - /** - * Returns a reference to the receiver. - * - * @return Receiver object - */ - CCbsRecEtel& Receiver(); - - /** - * Returns the total number of detected (via topic detection feature) - * topics and then clears the counter. - * - * @return Number of detected topics. - */ - TInt TotalTopicsDetected(); - - /** - * Panics the client. - * - * @param Reason of panic - */ - void PanicClient( TInt aPanic ) const; - - /** - * Shuts the server down. - */ - void Shutdown(); - - /** - * Returns the object container index reference - * - * @return Container index reference - */ - CObjectConIx& ContainerIndex(); - - /** - * Returns the current message - * - * @return Current IPC message - */ - const RMessage2 ServerMessage() const; - - /** - * Returns an object by handle. - * - * @param aHandle Handle to the object. - * @return Pointer to the object or, if there is no - * such object, NULL. - */ - CCbsObject* ReturnObjectByHandle( TUint aHandle ); - - /** - * Deletes a subsession - * - * @param aHandle Handle to the object. - */ - void DeleteObjectByHandle( TUint aHandle ); - - /** - * Returns the object container - * - * @@return The object container - */ - CObjectCon& Container(); - - /** - * Returns the object index - * - * @@return The object index - */ - CObjectIx& ObjectIx(); - - /** - * Reloads the SIM topics in case of SAT/SIM refresh - * - */ - void ReLoadSimTopicsL(); - - public: // From CServer2 - - /** - * Creates a new session (an instance of CCbsSession). - * - * The method is meant to be called by the Symbian OS server framework and - * so it should not be used in any other case. - * - * The method leaves if the version given as parameter and the server - * version differ. - * - * @param aVersion Expected version of CBS Server. - * @return New session object. - */ - CSession2* NewSessionL( const TVersion& aVersion, const RMessage2& aMessage ) const; - - private: - - /** - * Constructor. - * - * @param aPriority Priority of the server. - */ - CCbsServer( TInt aPriority ); - - /** - * Finalizes the construction by creating subcomponents - * and synchronizing DB and receiver states. - */ - void ConstructL(); - - /** - * Initializes the receiver - */ - void InitReceiverL(); - - /** - * Initializes topic detection status. - */ - void InitTopicDetectionStatusL(); - - private: // Prohibited operators and functions - - // Copy constructor - CCbsServer( const CCbsServer& ); - - // Assignment operator - CCbsServer& operator=( const CCbsServer& ); - - private: // Data - - // Own: The container index, that is required to create - // object containers. - CObjectConIx* iContainerIx; - - // Own: database object. - CCbsDbImp* iDatabase; - - // Own: receiver object. - CCbsRecEtel* iReceiver; - - // Own: gateway to the receiver. - CCbsReceiverHelper* iHelper; - - // Own: PubSub shutdown monitor - CCbsShutdownMonitor* iShutdownMonitor; - - // Own: the object container that contains the subsessions. - CObjectCon* iContainer; - - // Own: object index that is used to find a subsession object - // by it's handle. - CObjectIx* iIndex; - - // Sat refresh listener - CCbsSatRefresh* iSatRefresh; - }; - -#endif // CCBSSERVER_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsSession.h --- a/cbs/CbsServer/ServerInc/CCbsSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,184 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsRecCollector class. -* -* CCbsSession class represents a server-side CbsClient/CbsMcnClient session. -* -*/ - - - -#ifndef CCBSSESSION_H -#define CCBSSESSION_H - -// INCLUDES -#include -#include "CbsCommon.h" - -// FORWARD DECLARATIONS -class CCbsServer; -class CCbsObject; -class CObjectConIx; - -// CLASS DECLARATION - -/** -* This class represents a server-side session. -* -* The instances of the class are responsible of handling -* the requests of client-side RCbs and RCbsMcnSession objects. -* -* This class contains handlers for opening subsessions and -* retrieving some general CBS information. -* -* Client will be panicked, if a request is invalid. -*/ -class CCbsSession : public CSession2 - { - public: // New functions - /** - * Creates a new instance of the class. - * - * @param aServer Server - * @return New CCbsSession instance - */ - static CSession2* NewL( CCbsServer& aServer ); - - /** - * Destructor. - */ - ~CCbsSession(); - - /** - * Finds the appropriate message service method and calls it to - * handle the request. - * - * @param aMessage Handle to the message that - * contains the request. - */ - void DispatchMessageL( const RMessage2& aMessage ); - - /** - * Panics the client. - * - * @param aPanic Identifies the reason for panic. - */ - void PanicClient( TCbsSessionPanic aPanic ) const; - - /** - * Returns the number of new topics detected. - * - * The counter will be reset after a call. - * - * @return Number of topics detected. - */ - TInt TotalTopicsDetected(); - - /** - * Returns the last message arrived from the client - * - * @return Current message - */ - RMessage2& Message(); - - CCbsServer& Server(); - - public: // From CSession2 - - /** - * Handles the received message. - * - * The method simply calls DispatchMessageL (see above) under - * trap harness. - * - * @param aMessage Handle to the message. - */ - void ServiceL( const RMessage2& aMessage ); - - private: - - /** - * Constructor. - * - * @param aServer Reference to the server. - */ - CCbsSession( CCbsServer& aServer ); - - /** - * Finalizes the construction. - */ - void ConstructL(); - - /** - * Handles the session-based requests. - * - * @param aMessage A handle to the message. - * @return ETrue if the request was handled in - * the main session. - */ - TBool HandleSessionRequestsL( const RMessage2& aMessage ); - - /** - * Create a new subsession, settings, for the session. - */ - void NewSettingsL(); - - /** - * Create a new subsession, topic list, for the session. - */ - void NewTopicListL(); - - /** - * Create a new subsession, topic collection, for the session. - */ - void NewTopicCollectionL(); - - /** - * Create a new subsession, topic messages, for the session. - */ - void NewTopicMessagesL(); - - /** - * Create a new MCN subsession. - */ - void NewMcnSubsessionL(); - - /** - * Return the current cell info message to the client. - */ - void GetCurrentMcnInfoL(); - - private: // Data - - /** - * Reference to CCbsServer object. - * iServer is a private member of CSharableSession so - * we define a new name for CCbsServer pointer. - */ - CCbsServer& iCbsServer; - - - /** - * The last message arrived from the client - * - */ - RMessage2 iCurrentMessage; - - }; - -#endif // CCBSSESSION_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsSetFilterSettingHandler.h --- a/cbs/CbsServer/ServerInc/CCbsSetFilterSettingHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsSetFilterSettingHandler class -* -*/ - - -#ifndef CCBSSETFILTERSETTINGHANDLER_H -#define CCBSSETFILTERSETTINGHANDLER_H - -// INCLUDES - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -#include -#include "CbsServerConstants.h" - -// FORWARD DECLARATIONS -class CCbsRecEtel; -class CCbsRecEtelMonitor; -class MCbsEtelMessaging; - -// CLASS DECLARATION - -/** -* Handles the SetFilterSetting command. -* -*/ -class CCbsSetFilterSettingHandler : public CActive - { - public: // New functions - - /** - * Creates an instance of the class. - * - * @param aEtel A reference to the receiver - * @param aMessaging A reference to the messaging object - * @return A new instance of - * CCbsSetFilterSettingHandler - */ - static CCbsSetFilterSettingHandler* NewL( CCbsRecEtel& aEtel, - MCbsEtelMessaging& aMessaging ); - - /** - * Destructor. - */ - ~CCbsSetFilterSettingHandler(); - - /** - * Sets a new filter setting to EPOC Telephony server. - * - * @param aSetting The new setting - */ - void SetFilterSetting( - RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter aSetting ); - - private: // From CActive - - /** - * Called when EPOC Telephony server has completed the SetFilterSetting operation. - */ - void RunL(); - - /** - * Cancels an outstanding ReadCbsMessage request. - */ - void DoCancel(); - - /** - * Is called if RunL() leaves. - * - * @param aError Error code - * @return Always KErrNone - */ - TInt RunError( TInt aError ); - - private: - - /** - * The constructor. - * - * @param aEtel CCbsRecEtel object. - * @param aMessaging EPOC Telephony server messaging object. - */ - CCbsSetFilterSettingHandler( CCbsRecEtel& aEtel, - MCbsEtelMessaging& aMessaging ); - - /** - * Finalizes the construction. - */ - void ConstructL(); - - private: // Data - - // CCbsRecEtel instance to which CB messages are passed. - CCbsRecEtel& iEtel; - - // Messaging subsession. - MCbsEtelMessaging& iSmsMessaging; - - // Type of broadcast id - RMobileBroadcastMessaging::TMobileBroadcastIdType iIdType; - }; - -#endif // CCBSSETFILTERSETTINGHANDLER_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsSettings.h --- a/cbs/CbsServer/ServerInc/CCbsSettings.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,196 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the server-side settings -* subsession class. -* -*/ - - - -#ifndef CCBSSETTINGS_H -#define CCBSSETTINGS_H - -// INCLUDES -#include "CCbsSession.h" -#include "CCbsObject.h" -#include "MCbsDbSettingsObserver.H" - -// FORWARD DECLARATIONS -class CCbsDbImpSettings; -class CCbsRecEtel; - -// CLASS DECLARATION - -/** -* The server-side CbsClient subsession for modifying settings. -*/ -class CCbsSettings - : public CCbsObject, public MCbsDbSettingsObserver - { - public: // New functions - /** - * Creates a new instance of the class. - * - * @param aSession Session object - * @param aSettings Database settings manager - * @param aReceiver Receiver object - * @return Pointer to a new instance of CCbsSettings - */ - static CCbsSettings* NewL( CCbsSession& aSession, - CCbsDbImpSettings& aSettings, - CCbsRecEtel& aReceiver ); - - /** - * Destructor. - */ - ~CCbsSettings(); - - public: // From CCbsObject - /** - * Handle the requests for the object. - * - * @param aMessage Message to be handled. - * @return Indicates whether the message was handled. - */ - TBool HandleRequestsL( const RMessage2& aMessage ); - - private: // From MCbsDbSettingsObserver - - /** - * Called when the topic detection is changed. - */ - void TopicDetectionStatusChangedIndL(); - - /** - * Called when reception status is changed. - */ - void ReceptionStatusChangedIndL(); - - /** - * Called when preferred languages are changed. - */ - void LanguagesChangedIndL(); - - /** - * Called when time-limited reception status changed - */ - void LimitedReceptionStatusChangedIndL(); - - /** - * Called when clean up interval of read messages changed - */ - void CleanupTimeChangedIndL(); - - private: - /** - * Constructor. - * - * @param aSession Session session object - * @param aSettings Database settings manager - * @param aReceiver Receiver - */ - CCbsSettings( CCbsSession& aSession, - CCbsDbImpSettings& aSettings, - CCbsRecEtel& aReceiver ); - - /** - * Finalizes construction. - */ - void ConstructL(); - - /** - * Close the subsession. - * - * Note that the method will delete itself, so the object is no - * longer valid after the call. - */ - void CloseSettings(); - - /** - * Return the current reception status to the client. - */ - void GetReceptionStatusL(); - - /** - * Change the reception status to the requested one. - */ - void SetReceptionStatusL(); - - /** - * Return the current topic detection status to the client. - */ - void GetTopicDetectionStatusL(); - - /** - * Change the topic detection status to the requested one. - */ - void SetTopicDetectionStatusL(); - - /** - * Return the preferred languages to the client. - */ - void GetLanguagesL(); - - /** - * Change the preferred languages to the requested. - */ - void SetLanguagesL(); - - /** - * Make request to notify when settings are changed. - */ - void NotifySettingsChanged(); - - /** - * Cancel the request to notify when settings are changed. - */ - void NotifySettingsChangedCancel(); - - /** - * Notifies the client (if there is a pending request). - * - * @param aEvent Identifies the type of request that - * has happened. - */ - void NotifyClientL( TCbsSettingsEvent aEvent ); - - private: // Prohibited operators and functions - - // Copy constructor - CCbsSettings( const CCbsSettings& ); - - // Assignment operator - CCbsSettings& operator=( const CCbsSettings& ); - - private: // Data - - // Reference to the database settings manager - CCbsDbImpSettings& iSettings; - - // Reference to the receiver - CCbsRecEtel& iReceiver; - - // Indicates whether iMessage is a valid message; that is, there - // is a pending notify request. - TBool iIsMessage; - - // Message of the pending notify request, if available - RMessage2 iMessage; - }; - -#endif // CCBSSETTINGS_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsShutdownMonitor.h --- a/cbs/CbsServer/ServerInc/CCbsShutdownMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* -* Copyright (c) 2004 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: This file contains the header file of the CCbsShutdownMonitor class -* -* -*/ - - -#ifndef CCBSSHUTDOWNMONITOR_H -#define CCBSSHUTDOWNMONITOR_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class CCbsServer; - -// CLASS DECLARATION - -/** -* The CCbsShutdownMonitor instance listens to -* shutdown signal via Publish and Subscribe. On device shutdown, -* the listener stops server operation by stopping the active scheduler. -* CbsServer will then be terminated. -*/ -class CCbsShutdownMonitor : public CActive - { - public: // New functions - - /** - * Creates an instance of the class. - * - * @param aServer Server reference - * @return A new instance of CCbsShutdownMonitor - */ - static CCbsShutdownMonitor* NewL( CCbsServer& aServer ); - - /** - * Destructor. - */ - ~CCbsShutdownMonitor(); - - /** - * Reissues the Subscribe request. - */ - void IssueRequest(); - - private: // From CActive - - /** - * Gets called when the system state changes. - */ - void RunL(); - - /** - * Cancels an outstanding Subscribe request. - */ - void DoCancel(); - - private: - - /** - * The constructor. - * - */ - CCbsShutdownMonitor( CCbsServer& aServer ); - - /** - * Finalizes the construction. - */ - void ConstructL(); - - private: // Data - - // PubSub connection - RProperty iProperty; - - // Server reference - CCbsServer& iServer; - }; - -#endif // CCBSSHUTDOWNMONITOR_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsTopicCollection.h --- a/cbs/CbsServer/ServerInc/CCbsTopicCollection.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,167 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsTopicCollection class. -* -* The server-side topic collection subsession class. -* -*/ - - - -#ifndef CCBSTOPICCOLLECTION_H -#define CCBSTOPICCOLLECTION_H - -// INCLUDES - -#include "CCbsObject.h" -#include "MCbsDbTopicCollectionObserver.H" - -// FORWARD DECLARATIONS - -class CCbsSession; -class CCbsDbImpTopicCollection; -class CCbsDbImpTopicList; - -// CLASS DECLARATION - -/** -* CCbsTopicCollection is the server-side subsession object for handling -* CbsClient requests on topic identities of index messages. -*/ -class CCbsTopicCollection : public CCbsObject, - public MCbsDbTopicCollectionObserver - { - public: // New functions - - /** - * Creates a new instance of the class. - * - * @param aSession Session. - * @param aCollection Topic collection manager. - * @param aList Current topic list. - * @return The new instance of the class. - */ - static CCbsTopicCollection* NewL( CCbsSession& aSession, - CCbsDbImpTopicCollection& aCollection, - CCbsDbImpTopicList& aList ); - - /** - * Destructor. - */ - ~CCbsTopicCollection(); - - public: // From CCbsObject - - /** - * Handles the requests for the subsession. - * - * @param aMessage Message of the client - * @return ETrue, if the request was handled here - */ - TBool HandleRequestsL( const RMessage2& aMessage ); - - private: // From MCbsDbTopicCollectionObserver - - /** - * Called whenever topic collection contents are changed. - */ - void TopicCollectionContentsChangedInd(); - - private: - - /** - * Constructor. - * - * @param aSession Session - * @param aCollection Topic collection - * @param aList Current topic list - */ - CCbsTopicCollection( CCbsSession& aSession, - CCbsDbImpTopicCollection& aCollection, - CCbsDbImpTopicList& aList ); - - /** - * Finalizes the construction. - */ - void ConstructL(); - - /** - * Closes the subsession. - */ - void CloseCollection(); - - /** - * Returns the total amount of topic info records. - */ - void GetTopicCountL(); - - /** - * Returns a topic info structure to the client. - */ - void GetTopicInfoL(); - - /** - * Returns a truth value determining if the given topic already - * exists in the current topic list. - */ - void TopicInListL(); - - /** - * Sets up a notification so that the client will be notified when - * the collecton is changed. - */ - void NotifyOnChange(); - - /** - * Cancels the pending request. - */ - void NotifyOnChangeCancel(); - - /** - * Notifies the client - */ - void Notify(); - - private: // Prohibited operators and functions - - // Copy constructor - CCbsTopicCollection( const CCbsTopicCollection& ); - - // Assignment operator - CCbsTopicCollection& operator=( const CCbsTopicCollection& ); - - private: // Data - - // Topic collection manager. - CCbsDbImpTopicCollection& iCollection; - - /** - * The current topic list which is needed to tell client - * only of topics not included in the topic list. - */ - CCbsDbImpTopicList& iTopicList; - - // Indicates whether there is a pending notify request. - TBool iIsMessage; - - // In case there is a pending notify request, this is the request. - RMessage2 iMessage; - - }; - -#endif // CCBSTOPICCOLLECTION_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsTopicList.h --- a/cbs/CbsServer/ServerInc/CCbsTopicList.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,267 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsTopicList class. -* -* The server-side topic list subsession class. -* -*/ - - - -#ifndef CCBSTOPICLIST_H -#define CCBSTOPICLIST_H - -// INCLUDES -#include "CCbsObject.h" -#include "MCbsDbTopicListObserver.H" - -// FORWARD DECLARATIONS -class CCbsSession; -class CCbsRecEtel; -class CCbsDbImpTopicList; - -// CLASS DECLARATION - -/** -* Subsession for managing the topic list. -*/ -class CCbsTopicList - : public CCbsObject, public MCbsDbTopicListObserver - { - public: // New functions - /** - * Creates a new instance of the class. - * - * @param aSession Session - * @param aTopicList Topic list - * @param aReceiver Receiver. - * @return The new instance of CCbsSettings. - */ - static CCbsTopicList* NewL( CCbsSession& aSession, - CCbsDbImpTopicList& aTopicList, - CCbsRecEtel& aReceiver ); - - /** - * Destructor. - */ - ~CCbsTopicList(); - - public: // From CCbsObject - - /** - * Handle the requests for the object. - * - * @param aMessage The message to be handled - * @return ETrue, if the request was handled here - */ - TBool HandleRequestsL( const RMessage2& aMessage ); - - private: // From MCbsDbTopicListObserver - - /** - * Called when the topic list is initialized. - */ - void TopicListInitializedIndL(); - - /** - * Called whenever a topic is created. If necessary, - * the client will be notified. - * - * @param aHandle A handle to the topic. - */ - void TopicAddedIndL( const TCbsDbTopicNumber& aNumber ); - - /** - * Called whenever a topic is deleted. If necessary, - * the client will be notified. - * - * @param aHandle A handle to the topic. - */ - void TopicDeletedIndL( const TCbsDbTopicNumber& aNumber ); - - /** - * Called whenever a topic is modified. If necessary, - * the client will be notified. - * - * @param aHandle A handle to the topic. - */ - void TopicModifiedIndL( const TCbsDbTopicNumber& aNumber ); - - /** - * Called whenever a new message has been received. - * If necessary, the client will be notified. - * - * @param aHandle A handle to the topic. - */ - void TopicNewMessageReceivedIndL( const TCbsDbMessageHandle& aHandle ); - - private: - /** - * Constructor. - * - * @param aSession Session - * @param aTopicList Topic list manager - * @param aReceiver Receiver - */ - CCbsTopicList( CCbsSession& aSession, - CCbsDbImpTopicList& aTopicList, - CCbsRecEtel& aReceiver ); - - /** - * Finalizes construction. - */ - void ConstructL(); - - /** - * Closes and destroys the subsession. - * - * Note that after the call has completed, the object is no longer - * valid. It is also left for the callee's task to complete - * the request. - */ - void CloseTopicList(); - - /** - * Returns the total number of topics to the client. - */ - void GetTopicCountL(); - - /** - * Returns the requested topic to the client. - */ - void GetTopicL(); - - /** - * Finds a topic by number and returns it to the client. - */ - void FindTopicByNumberL(); - - /** - * Deletes a topic by its number and returns it to the client. - */ - void DeleteTopicL(); - - /** - * Changes a topic name and number. - */ - void ChangeTopicNameAndNumberL(); - - /** - * Changes topic subscription status. - */ - void ChangeTopicSubscriptionStatusL(); - - /** - * Changes topic hotmark status. - */ - void ChangeTopicHotmarkStatusL(); - - /** - * Adds a topic to the list. - */ - void AddTopicL(); - - /** - * Sets up a pending notification request. - */ - void NotifyOnEvent(); - - /** - * Cancels a pending notification request. - */ - void NotifyOnEventCancel(); - - /** - * Returns the number of "new" topics to the client. - * - * By new it is referred to topics that are created because of - * topic detection since last power on. - */ - void GetNewTopicsCountL(); - - /** - * Retrieves the number of the topic that was added - * last to the topic list. - */ - void GetLatestTopicNumberL(); - - /** - * Returns the total amount of unread messages. - */ - void GetUnreadMessageCountL(); - - /** - * Returns a handle to the latest (that is not yet taken) - * hotmarked message handle. - */ - void GetHotmarkedMessageHandleL(); - - /** - * Returns the number of hotmarked, unread messages. - */ - void GetUnreadHotmarkedMessageCountL(); - - /** - * Deletes all topics. - */ - void DeleteAllL(); - - /** - * If there is a pending notify request, notifies - * the client. - * - * @param aEvent The type of event - * @param aNumber The topic which was affected - */ - void NotifyClientL( TCbsTopicListEvent aEvent, - TCbsTopicNumber aNumber ); - - /** - * Retrieves and returns the numbers of topics that - * precede and succeed the given topic in topic list. - * - * Also returns two flags indicating whether the - * given topic is the first and/or the last topic in list. - */ - void GetNextAndPrevTopicNumberL(); - - private: // Prohibited operators and functions - - // Copy constructor - CCbsTopicList( const CCbsTopicList& ); - - // Assignment operator - CCbsTopicList& operator=( const CCbsTopicList& ); - - private: // Data - - // Referebce to the topic list db. - CCbsDbImpTopicList& iTopicList; - - // Reference to the receiver. - CCbsRecEtel& iReceiver; - - // Indicates whether there is an active notify request. - TBool iIsMessage; - - // The message for pending notify request. - RMessage2 iMessage; - - }; - -#endif // CCBSTOPICLIST_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CCbsTopicMessages.h --- a/cbs/CbsServer/ServerInc/CCbsTopicMessages.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,173 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsTopicMessages class -* -* This class represents the server-side topic messages subsession class. -* -*/ - - - -#ifndef CCBSTOPICMESSAGES_H -#define CCBSTOPICMESSAGES_H - -// INCLUDES -#include "CCbsObject.h" - -// FORWARD DECLARATIONS -class CCbsDbImpTopicMessages; -class CCbsRecEtel; - -// CLASS DECLARATION -/** - It represents the server side topic messages subsession. -*/ -class CCbsTopicMessages : public CCbsObject - { - public: // New functions - /** - * Creates a new instance of the class. - * - * @param aSession Pointer to the session. - * @param aMessages Pointer to the topic messages. - * @param aReceiver Receiver. - * @return Pointer to a new instance of - * CCbsTopicMessages. - */ - static CCbsTopicMessages* NewL( CCbsSession& aSession, - CCbsDbImpTopicMessages& aMessages, - CCbsRecEtel& aReceiver ); - - /** - * Destructor. - */ - ~CCbsTopicMessages(); - - public: // From CCbsObject - /** - * Handle the requests for the object. - * - * @param aMessage Message to be handled. - * @return It indicates whether the message was handled. - */ - TBool HandleRequestsL( const RMessage2& aMessage ); - - private: - /** - * Constructor. - * - * @param aSession Pointer to the session. - * @param aMessages Pointer to the topic messages. - * @param aReceiver Receiver - */ - CCbsTopicMessages( CCbsSession& aSession, - CCbsDbImpTopicMessages& aMessages, - CCbsRecEtel& aReceiver ); - - /** - * Finalizes construction. - */ - void ConstructL(); - - /** - * Closes the subsession. - */ - void CloseTopicMessages(); - - /** - * Returns the total amount of messages to the client. - */ - void GetMessageCountL(); - - /** - * Returns the requested message to the client. - */ - void GetMessageL(); - - /** - * Finds a message by its handle. - */ - void FindMessageByHandleL(); - - /** - * Returns message index in topic by message handle. - */ - void GetMessageIndexByHandleL(); - - /** - * Deletes a message. - * - * @param aReceiver Receiver. - */ - void DeleteMessageL( const CCbsRecEtel& aReceiver ); - - /** - * Saves a message. - * - * @param aReceiver Receiver. - */ - void SaveMessageL( const CCbsRecEtel& aReceiver ); - - /** - * Locks a message. - */ - void LockMessageL(); - - /** - * Reads a message. - * - * @param aReceiver Receiver. - */ - void ReadMessageL( const CCbsRecEtel& aReceiver ); - - /** - * Returns the content of the message to the client. - */ - void GetMessageContentsL(); - - /** - * Retrieves and returns the handles of messages that - * precede and succeed the given message in topic. - * - * Also returns two flags indicating whether the - * given message is the first and/or the last message in topic. - */ - void GetNextAndPrevMsgHandleL(); - - private: // Prohibited operators and functions - - // Copy constructor - CCbsTopicMessages( const CCbsTopicMessages& ); - - // Assignment operator - CCbsTopicMessages& operator=( const CCbsTopicMessages& ); - - private: // Data - - // Pointer to the topic messages manager - CCbsDbImpTopicMessages& iMessages; - - // It is the locked message handle, or null message handle - // in case no message is locked. - TCbsDbMessageHandle iLocked; - - // Receiver reference - CCbsRecEtel& iReceiver; - }; - -#endif // CCBSTOPICMESSAGES_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CbsDbConstants.h --- a/cbs/CbsServer/ServerInc/CbsDbConstants.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2003 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: Contains constants used by the database. -* -*/ - - -#ifndef CBSDBCONSTANTS_H -#define CBSDBCONSTANTS_H - -// INCLUDES -#include - -// CONSTANTS - -// The default size of database observer array. -const TInt KCbsDbObserverArraySize = 3; - -// The default size of the topic array. -const TInt KCbsDbTopicArraySize = 50; - -// The maximum amount of received (not saved) messages in a topic. -const TInt KCbsDbMaxReceivedMessages = 6; - -// The maximum amount of saved (not received) messages (all topics). -const TInt KCbsDbMaxSavedMessages = 50; - -// Minimum valid topic number -const TInt KCbsMinValidTopicNumber = 0; - -// Maximum valid topic number -const TInt KCbsMaxValidTopicNumber = 999; - -// Maximum number of characters in one message. 15 pages, 93 characters per page. -const TUint KCbsMaxCharsInMessage = 15*93; - -#endif // CBSDBCONSTANTS_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CbsDebug.h --- a/cbs/CbsServer/ServerInc/CbsDebug.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* -* Copyright (c) 2003-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: This file contains various macros to control debug printing with -* RDebug::Print() and insertion of file failure test code. -* NOTE-macro is provided to simplify printing warnings compile-time. -* -*/ - - - -#ifndef CBS_DEBUG_H -#define CBS_DEBUG_H - -///////////////////////////////////////////////////////////////////////////// -// #Defines that control printing of additional information to debug stream. -///////////////////////////////////////////////////////////////////////////// - -// Defining this enables debug printing with DEBUG(), DVAL() and DVAL2 macros. -//#define CBS_PRINT_DEBUG_INFO - -// Defining this enables printing of headers of received messages -//#define CBS_PRINT_MESSAGE_HEADER - -// Defining this makes message generators print the content of generated -// messages in plaintext. -//#define CBS_PRINT_MESSAGE_CONTENT - -// Defining this makes message generators print the content of generated -// messages in hexadecimal -//#define CBS_PRINT_GENERATED_MESSAGES_IN_HEX - -// Prints topic file store structure to debug stream on startup. -//#define CBS_PRINT_STORE_STRUCTURE 1 - -// Prints additional info on generated messages -//#define CBS_EMULATOR_PRINT_ADDITIONAL_INFO - -///////////////////////////////////////////////////////////////////////////// -// #Defines that control compilation of file operation failure tests. -///////////////////////////////////////////////////////////////////////////// - -// Defining this inserts User::Leave:s before file changes are commited. -// Usage: FAIL_FILE_OP; forces a leave if DO_FILE_OP_FAILURE_TESTS is defined. - -// #define DO_FILE_OP_FAILURE_TESTS 1 - -// Defining this inserts User::Leave:s to critical places trying to break -// the database integrity. -// Usage: FAIL_FILE_OP_IN_A_NASTY_WAY; forces a leave if -// DO_NASTY_FILE_OP_FAILURE_TESTS is defined. - -// #define DO_NASTY_FILE_OP_FAILURE_TESTS 1 - -// Defining this inserts User::Leave:s before file operations on startup. -// Usage: FAIL_FILE_OP_STARTUP; forces a leave if -// DO_FILE_OP_FAILURE_STARTUP_TESTS is defined. - -//#define DO_FILE_OP_FAILURE_STARTUP_TESTS - -///////////////////////////////////////////////////////////////////////////// -// Macros to simplify writing to the debug stream. -///////////////////////////////////////////////////////////////////////////// - -#ifdef _DEBUG -#ifdef CBS_PRINT_DEBUG_INFO -#include -#define DEBUG(s) RDebug::Print(_L(s)) -#define DVA(s, v) RDebug::Print(_L(s), v) -#define DVA2(s, v1, v2) RDebug::Print(_L(s), v1, v2) -#define DPRINT(s) RDebug::Print(s) - -#else // CBS_PRINT_DEBUG_INFO -#define DEBUG(s) -#define DVA(s, v) -#define DVA2(s, v1, v2) -#define DPRINT(s) -#endif // CBS_PRINT_DEBUG_INFO -#else -#define DEBUG(s) -#define DVA(s, v) -#define DVA2(s, v1, v2) -#define DPRINT(s) -#endif // _DEBUG - -///////////////////////////////////////////////////////////////////////////// -// Macros to test file operation failures. -///////////////////////////////////////////////////////////////////////////// - -#ifdef DO_FILE_OP_FAILURE_TESTS -#define FAIL_FILE_OP User::Leave( KErrDiskFull ) -#else -#define FAIL_FILE_OP -#endif // DO_FILE_OP_FAILURE_TESTS - -#ifdef DO_NASTY_FILE_OP_FAILURE_TESTS -#define FAIL_FILE_OP_IN_A_NASTY_WAY User::Leave( KErrDiskFull ) -#else -#define FAIL_FILE_OP_IN_A_NASTY_WAY -#endif // DO_FILE_OP_FAILURE_TESTS - -#ifdef DO_FILE_OP_FAILURE_STARTUP_TESTS -#define FAIL_FILE_OP_STARTUP User::Leave( KErrDiskFull ) -#else -#define FAIL_FILE_OP_STARTUP -#endif // DO_FILE_OP_FAILURE_TESTS - -///////////////////////////////////////////////////////////////////////////// -// NOTE is a convience macro to simplify printing warning texts compile-time. -// The macro will print the filename and line number in question. -// -// Usage: #pragma message(NOTE "Please remove this") -///////////////////////////////////////////////////////////////////////////// -#define STRINGIZE( L ) #L -#define MAKESTRING( M, L ) M(L) -#define LINENUMBER MAKESTRING( STRINGIZE, __LINE__ ) -#define NOTE __FILE__ "(" LINENUMBER ") : " - -#endif // CBS_DEBUG_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CbsLogger.h --- a/cbs/CbsServer/ServerInc/CbsLogger.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* Copyright (c) 2004 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: Logger headerfile for CbsServer -* -*/ - - - -#ifndef CBSLOGGER_H -#define CBSLOGGER_H - -/* ------------------------------------------------------------------------------ - LOG SELECTION ------------------------------------------------------------------------------ -*/ -#ifndef _DEBUG - // UREL BUILD: - #define CBS_LOGGING_METHOD 0 // No logging in UREL builds -#else - // UDEB BUILD: - #define CBS_LOGGING_METHOD 1 // 0 = No logging, - // 1 = Flogger, - // 2 = RDebug -#endif //_DEBUG - - -#if CBS_LOGGING_METHOD > 0 - #define CBS_LOGGING_ENABLED // This is for backward compatibility -#endif //CBS_LOGGING_METHOD - -/* ------------------------------------------------------------------------------ - FLOGGER SETTINGS ------------------------------------------------------------------------------ -*/ -#if CBS_LOGGING_METHOD == 1 // Flogger - - #include - - _LIT(KCbsLogFolder, "TF"); - _LIT(KCbsLogFile, "TFLOG.TXT"); - -#elif CBS_LOGGING_METHOD == 2 // RDebug - - #include - -#endif //CBS_LOGGING_METHOD - - -/* ------------------------------------------------------------------------------ - LOGGING MACROs - - USE THESE MACROS IN YOUR CODE ! ------------------------------------------------------------------------------ -*/ - - -#if CBS_LOGGING_METHOD == 1 // Flogger - -#define CBSLOGTEXT(AAA) /*lint -save -e960 */ { RFileLogger::Write(KCbsLogFolder(),KCbsLogFile(),EFileLoggingModeAppend,AAA); } /*lint -restore */ -#define CBSLOGSTRING(AAA) /*lint -save -e960 */ { _LIT(tempLogDes,AAA); RFileLogger::Write(KCbsLogFolder(),KCbsLogFile(),EFileLoggingModeAppend,tempLogDes()); } /*lint -restore */ -#define CBSLOGSTRING2(AAA,BBB) /*lint -save -e960 -e437 */ { _LIT(tempLogDes,AAA); RFileLogger::WriteFormat(KCbsLogFolder(),KCbsLogFile(),EFileLoggingModeAppend,TRefByValue(tempLogDes()),BBB); } /*lint -restore */ -#define CBSLOGSTRING3(AAA,BBB,CCC) /*lint -save -e960 */ { _LIT(tempLogDes,AAA); RFileLogger::WriteFormat(KCbsLogFolder(),KCbsLogFile(),EFileLoggingModeAppend,TRefByValue(tempLogDes()),BBB,CCC); } /*lint -restore */ - -#elif CBS_LOGGING_METHOD == 2 // RDebug - -#define CBSLOGTEXT(AAA) RDebug::Print(AAA); -#define CBSLOGSTRING(AAA) RDebug::Print(_L(AAA)); -#define CBSLOGSTRING2(AAA,BBB) RDebug::Print(_L(AAA),BBB); -#define CBSLOGSTRING3(AAA,BBB,CCC) RDebug::Print(_L(AAA),BBB,CCC); - -#else // CBS_LOGGING_METHOD == 0 or invalid - -// Example: CBSLOGTEXT(own_desc); -#define CBSLOGTEXT(AAA) -// Example: CBSLOGSTRING("Test"); -#define CBSLOGSTRING(AAA) -// Example: CBSLOGSTRING("Test %i", aValue); -#define CBSLOGSTRING2(AAA,BBB) -// Example: CBSLOGSTRING("Test %i %i", aValue1, aValue2); -#define CBSLOGSTRING3(AAA,BBB,CCC) - -#endif // CBS_LOGGING_METHOD - -#endif // CBSLOGGER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CbsReceiverTypes.h --- a/cbs/CbsServer/ServerInc/CbsReceiverTypes.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 2003 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: Contains enumerations and typedefs used by the receiver. -* -*/ - - -#ifndef CBSRECEIVERTYPES_H -#define CBSRECEIVERTYPES_H - -// INCLUDES - -#include - -// CONSTANTS - -// Alphabet/coding indication (GSM 03.38) -enum TCbsRecAlphabet - { - // 7-bit alphabet coding - ECbsRecAlphabetDefault, - // 8-bit alphabet - ECbsRecAlphabet8bit, - // UCS2 (Unicode) alphabet coding - ECbsRecAlphabetUCS2, - // Unspecified coding; Use default coding instead. - ECbsRecAlphabetUnspecified - }; - -// Language indication (GSM 03.38) -enum TCbsRecLanguageIndication - { - // Language indicated in message page header. - ECbsRecLanguageIndicationHeader, - // Message content preceded by language indication. - ECbsRecLanguageIndicationBody - }; - -enum TCbsRecGeographicalScope - { - ECbsRecGeographicalScopeCell, - ECbsRecGeographicalScopeLAC, - ECbsRecGeographicalScopePLMN - }; - -// DATA TYPES - -/** -* This represents the Data Coding Scheme of a CBS message. -* -* DCS defines the language, encoding and compression of the message. -* -* Refer to GSM specification 03.38 for details. -*/ -typedef TUint8 TCbsRecDCS; - -/** -* This represents the Page Parameter of a CBS message. -* -* Coding starts at bit value 0001 for a page value of 1. 0000 is reserved. -* -* Bits 0-3 indicate total pages in this message (1..15). -* Bits 4-7 indicate the page number of this message in the current message -* sequence (1..15). -*/ -typedef TUint8 TCbsRecPageParameter; - -// These types comprise the Serial Number field of the CBS header (16 bits). -typedef TUint16 TCbsRecMessageCode; // actually 10 bits -typedef TUint8 TCbsRecUpdateNumber; // actually 4 bits - -#endif // CBSRECEIVERTYPES_H diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CbsServerConstants.h --- a/cbs/CbsServer/ServerInc/CbsServerConstants.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,178 +0,0 @@ -/* -* Copyright (c) 2003 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: Contains constants (version number, request codes) used by the server.* -*/ - - -#ifndef CBSSERVERCONSTANTS_H -#define CBSSERVERCONSTANTS_H - -// INCLUDES - -#include -#include "CbsCommon.h" - -// CONSTANTS - -// How long to wait if the server was locked by backup. Time in microseconds. -const TInt KTimeToWaitForBackup = 100000; - -// How many times to retry if the server is locked. -const TInt KMaxRetryTimes = 50; - -// Name of CbsServer thread -_LIT( KCbsServerName, "CbsServer" ); - -// Server major version number -const TInt KCbsServerVersionMajor = 1; - -// Server minor version number -const TInt KCbsServerVersionMinor = 2; - -// Server build number -const TInt KCbsServerVersionBuild = 0; - -/** -* Enumeration of client requests. -*/ -enum TCbsServerRequest - { - // RCbs requests - ECbsCloseSession, - ECbsCreateSettingsSubsession, - ECbsCreateTopicListSubsession, - ECbsCreateTopicMessagesSubsession, - ECbsCreateTopicCollectionSubsession, - ECbsShutdown, - - // RCbsSettings subsession requests - ECbsCloseSettingsSubsession, - ECbsSetReceptionStatus, - ECbsGetReceptionStatus, - ECbsSetTopicDetectionStatus, - ECbsGetTopicDetectionStatus, - ECbsGetLanguages, - ECbsSetLanguages, - ECbsNotifySettingsChanged, - ECbsNotifySettingsChangedCancel, - - // RCbsTopicList subsession requests - ECbsCloseTopicListSubsession, - ECbsGetTopicCount, - ECbsGetTopic, - ECbsFindTopicByNumber, - ECbsDeleteTopic, - ECbsAddTopic, - ECbsChangeTopicNameAndNumber, - ECbsChangeTopicSubscriptionStatus, - ECbsChangeTopicHotmarkStatus, - ECbsNotifyOnEvent, - ECbsNotifyOnEventCancel, - ECbsGetNewTopicsCount, - ECbsGetLatestTopicNumber, - ECbsGetUnreadMessageCount, - ECbsGetHotmarkedMessageHandle, - ECbsGetUnreadHotmarkedMessageCount, - ECbsDeleteAll, - ECbsGetNextAndPrevTopicNumber, - - // RCbsTopicMessages subsession requests - ECbsCloseTopicMessagesSubsession, - ECbsGetMessageCount, - ECbsGetMessage, - ECbsFindMessageByHandle, - ECbsGetMessageIndexByHandle, - ECbsDeleteMessage, - ECbsSaveMessage, - ECbsReadMessage, - ECbsLockMessage, - ECbsGetMessageContents, - ECbsGetNextAndPrevMsgHandle, - - // RCbsTopicCollection subsession requests - ECbsCloseTopicCollectionSubsession, - ECbsGetTopicInfoCount, - ECbsGetTopicInfo, - ECbsGetTopicInfoCountNotListed, - ECbsTopicInList, - ECbsNotifyOnChange, - ECbsNotifyOnChangeCancel, - ECbsGetUnlistedTopicIndexies, - - // RCbsMcnSession requests - EMcnCreateSubsession, - EMcnCloseSession, - EMcnNotifyOnChange, - EMcnNotifyOnChangeCancel, - EMcnGetCellInfo, - EMcnSubscribeTopic, - EMcnClearSubscriptions, - EMcnNoMoreSubscriptions, - EMcnCloseSubsession, - EMcnGetInfoMessage - }; - -// Number of message slots used in server-client ITC. -const TInt KCbsServerDefaultSlots = 4; - -// Header size of a CB message page in bytes. -const TInt KCbsCbMsgHeaderSize = 6; - -// Maximum characters in page -const TInt KCbsMaxCharsInPage = 93; - -// DATA TYPES - -// Used by RCbs::GetNextAndPrevTopicNumber to transfer request results -// from server to client. -struct TCbsNextPrevTopicAndPosition - { - TCbsTopicNumber iPrevTopic; - TCbsTopicNumber iNextTopic; - TInt iPosition; - }; - -// Used by RCbs::GetNextAndPrevMsgHandle to transfer request results -// from server to client. -struct TCbsNextPrevMsgAndPosition - { - TCbsMessageHandle iPrevMsg; - TCbsMessageHandle iNextMsg; - TInt iPosition; - }; - -// Used by active objects to determine the command type. -enum TCbsServerEtelCommand - { - ECbsReceiveMessage, - ECbsSetFilterSetting, - ECbsGetLanguageFilter, - ECbsSetLanguageFilter, - ECbsRetrieveBroadcastIdList, - ECbsStoreBroadcastIdList, - ECbsBroadcastListCancelAll, - ECbsCommandTypeNotSet - }; - -// District info message topic. -const TInt KCellInfoTopic = 50; - -// HomeZone message topic. -const TInt KHomeZoneTopic = 221; - -#endif // CBSSERVERCONSTANTS_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CbsServerInternalPSKeys.h --- a/cbs/CbsServer/ServerInc/CbsServerInternalPSKeys.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 2004 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: Internal Publish & Subscribe keys for CBS Server. - * - * -*/ - - -#ifndef CBSSERVER_INTERNAL_PS_KEYS_H -#define CBSSERVER_INTERNAL_PS_KEYS_H - -const TUid KPSUidCellBroadcast = { 0x10202994 }; - -/** - * This key is used to indicate the status of CBS Server to other - * applications. The value is set to '1' when server is started, - * otherwise it is '0'. - * - * Possible values: - * 0: Default value, CBS Server is not running - * 1: Indicates that CBS Server is running - */ -const TUint32 KCbsServerStarted = 0x00000000; - -#endif - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CbsServerPanic.h --- a/cbs/CbsServer/ServerInc/CbsServerPanic.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -/* -* Copyright (c) 2003 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: Declares the CbsServerPanic() function which panics the server. -* -*/ - - -#ifndef CBSSERVERPANIC_H -#define CBSSERVERPANIC_H - -// INCLUDES -#include - -// DATA TYPES - -/** -* Different reasons for panics in CbsServer. -* -* Enumeration defined manually because of convience -* => Release build panic dialog shows only the panic -* number. -*/ -enum TCbsServerPanic - { - ECbsSchedulerCreationFailed = 0, - ECbsServerCreationFailed = 1, - ECbsCollectorArrayEmpty = 2, - ECbsServerStartFailed = 3, - ECbsMsgRepUnprepared = 4, - ECbsInvalidMessage = 5, - ECbsDatabaseNull = 6, - ECbsReceiverNull = 7, - ECbsCbmiListNull = 8, - ECbsCbmiListNotEmpty = 9, - ECbsCbmiListMismatch = 10, - ECbsErrorFromNonClientObject = 11, - ECbsSettingsInitFailed = 12, - ECbsObserverNull = 13, - ECbsUnrecognizedFactoryDefaultsTag = 14, - ECbsFactoryDefaultsFileCorrupt = 15, - ECbsFactoryDefaultsTopicsCorrupt = 16, - ECbsTopicListProcessPanic = 17, - ECbsMessagesSubsessionInitFailed = 18, - ECbsMessageAlreadyPermanent = 19, - ECbsMcnSessionInitFailed = 20, - ECbsObserverNotFound = 21, - ECbsTopicMessagesNull = 22, - EMcnProviderNull = 23, - EMcnSubscriptionsExceedTotalSubscriptions = 24, - ESubscriptionTableCorrupt = 25, - EMcnProviderNotFound = 26, - ECbsRecShouldBeOn = 27, - ECbsMessageNullAtCopyConstructor = 28, - ECbsRetrievedNullMessageContent = 29, - ECbsFSSOpenFailed = 30, - ECbsInvalidSharedDataEvent = 31, - ECbsGeneratorInvalidMsgHeader = 32, - ECbsStoreNull = 33, - ECbsNullTopic = 34, - ECbsCacheNotValid = 35, - EInvalidSessionObject = 36, - ECbsCollectorMergeFailed = 37, - ECbsInvalidLockHandle = 38, - ECbsNotIndexMessage = 39, - ECbsLanguageNotResolved = 40, - ECbsInvalidLanguage = 41, - ECbsTopicDuplicate = 42, - ECbsGetTopicFailed = 43, - ECbsFindTopicUnknownLeave = 44, - ECbsInvalidFilenameDescriptor = 45, - ECbsTopicListArrayNull = 46 - }; - -// FUNCTION PROTOTYPES - -/** -* Panics the server. -* -* @param aPanic Reason for the panic. -*/ -GLDEF_C void CbsServerPanic( TCbsServerPanic aPanic ); - -#endif // CBSSERVERPANIC_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CbsServerPrivateCRKeys.h --- a/cbs/CbsServer/ServerInc/CbsServerPrivateCRKeys.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 2005 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: This file contains the header file of private CR keys -* -*/ - - - -#ifndef __CBSSERVER_PRIVATE_CR_KEYS_H__ -#define __CBSSERVER_PRIVATE_CR_KEYS_H__ - -const TUid KCRUidCellBroadcast = {0x1020298F}; - -/** -* This key setting enables CBS messages reception if it is turned on. -* -* Possible integer values: -* 0 Reception off -* 1 Reception on -* -* Default value: 0 -*/ -const TUint32 KCbsReception = 0x00000001; - -/** -* If this key value is set on and the topic of received message is -* not in the topic list, the topic is added to the topic list. -* -* Possible integer values: -* 0 Topic detection off -* 1 Topic detection on -* -* Default value: 0 -*/ -const TUint32 KCbsTopicDetection = 0x00000002; - -/** -* This key holds information of message languages -* that are allowed to be received. Default value means that -* all messages with all languages are allowed to be received. -* -* Possible values: -* Each character in the string can be either '0' or '1' -* -* Default value: 0000000000000000000001 -*/ -const TUint32 KCbsLanguages = 0x00000003; - -/** -* With this key value user sets feature on, which limits message -* reception with a time frame. Time frame is defined separately by UI. -* -* Possible integer values: -* 0 Time limits off -* 1 Time limits on -* -* Default value: 0 -*/ -const TUint32 KCbsLimitedReception = 0x00000004; - -/** -* Time when last automatic cleanup was excecuted. -* -* Possible integer values: -* Interger representation of the time. -* -* Default value: 0 -*/ -const TUint32 KCbsCleanupTime = 0x00000005; - -#endif // __CBSSERVER_PRIVATE_CR_KEYS_H__ - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CbsServerTypes.h --- a/cbs/CbsServer/ServerInc/CbsServerTypes.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* -* Copyright (c) 2003 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: Contains server typedefs and enumerations. -* Note that most of these types are aliases to database types. -* -*/ - - - -#ifndef CBSSERVERTYPES_H -#define CBSSERVERTYPES_H - -// INCLUDES - -#include -#include "CbsServerConstants.h" - -// DATA TYPES - -// Represents a handle to a message. -typedef TCbsDbMessageHandle TCbsMessageHandle; - -// Represents the length of the message. -typedef TCbsDbMessageLength TCbsMessageLength; - -// Represents a handle to a topic collection. -typedef TUint TCbsTopicCollectionHandle; - -// Represents a handle to a topic. -typedef TCbsDbTopicHandle TCbsTopicHandle; - -// Represents topic list handles. -typedef TInt16 TCbsTopicListHandle; - -// Represents the topic numbers. -typedef TCbsDbTopicNumber TCbsTopicNumber; - -// Enumerates the reasons for the client panic. -typedef TCbsDbMessageKey TCbsMessageKey; - -#endif // CBSSERVERTYPES_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CbsStreamHelper.h --- a/cbs/CbsServer/ServerInc/CbsStreamHelper.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CbsStreamHelper class. -* -*/ - - - -#ifndef CBSSTREAMHELPER_H -#define CBSSTREAMHELPER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Contains common methods used by the database. -* -* -*/ -class CbsStreamHelper - { - public: - /** - * Reads boolean value from the stream. - * - * @param aStream The stream from which the value is read. - * @return Read value. - */ - static TBool ReadBoolL( RReadStream& aStream ); - - /** - * Writes boolean value to the stream. - * - * @param aStream The stream to which the value is written. - * @param aBool The value to be written. - */ - static void WriteBoolL( RWriteStream& aStream, TBool aBool ); - }; - -#endif // CBSSTREAMHELPER diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/CbsUtils.h --- a/cbs/CbsServer/ServerInc/CbsUtils.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,129 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CbsUtils class -* -*/ - - -#ifndef CBSUTILS_H -#define CBSUTILS_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class RResourceFile; -class RFs; - -// CLASS DECLARATION - -/** -* Namespace structure for CBS helper functions. -*/ -class CbsUtils - { - public: - - /** - * Searches and opens the DLL default resource file. - * Calls FindAndOpenResourceFileLC. - * - * @param aFs open file server handle. - * @param aResFile resource file to open. If open is succesful, resource file - * close operation is pushed on to the cleanup stack. - * - * @see CbsUtils::FindAndOpenResourceFileLC - */ - static void FindAndOpenDefaultResourceFileLC - ( RFs& aFs, - RResourceFile& aResFile ); - - /** - * Leaves with KErrDiskFull if writing aBytesToWrite bytes - * to the Flash File System would reduce the free space on FFS - * under the critical level. - * - * Used before every FFS write operation. - * - * @param aBytesToWrite Number of bytes that are required - * to write to FFS - * @param aFs Open file server session - * - */ - static void FFSCriticalLevelCheckL( const TInt aBytesToWrite, RFs& aFs ); - - /** - * Returns with KTrue if there is memory enough to allocate memory - * for aBytesToWrite bytes. - * - * Used before every topic allocation operation. - * - * @param aBytesToWrite Number of bytes that are required - * to allocation - * - */ - static TBool RamMemCriticalLevelCheckL( const TInt aBytesToWrite); - - /** - * Leaves with KErrDiskFull if writing aBytesToWrite bytes - * to the RAM File System would reduce the free space on RAM - * under the critical level. - * - * Used before every RAM write operation. - * - * @param aFileName File whose volume should be checked. - * @param aBytesToWrite Number of bytes that are required - * to write to RAM - * @param aFs Open file server session - */ - static void VolumeCriticalLevelCheckL( - const TDesC& aFileName, - TInt aBytesToWrite, const RFs& aFs ); - - /** - * Returns ETrue, if the file aFile exists. - * - * The caller has to provide a file server session to this method. - * - * @param aFs Open file server session - * @param aFile File name and path - * @return ETrue, if the file exists. - */ - static TBool ExistsL( const RFs& aFs, const TDesC& aFile ); - - /** - * Deletes the given file. - * - * @param aFs Open file server session - * @param aFile Filename - */ - static void DeleteFileL( RFs& aFs, const TDesC& aFile ); - -private: - // Prohibited default constructor - CbsUtils(); - - // Prohibited copy constructor - CbsUtils( const CbsUtils& ); - - // Prohibited assignment operator - CbsUtils& operator=( const CbsUtils& ); - - }; - -#endif // CBSUTILS_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/MCbsDbObserver.H --- a/cbs/CbsServer/ServerInc/MCbsDbObserver.H Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the MCbsDbObserver class. -* -* Virtual class defining an interface for a database observer. -* -*/ - - - -#ifndef MCBSDBOBSERVER_H -#define MCBSDBOBSERVER_H - -// INCLUDES - -#include - -// CLASS DEFINITIONS - -/** -* This class defines the interface for database observers. -*/ -class MCbsDbObserver - { - public: // New functions - /** - * Indicates that the database has been reinitialised. - */ - virtual void DatabaseInitialisedInd() = 0; - - /** - * Indicates that the database has been closed, which should happen - * only when the database manager is to be destroyed. - */ - virtual void DatabaseClosedInd() = 0; - }; - -#endif // CBSDBOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/MCbsDbSettingsObserver.H --- a/cbs/CbsServer/ServerInc/MCbsDbSettingsObserver.H Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the MCbsDbSettingsObserver class. -* Virtual class defining an interface for a settings observer. -* -*/ - - - -#ifndef MCBSDBSETTINGSOBSERVER_H -#define MCBSDBSETTINGSOBSERVER_H - -// CLASS DECLARATION - -/** -* This class defines the interface for settings observers. -*/ -class MCbsDbSettingsObserver - { - public: // New functions - /** - * The method is used to indicate that the topic detection - * status has been changed. - */ - virtual void TopicDetectionStatusChangedIndL() = 0; - - /** - * The method is used to indicate that the reception status - * has been changed. - */ - virtual void ReceptionStatusChangedIndL() = 0; - - /** - * The method is used to indicate that the preferred languages - * has been changed. - */ - virtual void LanguagesChangedIndL() = 0; - - /** - * The method is used to indicate that the limited reception - * status has been changed. - */ - virtual void LimitedReceptionStatusChangedIndL() = 0; - - /** - * The method is used to indicate that the clean up interval - * of read messages has been changed. - */ - virtual void CleanupTimeChangedIndL() = 0; - }; - -#endif // MCBSDBSETTINGSOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/MCbsDbTopicCollectionObserver.H --- a/cbs/CbsServer/ServerInc/MCbsDbTopicCollectionObserver.H Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* -* Copyright (c) 2003 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: Virtual class defining an interface for an observer which gets -* notified when the topic collection changes. -* -*/ - - - - -#ifndef MCBSDBTOPICCOLLECTIONOBSERVER_H -#define MCBSDBTOPICCOLLECTIONOBSERVER_H - -// INCLUDES - -// CLASS DECLARATION - -/** -* This class defines the interface for a topic collection observer -*/ -class MCbsDbTopicCollectionObserver - { - public: // New functions - /** - * Indicates that the contents of the collection have changed. - */ - virtual void TopicCollectionContentsChangedInd() = 0; - }; - -#endif // MCBSDBTOPICCOLLECTIONOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/MCbsDbTopicListObserver.H --- a/cbs/CbsServer/ServerInc/MCbsDbTopicListObserver.H Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* -* Copyright (c) 2003 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: Virtual class defining an interface for an observer which gets -* notified when the topic list is changed. -* -*/ - - - -#ifndef MCBSDBTOPICLISTOBSERVER_H -#define MCBSDBTOPICLISTOBSERVER_H - -// INCLUDES - -#include -#include "CbsCommon.h" - -// CLASS DECLARATION - -/** -* This class defines the interface for topic list observers. -*/ -class MCbsDbTopicListObserver - { - public: // New functions - /** - * Indicates that the topic list has been initialized. - */ - virtual void TopicListInitializedIndL() = 0; - - /** - * Indicates that a new topic has been added. - * - * @param aNumber Number of the topic that has been added - */ - virtual void TopicAddedIndL( const TCbsDbTopicNumber& aNumber ) = 0; - - /** - * Indicates that a topic has been deleted. - * - * @param aNumber Number of the topic that was deleted. - */ - virtual void TopicDeletedIndL( const TCbsDbTopicNumber& aNumber ) = 0; - - /** - * Indicates that a topic has been modified. - * - * @param aNumber Number of the topic that has been modified. - */ - virtual void TopicModifiedIndL( const TCbsDbTopicNumber& aNumber ) = 0; - - /** - * Indicates that a topic has received a new message. - * - * @param aNumber Number of the topic that has received - * a new message. - */ - virtual void TopicNewMessageReceivedIndL( - const TCbsDbMessageHandle& aNumber ) = 0; - }; - -#endif // MCBSDBTOPICLISTOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/MCbsEtelMessaging.h --- a/cbs/CbsServer/ServerInc/MCbsEtelMessaging.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the MCbsEtelMessaging class. -* -*/ - - - -#ifndef MCBSETELMESSAGING_H -#define MCBSETELMESSAGING_H - -// INCLUDES - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -#include - -// FORWARD DECLARATIONS -class MCbsEtelPhone; - -// CLASS DECLARATION - -/** -* MCbsEtelMessaging is the interface for EPOC Telephony server connections. -* -*/ -class MCbsEtelMessaging - { - public: - - /** - * Virtual destructor - */ - virtual ~MCbsEtelMessaging() { } - - /** - * Opens the connection to EPOC Telephony server - * - * @param aPhone A reference to the phone - * @return Error code - */ - virtual TInt Open( RMobilePhone& aPhone ) = 0; - - /** - * Closes the connection to EPOC Telephony server - */ - virtual void Close() = 0; - - /** - * Requests to receive next incoming CB message - * - * @param aReqStatus Return: Async request status - * @param aMsgData Return: CB message data - * @param aMsgAttributes Return: CB message attributes - */ - virtual void ReceiveMessage( TRequestStatus& aReqStatus, - TDes8& aMsgData, TDes8& aMsgAttributes ) = 0; - - /** - * Gets the filter setting from EPOC Telephony server - * - * @param aSetting Return: Current filter setting - */ - virtual TInt GetFilterSetting( - RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter& aSetting ) = 0; - - /** - * Sets the filter setting to EPOC Telephony server - * - * @param aReqStatus Return: Async request status - * @param aSetting New filter setting - */ - virtual void SetFilterSetting( TRequestStatus& aReqStatus, - RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter aSetting ) const = 0; - - /** - * Cancel ReceiveMessage - * - */ - virtual void ReceiveMessageCancel() = 0; - - /** - * Cancel SetFilterSetting - * - */ - virtual void SetFilterSettingCancel() = 0; - }; - -#endif // MCBSETELMESSAGING_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/MCbsMcnSubscriptionsProvider.h --- a/cbs/CbsServer/ServerInc/MCbsMcnSubscriptionsProvider.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* Copyright (c) 2003 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: Virtual class defining an interface for providing topic subscriptions -* information and routing CB messages. -* -*/ - - - - -#ifndef MCBSMCNSUBSCRIPTIONSPROVIDER_H -#define MCBSMCNSUBSCRIPTIONSPROVIDER_H - -// INCLUDES - -#include - -// FORWARD DECLARATIONS - -class CCbsMessage; - -// CLASS DECLARATION - -/** -* This class defines the interface for providing CB topic subscriptions. -*/ -class MCbsMcnSubscriptionsProvider - { - public: // New functions - /* - * Returns the number of topic subscriptions of this MCN client. - * - * @return Number of subscribed CB topics - */ - virtual TUint NumberOfSubscriptions() const = 0; - - /** - * Route CB message given in aMessage to a MCN client. - * @param aMessage The CBS message to be routed - */ - virtual void RouteMessageL( const CCbsMessage& aMessage ) = 0; - }; - -#endif // MCBSMCNSUBSCRIPTIONSPROVIDER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/cbsinternalcrkeys.h --- a/cbs/CbsServer/ServerInc/cbsinternalcrkeys.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2007 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: CBS internal Central Repository keys -* -*/ - - -#ifndef CBSINTERNALCRKEYS_H -#define CBSINTERNALCRKEYS_H - -#include - -/****************************************************************************** -* CBS Variation API -* Keys under this category are used in defining CBS variation. -******************************************************************************/ -const TUid KCRUidCbsVariation = {0x102078EE}; - -/** -* CBS Local Variation Flags. Values are defined in CbsVariant.hrh. -*/ -const TUint32 KCbsVariationFlags = 0x00000001; - -#endif // CBSINTERNALCRKEYS_H - -// End of file \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerInc/cbsvariant.hrh --- a/cbs/CbsServer/ServerInc/cbsvariant.hrh Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2007 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: -* -* The file contains values for Central Repository keys specifying -* CBS specific software settings. -* -* -*/ - - -#ifndef CBSVARIANT_HRH -#define CBSVARIANT_HRH - - -/** -* KCbsLVFlagTopicSubscription is on/off setting for CBS Topic -* automatic subscription feature. -*/ -#define KCbsLVFlagTopicSubscription 0x00000001 - - -#endif // CBSVARIANT_HRH -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsBackupMonitor.cpp --- a/cbs/CbsServer/ServerSrc/CCbsBackupMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,181 +0,0 @@ -/* -* Copyright (c) 2004 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: This module contains the implementation of CCbsBackupMonitor class -* member functions. -* -*/ - - -// INCLUDE FILES -#include "CCbsBackupMonitor.h" -#include -#include "CbsLogger.h" - -// CONSTANTS -const TInt KCbsBackupMask = 0xF; - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsBackupMonitor::CCbsBackupMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsBackupMonitor::CCbsBackupMonitor( CCbsDbImp& aDbImp ) - : CActive( EPriorityStandard ), - iDbImp( aDbImp ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsBackupMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsBackupMonitor::ConstructL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsBackupMonitor::ConstructL()"); - - CActiveScheduler::Add( this ); - - // Attach to backup property - iProperty.Attach( KUidSystemCategory, conn::KUidBackupRestoreKey ); - IssueRequest(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsBackupMonitor::ConstructL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsBackupMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsBackupMonitor* CCbsBackupMonitor::NewL( CCbsDbImp& aDbImp ) - { - CCbsBackupMonitor* self = - new ( ELeave ) CCbsBackupMonitor( aDbImp ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// Destructor -CCbsBackupMonitor::~CCbsBackupMonitor() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsBackupMonitor::~CCbsBackupMonitor()"); - Cancel(); - iProperty.Close(); - CBSLOGSTRING("CBSSERVER: <<< CCbsBackupMonitor::~CCbsBackupMonitor()"); - } - -// ----------------------------------------------------------------------------- -// CCbsBackupMonitor::IssueRequest -// Requests that we are notified when the system state changes. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsBackupMonitor::IssueRequest() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsBackupMonitor::IssueRequest()"); - - if ( !IsActive() ) - { - // Subscribe again - iProperty.Subscribe( iStatus ); - SetActive(); - CBSLOGSTRING("CBSSERVER: CCbsBackupMonitor::IssueRequest(): New Subscribe() set active."); - } - CBSLOGSTRING("CBSSERVER: <<< CCbsBackupMonitor::IssueRequest()"); - } - -// ----------------------------------------------------------------------------- -// CCbsBackupMonitor::RunL -// Becomes active when the system state changes. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsBackupMonitor::RunL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsBackupMonitor::RunL()"); - - if ( iStatus == KErrNone ) - { - // Resubscribe before processing new value to prevent missing updates - IssueRequest(); - - // Property updated, get new value - TInt state( 0 ); - TInt backupState( 0 ); - TInt error( KErrNone ); - error = iProperty.Get( state ); - CBSLOGSTRING2("CBSSERVER: CCbsBackupMonitor::RunL(): error: %d", error ); - - if ( !error ) - { - backupState = ( state &= KCbsBackupMask ); - - // States are from sbdefs.h - switch ( backupState ) - { - // No backup or restore ongoing - case conn::EBURUnset: - case conn::EBURNormal: - { - CBSLOGSTRING("CBSSERVER: CCbsBackupMonitor::RunL(): EBURUnset or EBURNormal" ); - iDbImp.ChangeFileLocksL( ECbsNoBackup ); - } - break; - // Backup, release file locks - case conn::EBURBackupFull: - case conn::EBURBackupPartial: - { - CBSLOGSTRING("CBSSERVER: CCbsBackupMonitor::RunL(): EBURBackupFull or EBURBackupPartial" ); - iDbImp.ChangeFileLocksL( ECbsBackup ); - } - break; - // Restore, release file locks - case conn::EBURRestoreFull: - case conn::EBURRestorePartial: - { - CBSLOGSTRING("CBSSERVER: CCbsBackupMonitor::RunL(): EBURRestoreFull or EBURRestorePartial" ); - iDbImp.ChangeFileLocksL( ECbsRestore ); - } - break; - default: - CBSLOGSTRING("CBSSERVER: CCbsBackupMonitor::RunL(): Default" ); - break; - } - } - } - CBSLOGSTRING("CBSSERVER: <<< CCbsBackupMonitor::RunL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsBackupMonitor::DoCancel -// Cancels an outstanding Subscribe request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsBackupMonitor::DoCancel() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsBackupMonitor::DoCancel()"); - iProperty.Cancel(); - CBSLOGSTRING("CBSSERVER: <<< CCbsBackupMonitor::DoCancel()"); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsDbImp.cpp --- a/cbs/CbsServer/ServerSrc/CCbsDbImp.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,459 +0,0 @@ -/* -* Copyright (c) 2003 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: This contains basis for the implementation of the database. -* -* Constructs instances of database subclasses CCbsDbImpSettings, -* CCbsDbImpTopicCollection, CCbsDbTopicList and CCbsDbTopicMessages. -* On initialization determines whether datafiles already exist. -* If all of them are present and valid, no special action is taken. -* -* If some or all datafiles are missing or corrupt, all datafiles -* are deleted and new files created. -* Factory default settings, if available, are then loaded from -* Shared Data and stored in server datafiles. This is done by -* database subinstances. -* -*/ - - -// INCLUDE FILES - -#include -#include -#include - -#include - -#include "CbsUtils.h" -#include "CbsServerPanic.h" -#include "CCbsDbImp.H" -#include "CbsDbConstants.h" -#include "CCbsDbImpSettings.H" -#include "CCbsDbImpTopicMessages.h" -#include "CCbsDbImpTopicList.h" -#include "CCbsDbImpTopicCollection.h" -#include "CCbsBackupMonitor.h" -#include "CCbsDiskSpaceMonitor.h" - -#include "CbsLogger.h" - -// Data file names -_LIT( KCbsTopicsAndMsgsFileName, "cbtopicsmsgs.dat" ); -_LIT( KCbsUnsavedMsgsFileName, "cbunsaved.dat" ); - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsDbImp::CCbsDbImp -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsDbImp::CCbsDbImp() - { - } - -// ----------------------------------------------------------------------------- -// CCbsDbImp::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsDbImp::ConstructL() - { - User::LeaveIfError( iFs.Connect() ); - - // Create the disk space monitor - iDiskSpaceMonitor = CCbsDiskSpaceMonitor::NewL( *this ); - - TInt errorCode( KErrNone ); - -#ifdef __SECURE_BACKUP__ - // Use PubSub for monitoring - iBackupMonitor = CCbsBackupMonitor::NewL( *this ); -#else - // Create a backup observer wrapper. If an error is returned, - // ignore it and leave iBackupWrapper to NULL. - TRAP( errorCode, ( iBackupWrapper = CBaBackupSessionWrapper::NewL() ) ); -#endif - - // Try to create the database components. If we couldn't because - // the disk is almost full, that's alright. We'll try again - // later. - TRAP( errorCode, CreateComponentsL() ); - if ( errorCode == KErrDiskFull ) - { - // Install an observer for the critical level - WaitForCriticalLevel(); - } - else - { - User::LeaveIfError( errorCode ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImp::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsDbImp* CCbsDbImp::NewL() - { - CCbsDbImp* self = new ( ELeave ) CCbsDbImp; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// Destructor -CCbsDbImp::~CCbsDbImp() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImp::~CCbsDbImp()"); - if ( iDiskSpaceMonitor ) - { - delete iDiskSpaceMonitor; - } - - DeleteComponents(); - - iFs.Close(); - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImp::~CCbsDbImp()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImp::TopicListL -// Returns a reference to the current active topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsDbImpTopicList& CCbsDbImp::TopicListL() - { - // Check if we have initialized the database succesfully - if ( !iTopicList ) - { - User::Leave( KErrDiskFull ); - } - - return *iTopicList; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImp::TopicMessagesL -// Returns a reference to the current topic messages DB object. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsDbImpTopicMessages& CCbsDbImp::TopicMessagesL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImp::TopicMessagesL()"); - - // Check if we have initialized the database succesfully - if ( !iTopicMessages ) - { - CBSLOGSTRING("CBSSERVER: CCbsDbImp::TopicMessagesL(): No iTopicMessages instance, leaving with KErrDiskFull..."); - User::Leave( KErrDiskFull ); - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImp::TopicMessagesL(), returning *iTopicMessages."); - return *iTopicMessages; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImp::SettingsL -// Returns a reference to the settings DB object. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsDbImpSettings& CCbsDbImp::SettingsL() - { - // Check if we have initialized the database succesfully - if ( !iSettings ) - { - User::Leave( KErrDiskFull ); - } - - return *iSettings; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImp::TopicCollectionL -// Returns a reference to the topic collection. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsDbImpTopicCollection& CCbsDbImp::TopicCollectionL() - { - // Check if we have initialized the database succesfully - if ( !iTopicCollection ) - { - User::Leave( KErrDiskFull ); - } - - return *iTopicCollection; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImp::BackupWrapperL -// Returns a reference to the backup wrapper. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CBaBackupSessionWrapper& CCbsDbImp::BackupWrapperL() - { - if ( !iBackupWrapper ) - { - User::Leave( KErrGeneral ); - } - - return *iBackupWrapper; - } - -// --------------------------------------------------------- -// IsInitialized() -// -// --------------------------------------------------------- -TBool CCbsDbImp::IsInitialized() const - { - return iSettings != NULL; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImp::CreateComponentsL -// Creates topic list, settings topic messages and topic -// collection instances and loads factory settings if necessary. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImp::CreateComponentsL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImp::CreateComponentsL()"); - - // Return if we have already been initialized - if ( IsInitialized() ) - { - return; - } - - TBuf<16> topicsFile( KCbsTopicsAndMsgsFileName ); - TBuf<16> messagesFile( KCbsUnsavedMsgsFileName ); - - // Delete the old file for unsaved messages - CbsUtils::DeleteFileL( iFs, messagesFile ); - CBSLOGSTRING("CBSSERVER: CCbsDbImp::CreateComponentsL(): messagesFile deleted."); - - // Make sure that data file paths exist. - iFs.MkDirAll( topicsFile ); - iFs.MkDirAll( messagesFile ); - - // Create the individual components. If creating any of the components - // fails, this method leaves and created components are deleted. - CCbsDbImpSettings* settings = CreateSettingsL(); - CleanupStack::PushL( settings ); - - CCbsDbImpTopicList* topicList = CreateTopicListL( topicsFile, messagesFile ); - CleanupStack::PushL( topicList ); - - CCbsDbImpTopicMessages* topicMessages = CreateTopicMessagesL( *topicList ); - CleanupStack::PushL( topicMessages ); - - CCbsDbImpTopicCollection* topicCollection = CreateTopicCollectionL(); - CleanupStack::PushL( topicCollection ); - - -#ifndef __SECURE_BACKUP__ - - CBSLOGSTRING("CBSSERVER: CCbsDbImp::CreateComponentsL(): __SECURE_BACKUP__ not defined."); - - // Register the file to backup server - if ( iBackupWrapper ) - { - iBackupWrapper->RegisterFileL( *topicsFile, *topicList ); - } -#endif - - // We have succesfully created all components. Set them to member - // variables. - iTopicList = topicList; - iSettings = settings; - iTopicMessages = topicMessages; - iTopicCollection = topicCollection; - - // Does not transfer ownership. - iTopicList->SetTopicMessages( iTopicMessages ); - - // If we could create the database, cancel the disk space notify request - WaitForCriticalLevelCancel(); - - // The database components are preserved, but the resource reader and - // related buffers are deleted. - CleanupStack::Pop( 4 ); // topicMessages, settings, topicList, topicCollection - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImp::CreateComponentsL()"); - } - -// --------------------------------------------------------- -// DeleteComponents() -// -// --------------------------------------------------------- -void CCbsDbImp::DeleteComponents() - { - delete iTopicMessages; - iTopicMessages = NULL; - - delete iTopicCollection; - iTopicCollection = NULL; - -#ifdef __SECURE_BACKUP__ - -#else - // Delete owned objects and deregister files from - // backup server. - if ( iBackupWrapper && iSettings ) - { - //iBackupWrapper->DeregisterFile( iSettings->FileName() ); - } - - if ( iBackupWrapper && iTopicList ) - { - //iBackupWrapper->DeregisterFile( iTopicList->TopicFilename() ); - } -#endif - - delete iSettings; - iSettings = NULL; - - delete iTopicList; - iTopicList = NULL; - -#ifdef __SECURE_BACKUP__ - delete iBackupMonitor; - iBackupMonitor = NULL; -#else - delete iBackupWrapper; - iBackupWrapper = NULL; -#endif - } - -// --------------------------------------------------------- -// CreateSettingsL() -// -// --------------------------------------------------------- -CCbsDbImpSettings* CCbsDbImp::CreateSettingsL() - { - CCbsDbImpSettings* settings = NULL; - TRAPD( err, ( settings = CCbsDbImpSettings::NewL( *this ) ) ); - User::LeaveIfError( err ); - return settings; - } - -// --------------------------------------------------------- -// CreateTopicListL() -// -// --------------------------------------------------------- -CCbsDbImpTopicList* CCbsDbImp::CreateTopicListL( - const TDesC& aTopicsFile, - const TDesC& aMessagesFile ) - { - // Try to create the topic list. - CCbsDbImpTopicList* topicList = NULL; - TRAPD( err, ( topicList = CCbsDbImpTopicList::NewL( - iFs, aTopicsFile, aMessagesFile, *this ) ) ); - - // Handle data file corruption here. - switch ( err ) - { - case KErrNone: - break; - - case KErrCorrupt: - case KErrEof: - // The data file was corrupt. Delete it and try again. - CbsUtils::DeleteFileL( iFs, aTopicsFile ); - CbsUtils::DeleteFileL( iFs, aMessagesFile ); - topicList = CCbsDbImpTopicList::NewL( - iFs, aTopicsFile, aMessagesFile, *this ); - break; - - default: - User::Leave( err ); - break; - } - - return topicList; - } - -// --------------------------------------------------------- -// CreateTopicMessagesL() -// -// --------------------------------------------------------- -CCbsDbImpTopicMessages* CCbsDbImp::CreateTopicMessagesL( - CCbsDbImpTopicList& aTopicList ) - { - // This cannot leave because of data file corruption. - return CCbsDbImpTopicMessages::NewL( aTopicList, iFs ); - } - - -// --------------------------------------------------------- -// CreateTopicCollectionL() -// -// --------------------------------------------------------- -CCbsDbImpTopicCollection* CCbsDbImp::CreateTopicCollectionL() - { - // This does not create a data file. - return CCbsDbImpTopicCollection::NewL(); - } - -// --------------------------------------------------------- -// WaitForCriticalLevelL() -// -// --------------------------------------------------------- -void CCbsDbImp::WaitForCriticalLevel() - { - // We are running low on disk space. Ask for a notification - // when there is space again. - iDiskSpaceMonitor->IssueRequest(); - } - - -// --------------------------------------------------------- -// WaitForCriticalLevelCancel() -// -// --------------------------------------------------------- -void CCbsDbImp::WaitForCriticalLevelCancel() - { - // Cancel the notification for critical level - iDiskSpaceMonitor->Cancel(); - } - -// --------------------------------------------------------- -// ChangeFileLocksL() -// -// Releases all files for backup/restore, or takes the -// files into use again. -// --------------------------------------------------------- - -void CCbsDbImp::ChangeFileLocksL( const TCbsBackupRequest& aRequest ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImp::ChangeFileLocksL()"); - - // Check/change the topiclist/topics/saved messages file - iTopicList->ChangeFileLockL( aRequest ); - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImp::ChangeFileLocksL()"); - } - -// ================= OTHER EXPORTED FUNCTIONS ============== - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsDbImpSettings.cpp --- a/cbs/CbsServer/ServerSrc/CCbsDbImpSettings.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,476 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsDbImpSettings class -* member functions. -* -* This class represents CBS settings stored in the database. -* A functionality is provided here to access, modify, store and restore -* settings. -* -*/ - - -// INCLUDE FILES -#include -#include "CbsServerPrivateCRKeys.h" -#include "MCbsDbSettingsObserver.H" -#include "CbsServerPanic.h" -#include "CCbsDbImpSettings.H" -#include "CbsDbConstants.h" -#include "CbsStreamHelper.h" -#include "CbsUtils.h" -#include "CbsLogger.h" - -// CONSTANTS -// Used if languages cannot be read from Shared Data. -const TInt8 KDefaultsLanguageSubscribedValue = '1'; - - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::CCbsDbImpSettings -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsDbImpSettings::CCbsDbImpSettings( - CCbsDbImp& aDatabase ) - : iDatabase( aDatabase ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsDbImp::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsDbImpSettings::ConstructL() - { - // Create an array for settings event observers. - iObservers = new ( ELeave ) CArrayFixFlat< MCbsDbSettingsObserver* >( - KCbsDbObserverArraySize ); - - TRAPD( result, LoadSettingsL() ); - if ( result != KErrNone ) - { - User::Leave( result ); - } - - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsDbImpSettings* CCbsDbImpSettings::NewL( CCbsDbImp& aDatabase ) - { - CCbsDbImpSettings* self = - new ( ELeave ) CCbsDbImpSettings( aDatabase ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// Destructor -CCbsDbImpSettings::~CCbsDbImpSettings() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpSettings::~CCbsDbImpSettings()"); - delete iObservers; - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpSettings::~CCbsDbImpSettings()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::SetTopicDetectionStatusL -// Changes the topic detection status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpSettings::SetTopicDetectionStatusL( - TBool aStatus ) - { - - // If the value does not change we do nothing but return - if ( aStatus != iSettings.iTopicDetectionStatus ) - { - // First we change the status value in cache. - iSettings.iTopicDetectionStatus = aStatus; - - // Now we try to save the modified settings to the store - if ( !SaveSettings() ) - { - // If an error occured, we leave the status unchanged. - if ( iSettings.iTopicDetectionStatus ) - { - iSettings.iTopicDetectionStatus = EFalse; - } - else - { - iSettings.iTopicDetectionStatus = ETrue; - } - - // and then leave again - User::Leave( KErrWrite ); - } - - // Inform observers about the changed status - TInt amountOfObservers( iObservers->Count() ); - for ( TInt i( 0 ); i < amountOfObservers; i++ ) - { - iObservers->At( i )->TopicDetectionStatusChangedIndL(); - } - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::SaveSettings -// Saves the settings to CenRep -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsDbImpSettings::SaveSettings() - { - __TEST_INVARIANT; - TBool result( ETrue ); - - // Try to save the settings. - TRAPD( error, DoSaveSettingsL() ); - if ( error != KErrNone ) - { - // Some kind of failure occurred. - __TEST_INVARIANT; - result = EFalse; - } - - __TEST_INVARIANT; - return result; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::DoSaveSettingsL -// Saves the settings to CenRep -// The method leaves in case the writing to the does not succeed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpSettings::DoSaveSettingsL() - { - - TInt reception( iSettings.iReceptionStatus ); - TInt topicDetection( iSettings.iTopicDetectionStatus ); - - TBuf< ECbsCount > languages; - - for ( TInt i( 0 ); i < ECbsCount; i++ ) - { - languages.AppendNum( iSettings.iLanguageStatus.iLanguages[i] ); - } - - // Connecting and initialization - CRepository* repository = CRepository::NewL( KCRUidCellBroadcast ); - - // Get the values from Central Repository - repository->Set( KCbsReception, reception ); - repository->Set( KCbsTopicDetection, topicDetection ); - repository->Set( KCbsLanguages, languages ); - - // Closing the connection - delete repository; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::GetTopicDetectionStatus -// Returns the current value of the topic detection status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpSettings::GetTopicDetectionStatus( - TBool& aStatus ) const - { - // We just give the asked status value from cache to aStatus - aStatus = iSettings.iTopicDetectionStatus; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::SetReceptionStatusL -// Changes the reception status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpSettings::SetReceptionStatusL( - TBool aStatus ) - { - - // If the value does not change we do nothing but return - if ( aStatus != iSettings.iReceptionStatus ) - { - // First we change the status value in iSettings - iSettings.iReceptionStatus = aStatus; - - // Now we try to save the modified settings to the store - if ( !SaveSettings() ) - { - // If an error occured, we leave the status unchanged. - if ( iSettings.iReceptionStatus ) - { - iSettings.iReceptionStatus = EFalse; - } - else - { - iSettings.iReceptionStatus = ETrue; - } - - // and then leave. - User::Leave( KErrWrite ); - } - - // Inform observers about the changed status - TInt amountOfObservers( iObservers->Count() ); - for ( TInt i( 0 ); i < amountOfObservers; i++ ) - { - iObservers->At( i )->ReceptionStatusChangedIndL(); - } - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::GetReceptionStatus -// Returns the current value of the topic reception status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpSettings::GetReceptionStatus( - TBool& aStatus ) const - { - // We just give the asked status value from cache to aStatus - aStatus = iSettings.iReceptionStatus; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::SetLanguagesL -// Changes the preferred languages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpSettings::SetLanguagesL( - const TCbsDbLanguages& aLanguages ) - { - __TEST_INVARIANT; - - // Compare language settings. - if ( !IsLanguagesEqual( aLanguages, iSettings.iLanguageStatus ) ) - { - // We take a backup of the language status before changing the value. - TCbsDbLanguages oldLanguageStatus = iSettings.iLanguageStatus; - - // We change the language status value - iSettings.iLanguageStatus = aLanguages; - - // Now we try to save the modified settings struct to the store - if ( !SaveSettings() ) - { - // If an error occured, we leave the settings unchanged. - iSettings.iLanguageStatus = oldLanguageStatus; - User::Leave( KErrWrite ); - } - - // Inform observers about the changed status - TInt amountOfObservers( iObservers->Count() ); - for ( TInt i( 0 ); i < amountOfObservers; i++ ) - { - iObservers->At( i )->LanguagesChangedIndL(); - } - } - - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::GetLanguages -// Returns the preferred languages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpSettings::GetLanguages( - TCbsDbLanguages& aLanguages ) const - { - // We just give the asked status value from cache to aLanguages - aLanguages = iSettings.iLanguageStatus; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::AddObserverL -// Adds an observer to the settings. -// Observers are notified when an event occurs on the settings. -// Panics on debug mode if aObserver is null. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpSettings::AddObserverL( - MCbsDbSettingsObserver* aObserver ) - { - __TEST_INVARIANT; - __ASSERT_DEBUG( aObserver!=0, CbsServerPanic( ECbsObserverNull ) ); - iObservers->AppendL( aObserver ); - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::RemoveObserver -// Removes database observer. -// The method will panic, if there is no such observer added -// or the given observer is null. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpSettings::RemoveObserver( - const MCbsDbSettingsObserver* aObserver ) - { - __ASSERT_DEBUG( aObserver != 0, CbsServerPanic( ECbsObserverNull ) ); - - // Find the observer to remove - TInt amountOfObservers( iObservers->Count() ); - TBool found( EFalse ); - - for ( TInt index( 0 ); ( index < amountOfObservers ) && !found; index++ ) - { - if ( aObserver == iObservers->At( index ) ) - { - iObservers->Delete( index ); - iObservers->Compress(); - found = ETrue; - } - } - - // Panic if the observer was not found - if ( !found ) - { - CbsServerPanic( ECbsObserverNotFound ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::LoadSettingsL -// Loads the settings, i.e. values for reception status, topic detection -// and language subscriptions. -// These values are retrieved from Central Repository, associated with -// the UID of CbsServer. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpSettings::LoadSettingsL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpSettings::LoadSettingsL()"); - - // Connecting and initialization - CRepository* repository = CRepository::NewL( KCRUidCellBroadcast ); - - TBuf< ECbsCount > languages; - languages.Zero(); - - TInt reception( 0 ); - TInt topicDetection( 0 ); - - // Get the values from Central Repository - repository->Get( KCbsReception, reception ); - repository->Get( KCbsTopicDetection, topicDetection ); - repository->Get( KCbsLanguages, languages ); - - // Closing the connection - delete repository; - - CBSLOGSTRING("CBSSERVER: CCbsDbImpSettings::LoadSettingsL(): Repository reading finished."); - - iSettings.iReceptionStatus = reception == 0 ? EFalse : ETrue; - iSettings.iTopicDetectionStatus = topicDetection == 0 ? EFalse : ETrue; - - if ( languages.Length() != ECbsCount ) - { - User::Leave( KErrCorrupt ); - } - - for ( TInt i( 0 ); i < ECbsCount; i++ ) - { - iSettings.iLanguageStatus.iLanguages[ i ] = - ( languages[ i ] == KDefaultsLanguageSubscribedValue ); - } - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpSettings::LoadSettingsL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::IsLanguagesEqual -// Determines whether the language settings are equal. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsDbImpSettings::IsLanguagesEqual( - const TCbsDbLanguages& aLanguage1, - const TCbsDbLanguages& aLanguage2 ) const - { - // Go through each language settings. - for ( TInt index( 0 ); index < ECbsCount; index++ ) - { - if ( aLanguage1.iLanguages[ index ] != aLanguage2.iLanguages[ index ] ) - { - return EFalse; - } - } - - // Equal. - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::SetDefaultLanguageSettings -// Sets default language settings. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpSettings::SetDefaultLanguageSettings( - TCbsDbLanguages& aLanguage ) const - { - // First, set all languages to false. - for ( TInt index( 0 ); index < ECbsAll; index++ ) - { - aLanguage.iLanguages[ index ] = EFalse; - } - - // And then set the "All"-choice to true. - aLanguage.iLanguages[ ECbsAll ] = ETrue; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::__DbgTestInvariant -// Checks that the object is in a valid state, and panics if it is not. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpSettings::__DbgTestInvariant() const - { -#if defined(_DEBUG) - if ( iSettings.iReceptionStatus < 0 || iSettings.iReceptionStatus > 1 || - iSettings.iTopicDetectionStatus < 0 || - iSettings.iTopicDetectionStatus > 1 || - iObservers == NULL ) - { - User::Invariant(); - } -#endif - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsDbImpTopicCollection.cpp --- a/cbs/CbsServer/ServerSrc/CCbsDbImpTopicCollection.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,295 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsDbImpTopicCollection class -* member functions. -* -* Topic collection stored in the database is represented by this class. -* -*/ - - - -// INCLUDE FILES - -#include -#include "CbsCommon.h" -#include "CbsServerPanic.h" -#include "CCbsDbImpTopicCollection.h" -#include "CCbsDbImp.H" -#include "CbsDbConstants.h" -#include "CbsLogger.h" - -// CONSTANTS - -// These values specify a range of accepted topic number values (inclusive). -const TInt KMinTopicNumber = 1; // 000 is not accepted. -const TInt KMaxTopicNumber = 999; -// Granularity for the iIdentities array -const TInt KIdentitiesGranularity = 10; - - -// ==================== LOCAL FUNCTIONS ==================== - -// ----------------------------------------------------------------------------- -// Print -// Prints out debug info about topics -// Returns: None -// ----------------------------------------------------------------------------- -// -#ifdef _DEBUG -void Print( const TDesC& aText, const TInt& aValue ) - { - TBuf<100> stuff; - TBuf<10> value; - value.Num( aValue ); - stuff = aText; - stuff.Append(value); - RDebug::Print(stuff); - } - -// ----------------------------------------------------------------------------- -// PrintTopicCollectionContentL -// Prints the contentent of the Topic Collection -// Returns: None -// ----------------------------------------------------------------------------- -// -void PrintTopicCollectionContentL( const CFileStore* aStore ) - { - RDebug::Print(_L("Current topic collection content: ")); - TStreamId rootStreamId = aStore->Root(); - if ( rootStreamId == 0 ) - { - RDebug::Print(_L("Store contains no root stream.")); - return; - } - RStoreReadStream rootStream; - rootStream.OpenLC( *aStore, rootStreamId ); // on CS - TInt identityCount( rootStream.ReadUint16L() ); - - for ( TInt index( 0 ); index < identityCount; index++ ) - { - TCbsDbTopicIdentity id; - id.iName.Zero(); - TInt length( rootStream.ReadInt16L() ); - for ( TInt index2( 0 ); index2 < length; index2++ ) - { - TInt character( rootStream.ReadInt16L() ); - id.iName.Append( TChar(character) ); - } - id.iName.SetLength( length ); - - id.iNumber = rootStream.ReadUint16L(); - - TBuf<255> buf = _L("Identity name: "); - buf.Append( id.iName ); - buf.Append( _L(", number: ") ); - buf.AppendNum( static_cast(id.iNumber) ); - RDebug::Print( buf ); - } - - CleanupStack::PopAndDestroy(); // root stream - } -#endif // _DEBUG - - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicCollection::CCbsDbImpTopicCollection -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsDbImpTopicCollection::CCbsDbImpTopicCollection() - { - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicCollection::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicCollection::ConstructL( ) - { - // Create an array for observers. - iObservers = new ( ELeave ) CArrayFixFlat - ( KCbsDbObserverArraySize ); - - iIdentities = new ( ELeave ) CArrayFixFlat - ( KIdentitiesGranularity ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicCollection::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsDbImpTopicCollection* CCbsDbImpTopicCollection::NewL() - { - // Normal two phase construction - CCbsDbImpTopicCollection* self = - new ( ELeave ) CCbsDbImpTopicCollection(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// Destructor -CCbsDbImpTopicCollection::~CCbsDbImpTopicCollection() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicCollection::~CCbsDbImpTopicCollection()"); - // Deallocate the observer array - delete iObservers; - delete iIdentities; - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicCollection::~CCbsDbImpTopicCollection()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicCollection::GetTopicIdentityCount -// Returns the number of topic identities stored in the database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicCollection::GetTopicIdentityCount( - TInt& aCount ) const - { - aCount = iIdentities->Count(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicCollection::GetTopicIdentityL -// Returns a topic identity matching the given topic index parameter. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicCollection::GetTopicIdentityL( - TInt& aIndex, - TCbsDbTopicIdentity& aIdentity ) const - { - if ( aIndex >= iIdentities->Count() || aIndex < 0 ) - { - User::Leave( KErrNotFound ); - } - - aIdentity = iIdentities->At( aIndex ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicCollection::AddObserverL -// Adds an observer. The observer will be informed of changes -// in the topic collection. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicCollection::AddObserverL( - MCbsDbTopicCollectionObserver* aObserver ) - { - __ASSERT_DEBUG( aObserver!=0, CbsServerPanic(ECbsObserverNull) ); - iObservers->AppendL( aObserver ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicCollection::RemoveObserverL -// Removes an observer. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicCollection::RemoveObserver( - const MCbsDbTopicCollectionObserver* aObserver ) - { - __ASSERT_DEBUG( aObserver != 0, CbsServerPanic( ECbsObserverNull ) ); - TInt amountOfObservers( iObservers->Count() ); - for ( TInt index( 0 ); index < amountOfObservers; index++ ) - { - if ( aObserver == iObservers->At( index ) ) - { - iObservers->Delete( index ); - return; - } - } -#ifdef _DEBUG - CbsServerPanic( ECbsObserverNotFound ); -#endif - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicCollection::ClearL -// Clears the topic collection. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicCollection::Clear() - { - iIdentities->Reset(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicCollection::Apply -// Writes topic identity cache (array iIdentities) into a store. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicCollection::Apply() - { - NotifyObservers(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicCollection::AddTopicIdentityL -// Adds a topic identity to the topic collection. This method -// is called by the index message handling routine after resolving a single -// topic number and name out of an index message. -// Topic identities are maintained in ascending topic number order. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicCollection::AddTopicIdentityL( - const TCbsDbTopicIdentity& aIdentity ) - { - if ( aIdentity.iNumber < KMinTopicNumber || - aIdentity.iNumber > KMaxTopicNumber ) - { - User::Leave( KErrArgument ); - } - - // Insert using binary search. KErrAlreadyExists is returned, but - // all other error codes are passed to Leave. - TKeyArrayFix key( _FOFF( TCbsDbTopicIdentity, iNumber ), ECmpTUint16 ); - TRAPD( errorCode, iIdentities->InsertIsqL( aIdentity, key ) ); - if ( errorCode != KErrAlreadyExists ) - { - User::LeaveIfError( errorCode ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicCollection::NotifyObservers -// Notifies all registred observers about a topic collection contents change. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicCollection::NotifyObservers() - { - // Notify each observer. - TInt count( iObservers->Count() ); - for ( TInt index( 0 ); index < count; index++ ) - { - iObservers->At( index )->TopicCollectionContentsChangedInd(); - } - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsDbImpTopicList.cpp --- a/cbs/CbsServer/ServerSrc/CCbsDbImpTopicList.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2757 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the implementation of the CCbsDbImpTopicList class -* member functions. -* -* This class represents the topic list contained in the database. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include - -#include // RequestFreeDiskSpaceLC - -#include // Resource access -#include // Resource access - -#include - -#include "CbsServerPanic.h" -#include "CbsStreamHelper.h" -#include "CbsDbConstants.h" -#include "CbsUtils.h" -#include "CCbsDbImpTopicList.h" -#include "MCbsDbTopicListObserver.H" -#include "CCbsDbImpTopicMessages.h" - -#include "CbsLogger.h" - -#include // for local variation -#include "cbsinternalcrkeys.h" // for local variation -#include "cbsvariant.hrh" // for local variation - -// CONSTANTS - -// Initial size for topic cache array -const TInt KDefaultTopicListSize = 10; - -// Size of the topic stream, used in checking against FFS free space limit -const TInt KTopicStreamSize = 92; - -// Size of the topic messages stream, FFS critical level check -const TInt KEmptyTopicMessagesStreamSize = 4; - -// Size of topic list stream, FFS critical level check -const TInt KTopicListStreamSize = 85; - -// Size of topic list stream (root), FFS critical level check -const TInt KTopicListRootStreamSize = 2; - -// Time in microseconds to wait after a critical store exception -// before a recovery attempt is made. -const TInt KWaitAfterCriticalStoreException = 2000000; - -// Used when unsaved message stream ids are deleted from topic messages -// stream -const TInt KTypicalNumberOfTopicMessages = 6; - -// Minimum interval between compacting the stores in minutes -const TInt KMinimumCompactInterval = 30; - -// Number of the index topic -const TInt KIndexTopicNumber = 0; - -// Space for reading messages -const TInt KReadMessageSize = 92; - -const TInt KTopicsGranularity = 1; - -const TInt KTopicListsGranularity = 1; - -const TInt KTopicIdsGranularity = 5; - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::CCbsDbImpTopicList -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsDbImpTopicList::CCbsDbImpTopicList( - RFs& aFs, - CCbsDbImp& aDatabase ) - : iDatabase( aDatabase ), - iFs( aFs ), - iTopicCount( 0 ), - iInitializing( EFalse ), - iDeleteAllTopics( EFalse ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::ConstructL( - const TDesC& aTopicsFile, - const TDesC& aUnsavedMessagesFile ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicList::ConstructL()"); - - // Create observer array - iObservers = new ( ELeave ) CArrayFixFlat< MCbsDbTopicListObserver* >( - KCbsDbObserverArraySize ); - - // Create topic array, additional memory size in new alloc, 1*192 B = 192 B - iTopics = new ( ELeave ) CArrayFixFlat< TCbsDbImpTopic >( KTopicsGranularity ); - - // Create the root item table, additional memory size in new alloc, 1*184 B = 184 B - iTopicLists = new ( ELeave ) CArrayFixFlat< TCbsDbImpTopicList >( KTopicListsGranularity ); - - // Create topic ID array, additional memory size in new alloc, 5*4 B = 20 B - iTopicIds = new ( ELeave ) CArrayFixFlat< TStreamId >( KTopicIdsGranularity ); - - // Initialize iPreviousCompact to now - iPreviousCompact.UniversalTime(); - - // Copy datafile names from parameters - iTopicsFilename = aTopicsFile.AllocL(); - iUnsavedMessagesFilename = aUnsavedMessagesFile.AllocL(); - - // Fetch local variation bits from CenRep - CRepository* repository = CRepository::NewL( KCRUidCbsVariation ); - TInt err = repository->Get( KCbsVariationFlags, iLVBits ); - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::ConstructL(): CenRep error: %d", err ); - if ( err ) - { - iLVBits = 0; - } - delete repository; - - // If aLoadFactorySettings, then the files are recreated and initialized. - // If not, then the nonexisting files are created, files opened and - // data internalized. - - TBool unsavedMsgFileExists( CbsUtils::ExistsL( iFs, *iUnsavedMessagesFilename ) ); - - TBool loadFactorySettings( !CbsUtils::ExistsL( iFs, aTopicsFile ) ); - TRAPD( error, OpenFilesL( loadFactorySettings, EFalse ) ); - - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicList::ConstructL(): OpenFilesL() error: %d", error ); - - if ( error == KErrDiskFull ) - { - // Delete the store and open is again - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::ConstructL(): About to delete iTopicStore..." ); - - delete iTopicStore; - iTopicStore = NULL; - - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::ConstructL(): iTopicStore deletion finished." ); - - // Try to open the store again - TRAPD( error, iTopicStore = CFileStore::OpenL( iFs, *iTopicsFilename, EFileRead | EFileWrite ) ); - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicList::ConstructL(); iTopicStore OpenL() error: %d", error ); - if ( error ) - { - InitializeListL( ETrue ); - } - } - else - { - if ( loadFactorySettings ) - { - // Create a topic list for standard topics - if ( iTopicLists->Count() == 0 ) - { - CreateStandardTopicListL(); - } - } - - // Only load the topics, if not already loaded when opening the files - if ( loadFactorySettings || unsavedMsgFileExists ) - { - // Load the topics - LoadDefaultTopicStreamL(); - } - - // Compact the topic store - TopicStoreL()->CompactL(); - TopicStoreL()->CommitL(); - } - - // Reset the unread message count to be sure that UI client gets the correct information, - // at this point count is always zero. - for ( TInt i( 0 ); i < iTopics->Count(); ++i ) - { - iTopics->At( i ).iTopicData.iUnreadMessages = 0; - } - - __TEST_INVARIANT; - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicList::ConstructL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsDbImpTopicList* CCbsDbImpTopicList::NewL( - RFs& aFs, - const TDesC& aTopicsFile, - const TDesC& aUnsavedMessagesFile, - CCbsDbImp& aDatabase ) - { - CCbsDbImpTopicList* self = - new ( ELeave ) CCbsDbImpTopicList( aFs, aDatabase ); - CleanupStack::PushL( self ); - self->ConstructL( aTopicsFile, aUnsavedMessagesFile ); - CleanupStack::Pop(); - return self; - } - -// Destructor -CCbsDbImpTopicList::~CCbsDbImpTopicList() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicList::~CCbsDbImpTopicList()"); - delete iTopics; - delete iTopicStore; - delete iTopicLists; - delete iTopicIds; - delete iUnsavedMessageStore; - delete iObservers; - delete iUnsavedMessagesFilename; - if ( iTopicsFilename ) - { - delete iTopicsFilename; - } - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicList::~CCbsDbImpTopicList()"); - } - -#ifndef __SECURE_BACKUP__ -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::ChangeFileLockL -// Closes or reopens the settings file if requested by a backup. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::ChangeFileLockL( - const TDesC& aFileName, - TFileLockFlags aFlags ) - { - CBSLOGSTRING2("CBSSERVER: >>> CCbsDbImpTopicList::ChangeFileLockL() (1): flag: %d", aFlags ); - - if ( aFlags == ETakeLock && iTopicStore == NULL ) - { - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::ChangeFileLockL() (1): Try to open store..."); - - // Try to open the store. - iTopicStore = CPermanentFileStore::OpenL( iFs, - aFileName, EFileRead | EFileWrite ); - - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::ChangeFileLockL() (1): Store opened."); - } - else if ( aFlags != ETakeLock ) - { - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::ChangeFileLockL() (1): Deleting iTopicStore..."); - - delete iTopicStore; - iTopicStore = NULL; - - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::ChangeFileLockL() (1): iTopicStore deleted."); - } - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicList::ChangeFileLockL() (1)"); - } -#else - -// ----------------------------------------------------------------------------- -// CCbsDbImpSettings::ChangeFileLockL -// Closes or reopens the settings file if requested by backup. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::ChangeFileLockL( const TCbsBackupRequest& aRequest ) - { - CBSLOGSTRING2("CBSSERVER: >>> CCbsDbImpTopicList::ChangeFileLockL() (2): aRequest: %d", aRequest ); - - // If backing up or restoring, release locks - if ( ( aRequest == ECbsBackup || - aRequest == ECbsRestore ) ) - { - delete iTopicStore; - iTopicStore = NULL; - - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::ChangeFileLockL() (2): iTopicStore deleted."); - } - // Else take files into use again - else if ( ( aRequest == ECbsNoBackup || - aRequest == ECbsBackupNotDefined ) && - iTopicStore == NULL) - { - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::ChangeFileLockL() (2): Calling CPermanentFileStore::OpenL()..."); - // Try to open the store. - iTopicStore = CPermanentFileStore::OpenL( iFs, - iTopicsFilename->Des(), EFileRead | EFileWrite ); - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::ChangeFileLockL() (2): CPermanentFileStore::OpenL() finished."); - } - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicList::ChangeFileLockL() (2)"); - } - -#endif - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::CheckFileLockL -// Check if the server has a file lock. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::CheckFileLockL() const - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicList::CheckFileLockL()"); - if ( iTopicStore == NULL ) - { - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::CheckFileLockL(): iTopicStore == NULL, leaving with KErrLocked..."); - User::Leave( KErrLocked ); - } - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicList::CheckFileLockL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::CreateNewTopicListL -// Creates a new topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::CreateNewTopicListL( const TDesC& aTopicListName ) - { - // FFS critical level check - CbsUtils::FFSCriticalLevelCheckL( KTopicListStreamSize + - KCbsDbTopicArraySize, iFs ); - - TInt topicListCount = iTopicLists->Count(); - - // Check if there already is 10 topic lists - if ( topicListCount < KCbsRootItemsSize ) - { - // Create the stream for this topic list entry - RStoreWriteStream outstream; - TStreamId topicListStreamId( - outstream.CreateLC( *TopicStoreL() ) ); // on CS - - // Set the values for this new topic list and set it as "current". - // Reset the topic count of this topic list. - iCurrentTopicList.iTopicCount = 0; - - // Topic list stream id for this list - iCurrentTopicList.iTopicListId = topicListStreamId; - - // List name - iCurrentTopicList.iTopicListName = aTopicListName; - - // Is this the default list - iCurrentTopicList.iIsDefaultTopicList = ETrue; - - // Number of this list, which is a int value between 0...9 - iCurrentTopicList.iNumber = iTopicLists->Count(); - - // Add this list to the list array - TKeyArrayFix key( _FOFF( TCbsDbImpTopicList, iNumber ), ECmpTUint16 ); - iTopicLists->InsertIsqL( iCurrentTopicList, key ); - - // Write the values to this topic list's stream - outstream << iCurrentTopicList.iTopicListName; - CbsStreamHelper::WriteBoolL( outstream, iCurrentTopicList.iIsDefaultTopicList ); - outstream.WriteInt16L( iCurrentTopicList.iNumber ); - outstream.WriteInt16L( iCurrentTopicList.iTopicCount ); - - // Write space for topic stream IDs - for ( TInt i( 0 ); i < KCbsDbTopicArraySize; i++ ) - { - outstream << TStreamId( 0 ); - } - - outstream.CommitL(); - CleanupStack::PopAndDestroy(); // outstream - - // Reset the topic array and add an index topic to this - // topic list - iTopics->Reset(); - AddIndexTopicL(); - - // Update the root stream - UpdateRootStreamL( EFalse ); - - // Commit file changes - CommitFilesL(); - - // Load the topics (count = 1, Index topic only), - // so that the array is up to date - LoadTopicsL( iCurrentTopicList.iTopicListId ); - } - else - { - User::Leave( KErrGeneral ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::SetTopicMessages -// Sets the topic messages db object for this topic list. -// Note that this function does not transfer ownership -// of aMessages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::SetTopicMessages( - CCbsDbImpTopicMessages* aMessages ) - { - __ASSERT_ALWAYS( aMessages != NULL, - CbsServerPanic( ECbsTopicMessagesNull ) ); - iMessages = aMessages; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::TopicCount -// Returns the total amount of topics the list contains. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsDbImpTopicList::TopicCount() const - { - return iTopics->Count(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::TopicListCount -// Get topic list count. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsDbImpTopicList::TopicListCount() const - { - return iTopicLists->Count(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::TopicStoreL -// Returns pointer to the current store which contains topics -// of the server (i.e., Topics-file) and saved messages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CFileStore* CCbsDbImpTopicList::TopicStoreL() const - { - CheckFileLockL(); - return iTopicStore; - } - -// --------------------------------------------------------- -// TopicFilename() -// -// --------------------------------------------------------- -const TDesC& CCbsDbImpTopicList::TopicFilename() const - { - return *iTopicsFilename; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::UnsavedMessagesStore -// Returns a pointer to the store, which contains unsaved -// messages of the server (Unsaved Messages-file, "cbs4.dat"). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CFileStore* CCbsDbImpTopicList::UnsavedMessagesStore() const - { - return iUnsavedMessageStore; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::UnsavedMessagesFilename -// Returns a reference to the name of the file, which contains unsaved -// messages of the server (Unsaved Messages-file, "cbs4.dat"). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const TDesC& CCbsDbImpTopicList::UnsavedMessagesFilename() const - { - return *iUnsavedMessagesFilename; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::ExtractTopicNumber -// Extracts topic handle from message handle. -// Note that the method does not check that the message exists. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsDbTopicNumber CCbsDbImpTopicList::ExtractTopicNumber( - const TCbsDbMessageHandle& aHandle ) const - { - return TCbsDbTopicNumber( aHandle >> 16 ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::GetTopicMessagesIdL -// Returns the topic messages stream id by topic handle. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::GetTopicMessagesIdL( - TCbsDbTopicNumber aNumber, TStreamId& aId ) const - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicList::GetTopicMessagesIdL()"); - - // Find the topic. - TInt index( TopicIndexInList( aNumber ) ); - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicList::GetTopicMessagesIdL(): Leaving if index != 0. Index: %d.", index ); - User::LeaveIfError( index ); - - // Return the topic message stream id. - aId = iTopics->At( index ).iTopicMessagesId; - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicList::GetTopicMessagesIdL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::UpdateTopicMessagesIdL -// Updates the topic messages stream id by topic handle. -// The new identifier is expected not to be a null id. -// Note that the method will not commit changes to the store. -// It also changes the internal state and thus if the method leaves, -// it is good to reload the whole root stream. -// The method will delete the old topic messages stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::UpdateTopicMessagesIdL( - TCbsDbTopicNumber aNumber, - const TStreamId& aNewId ) - { - __TEST_INVARIANT; - // Find position. - TInt index( TopicIndexInList( aNumber ) ); - User::LeaveIfError( index ); - - // Get the old id. - TStreamId oldId( iTopics->At( index ).iTopicMessagesId ); - - // Get the topic information. - TCbsDbTopic topic; - GetTopicL( index, topic ); - - // Write information to the stream. - RStoreWriteStream outstream; - outstream.OpenLC( *TopicStoreL(), iTopics->At( index ).iTopicId ); // on CS - WriteTopicInformationL( outstream, topic, aNewId ); - outstream.CommitL(); - CleanupStack::PopAndDestroy(); - - // Delete the old stream. - TopicStoreL()->DeleteL( oldId ); - - // Update the topic messages id. - iTopics->At( index ).iTopicMessagesId = aNewId; - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::GenerateMessageHandle -// Generates a new message handle using the topic -// handle of the message and a given random value. -// Note that it must be checked that the message handle is unique -// in that topic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsDbMessageHandle CCbsDbImpTopicList::GenerateMessageHandle( - const TCbsDbTopicNumber aNumber, - TUint16 aRandom ) const - { - return ( aNumber << 16 ) + aRandom; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::ReloadRootStreamL -// Reloads the root stream to the memory. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::ReloadRootStreamL() - { - LoadRootStreamL(); - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::InformNewMessageReceivedL -// Informs that a new message has been received in a topic. -// This method is called by CCbsDbImpTopicMessages. After internal -// records are changed, the observers are informed of this event. -// Note: leaves changes in stores uncommited. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::InformNewMessageReceivedL( - const TCbsDbMessageHandle& aMessageHandle ) - { - __TEST_INVARIANT; - // Find topic by handle. - TCbsDbTopicNumber number( ExtractTopicNumber( aMessageHandle ) ); - - TCbsDbTopic topic; - FindTopicByNumberL( number, topic ); - - topic.iUnreadMessages++; - - // Increase the counter in cache - TInt position = TopicIndexInList( topic.iNumber ); - iTopics->At( position ).iTopicData.iUnreadMessages++; - - // Write topic information to topic stream but leave changes uncommited. - UpdateTopicCountersL( topic, EFalse ); - - if ( topic.iHotmarked ) - { - SetHotmarkedMessage( aMessageHandle ); - } - - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::InformMessageSavedL -// Informs that a message has been set as saved. -// Updates the saved messages counters -// for the topic of the message and the whole system. -// Called by CCbsDbTopicMessages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::InformMessageSavedL( - const TCbsDbMessageHandle& aMessageHandle ) - { - __TEST_INVARIANT; - // Find topic by handle. - TCbsDbTopicNumber number( ExtractTopicNumber( aMessageHandle ) ); - - TCbsDbTopic topic; - FindTopicByNumberL( number, topic ); - - topic.iSavedMessages++; - - // Increase the counter in cache - TInt position = TopicIndexInList( topic.iNumber ); - iTopics->At( position ).iTopicData.iSavedMessages++; - - // Write topic information to topic stream but leave changes uncommited. - UpdateTopicCountersL( topic, EFalse ); - - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::InformUnreadMessageReadL -// Informs that an unread message has been read. -// Updates the counters when a message is read by the client. -// Note: leaves changes in stores uncommited. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::InformUnreadMessageReadL( - const TCbsDbMessageHandle& aMessageHandle ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicList::InformUnreadMessageReadL()"); - - __TEST_INVARIANT; - - // Check for file lock - CheckFileLockL(); - - // Check disk space - TRAPD( error, CbsUtils::FFSCriticalLevelCheckL( KReadMessageSize, iFs ) ); - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicList::InformUnreadMessageReadL(): FFSCriticalLevelCheckL returned: %d", error ); - if ( error == KErrDiskFull ) - { - return; - } - - // Find topic by number. - TCbsDbTopicNumber number( ExtractTopicNumber( aMessageHandle ) ); - - TCbsDbTopic topic; - FindTopicByNumberL( number, topic ); - - // Decrease the counter - topic.iUnreadMessages--; - - // Decrease the counter in cache - TInt position = TopicIndexInList( topic.iNumber ); - iTopics->At( position ).iTopicData.iUnreadMessages--; - - // Write topic information to topic stream but leave changes uncommited. - UpdateTopicCountersL( topic, EFalse ); - - __TEST_INVARIANT; - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicList::InformUnreadMessageReadL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::InformMessageDeletedL -// Informs that an unread message has been deleted. -// Updates the counters when a message is deleted. -// Note: leaves changes in stores uncommited. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::InformMessageDeletedL( - const TCbsDbMessageHandle& aMessageHandle, - TBool aPermanent, - TBool aRead ) - { - // Find topic by handle. - TCbsDbTopicNumber number( ExtractTopicNumber( aMessageHandle ) ); - - TCbsDbTopic topic; - FindTopicByNumberL( number, topic ); - - TInt position = TopicIndexInList( topic.iNumber ); - - if ( aPermanent ) - { - topic.iSavedMessages--; - iTopics->At( position ).iTopicData.iSavedMessages--; - } - - if ( !aRead ) - { - topic.iUnreadMessages--; - iTopics->At( position ).iTopicData.iUnreadMessages--; - } - - // Write topic information to topic stream but leave changes uncommited. - UpdateTopicCountersL( topic, ETrue ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::TotalSavedMessages -// Returns the number of saved messages in the current topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsDbImpTopicList::TotalSavedMessages() const - { - // Return the total amount of saved messages. - TInt count( 0 ); - for ( TInt i( 0 ); i < iTopics->Count(); i++ ) - { - count += iTopics->At( i ).iTopicData.iSavedMessages; - } - - return count; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::GetTopicCount -// Returns the number of topic stored in this topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::GetTopicCount( - TInt& aCount ) const - { - // Return the total amount of topics. - aCount = TopicCount(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::InitializeListL -// Initializes the whole topic list. -// Creates and opens the topic list file, -// invalidates the cache and informs the observers. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::InitializeListL( const TBool aFileOpenFailed ) - { - __TEST_INVARIANT; - - if ( !aFileOpenFailed ) - { - // Check for file lock - CheckFileLockL(); - } - - // About to write to FFS: make critical level check - CbsUtils::FFSCriticalLevelCheckL( 0, iFs ); - - if ( iMessages != NULL && iMessages->IsLockedMessages() ) - { - User::Leave( KErrAccessDenied ); - } - - // If only one topic list exists, just delete and recreate the whole file - if ( iTopicLists->Count() == 1 || aFileOpenFailed == 1 ) - { - delete iTopicStore; - iTopicStore = NULL; - delete iUnsavedMessageStore; - iUnsavedMessageStore = NULL; - CbsUtils::DeleteFileL( iFs, *iTopicsFilename ); - CbsUtils::DeleteFileL( iFs, *iUnsavedMessagesFilename ); - - iTopicLists->Reset(); - - // Create new files. - OpenFilesL( EFalse, ETrue ); - } - - iIsHotmarkedMessage = EFalse; - iLastTopicNumber = 0; - iMessageHandle = 0; - - // Inform the message manager. - if ( iMessages ) - { - iMessages->InvalidateCache(); - } - - // Notify everyone. - NotifyTopicListInitializedL(); - - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::GetTopicL -// Returns a topic matching the given index. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::GetTopicL( - TInt aIndex, - TCbsDbTopic& aTopic ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicList::GetTopicL()"); - - __TEST_INVARIANT; - - // Check that aIndex is in proper range. - if ( ( aIndex < 0 ) || ( aIndex >= iTopics->Count() ) ) - { - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::GetTopicL(): Leaving with KErrArgument..."); - User::Leave( KErrArgument ); - } - - // And then get the information from the array. - aTopic = iTopics->At( aIndex ).iTopicData; - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicList::GetTopicL()"); - - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::FindTopicByNumberL -// Returns a topic matching the given topic number -// (in GSM Specs this is called the Message Identifier) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::FindTopicByNumberL( - TCbsDbTopicNumber aNumber, - TCbsDbTopic& aTopic ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicList::FindTopicByNumberL()"); - - __TEST_INVARIANT; - - TInt topicIndex( TopicIndexInList( aNumber ) ); - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicList::FindTopicByNumberL(): Leaving if topicIndex < 0: topicIndex: %d.", topicIndex ); - User::LeaveIfError( topicIndex ); - - GetTopicL( topicIndex, aTopic ); - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicList::FindTopicByNumberL()"); - - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::AddTopicL -// Adds a new topic to the list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::AddTopicL( - TCbsDbTopic& aTopic, const TBool aDetected ) - { - __TEST_INVARIANT; - - // Check for file lock - CheckFileLockL(); - - // Check that topic number is in proper range - if ( !CheckTopicNumber( aTopic.iNumber ) ) - { - User::Leave( KErrArgument ); - } - - // Check if there is a topic with the - // same topic number in current topic list. - if ( TopicIndexInList( aTopic.iNumber ) != KErrNotFound ) - { - User::Leave( KErrAlreadyExists ); - } - - // There should not be any saved or unread messages - aTopic.iSavedMessages = 0; - aTopic.iUnreadMessages = 0; - - // Variated feature. Also, only topics that were not detected automatically - // are subscribed by default. - if ( iLVBits & KCbsLVFlagTopicSubscription && !aDetected ) - { - aTopic.iSubscribed = ETrue; - } - else - { - aTopic.iSubscribed = EFalse; - } - - // Now we have the handle, so let's add the topic. - TRAPD( error, DoAddTopicL( aTopic ) ); - if ( error != KErrNone ) - { - RevertFilesL(); - __TEST_INVARIANT; - User::Leave( error ); - } - else - { - iLastTopicNumber = aTopic.iNumber; - NotifyTopicAddedL( aTopic.iNumber ); - } - - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::UpdateTopicNameAndNumberL -// Updates the name and the topic number of a topic -// matching the given handle to the database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::UpdateTopicNameAndNumberL( - TCbsDbTopicNumber aOldNumber, - TCbsDbTopicNumber aNewNumber, - const TCbsDbTopicName& aName ) - { - // Check for file lock - CheckFileLockL(); - - // First, check that the new number is ok. - if ( !CheckTopicNumber( aNewNumber ) ) - { - User::Leave( KErrArgument ); - } - - // First find and then update. - TCbsDbTopic topic; - FindTopicByNumberL( aOldNumber, topic ); - - // If no changes to topic, no need to update - if ( !( aOldNumber == aNewNumber && topic.iName == aName ) ) - { - if ( topic.iProtected ) - { - User::Leave( KErrAccessDenied ); - } - - topic.iName = aName; - topic.iNumber = aNewNumber; - - UpdateTopicL( aOldNumber, topic ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::UpdateTopicSubscriptionStatusL -// Updates the new topic subscription status to the database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::UpdateTopicSubscriptionStatusL( - TCbsDbTopicNumber aNumber, - TBool aStatus ) - { - __TEST_INVARIANT; - - // Update topic subsciption status. - TCbsDbTopic topic; - FindTopicByNumberL( aNumber, topic ); - - topic.iSubscribed = aStatus; - UpdateTopicL( aNumber, topic ); - __TEST_INVARIANT; - - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::UpdateTopicHotmarkStatusL -// Updates the new topic hotmarking status to the database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::UpdateTopicHotmarkStatusL( - TCbsDbTopicNumber aNumber, - TBool aStatus ) - { - __TEST_INVARIANT; - - // Check for file lock - CheckFileLockL(); - - // Update topic hotmark status. - TCbsDbTopic topic; - FindTopicByNumberL( aNumber, topic ); - - topic.iHotmarked = aStatus; - UpdateTopicL( aNumber, topic ); - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::DeleteTopicL -// Deletes an existing topic and all its messages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::DeleteTopicL( - TCbsDbTopicNumber aNumber ) - { - __TEST_INVARIANT; - - // Try to find the position. If it is not found, leave. - TInt position( TopicIndexInList( aNumber ) ); - User::LeaveIfError( position ); - - // Check that there are no locked messages in the topic. - if ( iMessages->IsLockedMessagesInTopic( aNumber ) ) - { - User::Leave( KErrAccessDenied ); - } - - // Topic only in one topic list, not an index topic, so delete the topic. - if ( aNumber != 0 ) - { - // Just try to delete - TRAPD( error, DoDeleteTopicL( position ) ); - if ( error != KErrNone ) - { - // It failed, so we must revert. - RevertFilesL(); - - // Inform the topic messages. - iMessages->InvalidateCacheIfTopic( aNumber ); - - __TEST_INVARIANT; - User::Leave( error ); - } - else - { - // Notify the observers - NotifyTopicDeletedL( aNumber ); - } - } - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::GetUnreadMessageCount -// Gets the total amount of unread messages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::GetUnreadMessageCount( - TInt& aCount ) const - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicList::GetUnreadMessageCount()"); - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicList::GetUnreadMessageCount(): Topic count: %d", iTopics->Count() ); - - // Return the total amount of unread messages. - TInt count( 0 ); - for ( TInt i( 0 ); i < iTopics->Count(); i++ ) - { - count += iTopics->At( i ).iTopicData.iUnreadMessages; - } - - aCount = count; - - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicList::GetUnreadMessageCount(): Unread msgs found: %d", count ); - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicList::GetUnreadMessageCount()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::GetHotmarkedMessageHandleL -// Returns the handle to the latest hotmarked message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::GetHotmarkedMessageHandleL( - TCbsDbMessageHandle& aMessage ) - { - __TEST_INVARIANT; - - // Check if there is a hotmarked message. - if ( iIsHotmarkedMessage ) - { - // If there is, then return it. - aMessage = iMessageHandle; - iIsHotmarkedMessage = EFalse; - } - else - { - // Otherwise leave. - __TEST_INVARIANT; - User::Leave( KErrNotFound ); - } - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::UnreadHotmarkedMessageCount -// Returns the handle to the latest hotmarked message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsDbImpTopicList::UnreadHotmarkedMessageCount() const - { - // Return the total amount of unread messages in hotmarked topics. - TInt count( 0 ); - for ( TInt i( 0 ); i < iTopics->Count(); i++ ) - { - TCbsDbTopic& topic = iTopics->At( i ).iTopicData; - if ( topic.iHotmarked ) - { - count += topic.iUnreadMessages; - } - } - return count; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::AddObserverL -// Adds a topic list observer. -// After an observer is added to the topic list, -// it will be notified whenever an event occurs. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::AddObserverL( - MCbsDbTopicListObserver* aObserver ) - { - __ASSERT_DEBUG( aObserver != 0, CbsServerPanic( ECbsObserverNull ) ); - iObservers->AppendL( aObserver ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::RemoveObserver -// Removes a topic list observer. -// If aObserver is not in the list, the method will panic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::RemoveObserver( - const MCbsDbTopicListObserver* aObserver ) - { - __TEST_INVARIANT; - __ASSERT_DEBUG( aObserver != 0, CbsServerPanic( ECbsObserverNull ) ); - - TBool observerFound( EFalse ); - TInt amountOfObservers( iObservers->Count() ); - - // Check if the observer exists and - // find its possible location index in the array. - for ( TInt index( 0 ); ( index < amountOfObservers ) && !observerFound; index++ ) - { - if ( aObserver == iObservers->At( index ) ) - { - iObservers->Delete( index ); - observerFound = ETrue; - } - } - - __TEST_INVARIANT; - -#ifdef _DEBUG - if ( !observerFound ) - { - CbsServerPanic( ECbsObserverNotFound ); - } -#endif - - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::TopicIndexInList -// Finds the index of the topic matching the given topic number -// in the topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsDbImpTopicList::TopicIndexInList( - TCbsDbTopicNumber aNumber ) const - { - // Create a TCbsDbImpTopic to compare against and use a binary search. - TKeyArrayFix key( _FOFF( TCbsDbImpTopic, iTopicData.iNumber ), ECmpTUint16 ); - TCbsDbImpTopic dummy; - TInt position; - - dummy.iTopicData.iNumber = aNumber; - TInt result( iTopics->FindIsq( dummy, key, position ) ); - - if ( result != KErrNone ) - { - position = KErrNotFound; - } - - return position; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::GetNextAndPrevTopicNumberL -// Retrieves numbers of topics that precede and succeed the topic -// with number aCurrentTopic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::GetNextAndPrevTopicNumberL( - const TCbsTopicNumber& aCurrentTopic, - TCbsTopicNumber& aNextTopic, - TCbsTopicNumber& aPrevTopic, - TInt& aPosition ) - { - // Determine position of requested topic in topic list. - TInt index( TopicIndexInList( aCurrentTopic ) ); - User::LeaveIfError( index ); // if KErrNotFound - - // Determine position indications - aPosition = 0; - if ( index == 0 ) - { - aPosition |= ECbsHead; - } - else - { - aPrevTopic = iTopics->At( index-1 ).iTopicData.iNumber; - } - - if ( index == iTopics->Count()-1 ) - { - aPosition |= ECbsTail; - } - else - { - aNextTopic = iTopics->At( index+1 ).iTopicData.iNumber; - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::NotifyNewMessageArrivedL -// Notifies each observer that a new message has arrived to a topic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::NotifyNewMessageArrivedL( - const TCbsDbMessageHandle& aHandle ) - { - // Notify each observer. - TInt count( iObservers->Count() ); - for ( TInt index( 0 ); index < count; index++ ) - { - iObservers->At( index )->TopicNewMessageReceivedIndL( aHandle ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::AppendSubscribedTopicsL -// Adds numbers of subscribed topics to the given array. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::AppendSubscribedTopicsL( - CArrayFixFlat& aSubscriptions ) const - { - TInt count( iTopics->Count() ); - for ( TInt i( 0 ); i < count; i++ ) - { - TCbsDbImpTopic& topic = iTopics->At( i ); - if ( topic.iTopicData.iSubscribed ) - { - aSubscriptions.AppendL( topic.iTopicData.iNumber ); - } - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::LoadRootStreamL -// Loads the root stream to the memory. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::LoadRootStreamL() - { - __ASSERT_DEBUG( iTopicLists != NULL, - CbsServerPanic( ECbsTopicListArrayNull ) ); - - // Get the root stream and open it. - TStreamId id( TopicStoreL()->Root() ); - RStoreReadStream instream; - instream.OpenLC( *TopicStoreL(), id ); // on CS - - // Load the topic list count - TInt topicListCount( instream.ReadInt16L() ); - - // Sanity check - if ( topicListCount < 0 ) - { - User::Leave( KErrCorrupt ); - } - - // Reset the topic list array - iTopicLists->Reset(); - - // Load the topic list information - TCbsDbImpTopicList item; - instream >> item.iTopicListId; - ReadTopicListInformationL( item.iTopicListId, item ); - iTopicLists->AppendL( item ); - - // Destroy the stream. - CleanupStack::PopAndDestroy(); // instream - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::LoadDefaultTopicStreamL -// Loads the default topic list to the memory. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::LoadDefaultTopicStreamL() - { - __ASSERT_DEBUG( iTopics != NULL, - CbsServerPanic( ECbsTopicListArrayNull ) ); - - // Read root item count - TInt topicListCount = iTopicLists->Count(); - - // If there isn't any, create a topic list for standard topics here - if ( topicListCount == 0 ) - { - CreateStandardTopicListL(); - topicListCount = iTopicLists->Count(); - } - - TStreamId defaultTopicListId( 0 ); - TBool quitSearch( EFalse ); - - TInt i; - // Find the default topic list - for ( i = 0; ( i < topicListCount ) && !quitSearch; ++i ) - { - if ( iTopicLists->At( i ).iIsDefaultTopicList ) - { - defaultTopicListId = iTopicLists->At( i ).iTopicListId; - quitSearch = ETrue; - } - } - - CArrayFixFlat< TStreamId >* topicIds = - new ( ELeave ) CArrayFixFlat< TStreamId >( KTopicIdsGranularity ); - - // Open the default topic list stream - RStoreReadStream instream; - instream.OpenLC( *TopicStoreL(), defaultTopicListId ); // on CS - - // Set the ID - iCurrentTopicList.iTopicListId = defaultTopicListId; - - // Set the name - HBufC* topicListName = HBufC::NewL( instream, KCbsDbTopicNameLength ); - iCurrentTopicList.iTopicListName.Copy( topicListName->Des() ); - delete topicListName; - topicListName = NULL; - - // Skip default list status, since it is always true in default topic list - CbsStreamHelper::ReadBoolL( instream ); - iCurrentTopicList.iIsDefaultTopicList = ETrue; - - // Set the topic list number - iCurrentTopicList.iNumber = instream.ReadInt16L(); - - // Read the amount of topics - TInt topicCount = instream.ReadInt16L(); - iCurrentTopicList.iTopicCount = topicCount; - - // Clear the topic array. - iTopics->ResizeL( 0 ); - - TStreamId id( 0 ); - - // Load the topic IDs - for ( i = 0; i < topicCount; i++ ) - { - instream >> id; - topicIds->AppendL( id ); - } - - // Destroy the stream. - CleanupStack::PopAndDestroy(); - - // Load necessary information for each topic - TInt count = topicIds->Count(); - TCbsDbImpTopic topic; - for ( i = 0; i < count; i++ ) - { - ReadTopicInformationL( topicIds->At( i ), topic ); - - if ( topic.iTopicData.iNumber == KIndexTopicNumber ) - { - HBufC* indexName = ReadIndexTopicNameLC(); // on CS - topic.iTopicData.iName.Copy( *indexName ); - CleanupStack::PopAndDestroy(); // indexName - } - - iTopics->AppendL( topic ); - } - delete topicIds; - topicIds = NULL; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::ReadTopicListInformationL -// Reads topic list information from stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::ReadTopicListInformationL( - const TStreamId& aId, - TCbsDbImpTopicList& aTopicList ) const - { - RStoreReadStream instream; - instream.OpenLC( *TopicStoreL(), aId ); // on CS - - // Topic List name - HBufC* topicListName = HBufC::NewL( instream, KCbsDbTopicNameLength ); - aTopicList.iTopicListName.Copy( topicListName->Des() ); - delete topicListName; - topicListName = NULL; - - // Default list status - aTopicList.iIsDefaultTopicList = CbsStreamHelper::ReadBoolL( instream ); - - // Topic List number - aTopicList.iNumber = instream.ReadInt16L(); - - // Topic count of this topic list - aTopicList.iTopicCount = instream.ReadInt16L(); - - CleanupStack::PopAndDestroy(); // instream - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::ReadTopicInformationL -// Reads all information on topic found in stream aId -// into aTopic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::ReadTopicInformationL( - const TStreamId& aId, - TCbsDbImpTopic& aTopic ) const - { - RStoreReadStream instream; - instream.OpenLC( *TopicStoreL(), aId ); // on CS - - // Topic ID - aTopic.iTopicId = aId; - - // Read saved messages. - aTopic.iTopicData.iSavedMessages = instream.ReadInt16L(); - - // Read name. - instream >> aTopic.iTopicData.iName; - - // Read topic number (message identifier) - aTopic.iTopicData.iNumber = instream.ReadInt16L(); - - // Read statuses - aTopic.iTopicData.iProtected = CbsStreamHelper::ReadBoolL( instream ); // Protected - aTopic.iTopicData.iSubscribed = CbsStreamHelper::ReadBoolL( instream );// Subscribed - aTopic.iTopicData.iHotmarked = CbsStreamHelper::ReadBoolL( instream ); // Hotmarked - - // Read unread messages count - aTopic.iTopicData.iUnreadMessages = instream.ReadInt16L(); - - // Topic messages' stream ID - instream >> aTopic.iTopicMessagesId; - - // Sanity check - if ( aTopic.iTopicData.iSavedMessages > KCbsDbMaxSavedMessages - || aTopic.iTopicData.iNumber > KCbsMaxValidTopicNumber - || aTopic.iTopicData.iUnreadMessages > KCbsDbMaxReceivedMessages ) - { - User::Leave( KErrCorrupt ); - } - - CleanupStack::PopAndDestroy(); // instream - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::DoAddTopicL -// Adds a topic into the database. -// Assumes aTopic is not a duplicate. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::DoAddTopicL( - const TCbsDbTopic& aTopic ) - { - // About to write to FFS: make critical level check - CbsUtils::FFSCriticalLevelCheckL( KTopicStreamSize + - KEmptyTopicMessagesStreamSize, iFs ); - - // Generate general information about topic. - TCbsDbImpTopic topic; - topic.iTopicData = aTopic; - - // Write stream for messages. - topic.iTopicMessagesId = - CCbsDbImpTopicMessages::CreateDefaultTopicMessagesStreamL( - *TopicStoreL() ); - - // Create stream for topic information. - RStoreWriteStream outstream; - topic.iTopicId = outstream.CreateLC( *TopicStoreL() ); // on CS - - WriteTopicInformationL( outstream, aTopic, topic.iTopicMessagesId ); - - outstream.CommitL(); - CleanupStack::PopAndDestroy(); // outstream - - // Now, insert the new topic information to the array - TKeyArrayFix key( _FOFF( TCbsDbImpTopic, iTopicData.iNumber ), ECmpTUint16 ); - iTopics->InsertIsqL( topic, key ); - - // Update the topic list stream - UpdateTopicListStreamL( iCurrentTopicList, EFalse ); - - // We have modified only iTopicStore, so if CommitFilesL() leaves, - // we either get all committed or nothing committed. - CommitFilesL(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::DoUpdateTopicL -// Updates the data for a topic into the database. -// The position of the topic in the list is -// changed if necessary. -// If the position has to be changed, the handles of messages -// contained in the topic have to be changed as well because -// the high word of the handle identifies the topic by it's -// number. -// Please note that standard EPOC DoSomethingL protocol -// is not followed here as this function does NOT commit -// changes made to the store. Instead, the caller must ensure -// use of proper commit/revert operations. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::DoUpdateTopicL( - const TCbsDbTopic& aTopic, - TBool aNeedToChange, - TInt aOldPosition, - TBool aDeleting ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicList::DoUpdateTopicL()"); - - RSharedDataClient sharedData; - // About to write to FFS: make critical level check - if ( aDeleting ) - { - User::LeaveIfError( sharedData.Connect() ); - sharedData.RequestFreeDiskSpaceLC( KTopicStreamSize ); // on CS - } - else - { - CbsUtils::FFSCriticalLevelCheckL( KTopicStreamSize, iFs ); - } - - TInt newPosition( aOldPosition ); - - // If there is need to change position, change it. - if ( aNeedToChange ) - { - TCbsDbImpTopic topic( iTopics->At( aOldPosition ) ); - - // Adjust handles of topic messages to match the changed topic number. - iMessages->UpdateHandlesOfTopicMessagesL( - topic.iTopicData.iNumber, aTopic.iNumber ); - - // Delete topic from the array. - iTopics->Delete( aOldPosition ); - - // Set the number and reinsert into array - topic.iTopicData.iNumber = aTopic.iNumber; - TKeyArrayFix key( _FOFF( TCbsDbImpTopic, iTopicData.iNumber ), ECmpTUint16 ); - newPosition = iTopics->InsertIsqL( topic, key ); - } - - iTopics->At( newPosition ).iTopicData.iSubscribed = aTopic.iSubscribed; - iTopics->At( newPosition ).iTopicData.iHotmarked = aTopic.iHotmarked; - iTopics->At( newPosition ).iTopicData.iName = aTopic.iName; - iTopics->At( newPosition ).iTopicData.iSavedMessages = aTopic.iSavedMessages; - iTopics->At( newPosition ).iTopicData.iUnreadMessages = aTopic.iUnreadMessages; - - // Replace existing stream. - RStoreWriteStream outstream; - outstream.ReplaceLC( *TopicStoreL(), - iTopics->At( newPosition ).iTopicId ); // on CS - WriteTopicInformationL( outstream, aTopic, - iTopics->At( newPosition ).iTopicMessagesId ); - - outstream.CommitL(); - CleanupStack::PopAndDestroy(); // outstream - - // Free the reserved space - if ( aDeleting ) - { - CleanupStack::PopAndDestroy(); // disk space - sharedData.Close(); - } - - // Update topic list stream, if necessary. - if ( aNeedToChange ) - { - UpdateTopicListStreamL( iCurrentTopicList, EFalse ); - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicList::DoUpdateTopicL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::DoDeleteTopicL -// Deletes a topic from the given position in the database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::DoDeleteTopicL( - TInt aPosition ) - { - // Check that the topic is not protected. - TCbsDbTopic topic; - GetTopicL( aPosition, topic ); - - // It is not allowed to delete a topic that is protected. It must - // first be updated to be not protected. - if ( topic.iProtected ) - { - User::Leave( KErrAccessDenied ); - } - - // First delete all messages the topic contains. - RStoreReadStream instream; - instream.OpenLC( *TopicStoreL(), - iTopics->At( aPosition ).iTopicMessagesId ); // on CS - CCbsDbImpTopicMessages::DeleteAllTopicMessagesL( *TopicStoreL(), - *iUnsavedMessageStore, instream ); - iMessages->InvalidateCache(); - CleanupStack::PopAndDestroy(); // instream - - // Delete topic and topic messages streams. - TopicStoreL()->DeleteL( iTopics->At( aPosition ).iTopicMessagesId ); - TopicStoreL()->DeleteL( iTopics->At( aPosition ).iTopicId ); - - // Remove from the internal cache. - iTopics->Delete( aPosition ); - - iCurrentTopicList.iTopicCount--; - UpdateTopicListStreamL( iCurrentTopicList, ETrue ); - CommitFilesL(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::UpdateRootStreamL -// Updates the root stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::UpdateRootStreamL( - TBool aDeleting ) - { - // Check the free space - TInt neededSpace( KTopicListRootStreamSize + iTopicLists->Count() * 2 ); - - RSharedDataClient sharedData; - // About to write to FFS: make critical level check - if ( aDeleting ) - { - User::LeaveIfError( sharedData.Connect() ); - sharedData.RequestFreeDiskSpaceLC( neededSpace ); // on CS - } - else - { - CbsUtils::FFSCriticalLevelCheckL( neededSpace, iFs ); - } - - // Now there is room for all topics. So we can just replace. - RStoreWriteStream outstream; - outstream.ReplaceLC( *TopicStoreL(), TopicStoreL()->Root() ); // on CS - - // Write root stream - WriteRootStreamL( outstream ); - CleanupStack::PopAndDestroy(); // outstream - - // Free the reserved space - if ( aDeleting ) - { - CleanupStack::PopAndDestroy(); // disk space - sharedData.Close(); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::UpdateTopicListStreamL -// Updates topic list stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::UpdateTopicListStreamL( - TCbsDbImpTopicList& aTopicList, - TBool aDeleting ) - { - TInt neededSpace( KTopicListStreamSize + iTopics->Count() * 2 ); - - RSharedDataClient sharedData; - // About to write to FFS: make critical level check - if ( aDeleting ) - { - User::LeaveIfError( sharedData.Connect() ); - sharedData.RequestFreeDiskSpaceLC( neededSpace ); // on CS - } - else - { - CbsUtils::FFSCriticalLevelCheckL( neededSpace, iFs ); - } - - // Replace the stream - RStoreWriteStream outstream; - outstream.ReplaceLC( *TopicStoreL(), aTopicList.iTopicListId ); // on CS - - // Write root stream - WriteTopicListStreamL( outstream, aTopicList ); - CleanupStack::PopAndDestroy(); // outstream - - // Free the reserved space - if ( aDeleting ) - { - CleanupStack::PopAndDestroy(); // disk space - sharedData.Close(); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::UpdateTopicL -// Updates the information for a topic already existing -// in the database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::UpdateTopicL( - TCbsDbTopicNumber aTopicNumber, - TCbsDbTopic& aTopic ) - { - // Check that the new topic number is unique. - TBool needToChangePosition( ETrue ); - - // Try to find the topic and leave if it was not found. - TInt oldPosition( TopicIndexInList( aTopicNumber ) ); - User::LeaveIfError( oldPosition ); - - // Check if we have to change the position of the topic in the - // internal array - if ( aTopic.iNumber == aTopicNumber ) - { - needToChangePosition = EFalse; - } - else - { - TInt topicWithTheNewNumber( TopicIndexInList( aTopic.iNumber ) ); - if ( topicWithTheNewNumber != KErrNotFound && - topicWithTheNewNumber != oldPosition ) - { - User::Leave( KErrAlreadyExists ); - } - } - - // Write data to store. - // Deviation from EPOC standards: DoUpdateTopicL does NOT commit - // the store. - TRAPD( result, DoUpdateTopicL( aTopic, needToChangePosition, - oldPosition, EFalse ) ); - - // Commit both topic and unsaved msgs store - if ( result == KErrNone ) - { - TRAP( result, CommitFilesL() ); - } - - // If either DoUpdateTopicL or CommitFilesL fails => revert. - if ( result != KErrNone ) - { - TopicStoreL()->Revert(); - ReloadRootStreamL(); - User::Leave( result ); - } - else - { - // Notify the observers. - NotifyTopicModifiedL( aTopicNumber ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::CheckTopicNumber -// Checks if a topic number is valid. -// The valid topic number range in this implementation is -// 000..999, with 000 indicating an index message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsDbImpTopicList::CheckTopicNumber( - TCbsDbTopicNumber aNumber ) const - { - // Check that the number is in proper range - return aNumber <= KCbsMaxValidTopicNumber; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::WriteRootStreamL -// Write the root stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::WriteRootStreamL( - RWriteStream& aOut ) const - { - // Write the total amount of topic lists - TInt topicListCount( iTopicLists->Count() ); - aOut.WriteInt16L( topicListCount ); - - // Write space for topic list stream ids - TInt index; - for ( index = 0; index < topicListCount; index++ ) - { - aOut << iTopicLists->At( index ).iTopicListId; - } - - // Write null stream ids - for ( ; index < KCbsRootItemsSize; index++ ) - { - aOut << TStreamId( 0 ); - } - - aOut.CommitL(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::WriteTopicListStreamL -// Writes topic list information to specified stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::WriteTopicListStreamL( - RWriteStream& aOut, - TCbsDbImpTopicList& aTopicList ) const - { - // Write the values to this topic list's stream - - // Topic List name - aOut << aTopicList.iTopicListName; - - // Is this the default list - CbsStreamHelper::WriteBoolL( aOut, aTopicList.iIsDefaultTopicList ); - - // Topic List number - aOut.WriteInt16L( aTopicList.iNumber ); - - // NUmber of topics in this list - aOut.WriteInt16L( iTopics->Count() ); - - // Write the stream IDs of the topics belonging to this list - TInt i; - for ( i = 0; i < iTopics->Count(); i++ ) - { - aOut << iTopics->At( i ).iTopicId; - } - - // Write space for the rest topic stream IDs - for ( ; i < KCbsDbTopicArraySize; i++ ) - { - aOut << TStreamId( 0 ); - } - - aOut.CommitL(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::NotifyTopicListInitializedL -// Notifies each observer that the topic list has been initialized. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::NotifyTopicListInitializedL() - { - // Notify each observer. - TInt count( iObservers->Count() ); - for( TInt index( 0 ); index < count; index++ ) - { - iObservers->At( index )->TopicListInitializedIndL(); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::NotifyTopicAddedL -// Notifies each observer that a topic has been added. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::NotifyTopicAddedL( - TCbsDbTopicNumber aNumber ) - { - // Notify each observer. - TInt count( iObservers->Count() ); - for ( TInt index( 0 ); index < count; index++ ) - { - iObservers->At( index )->TopicAddedIndL( aNumber ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::NotifyTopicModifiedL -// Notifies each observer that a topic has been modified. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::NotifyTopicModifiedL( - TCbsDbTopicNumber aNumber ) - { - // Notify each observer. - TInt count( iObservers->Count() ); - for( TInt index( 0 ); index < count; index++ ) - { - iObservers->At( index )->TopicModifiedIndL( aNumber ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::NotifyTopicDeletedL -// Notifies each observer that a topic has been deleted. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::NotifyTopicDeletedL( - TCbsDbTopicNumber aNumber ) - { - // Notify each observer. - TInt count( iObservers->Count() ); - for( TInt index( 0 ); index < count; index++ ) - { - iObservers->At( index )->TopicDeletedIndL( aNumber ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::SetHotmarkedMessage -// Sets the hotmarked message handle. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::SetHotmarkedMessage( - const TCbsDbMessageHandle& aMessageHandle ) - { - // Set the hotmarked message. - iIsHotmarkedMessage = ETrue; - iMessageHandle = aMessageHandle; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::CreateDefaultRootStreamL -// Creates a root stream and writes default values into it. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TStreamId CCbsDbImpTopicList::CreateDefaultRootStreamL( - CStreamStore& aStore ) const - { - // Create the stream - RStoreWriteStream outstream; - TStreamId id( outstream.CreateLC( aStore ) ); // on CS - - // Write the amount of topic lists - outstream.WriteInt16L( 0 ); - - // Write space for topic list stream ids - for ( TInt index( 0 ); index < KCbsRootItemsSize; index++ ) - { - outstream << TStreamId( 0 ); - } - - outstream.CommitL(); - CleanupStack::PopAndDestroy(); // aStore - - // Return the stream id. - return id; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::WriteTopicInformationL -// Writes topic data into a stream. -// This includes number of saved messages, -// number of unread messages, topic handle, -// topic name, topic number, protection status, -// subscription status and hotmark status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::WriteTopicInformationL( - RWriteStream& aOut, - const TCbsDbTopic& aTopic, - const TStreamId& aTopicMessagesId ) const - { - // Write saved messages. - aOut.WriteInt16L( aTopic.iSavedMessages ); - - // Write name. - aOut << aTopic.iName; - - // Write topic number (message identifier) - aOut.WriteInt16L( aTopic.iNumber ); - - // Write statuses - CbsStreamHelper::WriteBoolL( aOut, aTopic.iProtected ); // Protected - CbsStreamHelper::WriteBoolL( aOut, aTopic.iSubscribed ); // Subscribed - CbsStreamHelper::WriteBoolL( aOut, aTopic.iHotmarked ); // Hotmarked - - // Write unread messages count - aOut.WriteInt16L( aTopic.iUnreadMessages ); - - // And then write the topic messages stream id. - aOut << aTopicMessagesId; - } - - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::RevertFilesL -// Reverts all changes made to three datafiles handled by this class. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::RevertFilesL() - { - - // Check for file lock - CheckFileLockL(); - - iTopicStore->Revert(); - iUnsavedMessageStore->Revert(); - ReloadRootStreamL(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::CommitFilesL -// Commits all changes made to two datafiles handled by this class. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::CommitFilesL() - { - TopicStoreL()->CommitL(); - TInt errorCode( iUnsavedMessageStore->Commit() ); - - // If committing of the unsaved msg store fails, remove all - // messages in the store and rebuild the topic list - if ( errorCode != KErrNone ) - { - TRAPD( errorCode2, RebuildUnsavedMessageStoreL() ); - if ( errorCode2 != KErrNone ) - { - CActiveScheduler::Stop(); - User::Leave( KErrServerTerminated ); - } - - // Tell the caller that something went wrong - User::Leave( errorCode ); - } - - // Check if we should compact - TTime now; - TTimeIntervalMinutes interval; - now.UniversalTime(); - now.MinutesFrom( iPreviousCompact, interval ); - if ( interval.Int() >= KMinimumCompactInterval ) - { - TopicStoreL()->CompactL(); - iUnsavedMessageStore->CompactL(); - iPreviousCompact = now; - } - - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::RebuildUnsavedMessageStoreL -// Deletes the unsaved messages' store and rebuilds it. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::RebuildUnsavedMessageStoreL() - { - // Close the stores and delete the unsaved store - delete iUnsavedMessageStore; iUnsavedMessageStore = NULL; - delete iTopicStore; iTopicStore = NULL; - CbsUtils::DeleteFileL( iFs, *iUnsavedMessagesFilename ); - - // Re-create the store - DoCreateStoreL( *iUnsavedMessagesFilename ); - TryToOpenFilesL( ETrue, EFalse ); - - // Remove the stream ids to unsaved messages, because - // they were all just deleted. - HandleDeletionOfUnsavedMessagesFileL(); - - // Compact the topic list - TopicStoreL()->CommitL(); - TopicStoreL()->CompactL(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::RebuildTopicAndUnsavedStoresL -// Deletes and rebuilds topic/topic list and unsaved message stores. -// Loads Standard Topic List into memory. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::RebuildTopicAndUnsavedStoresL() - { - __TEST_INVARIANT; - - // Check for file lock - CheckFileLockL(); - - // About to write to FFS: make critical level check - CbsUtils::FFSCriticalLevelCheckL( KTopicListRootStreamSize + - KDefaultTopicListSize * 2, iFs ); - - if ( iMessages != NULL && iMessages->IsLockedMessages() ) - { - User::Leave( KErrAccessDenied ); - } - - delete iTopicStore; - iTopicStore = NULL; - delete iUnsavedMessageStore; - iUnsavedMessageStore = NULL; - CbsUtils::DeleteFileL( iFs, *iTopicsFilename ); - CbsUtils::DeleteFileL( iFs, *iUnsavedMessagesFilename ); - - // Create new files. - OpenFilesL( ETrue, EFalse ); - - // Add standard index topic. - AddIndexTopicL(); - - // Load the Standard Topic list - LoadDefaultTopicStreamL(); - - iIsHotmarkedMessage = EFalse; - iLastTopicNumber = 0; - iMessageHandle = 0; - - // Inform the message manager. - if ( iMessages ) - { - iMessages->InvalidateCache(); - } - - // Notify everyone. - NotifyTopicListInitializedL(); - - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::GetLatestTopicNumber -// Returns the number of the topic that was added last -// to the database by topic detection feature. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsDbImpTopicList::GetLatestTopicNumber( - TCbsTopicNumber& aNumber ) const - { - TInt result( KErrNone ); - if ( iLastTopicNumber == 0 ) - { - result = KErrNotFound; - } - aNumber = iLastTopicNumber; - return result; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::OpenFilesL -// After a call to this function, the file stores can be assumed -// to be open and initialized. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::OpenFilesL( - TBool aDeleteExistingFiles, - TBool aCreateNewTopicList ) - { - __ASSERT_DEBUG( iTopicsFilename->Length() > 0, - CbsServerPanic( ECbsInvalidFilenameDescriptor ) ); - __ASSERT_DEBUG( iUnsavedMessagesFilename->Length() > 0, - CbsServerPanic( ECbsInvalidFilenameDescriptor ) ); - - // if LFS, delete files, create files, open files, write root stream - // if not LFS, create file if it doesn't exist, open files - - // Close file stores. - delete iTopicStore; - iTopicStore = NULL; - delete iUnsavedMessageStore; - iUnsavedMessageStore = NULL; - - // If any of files doesn't exist, create the file. Also writes the root - // stream of the topic file, if necessary. - // It is possible that this operation fails because FFS is full. - // In this case the server will take a break and retry. If the second - // attempt fails, the server is shut down. - TBool unsavedMsgFileExists( EFalse ); - TRAPD( result, CreateFilesIfNecessaryL( unsavedMsgFileExists ) ); - if ( result != KErrNone ) - { - // Critical exception: wait for a while and retry. - User::After( KWaitAfterCriticalStoreException ); - TBool ignoreThis( EFalse ); // value of unsavedMsgFileExists preserved - TRAP( result, CreateFilesIfNecessaryL( ignoreThis ) ); - if ( result != KErrNone ) - { - __DEBUGGER(); - // Recovery is not possible: shut the server down. - CActiveScheduler::Stop(); - User::Leave( KErrServerTerminated ); - } - } - - // Open the files for use. Also reads the topic file root stream. - TryToOpenFilesL( unsavedMsgFileExists == EFalse && - aDeleteExistingFiles == EFalse, - aCreateNewTopicList ); - - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::CreateFilesIfNecessaryL -// Creates CBS files, if appropriate. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::CreateFilesIfNecessaryL( - TBool& aUnsavedMsgFileExisted ) - { - if ( CbsUtils::ExistsL( iFs, *iTopicsFilename ) == EFalse ) - { - CbsUtils::FFSCriticalLevelCheckL( KTopicListRootStreamSize + - KDefaultTopicListSize * 2, iFs ); - - CPermanentFileStore* store = CPermanentFileStore::CreateLC( iFs, - *iTopicsFilename, EFileWrite ); // on CS - - store->SetTypeL( store->Layout() ); - TStreamId id( CreateDefaultRootStreamL( *store ) ); - store->SetRootL( id ); - store->CommitL(); - CleanupStack::PopAndDestroy(); // store - } - - aUnsavedMsgFileExisted = CbsUtils::ExistsL( iFs, - *iUnsavedMessagesFilename ); - if ( aUnsavedMsgFileExisted == EFalse ) - { - // No critical level check, because unsaved msgs reside on ramdisk - DoCreateStoreL( *iUnsavedMessagesFilename ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::DoCreateStoreL -// Creates an empty file store with the given filename. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::DoCreateStoreL( - const TDesC& aFilename ) - { - CFileStore* store = CPermanentFileStore::CreateLC( iFs, - aFilename, EFileWrite ); // on CS - store->SetTypeL( store->Layout() ); - store->CommitL(); - CleanupStack::PopAndDestroy(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::TryToOpenFilesL -// Tries to open topic and unsaved messages files. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::TryToOpenFilesL( - TBool aDeleteUnsavedMsgStreamIds, - TBool aCreateNewTopicList ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicList::TryToOpenFilesL()" ); - - if ( !iTopicStore ) - { - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::TryToOpenFilesL(): *** NO iTopicStore (1) ***" ); - } - - // Try to open the store - TRAPD( error, iTopicStore = CFileStore::OpenL( iFs, *iTopicsFilename, EFileRead | EFileWrite ) ); - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicList::TryToOpenFilesL(); iTopicStore OpenL() error: %d", error ); - - TRAPD( error2, iUnsavedMessageStore = CFileStore::OpenL( iFs, *iUnsavedMessagesFilename, EFileRead | EFileWrite ) ); - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicList::TryToOpenFilesL(); iUnsavedMessageStore OpenL() error: %d", error2 ); - - if ( error || error2 ) - { - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::TryToOpenFilesL(): Calling InitializeListL( ETrue )..." ); - - InitializeListL( ETrue ); - - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicList::TryToOpenFilesL(): Calling InitializeListL( ETrue ) finished." ); - } - else - { - if ( iTopicLists->Count() == 0 && - aDeleteUnsavedMsgStreamIds && - aCreateNewTopicList ) - { - // Create first topic list, since it was deleted with the file - CreateStandardTopicListL(); - } - - // Load the root stream for topic store. - LoadRootStreamL(); - - if ( aDeleteUnsavedMsgStreamIds ) - { - // Load the topics and repair the topic file - // since unsaved msg file has been deleted - LoadDefaultTopicStreamL(); - HandleDeletionOfUnsavedMessagesFileL(); - } - } - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicList::TryToOpenFilesL()" ); - } - -// --------------------------------------------------------- -// CCbsDbImpTopicList::ReadIndexTopicNameLC() -// Reads the localized index topic name -// (other items were commented in a header). -// --------------------------------------------------------- -HBufC* CCbsDbImpTopicList::ReadIndexTopicNameLC() - { - // Open localized resource file. - RResourceFile resourceFile; - - CbsUtils::FindAndOpenDefaultResourceFileLC( iFs, resourceFile ); // on CS - // Read "Index"-string. - TResourceReader reader; - reader.SetBuffer( resourceFile.AllocReadLC( R_TEXT_INDEX_TOPIC ) );//on CS - HBufC* text = reader.ReadHBufCL(); - CleanupStack::PopAndDestroy(2); // readerBuf, resourceFile - CleanupStack::PushL( text ); - - return text; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::AddIndexTopicL -// Adds index topic to topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::AddIndexTopicL() - { - // Open localized resource file. - HBufC* text = ReadIndexTopicNameLC(); - - TCbsDbTopic topic; - topic.iName.Copy( *text ); - topic.iNumber = 0; - topic.iHotmarked = EFalse; - topic.iProtected = ETrue; - topic.iSubscribed = ETrue; - topic.iSavedMessages = 0; - topic.iUnreadMessages = 0; - - // Add the topic without notifying anybody. - TRAPD( error, DoAddTopicL( topic ) ); - if ( error != KErrNone ) - { - RevertFilesL(); - __TEST_INVARIANT; - User::Leave( error ); - } - - CleanupStack::PopAndDestroy(); // text - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::HandleDeletionOfUnsavedMessagesFileL -// Called to repair the database when Unsaved messages -file -// has been deleted, but Topics-file still contains information -// on unsaved messages. -// -// Things to do here: -// - Reset unread message counters, because a saved message -// is always also read. -// - Remove stream ids to unsaved messages from -// Topic messages -streams. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::HandleDeletionOfUnsavedMessagesFileL() - { - TRAPD( result, DoHandleDeletionOfUnsavedMessagesFileL() ); - if ( result != KErrNone ) - { - // Recovery impossible -> reset the database. - // Note that this function is not called when the database - // is initialized. - RebuildTopicAndUnsavedStoresL(); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::DoHandleDeletionOfUnsavedMessagesFileL -// Does the work for HandleDeletionOfUnsavedMessagesFileL(). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::DoHandleDeletionOfUnsavedMessagesFileL() - { - // Reset the unread counter of each topic and delete stream ids of - // unsaved messages. - TInt numberOfTopics( iTopics->Count() ); - for ( TInt i( 0 ); i < numberOfTopics; i++ ) - { - TCbsDbTopic topic; - FindTopicByNumberL( iTopics->At( i ).iTopicData.iNumber, topic ); - topic.iUnreadMessages = 0; - DoUpdateTopicL( topic, EFalse, i, EFalse ); - DeleteUnsavedMessageStreamIdsL( iTopics->At( i ).iTopicMessagesId ); - } - - UpdateTopicListStreamL( iCurrentTopicList, ETrue ); - TopicStoreL()->CommitL(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::DeleteUnsavedMessageStreamIdsL -// This function is called when the unsaved messages file has -// been deleted but the Topic messages -stream still contains -// stream ids to deleted message streams. -// All stream ids found in the given topic messages -stream -// pointing to the unsaved messages file are removed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::DeleteUnsavedMessageStreamIdsL( - const TStreamId& aMsgStreamId ) const - { - CArrayFixFlat< TStreamId >* streamIds = - new ( ELeave ) CArrayFixFlat< TStreamId >( KTypicalNumberOfTopicMessages ); - CleanupStack::PushL( streamIds ); - - RStoreReadStream instream; - instream.OpenLC( *TopicStoreL(), aMsgStreamId ); // on CS - - // Read msg count - TInt numberOfMsgs( instream.ReadInt16L() ); - - // Read max msg count - TInt maxNumberOfMsgs( instream.ReadInt16L() ); - - TInt index( 0 ); - - for ( ; index < numberOfMsgs; index++ ) - { - TBool saved( CbsStreamHelper::ReadBoolL( instream ) ); - TStreamId id( 0 ); - instream >> id; - if ( saved ) - { - streamIds->AppendL( id ); - } - } - - CleanupStack::PopAndDestroy(); // instream - - // Write stream ids of saved messages into the new topic message stream - // which replaces the stream identified with aMsgStreamId. - RStoreWriteStream outstream; - outstream.ReplaceLC( *TopicStoreL(), aMsgStreamId ); // on CS - - TInt numberOfSavedmessages( streamIds->Count() ); - - // Number of messages = number of saved messages - outstream.WriteInt16L( numberOfSavedmessages ); - - // Number of saved messages <= number of messages <= maxNumberOfMsgs - outstream.WriteInt16L( maxNumberOfMsgs ); - - for ( index = 0; index < numberOfSavedmessages; index++ ) - { - // All messages are saved (i.e., permanent) - CbsStreamHelper::WriteBoolL( outstream, ETrue ); - outstream << streamIds->At( index ); - } - - for ( ; index < maxNumberOfMsgs; index ++ ) - { - CbsStreamHelper::WriteBoolL( outstream, EFalse ); - outstream << TStreamId( 0 ); - } - - outstream.CommitL(); - CleanupStack::PopAndDestroy(2); // outstream, streamIds - - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::UpdateTopicCountersL -// Resolves the topic position in topic list and uses this information -// to call DoUpdateTopicL. -// Changes to stores are NOT commited. -// Call to DoUpdateTopicL is not trapped. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::UpdateTopicCountersL( - const TCbsDbTopic& aTopic, - const TBool aDeleting ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicList::UpdateTopicCountersL()"); - - // Find out the position of the topic in topic list. - TInt index( TopicIndexInList( aTopic.iNumber ) ); - if ( index == KErrNotFound ) - { - User::Leave( KErrNotFound ); - } - - // DoUpdateTopicL leaves changes uncommited. EFalse for not having to - // change topic position in topic list. - DoUpdateTopicL( aTopic, EFalse, index, aDeleting ); - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicList::UpdateTopicCountersL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::CreateStandardTopicListL -// Creates the Standard topic list (topic list no. 0) -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::CreateStandardTopicListL() - { - // Read standard topic list name from the resource file - RResourceFile resourceFile; - CbsUtils::FindAndOpenDefaultResourceFileLC( iFs, resourceFile ); // on CS - - TResourceReader reader; - reader.SetBuffer( resourceFile.AllocReadLC( R_TEXT_STANDARD_TOPIC_LIST ) ); // on CS - HBufC* standardTopicListName = reader.ReadHBufCL(); - CleanupStack::PushL( standardTopicListName ); - - // Create a new topic list - CreateNewTopicListL( standardTopicListName->Des() ); - - CleanupStack::PopAndDestroy( 3 ); // resourceFile, reader, standardTopicListName - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::LoadTopicsIdsL -// Reads topic IDs of a topic list from the stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::LoadTopicsIdsL( - const TStreamId& aTopicListStreamId ) - { - // Open the topic list stream - RStoreReadStream instream; - instream.OpenLC( *TopicStoreL(), aTopicListStreamId ); // on CS - - // Skip topic list name - delete HBufC::NewL( instream, KCbsDbTopicNameLength ); - - // Skip default list status - CbsStreamHelper::ReadBoolL( instream ); - - // Skip Topic List number - instream.ReadInt16L(); - - // Skip the amount of topics - TInt topicCount = instream.ReadInt16L(); - - // Clear the array - iTopicIds->ResizeL( 0 ); - - TStreamId id( 0 ); - - // Load the topic IDs - for ( TInt i = 0; i < topicCount; i++ ) - { - instream >> id; - iTopicIds->AppendL( id ); - } - - CleanupStack::PopAndDestroy(); // instream - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::LoadTopicsL -// Loads topics of a specified topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::LoadTopicsL( - const TStreamId& aTopicListStreamId ) - { - // Open the topic list stream - RStoreReadStream instream; - instream.OpenLC( *TopicStoreL(), aTopicListStreamId ); // on CS - - // Skip topic list name - delete HBufC::NewL( instream, KCbsDbTopicNameLength ); - - // Skip default list status - CbsStreamHelper::ReadBoolL( instream ); - - // Skip Topic List number - instream.ReadInt16L(); - - // Skip the amount of topics - TInt topicCount = instream.ReadInt16L(); - - // Clear the arrays - iTopics->ResizeL( 0 ); - iTopicIds->ResizeL( 0 ); - - TStreamId id( 0 ); - - // Load the topic IDs - TInt i; - for ( i = 0; i < topicCount; i++ ) - { - instream >> id; - iTopicIds->AppendL( id ); - } - - CleanupStack::PopAndDestroy(); // instream - - // Load necessary information for each topic - TInt count = iTopicIds->Count(); - TCbsDbImpTopic topic; - for ( i = 0; i < count; i++ ) - { - ReadTopicInformationL( iTopicIds->At( i ), topic ); - - if ( topic.iTopicData.iNumber == KIndexTopicNumber ) - { - HBufC* indexName = ReadIndexTopicNameLC(); // on CS - topic.iTopicData.iName.Copy( *indexName ); - CleanupStack::PopAndDestroy(); // indexName - } - iTopics->AppendL( topic ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::UpdateTopicStreamIdsL -// Updates the topic stream IDs. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::UpdateTopicStreamIdsL( - const TCbsDbTopicNumber aTopicNumber ) - { - // Try to find the topic from current topic list - TInt position( TopicIndexInList( aTopicNumber ) ); - if ( position >= 0 ) - { - // Remove from the internal cache of this topic list - iTopics->Delete( position ); - - iCurrentTopicList.iTopicCount--; - - // Update the stream - UpdateTopicListStreamL( iCurrentTopicList, EFalse ); - CommitFilesL(); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicList::__DbgTestInvariant -// Checks that the object is in a valid state, and panics if it is not. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicList::__DbgTestInvariant() const - { - /* -#if defined(_DEBUG) -#endif - */ - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsDbImpTopicMessages.cpp --- a/cbs/CbsServer/ServerSrc/CCbsDbImpTopicMessages.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1720 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsDbImpTopicMessages class -* member functions. -* -*/ - - - -// INCLUDE FILES - -#include - -#include - -#include "CbsServerPanic.h" -#include "CbsStreamHelper.h" -#include "CbsUtils.h" -#include "CbsDbConstants.h" -#include "CCbsDbImpTopicList.h" -#include "CCbsDbImpTopicMessages.h" -#include "CCbsRecEtel.h" -#include "CCbsReceiverHelper.h" - -#include "CbsLogger.h" - -// CONSTANTS - -// Expected maximum number of locked messages at once. -const TInt KDefaultSpaceForLockedMessages = 1; - -// CB message header size in bytes. -const TInt KCbMessageHeaderSize = 16; - -// The space used for the header of messages stream -const TInt KMessageRootStreamSize = 6; - -/// The space used by one message in the messages stream -const TInt KMessageEntrySize = 3; - -// Default space reserved for topic messages in message stream -const TInt KDefaultSpaceForMessages = 6; - -// Space for reading messages -const TInt KReadMessageSize = 92; - - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::CCbsDbImpTopicMessages -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsDbImpTopicMessages::CCbsDbImpTopicMessages( - CCbsDbImpTopicList& aTopicList, - RFs& aFs ) - :iTopicList( aTopicList ), - iCacheValid( EFalse ), - iCachedTopicNumber( 0 ), - iFs( aFs ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::ConstructL() - { - // Allocate the default size for the message list. - iMessageList = - new ( ELeave ) CArrayFixFlat< TCbsDbImpTopicMessagesCacheItem > - ( KCbsDbMaxReceivedMessages + KCbsDbMaxSavedMessages ); - - // Allocate the array for locked messages. - iLockedMessages = new ( ELeave ) CArrayFixFlat< TCbsDbMessageHandle > - ( KDefaultSpaceForLockedMessages ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsDbImpTopicMessages* CCbsDbImpTopicMessages::NewL( - CCbsDbImpTopicList& aTopicList, RFs& aFs ) - { - CCbsDbImpTopicMessages* self = - new ( ELeave ) CCbsDbImpTopicMessages( aTopicList, aFs ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - - -// Destructor -CCbsDbImpTopicMessages::~CCbsDbImpTopicMessages() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicMessages::~CCbsDbImpTopicMessages()"); - // Invalidate cache. - InvalidateCache(); - - // And then delete the message list. - delete iMessageList; - - // Delete locked messages. - delete iLockedMessages; - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicMessages::~CCbsDbImpTopicMessages()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::InvalidateCache -// Resets the cache to default values. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::InvalidateCache() - { - // Initialize members back to default. - iCacheValid = EFalse; - iCachedTopicNumber = 0; - - // Resize the message list. After the call is made, the - // array is empty. - if ( iMessageList ) - { - iMessageList->Reset(); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::InvalidateCacheIfTopic -// Resets the cache to default values. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::InvalidateCacheIfTopic( - const TCbsDbTopicNumber& aNumber ) - { - // Check the handle and then invalidate - if ( iCachedTopicNumber == aNumber ) - { - InvalidateCache(); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::CreateDefaultTopicMessagesStreamL -// Creates a default topic messages stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TStreamId CCbsDbImpTopicMessages::CreateDefaultTopicMessagesStreamL( - CStreamStore& aStore ) - { - // Create the stream. - RStoreWriteStream outstream; - TStreamId id = outstream.CreateLC( aStore ); // on CS - - // Write total amount of messages. - outstream.WriteInt16L( 0 ); - - // Write total amount of space for messages. - outstream.WriteInt16L( KDefaultSpaceForMessages ); - - for ( TInt index( 0 ); index < KDefaultSpaceForMessages; index++ ) - { - // "Saved"-flag - CbsStreamHelper::WriteBoolL( outstream, EFalse ); - // Write message stream id. - outstream << TStreamId( 0 ); - } - - outstream.CommitL(); - CleanupStack::PopAndDestroy(); // outstream - - return id; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::CreateDefaultTopicMessagesStreamL -// Delete all topics messages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::DeleteAllTopicMessagesL( - CStreamStore& aSavedStore, - CStreamStore& aUnsavedStore, - RReadStream& aIn ) - { - // Read total amount of messages. - TInt total( aIn.ReadInt16L() ); - - // Skip space for messages. - aIn.ReadInt16L(); - - // Now, delete all streams.. - for ( TInt index( 0 ); index < total; index++ ) - { - - TBool isSaved( CbsStreamHelper::ReadBoolL( aIn ) ); - TStreamId id; - - // Read stream id. - aIn >> id; - CStreamStore& store = isSaved ? aSavedStore : aUnsavedStore; - store.DeleteL( id ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::IsLockedMessagesInTopic -// Determines whether or not there are any locked messages in -// the topic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsDbImpTopicMessages::IsLockedMessagesInTopic( - const TCbsDbTopicNumber& aNumber ) const - { - TBool result( EFalse ); - - // Checks whether or not there is a locked message in the topic. - TInt count( iLockedMessages->Count() ); - for ( TInt index( 0 ); index < count; index++ ) - { - if ( iTopicList.ExtractTopicNumber( - iLockedMessages->At( index ) ) == aNumber ) - { - result = ETrue; - } - } - return result; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::IsLockedMessages -// Determines whether there is at least one locked message. -// Returns ETrue, if there are any locked messages in the -// database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsDbImpTopicMessages::IsLockedMessages() const - { - return ( iLockedMessages->Count() > 0 ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::GetMessageCountL -// Returns the total amount of messages the topic contains. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::GetMessageCountL( - const TCbsDbTopicNumber& aNumber, - TInt& aCount ) - { - // Load cache. - LoadCacheL( aNumber ); - - // and then get the message count. - aCount = iMessageList->Count(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::GetMessageL -// Returns message information. -// Returns the message matching the given -// index value. Leaves if the index is not valid. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::GetMessageL( - const TCbsDbTopicNumber& aNumber, - TInt aIndex, - TCbsDbMessage& aMessage ) - { - // Load the cache. - LoadCacheL( aNumber ); - - // Check if the index is not valid. - if ( ( aIndex < 0 ) || ( aIndex >= iMessageList->Count() ) ) - { - User::Leave( KErrNotFound ); - } - - // Load the message. - LoadMessageL( aIndex, aMessage ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::FindMessageByHandleL -// Finds the message for given handle and returns it. -// Returns the message matching the given -// index value. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::FindMessageByHandleL( - const TCbsDbMessageHandle& aHandle, - TCbsDbMessage& aMessage ) - { - // Load cache - LoadCacheL( iTopicList.ExtractTopicNumber( aHandle ) ); - - // Load message - LoadMessageL( FindMessagePositionByHandleL( aHandle ), aMessage ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::GetMessageContentsL -// Returns the contents of a message. -// Stores the contents of the message to the buffer aContents. -// If aContents is too small to contain the whole message -// body, the message body is truncated. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::GetMessageContentsL( - const TCbsDbMessageHandle& aHandle, - TPtr& aContents, - TUint aSize ) - { - LoadCacheL( iTopicList.ExtractTopicNumber( aHandle ) ); - - TInt position( FindMessagePositionByHandleL( aHandle ) ); - - TCbsDbMessage message; - LoadMessageL( position, message ); - - LoadMessageContentsL( iMessageList->At( position ).iContentsId, - aContents, message.iPermanent, aSize ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::DeleteMessageL -// Deletes a message. Leaves if the message is protected -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::DeleteMessageL( - const TCbsDbMessageHandle& aHandle, - const CCbsRecEtel& aReceiver ) - { - // Get the topic handle. - LoadCacheL( iTopicList.ExtractTopicNumber( aHandle ) ); - - // Check if the message is locked. - if ( IsMessageLocked( aHandle ) ) - { - // Yes, leave. - User::Leave( KErrAccessDenied ); - } - else - { - // Otherwise, delete. - TRAPD( error, DoDeleteMessageL( - FindMessagePositionByHandleL( aHandle ) ) ); - - if ( error != KErrNone ) - { - // Failed. - RevertFileOperationL( error ); - } - else - { - // Update the soft notification dialog, if topic is hotmarked - UpdateSoftNotificationL( aHandle, aReceiver ); - } - } - - iTopicList.NotifyTopicModifiedL( - iTopicList.ExtractTopicNumber( aHandle ) ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::AddMessageL -// Creates a new message to the topic. -// Stores a handle to the message in aHandle. -// FFS critical level check is made prior to operation. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::AddMessageL( - const TCbsDbTopicNumber& aNumber, - TCbsDbMessage& aMessage, - const TPtrC& aContents ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicMessages::AddMessageL()"); - - LoadCacheL( aNumber ); - - aMessage.iLength = aContents.Length(); - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicMessages::AddMessageL(): Content length: %d.", aMessage.iLength ); - - // Generate a new message handle. - aMessage.iHandle = GenerateNewMessageHandle( aNumber ); - - // Make sure that the message is not inserted as permanent - aMessage.iPermanent = EFalse; - - TRAPD( error, DoAddMessageL( aMessage, aContents ) ); - if ( error != KErrNone ) - { - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicMessages::AddMessageL(): DoAddMessageL() failed, error: %d.", error ); - - // Failed. - RevertFileOperationL( error ); - - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::AddMessageL(): RevertFileOperationL() finished OK." ); - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicMessages::AddMessageL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::SaveMessageL -// Saves a message. -// This operation is called "keeping" in the UI. -// The CBS server has a global limit for saved -// messages. The function leaves, if this is exceeded. -// A saved message has it's permanent-flag raised. -// FFS critical level check is made prior to the operation. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::SaveMessageL( - const TCbsDbMessageHandle& aHandle, - const CCbsRecEtel& aReceiver ) - { - // Load cache. - TCbsTopicNumber topicNumber( iTopicList.ExtractTopicNumber( aHandle ) ); - LoadCacheL( topicNumber ); - - // Now find message by handle. - TInt position( FindMessagePositionByHandleL( aHandle ) ); - - TCbsDbMessage message; - LoadMessageL( position, message ); - TStreamId contentsId( iMessageList->At( position ).iContentsId ); - - // This function should not be called if the message is already permanent. - if ( message.iPermanent ) - { - User::Leave( KErrAlreadyExists ); - } - - // Check that the limit for maximum saved messages/topic is not exceeded. - TCbsDbTopic topic; - iTopicList.FindTopicByNumberL( topicNumber, topic ); - if ( iTopicList.TotalSavedMessages() >= KCbsDbMaxSavedMessages ) - { - User::Leave( KErrOverflow ); - } - - // FFS critical level check (header is 16 bytes, message coded in Unicode) - CbsUtils::FFSCriticalLevelCheckL( KCbMessageHeaderSize + - 2 * message.iLength, iFs ); - - // Create a temporary buffer for message body and load the contents into - // the buffer. - HBufC* buffer = HBufC::NewLC( message.iLength ); // on CS - TPtr contentPtr( buffer->Des() ); - LoadMessageContentsL( contentsId, contentPtr, EFalse, message.iLength ); - - // Delete message's previous header and body streams. - TCbsDbImpTopicMessagesCacheItem item( iMessageList->At( position ) ); - - TRAPD( result, DoSaveMessageL( message, item, contentPtr, position ) ); - CleanupStack::PopAndDestroy( buffer ); - if ( result != KErrNone ) - { - RevertFileOperationL( result ); - } - else - { - iTopicList.NotifyTopicModifiedL( - iTopicList.ExtractTopicNumber( aHandle ) ); - - // Update the soft notification dialog, if topic is hotmarked - UpdateSoftNotificationL( aHandle, aReceiver ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::DoSaveMessageL -// Saves a message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::DoSaveMessageL( - TCbsDbMessage& aMessage, - const TCbsDbImpTopicMessagesCacheItem& aItem, - const TDesC& aContentPtr, - TInt aPosition ) - { - CFileStore* store = iTopicList.UnsavedMessagesStore(); - store->Delete( aItem.iId ); - store->Delete( aItem.iContentsId ); - - TBool needToUpdateReadCounter( EFalse ); - aMessage.iPermanent = ETrue; - if ( !aMessage.iRead ) - { - needToUpdateReadCounter = ETrue; - aMessage.iRead = ETrue; - } - - // Create new streams for message header and body. - TStreamId contentsStream( CreateMessageContentsStreamL( - *iTopicList.TopicStoreL(), aContentPtr ) ); - TStreamId messageStream( CreateMessageStreamL( - *iTopicList.TopicStoreL(), aMessage, contentsStream ) ); - - // Update message's cache item information. - TCbsDbImpTopicMessagesCacheItem& item = iMessageList->At( aPosition ); - item.iContentsId = contentsStream; - item.iId = messageStream; - item.iIsSaved = ETrue; - item.iMessage = aMessage; - - // Update topic messages stream; the cache item is saved into the stream. - UpdateTopicMessagesStreamL( EFalse ); - - iTopicList.InformMessageSavedL( aMessage.iHandle ); - if ( needToUpdateReadCounter ) - { - iTopicList.InformUnreadMessageReadL( aMessage.iHandle ); - } - - // Commit changes to both files. - iTopicList.CommitFilesL(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::ReadMessageL -// Marks the message read -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::ReadMessageL( - const TCbsDbMessageHandle& aHandle, - const CCbsRecEtel& aReceiver ) - { - //Checked that there is space for writing data on FFS. - CbsUtils::FFSCriticalLevelCheckL( KReadMessageSize, iFs ); - - // Load cache. - TCbsDbTopicNumber topicNum( iTopicList.ExtractTopicNumber( aHandle ) ); - LoadCacheL( topicNum ); - - // Now find message by handle. - TInt position( FindMessagePositionByHandleL( aHandle ) ); - - TCbsDbMessage message; - LoadMessageL( position, message ); - TStreamId contentsId( iMessageList->At( position ).iContentsId ); - TStreamId id( iMessageList->At( position ).iId ); - - // Check if the message is already read, then there is nothing more to do. - if ( !message.iRead ) - { - message.iRead = ETrue; - - TRAPD( error, DoReadMessageL( id, message, contentsId ) ); - if ( error == KErrNone ) - { - iMessageList->At( position ).iMessage = message; - - iTopicList.NotifyTopicModifiedL( - iTopicList.ExtractTopicNumber( aHandle ) ); - - // Update the soft notification dialog, if topic is hotmarked - UpdateSoftNotificationL( aHandle, aReceiver ); - } - else - { - RevertFileOperationL( error ); - } - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::UpdateHandlesOfTopicMessagesL -// Updates handles of messages in the topic with the number given in -// aOldTopicNumber to match new topic number. -// Traverses through the given topic processing -// each message stream encountered. Since the topic number is -// the primary key and previous message handles can be assumed -// to be unique, updating the high word of the handle to -// match the new topic number is adequate. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::UpdateHandlesOfTopicMessagesL( - const TCbsDbTopicNumber& aOldTopicNumber, - const TCbsDbTopicNumber& aNewTopicNumber ) - { - LoadCacheL( aOldTopicNumber ); - - TInt msgs( iMessageList->Count() ); - - for ( TInt i( 0 ); i < msgs; i++ ) - { - // Fetch message at this position - TCbsDbMessage message; - LoadMessageL( i, message ); - TStreamId contentsStreamId( iMessageList->At( i ).iContentsId ); - TStreamId messageStreamId( iMessageList->At( i ).iId ); - - // Insert new topic number as the high word of the handle - message.iHandle = ( aNewTopicNumber << 16 ) | - ( message.iHandle & 0xFFFF ); - DoUpdateMessageL( messageStreamId, message, contentsStreamId ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::LockMessageL -// Unlocks one message and then locks another message. -// Message that is locked can not be removed. Topic that -// contains a locked message can not be removed. -// Note that locking status is not persistent in the sense that -// when the power is switched off and turned on, no messages -// are automatically locked. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::LockMessageL( - const TCbsDbMessageHandle& aUnlock, - const TCbsDbMessageHandle& aLock ) - { - // Check if the message exists: leave if not found, ignore return value - if ( aLock != 0 ) - { - TCbsDbMessage message; - TInt position( FindMessagePositionByHandleL( aLock ) ); - LoadMessageL( position, message ); - } - - TBool unlockNull( ETrue ); - - if ( aUnlock != 0 ) - { - DeleteFromLocked( aUnlock ); - unlockNull = EFalse; - } - - if ( aLock != 0 ) - { - InsertToLockedL( aLock ) ; - } - - if ( unlockNull == EFalse ) - { - LoadCacheL( iTopicList.ExtractTopicNumber( aUnlock ) ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::GetNextAndPrevMsgHandleL -// Returns the handles of the next and previous message -// when given a current message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::GetNextAndPrevMsgHandleL( - const TCbsDbMessageHandle& aCurrentMsg, - TCbsDbMessageHandle& aNextMsg, - TCbsDbMessageHandle& aPrevMsg, - TInt& aPosition) - { - LoadCacheL( iTopicList.ExtractTopicNumber( aCurrentMsg ) ); - - // Load the current message - TInt index( FindMessagePositionByHandleL( aCurrentMsg ) ); - - // Reset position indications - aPosition = 0; - - // Retrieve position indications and message handles - if ( index == 0 ) - { - aPosition |= ECbsHead; - } - else - { - TCbsDbMessage prevMessage; - LoadMessageL( index - 1, prevMessage ); - aPrevMsg = prevMessage.iHandle; - } - - // If index points to the last element of iMessageList, - // raise flag ECbsTail. - if ( index == iMessageList->Count()-1 ) - { - aPosition |= ECbsTail; - } - else - { - TCbsDbMessage nextMessage; - LoadMessageL( index+1, nextMessage ); - aNextMsg = nextMessage.iHandle; - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::DoAddMessageL -// Inserts a message into the database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::DoAddMessageL( - TCbsDbMessage& aMessage, - const TDesC& aContents ) - { - // Cache is assumed to be loaded. Message is assumed not to - // already exist in the DB. - CFileStore* store = aMessage.iPermanent ? - iTopicList.TopicStoreL() : iTopicList.UnsavedMessagesStore(); - - if ( aMessage.iPermanent ) - { - // About to write to FFS: make critical level check. - // Message is in Unicode characters, so its size - // is double the length. - CbsUtils::FFSCriticalLevelCheckL( KCbMessageHeaderSize + - 2 * aMessage.iLength, iFs ); - } - else - { - CbsUtils::VolumeCriticalLevelCheckL( - iTopicList.UnsavedMessagesFilename(), - KCbMessageHeaderSize + 2 * aMessage.iLength, iFs ); - } - - // Create stream for contents. - TStreamId contentsStream( CreateMessageContentsStreamL( - *store, aContents ) ); - - // Now we have to find the position to which the message should be - // inserted. - TInt positionToBeInserted( -1 ); - - TTime messageTime( aMessage.iDateTime ); - TInt index( 0 ); - - // Go through all messages in topic and find the position. - TInt count( iMessageList->Count() ); - for ( ; index < count && positionToBeInserted == -1; index++ ) - { - TCbsDbMessage message; - LoadMessageL( index, message ); - - TTime tmp( message.iDateTime ); - - if ( tmp <= messageTime ) - { - positionToBeInserted = index; - } - } - - // If we looped through, append - if ( positionToBeInserted == -1 ) - { - positionToBeInserted = index; - } - - // Create message stream. - TStreamId messageStream( CreateMessageStreamL( *store, - aMessage, contentsStream ) ); - - // Add to internal cache. - TCbsDbImpTopicMessagesCacheItem item; - - item.iId = messageStream; - item.iIsMessage = EFalse; - item.iIsSaved = aMessage.iPermanent; - - iMessageList->InsertL( positionToBeInserted, item ); - - // Check if message should be deleted. - DeleteReceivedIfNecessaryL(); - - // Update topic messages stream. - UpdateTopicMessagesStreamL( EFalse ); - - // Update counters. - iTopicList.InformNewMessageReceivedL( aMessage.iHandle ); - - // Commit changes to both stores. - iTopicList.CommitFilesL(); - - // Inform observers. Done after commit to make sure there's - // a message to inform of. - iTopicList.NotifyNewMessageArrivedL( aMessage.iHandle ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::DoDeleteMessageL -// Deletes a message from the database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::DoDeleteMessageL( - TInt aPosition ) - { - TCbsDbMessage message; - LoadMessageL( aPosition, message ); - - // Delete the message, if it is possible. - DeleteMessageByPositionL( aPosition ); - DeleteReceivedIfNecessaryL(); - UpdateTopicMessagesStreamL( ETrue ); - - // Inform the topic list about deletion. - iTopicList.InformMessageDeletedL( message.iHandle, - message.iPermanent, message.iRead ); - - iTopicList.CommitFilesL(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::DoUpdateMessageL -// Updates the information for a message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::DoUpdateMessageL( - const TStreamId& aId, - const TCbsDbMessage& aMessage, - const TStreamId& aContentsId ) const - { - // Update the stream contents. - CFileStore* store = aMessage.iPermanent ? - iTopicList.TopicStoreL() : iTopicList.UnsavedMessagesStore(); - - RStoreWriteStream outstream; - outstream.ReplaceLC( *store, aId ); // on CS - - WriteMessageInformationL( outstream, aMessage, aContentsId ); - - outstream.CommitL(); - CleanupStack::PopAndDestroy(); // outstream - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::DoReadMessageL -// Marks a message read by updating it in the database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::DoReadMessageL( - const TStreamId& aId, - const TCbsDbMessage& aMessage, - const TStreamId& aContentsId ) - { - DoUpdateMessageL( aId, aMessage, aContentsId ); - iTopicList.InformUnreadMessageReadL( aMessage.iHandle ); - iTopicList.CommitFilesL(); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::DoDeleteL -// Deletes messages that are not supposed to be in the topic. -// Because of message locking it is possible that there are more -// received messages than there should be. This method tries to -// delete this kind of message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::DoDeleteL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicMessages::DoDeleteL()"); - - // Delete temporary messages and update topic messages stream. - if ( DeleteReceivedIfNecessaryL() ) - { - UpdateTopicMessagesStreamL( ETrue ); - } - iTopicList.CommitFilesL(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicMessages::DoDeleteL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::FindMessageByKeyL -// Returns a handle to a message with the given key. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsDbImpTopicMessages::FindMessageByKeyL( - TCbsDbTopicNumber aNumber, - TCbsDbMessageKey aKey, - TCbsDbMessage& aMessage ) - { - TCbsDbMessage message; - TInt count; - TBool result( KErrNotFound ); - - // Find a message even if the update numbers don't match - aKey &= 0xfff0; - - // Try to find a message with the same key in the topic. - LoadCacheL( aNumber ); - GetMessageCountL( aNumber, count ); - - for ( TInt index( 0 ); ( index < count ) && ( result != KErrNone ); index++ ) - { - LoadMessageL( index, message ); - - if ( (message.iKey & 0xfff0) == aKey ) - { - aMessage = message; - result = KErrNone; // message was found - } - } - return result; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::FindMessagePositionByHandleL -// Returns the position of a message with the given handle. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsDbImpTopicMessages::FindMessagePositionByHandleL( - const TCbsDbMessageHandle& aHandle ) - { - // Load the cache. - LoadCacheL( iTopicList.ExtractTopicNumber( aHandle ) ); - - // Now, find the message - TInt count( iMessageList->Count() ); - - TCbsDbMessage message; - TBool found( EFalse ); - - // Go through messages. - TInt index( 0 ); - for ( ; ( index < count ) && !found; ) - { - // Load the message. - LoadMessageL( index, message ); - - // Check if it is this one. - if ( message.iHandle == aHandle ) - { - found = ETrue; - } - else - { - index++; - } - } - - if ( !found ) - { - User::Leave( KErrNotFound ); - } - - return index; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::LoadCacheL -// Loads the cache, if it is not already loaded with this topic information. -// The method does not load any message information to the cache -// - only what is really necessary. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::LoadCacheL( - const TCbsDbTopicNumber& aNumber ) - { - CBSLOGSTRING2("CBSSERVER: >>> CCbsDbImpTopicMessages::LoadCacheL(), topic number: %d.", aNumber ); - - // Check if the cache is valid. If not, load it. - if ( !( iCacheValid && ( iCachedTopicNumber == aNumber ) ) ) - { - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::LoadCacheL(): Calling InvalidateCache()..."); - // Invalidate the old cache, if it is necessary. - InvalidateCache(); - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::LoadCacheL(): InvalidateCache() called OK."); - - // Load message queue ids. - TStreamId id; - iTopicList.GetTopicMessagesIdL( aNumber, id ); - - ReadTopicMessagesCacheItemsL( *iTopicList.TopicStoreL(), - id, *iMessageList, iSpaceForMessages ); - - // Cache is valid. - iCachedTopicNumber = aNumber; - iCacheValid = ETrue; - - // Check if it there are more topics than there should be. - TCbsDbTopic topic; - iTopicList.FindTopicByNumberL( aNumber, topic ); - if ( ( iMessageList->Count() - topic.iSavedMessages ) > - KCbsDbMaxReceivedMessages ) - { - TRAPD( error, DoDeleteL() ); - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicMessages::LoadCacheL(): DoDeleteL() finished with %d.", error ); - - if ( error != KErrNone ) - { - RevertFileOperationL( error ); - } - } - } - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicMessages::LoadCacheL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::LoadMessageL -// Loads the message header to the cache. -// Note that it is assumed that the index is in proper range and -// the cache is already loaded. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::LoadMessageL( - TInt aIndex, - TCbsDbMessage& aMessage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicMessages::LoadMessageL()"); - - // Check that the aIndex is in proper range and. - // that the cache is valid (just for sure). - if ( aIndex < 0 || aIndex >= iMessageList->Count() || - !iCacheValid ) - { - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::LoadMessageL(): Leaving with KErrNotFound..."); - User::Leave( KErrNotFound ); - } - - // Check if the message information is already loaded. - if ( iMessageList->At( aIndex ).iIsMessage ) - { - // Yes, just make a fast copy. - aMessage = iMessageList->At( aIndex ).iMessage; - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::LoadMessageL(): Msg already loaded, fast copy made."); - } - else - { - TStreamId id( TStreamId( 0 ) ); - // Choose the file store: saved messages are stored elsewhere - // than other messages. - CFileStore* store = iMessageList->At( aIndex ).iIsSaved ? - iTopicList.TopicStoreL() : - iTopicList.UnsavedMessagesStore(); - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::LoadMessageL(): Store created."); - - // Then read the message. If the message stream cannot be - // found, delete the reference to the message - TRAPD( error, ReadMessageInformationL( *store, - iMessageList->At( aIndex ).iId, aMessage, id ) ); - - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicMessages::LoadMessageL(): ReadMessageInformationL() finished with %d.", error ); - - if( error == KErrNotFound ) - { - DeleteMessageByPositionL( aIndex ); - UpdateTopicMessagesStreamL( ETrue ); - iTopicList.CommitFilesL(); - } - - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicMessages::LoadMessageL(): Leaving if error code < 0: error %d...", error ); - User::LeaveIfError( error ); - - // And copy to the internal cache. - iMessageList->At( aIndex ).iIsMessage = ETrue; - iMessageList->At( aIndex ).iContentsId = id; - iMessageList->At( aIndex ).iMessage = aMessage; - } - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicMessages::LoadMessageL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::LoadMessageContentsL -// Loads message contents (as much as it fits). -// Restores the contents of a message -// by reading a stream specified in parameter aContentsId. -// Save status of message is required because saved and unsaved -// messages are stored on separate files. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::LoadMessageContentsL( - const TStreamId& aContentsId, - TPtr& aContents, - TBool aIsSaved, - TUint aSize ) const - { - CFileStore* store = aIsSaved ? - iTopicList.TopicStoreL() : - iTopicList.UnsavedMessagesStore(); - - // Read data to the buffer. - RStoreReadStream instream; - instream.OpenLC( *store, aContentsId ); // on CS - - // Read the data into a temporary buffer first. - // Then copy to the aContents descriptor only - // as much as it can take. - TUint length( instream.ReadInt16L() ); - if ( length > KCbsMaxCharsInMessage ) - { - User::Leave( KErrCorrupt ); - } - - HBufC* buf = HBufC::NewL( instream, length ); - if ( length > aSize ) - { - length = aSize; - } - - aContents.Copy( buf->Ptr(), length ); - delete buf; - - CleanupStack::PopAndDestroy(); // instream - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::GenerateNewMessageHandle -// Generates a new, unique handle for a message. -// The generation uses topic number as -// basis and then increments the handle value until an unique -// handle is found. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsDbMessageHandle CCbsDbImpTopicMessages::GenerateNewMessageHandle( - const TCbsDbTopicNumber& aNumber ) - { - // Start with a reasonable seed. We'll try the number - // of messages in topic, plus one. - TUint16 handleLow( TUint16( iMessageList->Count() + 1 ) ); - TCbsDbMessageHandle handle( 1 ); - TInt error( KErrNone ); - - while ( error == KErrNone ) - { - handleLow++; - if ( handleLow == 0 ) - { - handleLow++; - } - - // Generate a new message handle. - handle = iTopicList.GenerateMessageHandle( aNumber, - handleLow ); - - TRAP( error, ( FindMessagePositionByHandleL( handle ) ) ); - } - return handle; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::DeleteReceivedIfNecessaryL -// Checks that if there are too many received messages in the internal cache, -// then they will be deleted if they are not locked. -// Note: Count() is changed in for-loop. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsDbImpTopicMessages::DeleteReceivedIfNecessaryL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicMessages::DeleteReceivedIfNecessaryL()"); - - // So check if there are too many received messages in the topic. - // Thus delete if message is not locked. - - __ASSERT_DEBUG( iCacheValid, CbsServerPanic( ECbsCacheNotValid ) ); - - TInt totalReceived( 0 ); - TCbsDbMessage message; - TBool result( EFalse ); - TInt index( 0 ); - - for ( index = 0; index < iMessageList->Count(); index++ ) - { - LoadMessageL( index, message ); - - // Count the amount of received messages - if ( !message.iPermanent ) - { - totalReceived++; - - // If there are too many, then check that it can be deleted. - if ( totalReceived > KCbsDbMaxReceivedMessages && - !IsMessageLocked( message.iHandle ) ) - { - // Delete the message. - DeleteMessageByPositionL( index ); - iTopicList.InformMessageDeletedL - ( message.iHandle, - message.iPermanent, - message.iRead ); - result = ETrue; - - // They are always deleted from internal cache - index--; - totalReceived--; - } - } - } - - CBSLOGSTRING2("CBSSERVER: <<< CCbsDbImpTopicMessages::DeleteReceivedIfNecessaryL(), returning %d.", result ); - return result; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::DeleteMessageByPositionL -// Deletes message by its position in the internal cache. -// Note that after the call the internal cache won't contain -// the item. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::DeleteMessageByPositionL( - TInt aIndex ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicMessages::DeleteMessageByPositionL()"); - - // Delete from cache and from file. - __ASSERT_DEBUG( iCacheValid, CbsServerPanic( ECbsCacheNotValid ) ); - - TCbsDbImpTopicMessagesCacheItem item( iMessageList->At( aIndex ) ); - - // Determine the file where the message is stored. - CFileStore* store = item.iIsSaved ? iTopicList.TopicStoreL() : - iTopicList.UnsavedMessagesStore(); - - iMessageList->Delete( aIndex ); - - store->Delete( item.iId ); - store->Delete( item.iContentsId ); - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicMessages::DeleteMessageByPositionL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::IsMessageLocked -// Determines whether or not the message is locked. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsDbImpTopicMessages::IsMessageLocked( - const TCbsDbMessageHandle& aHandle ) const - { - // Find out if the message is locked. - TBool found( EFalse ); - TInt count( iLockedMessages->Count() ); - for ( TInt index( 0 ); ( index < count ) && !found; index++ ) - { - if ( iLockedMessages->At( index ) == aHandle ) - { - found = ETrue; - } - } - - return found; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::DeleteFromLocked -// Deletes from the locked messages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::DeleteFromLocked( - const TCbsDbMessageHandle& aHandle ) - { - TBool deleted( EFalse ); - TInt count( iLockedMessages->Count() ); - - for ( TInt index( 0 ); ( index < count ) && !deleted; index++ ) - { - if ( iLockedMessages->At( index ) == aHandle ) - { - iLockedMessages->Delete( index ); - deleted = ETrue; - } - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::InsertToLockedL -// Adds a handle to the locked messages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::InsertToLockedL( - const TCbsDbMessageHandle& aHandle ) - { - // Just append to the end. - iLockedMessages->AppendL( aHandle ); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::UpdateTopicMessagesStreamL -// Updates topic messages stream from the internal cache. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::UpdateTopicMessagesStreamL( - TBool aDeleting ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicMessages::UpdateTopicMessagesStreamL()"); - - __ASSERT_DEBUG( iCacheValid, CbsServerPanic( ECbsCacheNotValid ) ); - - TInt neededSpace( KMessageRootStreamSize + - iMessageList->Count() * KMessageEntrySize ); - - RSharedDataClient sharedData; - // About to write to FFS: make critical level check - if ( aDeleting ) - { - User::LeaveIfError( sharedData.Connect() ); - sharedData.RequestFreeDiskSpaceLC( neededSpace ); // on CS - } - else - { - CbsUtils::FFSCriticalLevelCheckL( neededSpace, iFs ); - } - - // Now, first check if the information fits well to the current stream. - if ( iSpaceForMessages >= iMessageList->Count() ) - { - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::UpdateTopicMessagesStreamL(): (3)"); - - // Write data to the old stream. - TStreamId id; - iTopicList.GetTopicMessagesIdL( iCachedTopicNumber, id ); - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::UpdateTopicMessagesStreamL(): (4)"); - - // Replace the existing stream. - RStoreWriteStream outstream; - outstream.ReplaceLC( *iTopicList.TopicStoreL(), id ); // on CS - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::UpdateTopicMessagesStreamL(): (5)"); - - WriteTopicMessagesStreamL( outstream ); - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::UpdateTopicMessagesStreamL(): (6)"); - - outstream.CommitL(); - CleanupStack::PopAndDestroy(); // outstream - } - else - { - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::UpdateTopicMessagesStreamL(): (7)"); - // Calculate the amount of space for messages. - if ( iSpaceForMessages == 0 ) - { - // Zero is not very good, lets put it greater. - iSpaceForMessages = KDefaultSpaceForMessages; - } - - // But no need for extra messages. - iSpaceForMessages = 2 * iSpaceForMessages; - if ( iSpaceForMessages > - ( KCbsDbMaxReceivedMessages + KCbsDbMaxSavedMessages ) ) - { - iSpaceForMessages = - KCbsDbMaxReceivedMessages + KCbsDbMaxSavedMessages; - } - if ( iMessageList->Count() > iSpaceForMessages ) - { - iSpaceForMessages = iMessageList->Count(); - } - - // And finally write the data to stream. - RStoreWriteStream outstream; - TStreamId id = outstream.CreateLC( *iTopicList.TopicStoreL() );// on CS - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::UpdateTopicMessagesStreamL(): (8)"); - - WriteTopicMessagesStreamL( outstream ); - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::UpdateTopicMessagesStreamL(): (9)"); - - outstream.CommitL(); - CleanupStack::PopAndDestroy(); // outstream - - // And then update topic messages stream. It will also delete - // the old stream. - iTopicList.UpdateTopicMessagesIdL( iCachedTopicNumber, id ); - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::UpdateTopicMessagesStreamL(): (10)"); - } - - // Free the reserved space - if ( aDeleting ) - { - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::UpdateTopicMessagesStreamL(): (11)"); - CleanupStack::PopAndDestroy(); // disk space - sharedData.Close(); - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicMessages::UpdateTopicMessagesStreamL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::WriteTopicMessagesStreamL -// Writes topic messages stream from the internal cache. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::WriteTopicMessagesStreamL( - RWriteStream& aOut ) - { - // Write total amount of messages. - TInt count( iMessageList->Count() ); - aOut.WriteInt16L( count ); - - // Write total amount of space for messages. - aOut.WriteInt16L( iSpaceForMessages ); - - TInt index( 0 ); - - for ( ; index < count; index++ ) - { - CbsStreamHelper::WriteBoolL( aOut, - iMessageList->At( index ).iIsSaved ); - - // Write message stream id. - aOut << iMessageList->At( index ).iId; - } - - for ( ; index < iSpaceForMessages; index++ ) - { - CbsStreamHelper::WriteBoolL( aOut, EFalse ); - - // Write null message stream id. - aOut << TStreamId( 0 ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::CreateMessageContentsStreamL -// Creates a new message content stream and writes -// the given contents into this stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TStreamId CCbsDbImpTopicMessages::CreateMessageContentsStreamL( - CStreamStore& aStore, - const TDesC& aContents ) - { - // Create stream and write data to it. - RStoreWriteStream outstream; - TStreamId id( outstream.CreateLC( aStore ) ); // on CS - - // Just write the contents.. - TInt count( aContents.Length() ); - outstream.WriteInt16L( count ); - outstream << aContents; - - outstream.CommitL(); - CleanupStack::PopAndDestroy(); // outstream - - return id; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::CreateMessageStreamL -// Creates a message stream and -// writes the message into that stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TStreamId CCbsDbImpTopicMessages::CreateMessageStreamL( - CStreamStore& aStore, - TCbsDbMessage& aMessage, - const TStreamId& aContents ) - { - // Create stream and write data to it. - RStoreWriteStream outstream; - TStreamId id = outstream.CreateLC( aStore ); // on CS - - // Write the handle. - outstream.WriteInt32L( aMessage.iHandle ); - - // Write the message key. - outstream.WriteInt16L( aMessage.iKey ); - - // Write the language. - outstream.WriteInt16L( aMessage.iLanguage ); - - // Write the date and time. - outstream << aMessage.iDateTime; - - // Write the permanent status. - CbsStreamHelper::WriteBoolL( outstream, aMessage.iPermanent ); - - // Write the read status. - CbsStreamHelper::WriteBoolL( outstream, aMessage.iRead ); - - // Write the stream identifier to the contents. - outstream << aContents; - - outstream.CommitL(); - CleanupStack::PopAndDestroy(); // outstream - - return id; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::ReadTopicMessagesCacheItemsL -// Reads all cache items for a topic. -// Restores topic message cache from a stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::ReadTopicMessagesCacheItemsL( - const CStreamStore& aStore, - const TStreamId& aId, - TCbsDbImpTopicMessagesCache& aCache, - TInt& aSpace ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicMessages::ReadTopicMessagesCacheItemsL()"); - - RStoreReadStream instream; - instream.OpenLC( aStore, aId ); // on CS - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::ReadTopicMessagesCacheItemsL(): instream.OpenLC() OK."); - - // Read total amount of messages. - TInt totalMessages( instream.ReadInt16L() ); - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicMessages::ReadTopicMessagesCacheItemsL(): totalMessages: %d.", totalMessages ); - - // Read total amount of space for messages. - aSpace = instream.ReadInt16L(); - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicMessages::ReadTopicMessagesCacheItemsL(): aSpace: %d.", aSpace ); - - // Sanity check: if the number of messages exceeds - // the worst case, leave. If the space for messages - // is smaller than number of messages, leave. - if ( totalMessages > KCbsDbMaxSavedMessages + KCbsDbMaxReceivedMessages - || aSpace < totalMessages ) - { - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::ReadTopicMessagesCacheItemsL(): Stream corrupt, leaving with KErrCorrupt..."); - User::Leave( KErrCorrupt ); - } - - TCbsDbImpTopicMessagesCacheItem item; - - aCache.Reset(); - - for ( TInt index( 0 ); index < totalMessages; index++ ) - { - CBSLOGSTRING2("CBSSERVER: CCbsDbImpTopicMessages::ReadTopicMessagesCacheItemsL(): Looping msgs, i: %d.", index ); - item.iIsSaved = CbsStreamHelper::ReadBoolL( instream ); - - // Read topic message stream id. - instream >> item.iId; - - // Initialize other fields. - item.iIsMessage = EFalse; - - // And finally, append the item to the array - aCache.AppendL( item ); - - CBSLOGSTRING("CBSSERVER: CCbsDbImpTopicMessages::ReadTopicMessagesCacheItemsL(): Msg appended to array."); - } - - CleanupStack::PopAndDestroy(); // instream - - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicMessages::ReadTopicMessagesCacheItemsL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::ReadMessageInformationL -// Restore a message from a stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::ReadMessageInformationL( - const CStreamStore& aStore, - const TStreamId& aId, - TCbsDbMessage& aMessage, - TStreamId& aContentsId ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDbImpTopicMessages::ReadMessageInformationL()"); - - // Open the message information stream. - RStoreReadStream instream; - instream.OpenLC( aStore, aId ); // on CS - - // Read the handle. - aMessage.iHandle = instream.ReadInt32L(); - - // Read the message key. - aMessage.iKey = instream.ReadInt16L(); - - // Read the language. - aMessage.iLanguage = instream.ReadInt16L(); - - // Read the date and time. - TInt64 time; - instream >> time; - aMessage.iDateTime = time; - - // Read the permanent status. - aMessage.iPermanent = CbsStreamHelper::ReadBoolL( instream ); - - // Read the read status. - aMessage.iRead = CbsStreamHelper::ReadBoolL( instream ); - - // Read the stream identifier to the contents. - instream >> aContentsId; - - CleanupStack::PopAndDestroy(); // instream - - if ( aContentsId == TStreamId( 0 ) ) - { - aMessage.iLength = 0; - } - else - { - // Open message contents stream. - RStoreReadStream instreamContents; - - instreamContents.OpenLC( aStore, aContentsId ); // on CS - - // Read the length of the message. - aMessage.iLength = instreamContents.ReadInt16L(); - - CleanupStack::PopAndDestroy(); // instreamContents - } - CBSLOGSTRING("CBSSERVER: <<< CCbsDbImpTopicMessages::ReadMessageInformationL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::WriteMessageInformationL -// Writes message information into a stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::WriteMessageInformationL( - RWriteStream& aOut, - const TCbsDbMessage& aMessage, - const TStreamId& aContentsId ) - { - // Write the handle. - aOut.WriteInt32L( aMessage.iHandle ); - - // Write the message key. - aOut.WriteInt16L( aMessage.iKey ); - - // Write the language. - aOut.WriteInt16L( aMessage.iLanguage ); - - // Write the date and time. - aOut << aMessage.iDateTime; - - // Write the permanent status. - CbsStreamHelper::WriteBoolL( aOut, aMessage.iPermanent ); - - // Write the read status. - CbsStreamHelper::WriteBoolL( aOut, aMessage.iRead ); - - // Write the stream identifier to the contents. - aOut << aContentsId; - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::UpdateSoftNotificationL -// Updates the soft notification (dialog) when unread message count changes. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::UpdateSoftNotificationL( - const TCbsDbMessageHandle& aHandle, - const CCbsRecEtel& aReceiver ) - { - TCbsDbTopic topic; - TCbsDbTopicNumber topicNum( iTopicList.ExtractTopicNumber( aHandle ) ); - iTopicList.FindTopicByNumberL( topicNum, topic ); - - // If topic is hotmarked, update the soft notification (dialog) , - // since number of read messages was changed - if ( topic.iHotmarked ) - { - aReceiver.Interface().LaunchMessageSoftNotificationL( EFalse ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsDbImpTopicMessages::RevertFileOperationL -// Reverts any not commited file operation in data files, -// reloads cache and then leaves with aReason. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDbImpTopicMessages::RevertFileOperationL( - TInt aReason ) - { - iTopicList.RevertFilesL(); - InvalidateCache(); - User::Leave( aReason ); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsDiskSpaceMonitor.cpp --- a/cbs/CbsServer/ServerSrc/CCbsDiskSpaceMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ -/* -* Copyright (c) 2004 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: This module contains the implementation of CCbsDiskSpaceMonitor class -* member functions. -* -*/ - - -// INCLUDE FILES -#include -#include "CCbsDiskSpaceMonitor.h" -#include // KPSUidUikon, KUikFFSFreeLevel -#include "CCbsDbImp.H" -#include "CbsLogger.h" - -// CONSTANTS - -// Value to receive from critical level notification for "OK" -const TInt KCriticalLevelDiskOk = 0; - - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsDiskSpaceMonitor::CCbsDiskSpaceMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsDiskSpaceMonitor::CCbsDiskSpaceMonitor( CCbsDbImp& aDbImp ) - : CActive( EPriorityStandard ), - iDbImp( aDbImp ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsDiskSpaceMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsDiskSpaceMonitor::ConstructL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDiskSpaceMonitor::ConstructL()"); - - CActiveScheduler::Add( this ); - - // Attach to disk space property - iProperty.Attach( KPSUidUikon, KUikFFSFreeLevel ); - - CBSLOGSTRING("CBSSERVER: <<< CCbsDiskSpaceMonitor::ConstructL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDiskSpaceMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsDiskSpaceMonitor* CCbsDiskSpaceMonitor::NewL( CCbsDbImp& aDbImp ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDiskSpaceMonitor::NewL()"); - - CCbsDiskSpaceMonitor* self = - new ( ELeave ) CCbsDiskSpaceMonitor( aDbImp ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsDiskSpaceMonitor::NewL(), returning self."); - return self; - } - -// Destructor -CCbsDiskSpaceMonitor::~CCbsDiskSpaceMonitor() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDiskSpaceMonitor::~CCbsDiskSpaceMonitor()"); - Cancel(); - iProperty.Close(); - CBSLOGSTRING("CBSSERVER: <<< CCbsDiskSpaceMonitor::~CCbsDiskSpaceMonitor()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDiskSpaceMonitor::IssueRequest -// Requests that we are notified when the system state changes. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDiskSpaceMonitor::IssueRequest() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDiskSpaceMonitor::IssueRequest()"); - - if ( !IsActive() ) - { - // Subscribe again - iProperty.Subscribe( iStatus ); - SetActive(); - CBSLOGSTRING("CBSSERVER: CCbsDiskSpaceMonitor::IssueRequest(): New Subscribe() set active."); - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsDiskSpaceMonitor::IssueRequest()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDiskSpaceMonitor::RunL -// Becomes active when the system state changes. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDiskSpaceMonitor::RunL() - { - CBSLOGSTRING2("CBSSERVER: >>> CCbsDiskSpaceMonitor::RunL(): iStatus: %d", iStatus.Int() ); - - if ( iStatus == KErrNone ) - { - // Property updated, get new value - TInt state( 0 ); - TInt error( KErrNone ); - error = iProperty.Get( state ); - CBSLOGSTRING2("CBSSERVER: CCbsDiskSpaceMonitor::RunL(): property.Get() error: %d", error ); - CBSLOGSTRING2("CBSSERVER: CCbsDiskSpaceMonitor::RunL(): property.Get() state: %d", state ); - - // If we received DISK_SPACE_OK, try to create the database - // components. - if ( state == KCriticalLevelDiskOk ) - { - CBSLOGSTRING("CBSSERVER: CCbsDiskSpaceMonitor::RunL(): Calling CreateComponentsL()..." ); - iDbImp.CreateComponentsL(); - CBSLOGSTRING("CBSSERVER: CCbsDiskSpaceMonitor::RunL(): CreateComponentsL() finished." ); - } - // To prevent ARMV5 compiler error - if ( error ) - { - error = KErrNone; - } - } - CBSLOGSTRING("CBSSERVER: <<< CCbsDiskSpaceMonitor::RunL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsDiskSpaceMonitor::DoCancel -// Cancels an outstanding Subscribe request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsDiskSpaceMonitor::DoCancel() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsDiskSpaceMonitor::DoCancel()"); - iProperty.Cancel(); - CBSLOGSTRING("CBSSERVER: <<< CCbsDiskSpaceMonitor::DoCancel()"); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsEtelMessaging.cpp --- a/cbs/CbsServer/ServerSrc/CCbsEtelMessaging.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,196 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsEtelMessaging -* class member functions. -* -* CCbsEtelMessaging acts as a wrapper to RMobileBroadcastMessaging instance. -* -*/ - - - -// INCLUDE FILES - /******************************* - * Series 60 Customer / Etel - * Series 60 Etel API - *******************************/ -#include -#include "CCbsEtelMessaging.h" -#include "CbsLogger.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsEtelMessaging::CCbsEtelMessaging -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsEtelMessaging::CCbsEtelMessaging() - { - } - -// ----------------------------------------------------------------------------- -// CCbsEtelMessaging::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsEtelMessaging::ConstructL() - { - } - -// ----------------------------------------------------------------------------- -// CCbsEtelMessaging::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsEtelMessaging* CCbsEtelMessaging::NewL() - { - CCbsEtelMessaging* self = new ( ELeave ) CCbsEtelMessaging; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - - -// Destructor - /******************************* - * Series 60 Customer / Etel - * Series 60 Etel API - *******************************/ -CCbsEtelMessaging::~CCbsEtelMessaging() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsEtelMessaging::~CCbsEtelMessaging()"); - iMessaging.Close(); - CBSLOGSTRING("CBSSERVER: <<< CCbsEtelMessaging::~CCbsEtelMessaging()"); - } - -// ----------------------------------------------------------------------------- -// CCbsEtelMessaging::Open -// Opens an ETel messaging session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - /******************************* - * Series 60 Customer / Etel - * Series 60 Etel API - *******************************/ -TInt CCbsEtelMessaging::Open( - RMobilePhone& aPhone ) - { - return iMessaging.Open( aPhone ); - } - -// ----------------------------------------------------------------------------- -// CCbsEtelMessaging::Close -// Closes ETel messaging session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - /******************************* - * Series 60 Customer / Etel - * Series 60 Etel API - *******************************/ -void CCbsEtelMessaging::Close() - { - iMessaging.Close(); - } - -// ----------------------------------------------------------------------------- -// CCbsEtelMessaging::ReceiveMessage -// Requests forwarding of the next received CB message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - /******************************* - * Series 60 Customer / Etel - * Series 60 Etel API - *******************************/ -void CCbsEtelMessaging::ReceiveMessage( - TRequestStatus& aReqStatus, - TDes8& aMsgData, - TDes8& aMsgAttributes ) - { - iMessaging.ReceiveMessage( aReqStatus, aMsgData, aMsgAttributes ); - } - -// ----------------------------------------------------------------------------- -// CCbsEtelMessaging::ReceiveMessageCancel -// Cancels an outstanding ReceiveMessage() request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - /******************************* - * Series 60 Customer / Etel - * Series 60 Etel API - *******************************/ -void CCbsEtelMessaging::ReceiveMessageCancel() - { - // Use the base class method to cancel - iMessaging.CancelAsyncRequest( EMobileBroadcastMessagingReceiveMessage ); - } - -// ----------------------------------------------------------------------------- -// CCbsEtelMessaging::SetFilterSetting -// Sets CBS receive mode. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - /******************************* - * Series 60 Customer / Etel - * Series 60 Etel API - *******************************/ -void CCbsEtelMessaging::SetFilterSetting( - TRequestStatus& aReqStatus, - RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter aSetting ) const - { - iMessaging.SetFilterSetting( aReqStatus, aSetting ); - } - -// ----------------------------------------------------------------------------- -// CCbsEtelMessaging::SetFilterSettingCancel -// Cancels active SetFilterSetting request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - /******************************* - * Series 60 Customer / Etel - * Series 60 Etel API - *******************************/ -void CCbsEtelMessaging::SetFilterSettingCancel() - { - // Use the base class method to cancel - iMessaging.CancelAsyncRequest( EMobileBroadcastMessagingSetFilterSetting ); - } - -// ----------------------------------------------------------------------------- -// CCbsEtelMessaging::GetFilterSetting -// Retrieves the current CBS receive mode. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - /******************************* - * Series 60 Customer / Etel - * Series 60 Etel API - *******************************/ -TInt CCbsEtelMessaging::GetFilterSetting( - RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter& aSetting ) - { - return iMessaging.GetFilterSetting( aSetting ); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsLivecastHandler.cpp --- a/cbs/CbsServer/ServerSrc/CCbsLivecastHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,166 +0,0 @@ -/* -* Copyright (c) 2004 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 FILES -#include "CCbsLivecastHandler.h" -#include "CCbsRecMessage.h" -#include "CCbsRecWcdmaMessage.h" -#include "CCbsRecEtel.h" -#include "CCbsRecCollector.h" -#include "CCbsReceiverHelper.h" -#include "CbsLogger.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsLivecastHandler::CCbsLivecastHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsLivecastHandler::CCbsLivecastHandler( CCbsRecEtel& aRecEtel ) -: iRecEtel( aRecEtel ) - { - } - -// Destructor -CCbsLivecastHandler::~CCbsLivecastHandler() - { - CBSLOGSTRING("CBSSERVER: >>> ~CCbsLivecastHandler::~CCbsLivecastHandler()"); - CBSLOGSTRING("CBSSERVER: <<< ~CCbsLivecastHandler::~CCbsLivecastHandler()"); - } - -// ----------------------------------------------------------------------------- -// CCbsLivecastHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsLivecastHandler* CCbsLivecastHandler::NewL( CCbsRecEtel& aRecEtel ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsLivecastHandler::NewL()"); - - CCbsLivecastHandler* self = new ( ELeave ) CCbsLivecastHandler( aRecEtel ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsLivecastHandler::NewL()"); - return self; - } - -// ----------------------------------------------------------------------------- -// CCbsLivecastHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsLivecastHandler::ConstructL() - { - } - -// ----------------------------------------------------------------------------- -// CCbsLivecastHandler::HandleLivecastMessageL -// Processes the message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsLivecastHandler::HandleLivecastMessageL( - CCbsMessage* aLivecastMessage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsLivecastHandler::HandleLivecastMessageL()"); - - // Take ownership - CleanupStack::PushL( aLivecastMessage ); - - // Check if this message must be rejected: - // 1. Is message compressed - // 2. Is message defined as 'Class 2' or 'Class 3' message - - TInt msgclass ( aLivecastMessage->MessageClass() ); - - if ( aLivecastMessage->IsCompressed() || - msgclass == 3 || msgclass == 2 ) - { - CBSLOGSTRING("CBSSERVER: CCbsLivecastHandler::HandleLivecastMessageL(): Rejected, compressed/msg class."); - - // Reject the message - CleanupStack::PopAndDestroy(); // aLivecastMessage - } - else - { - // Add network information to message - TInt error = iRecEtel.AddNetworkInfo( *aLivecastMessage ); - - CBSLOGSTRING2("CBSSERVER: CCbsLivecastHandler::HandleLivecastMessageL(): AddNetworkInfo() error: %d", error ); - - // Handle the message - // Is message multipaged - if ( aLivecastMessage->TotalPages() > 1 ) - { - CBSLOGSTRING("CBSSERVER: CCbsLivecastHandler::HandleLivecastMessageL(): Message multipaged."); - - // Ensure that the network info is available. - // If not, reject the message, because info is required to collect - // pages of a multipaged message. - if ( KErrNone != error ) - { - CBSLOGSTRING("CBSSERVER: CCbsLivecastHandler::HandleLivecastMessageL(): Message rejected, AddNetworkInfo() error."); - CleanupStack::PopAndDestroy( aLivecastMessage ); - } - else - { - CBSLOGSTRING("CBSSERVER: CCbsLivecastHandler::HandleLivecastMessageL(): Sending msg to Collector..."); - - // Ownership of aLivecastMessage transferred to collector with - // aLivecastMessage left on the cleanup stack. - CCbsMessage* completedMsg = iRecEtel.Collector().CollectL( aLivecastMessage, ECbsMessageLivecast ); - - CBSLOGSTRING("CBSSERVER: CCbsLivecastHandler::HandleLivecastMessageL(): Collector finished."); - - if ( completedMsg ) - { - CBSLOGSTRING("CBSSERVER: CCbsLivecastHandler::HandleLivecastMessageL(): Msg collected."); - - // Message pages combined => Handle like a single-paged msg. - // Result code ignored. - CleanupStack::PushL( completedMsg ); - - CBSLOGSTRING("CBSSERVER: CCbsLivecastHandler::HandleLivecastMessageL(): Routing msg to RecEtel..."); - iRecEtel.RouteMessageL( *completedMsg ); - CBSLOGSTRING("CBSSERVER: CCbsLivecastHandler::HandleLivecastMessageL(): Routing finished."); - - CleanupStack::PopAndDestroy( completedMsg ); - } - } - } - // Message is single paged - else - { - CBSLOGSTRING("CBSSERVER: CCbsLivecastHandler::HandleLivecastMessageL(): Message single paged."); - - iRecEtel.RouteMessageL( *aLivecastMessage ); - CBSLOGSTRING("CBSSERVER: CCbsLivecastHandler::HandleLivecastMessageL(): Single paged RouteMessageL() OK."); - - CleanupStack::PopAndDestroy( aLivecastMessage ); - } - } - CBSLOGSTRING("CBSSERVER: <<< CCbsLivecastHandler::HandleLivecastMessageL()"); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsMcnSession.cpp --- a/cbs/CbsServer/ServerSrc/CCbsMcnSession.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,377 +0,0 @@ -/* -* Copyright (c) 2003 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: MCN server-side subsession implementation. -* -* Implementation of MCN topic subscription commits changes (reception -* state, subscribed topics, etc) immediately after every request. -* -*/ - - - -// INCLUDE FILES - -#include "CbsCommon.h" -#include "CbsServerPanic.h" -#include "CbsServerConstants.h" -#include "CCbsMcnSession.h" -#include "CCbsRecMessage.h" -#include "CCbsReceiverHelper.h" -#include "CCbsDbImpSettings.H" -#include "CCbsRecEtel.h" -#include "CCbsSession.h" -#include "CCbsServer.h" -#include "CbsLogger.h" - -// CONSTANTS - -/// Initial size of the array holding numbers of subscribed topics. -const TInt KInitialSpaceForSubscribedTopics = 1; - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsMcnSession::CCbsMcnSession -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsMcnSession::CCbsMcnSession( - CCbsSession& aSession, - CCbsRecEtel& aReceiver ) - : CCbsObject( aSession ), - iReceiver( aReceiver ), - iMcnPckg( iMcnMessage ) - { - // Do nothing - } - -// ----------------------------------------------------------------------------- -// CCbsEtelMessaging::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsMcnSession::ConstructL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMcnSession::ConstructL()"); - - iSubscribedTopics = new (ELeave) CArrayFixFlat - ( KInitialSpaceForSubscribedTopics ); - iReceiver.AddSubscriptionProviderL( this ); - - CBSLOGSTRING("CBSSERVER: <<< CCbsMcnSession::ConstructL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsEtelMessaging::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsMcnSession* CCbsMcnSession::NewL( - CCbsSession& aSession, - CCbsRecEtel& aReceiver ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMcnSession::NewL()"); - - CCbsMcnSession* self = - new (ELeave) CCbsMcnSession( aSession, aReceiver ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsMcnSession::NewL()"); - return self; - } - -// Destructor - -CCbsMcnSession::~CCbsMcnSession() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMcnSession::~CCbsMcnSession()"); - TRAP_IGNORE( iReceiver.RemoveSubscriptionProviderL( this ) ); - delete iSubscribedTopics; - CBSLOGSTRING("CBSSERVER: <<< CCbsMcnSession::~CCbsMcnSession()"); - } - -// ----------------------------------------------------------------------------- -// CCbsMcnSession::HandleRequestsL -// Handles MCN client requests. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsMcnSession::HandleRequestsL( - const RMessage2& aMessage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMcnSession::HandleRequestsL()"); - - TBool requestHandled( ETrue ); - - switch( aMessage.Function() ) - { - case EMcnNotifyOnChange: - CBSLOGSTRING("CBSSERVER: CCbsMcnSession::HandleRequestsL(): EMcnNotifyOnChange"); - NotifyOnChange(); - break; - - case EMcnCloseSubsession: - CBSLOGSTRING("CBSSERVER: CCbsMcnSession::HandleRequestsL(): EMcnCloseSubsession"); - CloseMcnSession(); - aMessage.Complete( KErrNone ); - break; - - case EMcnNotifyOnChangeCancel: - CBSLOGSTRING("CBSSERVER: CCbsMcnSession::HandleRequestsL(): EMcnNotifyOnChangeCancel"); - NotifyOnChangeCancel(); - break; - - case EMcnSubscribeTopic: - CBSLOGSTRING("CBSSERVER: CCbsMcnSession::HandleRequestsL(): EMcnSubscribeTopic"); - SubscribeTopicL(); - break; - - case EMcnClearSubscriptions: - CBSLOGSTRING("CBSSERVER: CCbsMcnSession::HandleRequestsL(): EMcnClearSubscriptions"); - ClearSubscriptionsL(); - break; - - case EMcnNoMoreSubscriptions: - CBSLOGSTRING("CBSSERVER: CCbsMcnSession::HandleRequestsL(): EMcnNoMoreSubscriptions"); - ApplySubscriptionsL(); - break; - - default: - CBSLOGSTRING("CBSSERVER: CCbsMcnSession::HandleRequestsL(): default"); - requestHandled = EFalse; - break; - } - CBSLOGSTRING("CBSSERVER: <<< CCbsMcnSession::HandleRequestsL()"); - - return requestHandled; - } - -// ----------------------------------------------------------------------------- -// CCbsMcnSession::NumberOfSubscriptions -// Returns the number of topic subscriptions of this MCN client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TUint CCbsMcnSession::NumberOfSubscriptions() const - { - return iSubscribedTopics->Count(); - } - -// ----------------------------------------------------------------------------- -// CCbsMcnSession::RouteMessageL -// Routes messages to the subscribed Mcnclients. -// If the topic of the message is subscribed by the client, -// aMessage is copied to client-side. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMcnSession::RouteMessageL( - const CCbsMessage& aMessage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMcnSession::RouteMessageL()"); - - TKeyArrayFix key(0, ECmpTUint16); - TInt index; - TUint16 topicNumber( aMessage.TopicNumber() ); - TInt result( iSubscribedTopics->FindIsq( topicNumber, key, index ) ); - - - TBool isLC( aMessage.IsLivecastMessage() ); - - if ( isLC ) - { - iMcnMessage.iBuffer8 = aMessage.Contents8(); - iMcnMessage.iBuffer = KNullDesC; - } - else - { - iMcnMessage.iBuffer = aMessage.Contents(); - iMcnMessage.iBuffer8 = KNullDesC8; - } - - iMcnMessage.iNetworkMode = aMessage.NetworkMode(); - iMcnMessage.iTopicNumber = aMessage.TopicNumber(); - - CBSLOGSTRING2("CBSSERVER: CCbsMcnSession::RouteMessageL(): topicNumber: %d", iMcnMessage.iTopicNumber ); - CBSLOGSTRING2("CBSSERVER: CCbsMcnSession::RouteMessageL(): networkMode: %d (0=GSM, 1=WCDMA, 2=Not defined).", iMcnMessage.iNetworkMode ); - - if ( result == KErrNone ) - { - CBSLOGSTRING("CBSSERVER: CCbsMcnSession::RouteMessageL(): Notifying client..."); - NotifyClientL( iMcnPckg ); - CBSLOGSTRING("CBSSERVER: CCbsMcnSession::RouteMessageL(): Client notified."); - } - CBSLOGSTRING("CBSSERVER: <<< CCbsMcnSession::RouteMessageL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsMcnSession::CloseMcnSession -// Close the subsession. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMcnSession::CloseMcnSession() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMcnSession::CloseMcnSession()"); - - // Removes the object. - Session().Server().DeleteObjectByHandle( Message().Int3() ); - - CBSLOGSTRING("CBSSERVER: <<< CCbsMcnSession::CloseMcnSession()"); - } - -// ----------------------------------------------------------------------------- -// CCbsMcnSession::NotifyOnChange -// Handles client request for message routing. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMcnSession::NotifyOnChange() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMcnSession::NotifyOnChange()"); - - if ( iIsMessage ) - { - NotifyOnChangeCancel(); - } - - iMessage = Message(); - iIsMessage = ETrue; - - CBSLOGSTRING("CBSSERVER: <<< CCbsMcnSession::NotifyOnChange()"); - } - -// ----------------------------------------------------------------------------- -// CCbsMcnSession::NotifyOnChangeCancel -// Handles client request to cancel an outstanding routing request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMcnSession::NotifyOnChangeCancel() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMcnSession::NotifyOnChangeCancel()"); - - if ( iIsMessage ) - { - iMessage.Complete( KErrCancel ); - } - - iIsMessage = EFalse; - Message().Complete( KErrNone ); - - CBSLOGSTRING("CBSSERVER: <<< CCbsMcnSession::NotifyOnChangeCancel()"); - } - -// ----------------------------------------------------------------------------- -// CCbsMcnSession::SubscribeTopicL -// Handles client-side request to subscribe a single topic. -// An attempt to subscribe the same topic twice does not -// cause any error - the topic remains subscribed. -// Note: ApplySubscriptionL has to be called in order to -// apply receiver changes. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMcnSession::SubscribeTopicL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMcnSession::SubscribeTopicL()"); - - // Read topic number from client. - TUint16 topicNumber( 0 ); - topicNumber = static_cast ( Message().Int0() ); - - // Store the topic number and notify receiver. - TKeyArrayFix key(0, ECmpTUint16); - TRAPD( err, iSubscribedTopics->InsertIsqL( topicNumber, key ) ); - if( err != KErrAlreadyExists ) - { - CBSLOGSTRING2("CBSSERVER: CCbsMcnSession::SubscribeTopicL(), leaving if error != 0: %d", err); - User::LeaveIfError( err ); - } - - // Complete the request. - Message().Complete( KErrNone ); - - CBSLOGSTRING("CBSSERVER: <<< CCbsMcnSession::SubscribeTopicL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsMcnSession::NotifyClientL -// Called by RouteMessageL() to actually copy the message content -// to client side. -// If the client has a CB message routing request pending, -// the message and topicnumber of the message are given to client side. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMcnSession::NotifyClientL( - const TPckg& aMcnPckg ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMcnSession::NotifyClientL()"); - - if ( iIsMessage ) - { - CBSLOGSTRING("CBSSERVER: CCbsMcnSession::NotifyClientL(): Writing msg pckg to client..."); - // Write the message package to client - iMessage.WriteL( 0, aMcnPckg ); - CBSLOGSTRING("CBSSERVER: CCbsMcnSession::NotifyClientL(): Writing msg pckg to client OK."); - - // Complete the request - iMessage.Complete( KErrNone ); - iIsMessage = EFalse; - } - CBSLOGSTRING("CBSSERVER: <<< CCbsMcnSession::NotifyClientL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsMcnSession::ClearSubscriptionsL -// Clears all topic subscriptions of this MCN session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMcnSession::ClearSubscriptionsL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMcnSession::ClearSubscriptionsL()"); - - iSubscribedTopics->Reset(); - iReceiver.ApplyStateChangesL(); - Message().Complete( KErrNone ); - - CBSLOGSTRING("CBSSERVER: <<< CCbsMcnSession::ClearSubscriptionsL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsMcnSession::ApplySubscriptionsL -// Forces receiver to reload CB topic subscriptions. -// This function has to be called after MCN client has subscribed -// topics with SubscribeTopicL(). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMcnSession::ApplySubscriptionsL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMcnSession::ApplySubscriptionsL()"); - - iReceiver.ApplyStateChangesL(); - Message().Complete( KErrNone ); - - CBSLOGSTRING("CBSSERVER: <<< CCbsMcnSession::ApplySubscriptionsL()"); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsMessage.cpp --- a/cbs/CbsServer/ServerSrc/CCbsMessage.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,788 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of CCbsMessage class. -* -*/ - - -// INCLUDE FILES -#include "CbsServerPanic.h" -#include "CCbsMessage.h" -#include "CbsLogger.h" - - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsMessage::CCbsMessage -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsMessage::CCbsMessage() - { - } - -// Destructor -CCbsMessage::~CCbsMessage() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMessage::~CCbsMessage()"); - CBSLOGSTRING("CBSSERVER: <<< CCbsMessage::~CCbsMessage()"); - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::Alphabet -// Returns the alphabet set of this message. -// Decides the alphabet set of this message by examining DCS field. -// Note that DCS value "unspecified" isn't used anymore. -// All messages are considered to have "default" representation. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsRecAlphabet CCbsMessage::Alphabet() const - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMessage::Alphabet()"); - CBSLOGSTRING2("CBSSERVER: CCbsMessage::Alphabet(): iDCS: %d", iDCS ); - - TCbsRecAlphabet alphabet( ECbsRecAlphabetUnspecified ); - - // Check for Message preceded by language indication/UCS2 and - // General Data Coding Indication/UCS2 - if ( - ( iDCS & DCS_MASK_LANGUAGE_INDICATION_PRECEDES ) == DCS_MPLI_UCS2 || - ( iDCS & DCS_MASK_GENERAL_DATA_CODING_INDICATION ) == DCS_GDCI_UCS2 ) - { - alphabet = ECbsRecAlphabetUCS2; - } - // Check for 8-bit DCSs - else if ( - ( iDCS & DCS_MASK_GENERAL_DATA_CODING_INDICATION ) == DCS_GDCI_8BIT || - ( iDCS & DCS_MASK_MESSAGE_HANDLING )== DCS_DCMH_8BIT || - ( iDCS & DCS_MASK_UDH ) == DCS_UDH_8BIT ) - { - alphabet = ECbsRecAlphabet8bit; - } - // Else assume that alphabet is default - else - { - alphabet = ECbsRecAlphabetDefault; - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsMessage::Alphabet(), returning alphabet."); - return alphabet; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::AppendContent -// Appends another message's content to this message's content. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMessage::AppendContent( - const TDesC& aMsg ) - { - iMessage->Des().Append( aMsg ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::AppendContent8 -// Appends another message's content to this message's content. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMessage::AppendContent8( - const TDesC8& aMsg ) - { - iMessage8->Des().Append( aMsg ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::CellId -// Returns identifier of the cell in which the phone was when this message was received. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TUint CCbsMessage::CellId() const - { - return iLocationArea.iCellId; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::Contents -// Returns a pointer descriptor to the Unicode contents of the message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const TDesC& CCbsMessage::Contents() const - { - __ASSERT_DEBUG( iMessage != 0, CbsServerPanic( ECbsMsgRepUnprepared ) ); - return *iMessage; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::Contents8 -// Returns a pointer descriptor to 8-bit descriptor representation -// of the message body. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const TDesC8& CCbsMessage::Contents8() const - { - __ASSERT_DEBUG( iMessage8 != 0, CbsServerPanic( ECbsMsgRepUnprepared ) ); - return *iMessage8; - } - - -// ----------------------------------------------------------------------------- -// CCbsMessage::DCS -// Returns the Data Coding Scheme of this message page. -// Refer to GSM specification 03.38 for details on DCS. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsRecDCS CCbsMessage::DCS() const - { - return iDCS; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::GeographicalScope -// Returns the geographical scope of the message. -// This is a 16-bit value containing Geographical -// Scope (2 bits), Message Code (10 bits) and Update Number (4 bits). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsRecGeographicalScope CCbsMessage::GeographicalScope() const - { - TInt gs( Key() >> 14 ); - if ( gs == KGeographicalScopeCellImmediate || - gs == KGeographicalScopeCellNormal ) - { - return ECbsRecGeographicalScopeCell; - } - else if ( gs == KGeographicalScopePLMNNormal ) - { - return ECbsRecGeographicalScopePLMN; - } - else - { - return ECbsRecGeographicalScopeLAC; - } - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::GetPLMN -// Returns operator information. -// On return, aNetworkInfo contains identity of the network -// in which the phone was when this message was received. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMessage::GetPLMN( - RMobilePhone::TMobilePhoneNetworkInfoV1& aNetworkInfo ) const - { - aNetworkInfo.iCountryCode = iNetworkInfo.iCountryCode; - aNetworkInfo.iNetworkId = iNetworkInfo.iNetworkId; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::IsChildSubindex -// Returns boolean value indicating if this message is a child subindex message. -// Child subindex messages have message code 1010101010b and -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsMessage::IsChildSubindex() const - { - return IsIndexMessage() && ( TopicNumber() != 0 ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::IsClass0 -// Returns ETrue, if this message is a Class 0 message according to -// ETSI GSM specification 03.38. -// Message is of class 0 if the 6th and 7th bit of Geographical Scope -// are both zero. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsMessage::IsClass0() const - { - // Examine bits 0, 1, 4, 6 and 7 of DCS. - TUint8 class0( DCS() ); - class0 &= DCS_MASK_CLASS0; - // Check Class 0 indication. - return class0 == DCS_CLASS0; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::IsCompressed -// Returns ETrue, if the message is compressed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsMessage::IsCompressed() const - { - // The CB message is compressed only if the value of DCS is 011xxxxx. - return ( TUint8( iDCS >> 5 ) == 3 ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::IsIndexMessage -// Returns boolean value indicating if this is the index message. -// Index messages have message code 1010101010b. -// Refer to GSM specifications to for details. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsMessage::IsIndexMessage() const - { - return MessageCode() == KIndexMessageCode; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::Key -// Returns the key of the message (serial number). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsDbMessageKey CCbsMessage::Key() const - { - return TCbsDbMessageKey( iSerialNumber ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::LAC -// Returns location area information. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TUint CCbsMessage::LAC() const - { - return iLocationArea.iLocationAreaCode; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::Language -// Returns the language specified in this message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsDbLanguage CCbsMessage::Language() const - { - __ASSERT_DEBUG( iLanguage != -1, - CbsServerPanic( ECbsLanguageNotResolved ) ); - - return iLanguage; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::LanguagePrecedingMessage -// Determines and returns the language of this message -// based on first two characters of message content. -// Assumes that the message content contains language -// indication and that the content has been decoded -// into UCS-2 representation. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsDbLanguage CCbsMessage::LanguagePrecedingMessage() const - { - /// Mapping of ISO639 codes to server internal language representation - const TCbsIso639ToLangMapElement KLanguageMap[ KNumberOfLanguageMappings ] = - { - TCbsIso639ToLangMapElement( KIso639Danish, ECbsDanish ), - TCbsIso639ToLangMapElement( KIso639German, ECbsGerman ), - TCbsIso639ToLangMapElement( KIso639Greek, ECbsGreek ), - TCbsIso639ToLangMapElement( KIso639English, ECbsEnglish ), - TCbsIso639ToLangMapElement( KIso639Spanish, ECbsSpanish ), - TCbsIso639ToLangMapElement( KIso639Finnish, ECbsFinnish ), - TCbsIso639ToLangMapElement( KIso639French, ECbsFrench ), - TCbsIso639ToLangMapElement( KIso639Italian, ECbsItalian ), - TCbsIso639ToLangMapElement( KIso639Dutch, ECbsDutch ), - TCbsIso639ToLangMapElement( KIso639Norwegian, ECbsNorwegian ), - TCbsIso639ToLangMapElement( KIso639Portuguese, ECbsPortuguese ), - TCbsIso639ToLangMapElement( KIso639Swedish, ECbsSwedish ), - TCbsIso639ToLangMapElement( KIso639Turkish, ECbsTurkish ), - TCbsIso639ToLangMapElement( KIso639Hungarian, ECbsHungarian ), - TCbsIso639ToLangMapElement( KIso639Polish, ECbsPolish ), - TCbsIso639ToLangMapElement( KIso639Czech, ECbsCzech ), - TCbsIso639ToLangMapElement( KIso639Hebrew, ECbsHebrew ), - TCbsIso639ToLangMapElement( KIso639Arabic, ECbsArabic ), - TCbsIso639ToLangMapElement( KIso639Russian, ECbsRussian ), - TCbsIso639ToLangMapElement( KIso639Icelandic, ECbsIcelandic ) - }; - - __ASSERT_DEBUG( iMessage != NULL , CbsServerPanic( ECbsMsgRepUnprepared ) ); - - TPtrC isoCode( - Contents().Left( KLanguageIndicationLengthWithoutCR ) ); - - for ( TInt i( 0 ); i> 4 ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::MessageClass -// Returns the class of the message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsMessage::MessageClass() const - { - TUint8 msgclass; - msgclass = TUint8( iDCS >> 4 ); - TInt messageClass( 0 ); - - if ( msgclass == 0x05 || msgclass == 0x07 || msgclass == 0x0f ) // 0000 0101 or 0000 0111 or 0000 1111 - { - msgclass = 0x03; // 0000 0011 - - // Lets find out last two bits - msgclass = TUint8( msgclass & iDCS ); - switch ( msgclass ) - { - case 1: - messageClass = 1; - break; - case 2: - messageClass = 2; - break; - case 3: - messageClass = 3; - break; - case 0: - default: - messageClass = 0; - break; - } - } - return messageClass; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::MessagePrecededByLanguageIndication -// Returns ECbsRecLanguageIndicationBody if message's content is preceded -// by language indication (see GSM 03.38). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsRecLanguageIndication CCbsMessage::MessagePrecededByLanguageIndication() const - { - TCbsRecLanguageIndication indication( ECbsRecLanguageIndicationHeader ); - if ( iDCS == 0x10 || iDCS == 0x11 ) - { - indication = ECbsRecLanguageIndicationBody; - } - return indication; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::NetworkMode -// Returns current network mode (GSM/WCDMA) -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsNetworkMode CCbsMessage::NetworkMode() const - { - return iNetworkMode; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::PageParameter -// Returns the Page Parameter of the message page -// -// Page Parameter is a 8-bit field describing the number -// of pages in a message and the index of this page in a -// sequence of pages comprising a message. -// For single-page messages this value is 00010001b. -// Value 0 (zero) is reserved with coding beginning at 0001b. -// Thus there can be 1..15 pages in one message. -// Total and this page -fields can be accessed with -// methods TotalPages() and ThisPage(). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsRecPageParameter CCbsMessage::PageParameter() const - { - return iPageParameter; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::ReleaseEightBitRepresentation -// Frees the memory allocated for 8-bit representation of message content. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMessage::ReleaseEightBitRepresentation() - { - delete iMessage8; - iMessage8 = NULL; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::RemoveIndexHeaderL -// Removes any index header prefix from the message body. -// -// This method assumes that the index header is contained in the -// first line of message body. This line, including trailing -// is removed. -// -// Index header prefix is assumed to contain "EIn", where n -// specifies the version number this index message claims to -// follow and is a carriage return + line feed. -// -// It is also assumed that any language indication prefix has -// already been removed prior to this operation. -// -// Message must be in UCS-2 representation. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMessage::RemoveIndexHeaderL() - { - __ASSERT_DEBUG( IsIndexMessage(), CbsServerPanic( ECbsNotIndexMessage ) ); - - if ( iMessage->Length() < KIndexHeaderLength ) - { - User::Leave( KErrUnderflow ); // Msg too short to contain ix header. - } - - iMessage->Des().Delete( KIndexHeaderPosition, KIndexHeaderLength ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::RemoveLanguageIndicationFromBodyL -// Removes language indication field from the message body. -// -// Presence of an indication is verified with the DCS value -// according to ETSI specifications. Message is assumed to -// contain valid indication, i.e., three bytes preceding the message -// body specifying the language code. -// -// The correctness of this operation is not checked. If the -// indication is invalid, the message body is likely to either have -// a couple of characters too many or few. -// -// Message is assumed to be decoded into UCS-2. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMessage::RemoveLanguageIndicationFromBodyL() - { - if ( MessagePrecededByLanguageIndication() == - ECbsRecLanguageIndicationBody ) - { - if ( iMessage->Length() < KLanguageIndicationPosition + - KLanguageIndicationLength ) - { - User::Leave( KErrUnderflow ); - } - - iMessage->Des().Delete( KLanguageIndicationPosition, - KLanguageIndicationLength ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::RequiresImmediateDisplay -// Returns ETrue, if this message requires to be displayed immediately. -// -// The CB message has to be displayed immediately -// if either it is flagged as a Class 0 message (see GSM 03.38) -// or has a geographical scope of the type "Immediate" -// (see GSM 03.41). -// -// This function always returns EFalse for Base station ID messages -// (message identifier = 50). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsMessage::RequiresImmediateDisplay() const - { - return IsClass0(); - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::ReserveContentSizeL -// Increases the space allocated for message content. -// Reallocates message content to match parameter aLength. -// Should be used before AppendContent()-call. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMessage::ReserveContentSizeL( - TInt aLength ) - { - if ( iMessage == NULL ) - { - iMessage = HBufC::NewL( aLength ); - } - else if ( ( iMessage ) && ( aLength < iMessage->Length() ) ) - { - User::Leave( KErrArgument ); - } - else - { - iMessage = iMessage->ReAllocL( aLength ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::ReserveContentSize8L -// Increases the space allocated for message content. -// Reallocates message content to match parameter aLength. -// Should be used before AppendContent()-call. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMessage::ReserveContentSize8L( - TInt aLength ) - { - if ( iMessage8 == NULL ) - { - iMessage8 = HBufC8::NewL( aLength ); - } - else if ( ( iMessage8 ) && ( aLength < iMessage8->Length() ) ) - { - User::Leave( KErrArgument ); - } - else - { - iMessage8 = iMessage8->ReAllocL( aLength ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::ResolveLanguage -// Determines language of this message so that calls to Language() -// will return the correct value. -// -// Language information may be determined from Data Coding Scheme -// of message header or from the first characters in message body. -// For the latter to succeed, the message has to be decoded into UCS-2. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMessage::ResolveLanguage() - { - if ( iDCS <= ECbsRecLanguageUnspecified || // 0000xxxx - ( iDCS >= ECbsRecLanguageCzech && iDCS < ECbsRecLanguageMax ) ) - { - // Default alphabet, bits 0-3 specify language. - iLanguage = LanguageWithDefaultAlphabet(); - } - else if ( MessagePrecededByLanguageIndication() == - ECbsRecLanguageIndicationBody ) - { - iLanguage = LanguagePrecedingMessage(); - } - else - { - iLanguage = ECbsOther; - } - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::SetNetworkInfo -// Sets the network information of this message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMessage::SetNetworkInfo( - const RMobilePhone::TMobilePhoneNetworkInfoV1& aNetworkInfo, - const RMobilePhone::TMobilePhoneLocationAreaV1& aArea ) - { - iNetworkInfo = aNetworkInfo; - iLocationArea = aArea; - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::TopicNumber -// Returns the 16-bit Message Identifier containing the topic number. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsDbTopicNumber CCbsMessage::TopicNumber() const - { - return TCbsDbTopicNumber( iMessageIdentifier ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessage::UpdateNumber -// Returns the update number of the message -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TCbsRecUpdateNumber CCbsMessage::UpdateNumber() const - { - return TCbsRecUpdateNumber( Key() & 0xF ); // 00001111b - } - - -// ----------------------------------------------------------------------------- -// CCbsMessage::IsLivecastMessage -// Checks if this message is a Livecast message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsMessage::IsLivecastMessage() const - { - TBool isLivecastMsg( EFalse ); - - // Check if this message is a Livecast message (just check the topic number) - if ( TopicNumber() >= KCbsLivecastTopicMin && - TopicNumber() <= KCbsLivecastTopicMax ) - { - // This is a Livecast msg - isLivecastMsg = ETrue; - } - - return isLivecastMsg; - } - - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsMessageCleanUpTimer.cpp --- a/cbs/CbsServer/ServerSrc/CCbsMessageCleanUpTimer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,146 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsMessageCleanupTimer class -* member functions. -* -*/ - - - -// INCLUDE FILES -#include "CCbsMessageCleanUpTimer.h" -#include "CCbsRecCollector.h" -#include "CbsLogger.h" - -// CONSTANTS - -// Message cleanup timer in minutes. This is only for livecast messages. -const TInt KMessageCleanUpTime = 10; - -// ==================== LOCAL FUNCTIONS ===================================== - -// ================= MEMBER FUNCTIONS ======================================= - -// ----------------------------------------------------------------------------- -// CCbsMessageCleanupTimer::CCbsMessageCleanupTimer -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsMessageCleanupTimer::CCbsMessageCleanupTimer( CCbsRecCollector& aCbsRecCollector, CMessageBuffer& aArray ) - : CTimer( EPriorityStandard ), - iCbsRecCollector ( aCbsRecCollector ), - iArray ( aArray ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CCbsMessageCleanupTimer::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsMessageCleanupTimer::ConstructL() - { - // Construct the timer - CTimer::ConstructL(); - - iInterval = KMessageCleanUpTime; - } - -// ----------------------------------------------------------------------------- -// CCbsMessageCleanupTimer::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsMessageCleanupTimer* CCbsMessageCleanupTimer::NewL( CCbsRecCollector& aCbsRecCollector, CMessageBuffer& aArray ) - { - CCbsMessageCleanupTimer* self = - new ( ELeave ) CCbsMessageCleanupTimer( aCbsRecCollector, aArray ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - -// Destructor -CCbsMessageCleanupTimer::~CCbsMessageCleanupTimer() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMessageCleanupTimer::~CCbsMessageCleanupTimer()"); - Cancel(); - CBSLOGSTRING("CBSSERVER: <<< CCbsMessageCleanupTimer::~CCbsMessageCleanupTimer()"); - } - -// ----------------------------------------------------------------------------- -// CCbsMessageCleanupTimer::StartTimer -// Starts the clean up timer. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMessageCleanupTimer::StartTimer() - { - // Cancel a pending request - if ( IsActive() ) - { - Cancel(); - } - - // Get the current time - TTime now; - now.HomeTime(); - - if ( iInterval.Int() > 0 ) - { - TTime nextCleanup( 0 ); - nextCleanup = now + iInterval; - - // Start the timer - At( nextCleanup ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsMessageCleanupTimer::StopTimer -// Stops (cancels) the clean up timer. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMessageCleanupTimer::StopTimer() - { - Cancel(); - } - -// ----------------------------------------------------------------------------- -// CCbsMessageCleanupTimer::RunL -// Called after the timer expires. Makes the request to delete the read -// messages and to set the last clean up time. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsMessageCleanupTimer::RunL() - { - if ( iStatus == KErrNone ) - { - iCbsRecCollector.DeleteChainL ( iArray ); - StopTimer(); - } - } - -// ================= OTHER EXPORTED FUNCTIONS =============================== - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsMessageFactory.cpp --- a/cbs/CbsServer/ServerSrc/CCbsMessageFactory.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,171 +0,0 @@ -/* -* Copyright (c) 2004-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: Implementation of CCbsMessageFactory class. -* -*/ - - -// INCLUDE FILES -#include - -#include "CCbsMessageFactory.h" -#include "CCbsRecMessage.h" -#include "CCbsRecWcdmaMessage.h" -#include "CCbsRecEtel.h" -#include "CbsLogger.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsMessageFactory::CCbsMessageFactory -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsMessageFactory::CCbsMessageFactory( CCbsRecEtel& aRecEtel ) -: iRecEtel( aRecEtel ) - { - } - -// Destructor -CCbsMessageFactory::~CCbsMessageFactory() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMessageFactory::~CCbsMessageFactory()"); - CBSLOGSTRING("CBSSERVER: <<< CCbsMessageFactory::~CCbsMessageFactory()"); - } - -// ----------------------------------------------------------------------------- -// CCbsMessageFactory::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsMessageFactory* CCbsMessageFactory::NewL( CCbsRecEtel& aRecEtel ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMessageFactory::NewL()"); - - CCbsMessageFactory* self = new ( ELeave ) CCbsMessageFactory( aRecEtel ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsMessageFactory::NewL()"); - return self; - } - -// ----------------------------------------------------------------------------- -// CCbsMessageFactory::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsMessageFactory::ConstructL() - { - } - -// ----------------------------------------------------------------------------- -// CCbsMessageFactory::CreateMessageL -// Creates a CB message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsMessage* CCbsMessageFactory::CreateMessageL( const TDes8& aMessagePage, - const RMobileBroadcastMessaging::TMobileBroadcastAttributesV2& aAttributes, - TCbsMessageType& aMsgType ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsMessageFactory::CreateMessageL()"); - - CCbsMessage* currentMessage; - currentMessage = NULL; - - if ( aAttributes.iFormat == RMobileBroadcastMessaging::EFormatWcdmaTpdu ) - { - // Accept WCDMA messages only if the feature is supported. - FeatureManager::InitializeLibL(); - - if ( FeatureManager::FeatureSupported( KFeatureIdFf3gCellbroadcast ) ) - { - CBSLOGSTRING("CBSSERVER: CCbsMessageFactory::CreateMessageL(): WCDMA msg..."); - currentMessage = CCbsRecWcdmaMessage::NewL( - aMessagePage, aAttributes ); - CBSLOGSTRING("CBSSERVER: CCbsMessageFactory::CreateMessageL(): WCDMA msg created OK."); - - iAttributes = aAttributes; - - // Set the message type - aMsgType = ECbsMessageWcdma; - } - else - { - CBSLOGSTRING("CBSSERVER: CCbsMessageFactory::CreateMessageL(): WCDMA messages not supported, currentMessage set to NULL."); - currentMessage = NULL; - } - FeatureManager::UnInitializeLib(); - } - else if ( aAttributes.iFormat == RMobileBroadcastMessaging::EFormatGsmTpdu || - aAttributes.iFormat == RMobileBroadcastMessaging::EFormatUnspecified ) - { - CBSLOGSTRING("CBSSERVER: CCbsMessageFactory::CreateMessageL(): GSM msg..."); - currentMessage = CCbsRecMessage::NewL( aMessagePage ); - CBSLOGSTRING("CBSSERVER: CCbsMessageFactory::CreateMessageL(): GSM msg created OK."); - - // Set the message type - aMsgType = ECbsMessageGsm; - } - else - { - CBSLOGSTRING("CBSSERVER: CCbsMessageFactory::CreateMessageL(): Unknown msg type, currentMessage set to NULL."); - currentMessage = NULL; - } - - if ( currentMessage ) - { - // Livecast messages are handled separately - if ( currentMessage->IsLivecastMessage() ) - { - CBSLOGSTRING("CBSSERVER: CCbsMessageFactory::CreateMessageL(): This is a LC msg, setting type to ECbsMessageLivecast."); - // Set the message type - aMsgType = ECbsMessageLivecast; - } - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsMessageFactory::CreateMessageL(), returning currentMessage"); - return currentMessage; - } - -// ----------------------------------------------------------------------------- -// CCbsMessageFactory::CreateMessageL -// Creates a CB message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsMessage* CCbsMessageFactory::CreateMessageL( const CCbsMessage& aMessage ) - { - CCbsMessage* message; - message = NULL; - - if ( iAttributes.iFormat == RMobileBroadcastMessaging::EFormatWcdmaTpdu ) - { - message = CCbsRecWcdmaMessage::NewL( aMessage ); - } - else if ( iAttributes.iFormat == RMobileBroadcastMessaging::EFormatGsmTpdu || - iAttributes.iFormat == RMobileBroadcastMessaging::EFormatUnspecified ) - { - message = CCbsRecMessage::NewL( aMessage ); - } - - return message; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsObject.cpp --- a/cbs/CbsServer/ServerSrc/CCbsObject.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 2003 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: This class represents the base class for all server-side subsession -* classes. -* -*/ - - -// INCLUDE FILES - -#include "CbsCommon.h" -#include "CCbsSession.h" -#include "CCbsObject.h" -#include "CbsLogger.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsObject::CCbsObject -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsObject::CCbsObject( CCbsSession& aSession ) - : iSession( aSession ) - { - } - -// Destructor -CCbsObject::~CCbsObject() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsObject::~CCbsObject()"); - CBSLOGSTRING("CBSSERVER: <<< CCbsObject::~CCbsObject()"); - } - -// ----------------------------------------------------------------------------- -// CCbsObject::Message -// Returns the current message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const RMessage2& CCbsObject::Message() - { - return iSession.Message(); - } - -// ----------------------------------------------------------------------------- -// CCbsObject::Session -// Returns the current session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsSession& CCbsObject::Session() - { - return iSession; - } - -// ----------------------------------------------------------------------------- -// CCbsObject::PanicClient -// Panics the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsObject::PanicClient( - TCbsSessionPanic aPanic ) const - { - iSession.PanicClient( aPanic ); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsRecMessage.cpp --- a/cbs/CbsServer/ServerSrc/CCbsRecMessage.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,215 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsRecMessage class -* member functions. -* -* CCbsRecMessage represents a message page generated by CCbsRecEtelMonitor. -* CCbsRecMessage is constructed from a CB message page received from -* ETel server. -* -*/ - - - -// INCLUDE FILES -#include "CCbsRecMessage.h" -#include "CbsServerPanic.h" -#include "CbsLogger.h" - -// CONSTANTS - -// ================= MEMBER FUNCTIONS ======================================= - -// ----------------------------------------------------------------------------- -// CCbsRecMessage::CCbsRecMessage -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsRecMessage::CCbsRecMessage() - { - } - -// ----------------------------------------------------------------------------- -// CCbsRecMessage::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsRecMessage::ConstructL( - const TDes8& aMessagePage ) // ETel received msg page - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecMessage::ConstructL() (TDes8 from ETel)"); - - // Retrieve values for message header information. - iSerialNumber = TUint16( ( aMessagePage[ 0 ] << 8 ) | aMessagePage [ 1 ] ); - iMessageIdentifier = TUint16( ( aMessagePage[ 2 ] << 8 ) | aMessagePage[ 3 ] ); - iDCS = aMessagePage[ 4 ]; - iPageParameter = aMessagePage[ 5 ]; - - if ( ThisPage() == 0 || TotalPages() == 0 ) - { - iPageParameter = KPageParameterSingle; - } - - CBSLOGSTRING2("CBSSERVER: CCbsRecMessage::ConstructL(): iSerialNumber: %d", iSerialNumber ); - CBSLOGSTRING2("CBSSERVER: CCbsRecMessage::ConstructL(): iMessageIdentifier: %d", iMessageIdentifier ); - CBSLOGSTRING2("CBSSERVER: CCbsRecMessage::ConstructL(): iDCS: %d", iDCS ); - CBSLOGSTRING2("CBSSERVER: CCbsRecMessage::ConstructL(): iPageParameter: %d", iPageParameter ); - - // 16-bit representation not prepared. - iMessage = NULL; - - // A buffer for the message contents. - iMessage8 = HBufC8::NewL( RMobileBroadcastMessaging::KGsmBroadcastDataSize ); - TPtr8 messagePtr = iMessage8->Des(); - TPtrC8 sourceMessagePtr; - - if ( ThisPage() == 1 && IsLivecastMessage () ) - { - sourceMessagePtr.Set( aMessagePage.Right( aMessagePage.Length() ) ); - } - else - { - sourceMessagePtr.Set( aMessagePage.Right( aMessagePage.Length() - KHeaderLength ) ); - } - - // Copy the TCbs page contents into this buffer. - messagePtr.Copy( sourceMessagePtr ); - - // Indicate that we have no network info available - iNetworkInfo.iCountryCode = KRecMessageNoNetworkInfo; - - // Set network mode - iNetworkMode = ECbsNetworkGsm; - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecMessage::ConstructL() (TDes8 from ETel)"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecMessage::ConstructL -// Symbian 2nd phase copyconstructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsRecMessage::ConstructL( - const CCbsMessage& aMessagePage ) - { - iSerialNumber = aMessagePage.Key(); - iMessageIdentifier = aMessagePage.TopicNumber(); - iDCS = aMessagePage.DCS(); - iPageParameter = aMessagePage.PageParameter(); - - iLanguage = aMessagePage.Language(); - - // A buffer for the message contents. - if ( aMessagePage.Message() != NULL ) - { - iMessage = HBufC::NewL( aMessagePage.Contents().Length() ); - iMessage->Des().Copy( aMessagePage.Contents() ); - } - - if ( aMessagePage.Message8() != NULL ) - { - iMessage8 = HBufC8::NewL( aMessagePage.Contents8().Length() ); - TPtr8 messagePtr = iMessage8->Des(); - messagePtr.Copy( aMessagePage.Contents8() ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsRecMessage::NewL -// Two-phased constructor. -// Constructs a new CCbsRecMessage based on TDes8& -// (which is a descriptor) received from EPOC Telephony Server. -// ----------------------------------------------------------------------------- -// -CCbsRecMessage* CCbsRecMessage::NewL( - const TDes8& aMessagePage ) // page received from EPOC Telephony Server - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecMessage::NewL() (TDes8 from ETel)"); - - CCbsRecMessage* self = new ( ELeave ) CCbsRecMessage(); - CleanupStack::PushL( self ); - self->ConstructL( aMessagePage ); - CleanupStack::Pop(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecMessage::NewL() (TDes8 from ETel)"); - return self; - } - -// ----------------------------------------------------------------------------- -// CCbsRecMessage::NewL -// Constructs a copy of the message given as parameter. -// ----------------------------------------------------------------------------- -// -CCbsRecMessage* CCbsRecMessage::NewL( - const CCbsMessage& aMessagePage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecMessage::NewL() (copy CCbsMessage)"); - - CCbsRecMessage* self = new ( ELeave ) CCbsRecMessage; - CleanupStack::PushL( self ); - self->ConstructL( aMessagePage ); - CleanupStack::Pop(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecMessage::NewL() (copy CCbsMessage)"); - return self; - } - -// Destructor -CCbsRecMessage::~CCbsRecMessage() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecMessage::~CCbsRecMessage()"); - delete iMessage; - delete iMessage8; - CBSLOGSTRING("CBSSERVER: <<< CCbsRecMessage::~CCbsRecMessage()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecMessage::ThisPage -// Returns the page number of this page in the message page sequence -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TUint CCbsRecMessage::ThisPage() const - { - return PageParameter() >> 4; - } - -// ----------------------------------------------------------------------------- -// CCbsRecMessage::TotalPages -// Returns the total number of pages in this page's message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TUint CCbsRecMessage::TotalPages() const - { - return PageParameter() & 0xF; // 1111b - } - - -// ============ PRIVATE FUNCTIONS ========================== - -// ----------------------------------------------------------------------------- -// CCbsRecMessage::MessageType -// Returns the message type of this message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsRecMessage::MessageType() const - { - return KErrNotSupported; - } - -// ================= OTHER EXPORTED FUNCTIONS ============== -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsRecWcdmaMessage.cpp --- a/cbs/CbsServer/ServerSrc/CCbsRecWcdmaMessage.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,250 +0,0 @@ -/* -* Copyright (c) 2004-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: This module contains the implementation of CCbsRecWcdmaMessage -* class member functions. -* -* CCbsRecWcdmaMessage represents a WCDMA message page generated -* by CCbsRecEtelMonitor. CCbsRecWcdmaMessage is constructed from a -* CB message page received from ETel server. -* -* -*/ - - - -// INCLUDE FILES - -#include -#include "CCbsRecWcdmaMessage.h" -#include "CbsServerPanic.h" -#include "CbsLogger.h" - -// The empty message length. 1 octet is for page parameter -const TInt KCbsRecWcdmaMessageMinLength = 1; -// The maximum message length -const TInt KCbsRecWcdmaMessageMaxLength = 82; -// The value that use for parse the page parameter octet. -const TInt KCbsRecWcdmaPageOfNumberMaskForLow4 = 0x000f; - - -// ================= MEMBER FUNCTIONS ======================================= - -// ----------------------------------------------------------------------------- -// CCbsRecWcdmaMessage::CCbsRecWcdmaMessage -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsRecWcdmaMessage::CCbsRecWcdmaMessage( - const RMobileBroadcastMessaging::TMobileBroadcastAttributesV2& aAttributes ) - : iWcdmaAttributes( aAttributes ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsRecWcdmaMessage::CCbsRecWcdmaMessage -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsRecWcdmaMessage::CCbsRecWcdmaMessage() - { - } - -// ----------------------------------------------------------------------------- -// CCbsRecWcdmaMessage::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsRecWcdmaMessage::ConstructL( - const TDes8& aMessagePage, // ETel received msg page - const RMobileBroadcastMessaging::TMobileBroadcastAttributesV2& aAttributes ) - { - // Message attributes - iTotalNumberOfPages = - ( aAttributes.iNumberOfPages & KCbsRecWcdmaPageOfNumberMaskForLow4 ) ? - ( aAttributes.iNumberOfPages & KCbsRecWcdmaPageOfNumberMaskForLow4 ) : 1; - - iMessageType = aAttributes.iMessageType; - iMessageIdentifier = aAttributes.iMessageId; - iSerialNumber = aAttributes.iSerialNum; - iDCS = aAttributes.iDCS; - - // 16-bit representation not prepared. - iMessage = NULL; - // A buffer for the message contents. - iMessage8 = HBufC8::NewL( RMobileBroadcastMessaging::KWCdmaBroadcastPageSize ); - TPtr8 messagePtr = iMessage8->Des(); - messagePtr.Trim(); - - TPtrC8 sourceMessagePtr; - TInt msgLength = aMessagePage.Length(); - CBSLOGSTRING2("CBSSERVER: CCbsRecWcdmaMessage::\ - ConstructL(): msgLength: %d", msgLength ); - - // Message from ETel for 3G has no header and CTSY will append the page - // parameter to the last of message. So the non-empty message's length - // must more than 1 octet. The max length for one message page must - // less than 82 octets. Additional octets will be omitted. - if ( msgLength > KCbsRecWcdmaMessageMinLength ) - { - // Number of this page. Taken form the last byte of the message. - // Max 15, therefore masked with 0xF - iPageParameter = - ( aMessagePage[ msgLength - KCbsRecWcdmaMessageMinLength ] - & KCbsRecWcdmaPageOfNumberMaskForLow4 ) ? - ( aMessagePage[ msgLength - KCbsRecWcdmaMessageMinLength ] - & KCbsRecWcdmaPageOfNumberMaskForLow4 ) : 1; - - sourceMessagePtr.Set( aMessagePage.Left( msgLength - - KCbsRecWcdmaMessageMinLength) ); - - if ( KCbsRecWcdmaMessageMaxLength < sourceMessagePtr.Length() ) - { - sourceMessagePtr.Set( aMessagePage.Left( - KCbsRecWcdmaMessageMaxLength ) ); - } - } - - // Copy the TCbs page contents into this buffer. - messagePtr.Copy( sourceMessagePtr ); - - // Indicate that we have no network info available - iNetworkInfo.iCountryCode = KRecMessageNoNetworkInfo; - - // Set network mode - iNetworkMode = ECbsNetworkWcdma; - - CBSLOGSTRING2("CBSSERVER: CCbsRecWcdmaMessage::ConstructL(): \ - iTotalNumberOfPages: %d", iTotalNumberOfPages ); - CBSLOGSTRING2("CBSSERVER: CCbsRecWcdmaMessage::ConstructL(): \ - iSerialNumber: %d", iSerialNumber ); - CBSLOGSTRING2("CBSSERVER: CCbsRecWcdmaMessage::ConstructL(): \ - iMessageIdentifier: %d", iMessageIdentifier ); - CBSLOGSTRING2("CBSSERVER: CCbsRecWcdmaMessage::ConstructL(): \ - iDCS: %d", iDCS ); - CBSLOGSTRING2("CBSSERVER: CCbsRecWcdmaMessage::ConstructL(): \ - iPageParameter: %d", iPageParameter ); - } - -// ----------------------------------------------------------------------------- -// CCbsRecWcdmaMessage::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsRecWcdmaMessage::ConstructL( const CCbsMessage& aMessage ) - { - // Message attributes - iTotalNumberOfPages = aMessage.TotalPages(); - iMessageType = (TUint8) aMessage.MessageType(); - iMessageIdentifier = aMessage.TopicNumber(); - iSerialNumber = aMessage.Key(); - iDCS = aMessage.DCS(); - // Number of this page, extracted from last octet of the message data - iPageParameter = aMessage.PageParameter(); - - iLanguage = aMessage.Language(); - - // A buffer for the message contents. - if ( aMessage.Message() ) - { - iMessage = HBufC::NewL( aMessage.Contents().Length() ); - iMessage->Des().Copy( aMessage.Contents() ); - } - - if ( aMessage.Message8() ) - { - iMessage8 = HBufC8::NewL( aMessage.Contents8().Length() ); - TPtr8 messagePtr = iMessage8->Des(); - messagePtr.Copy( aMessage.Contents8() ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsRecWcdmaMessage::NewL -// Two-phased constructor. -// Constructs a new CCbsRecWcdmaMessage based on TDes8& and message attributes -// (which is a descriptor) received from EPOC Telephony Server. -// ----------------------------------------------------------------------------- -// -CCbsRecWcdmaMessage* CCbsRecWcdmaMessage::NewL( - const TDes8& aMessagePage, // page received from EPOC Telephony Server - const RMobileBroadcastMessaging::TMobileBroadcastAttributesV2& aAttributes ) - { - CCbsRecWcdmaMessage* self = new ( ELeave ) CCbsRecWcdmaMessage( aAttributes ); - CleanupStack::PushL( self ); - self->ConstructL( aMessagePage, aAttributes ); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// CCbsRecWcdmaMessage::NewL -// Two-phased constructor. -// Constructs a new CCbsRecWcdmaMessage based on an existing message. -// ----------------------------------------------------------------------------- -// -CCbsRecWcdmaMessage* CCbsRecWcdmaMessage::NewL( const CCbsMessage& aMessage ) - { - CCbsRecWcdmaMessage* self = new ( ELeave ) CCbsRecWcdmaMessage(); - CleanupStack::PushL( self ); - self->ConstructL( aMessage ); - CleanupStack::Pop( self ); - return self; - } - - -// Destructor -CCbsRecWcdmaMessage::~CCbsRecWcdmaMessage() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecWcdmaMessage::~CCbsRecWcdmaMessage()"); - delete iMessage; - delete iMessage8; - CBSLOGSTRING("CBSSERVER: <<< CCbsRecWcdmaMessage::~CCbsRecWcdmaMessage()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecWcdmaMessage::ThisPage -// Returns the page number of this page in the message page sequence -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TUint CCbsRecWcdmaMessage::ThisPage() const - { - return PageParameter(); - } - -// ----------------------------------------------------------------------------- -// CCbsRecWcdmaMessage::TotalPages -// Returns the total number of pages in this page's message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TUint CCbsRecWcdmaMessage::TotalPages() const - { - return iTotalNumberOfPages; - } - -// ----------------------------------------------------------------------------- -// CCbsRecWcdmaMessage::MessageType -// Returns the message type of this message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsRecWcdmaMessage::MessageType() const - { - return iMessageType; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsReceiverHelper.cpp --- a/cbs/CbsServer/ServerSrc/CCbsReceiverHelper.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,905 +0,0 @@ -/* -* 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 "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: This module contains the implementation of CCbsReceiverHelper class -* member functions. -* -* CCbsReceiverHelper gets the messages from the receiver and -* sends them to the database. All received messages are -* sent to CCbsReceiverHelper instance by CCbsRecEtel. -* This class makes subscription and existence checks -* to these messages and also implements topic detection feature. -* -*/ - - -// INCLUDE FILES -#include // Resource access -#include // Resource access - -#include - -#include "CbsCommon.h" -#include "CbsUtils.h" -#include "CbsServerPanic.h" -#include "CCbsServer.h" -#include "CCbsReceiverHelper.h" -#include "CCbsDbImp.H" -#include "CCbsDbImpSettings.H" -#include "CCbsDbImpTopicList.h" -#include "CCbsDbImpTopicMessages.h" -#include "CCbsDbImpTopicCollection.h" -#include "CCbsRecMessage.h" -#ifndef SYMBIAN_ENABLE_SPLIT_HEADERS -#include // View server access -#else -#include -#endif -#include // ECellBroadcastNotification -#include // Soft Notification API -#include -#include -// <-- QT PHONE START --> -//#include -// <-- QT PHONE END --> - -#include -#include "CbsLogger.h" - -#include // for local variation -#include "cbsinternalcrkeys.h" // for local variation -#include "cbsvariant.hrh" // for local variation - -// CONSTANTS - -// UID of CBS UI application -#define KUidCbsUiappDef 0x101F4CD3 -const TUid KUidCbsUiappApp = { KUidCbsUiappDef }; - -const TInt KCbsImmediateMessageIdInt = 313; -const TUid KCbsImmediateMessageId = { KCbsImmediateMessageIdInt }; -// <-- QT PHONE START --> -//const TInt KCbsMessageTone = 2; // See SharedDataKeysVariant.h or NcnListInternalPSKeys.h -// <-- QT PHONE END --> -// DATA TYPES -// CbsUi application view ID's -enum TCbsUiViewIds - { - ECbsUiTopicViewId = 1, - ECbsUiTopicListViewId, - ECbsUiListAppColumnViewId, - ECbsUiMsgViewId, //message view id - ECbsUiAddFromIndexViewId, - ECbsUiSettingsViewId - }; - -// These values specify a range of accepted topic number values (inclusive). -const TUint KMinTopicNumber = 1; // 000 is not accepted. -const TUint KMaxTopicNumber = 999; - -// LOCAL FUNCTION PROTOTYPES -LOCAL_C void ParseMessageFormatL( - TLex& aLex, CCbsDbImpTopicCollection& aCollection ); -LOCAL_C void ParseIndexElementIntroL( - TLex& aLex, CCbsDbImpTopicCollection& aCollection ); -LOCAL_C void ParseServiceIntroL( - TLex& aLex, CCbsDbImpTopicCollection& aCollection ); -LOCAL_C void ParseMessageIdL( - TLex& aLex, TUint& aMessageId ); -LOCAL_C void ParseSubIndexIntroL( - TLex& aLex ); -LOCAL_C void ParseSubIndexIdL( - TLex& aLex ); -LOCAL_C void ParseNameCharactersCrLfL( - TLex& aLex, TPtrC& aName ); - -// ==================== LOCAL FUNCTIONS ==================== - -// ----------------------------------------------------------------------------- -// ParseMessageFormatL -// Parses an index message. -// Returns: None -// ----------------------------------------------------------------------------- -// -LOCAL_C void ParseMessageFormatL( - TLex& aLex, - CCbsDbImpTopicCollection& aCollection ) - { - TInt identitiesCount( 0 ); - while ( !aLex.Eos() ) - { - ParseIndexElementIntroL( aLex, aCollection ); - identitiesCount++; - } - - if ( identitiesCount == 0 ) - { - User::Leave( KErrCorrupt ); - } - } - -// ----------------------------------------------------------------------------- -// ParseIndexElementIntroL -// Parses part of an index message. -// Returns: None -// ----------------------------------------------------------------------------- -// -LOCAL_C void ParseIndexElementIntroL( - TLex& aLex, - CCbsDbImpTopicCollection& aCollection ) - { - TBool hasSubIndexId( EFalse ); - - // subindex-id (optional for service-intro) - if ( aLex.Peek().IsAlpha() ) - { - hasSubIndexId = ETrue; - ParseSubIndexIdL( aLex ); - } - - // subindex-intro | service-intro - // We'll take a peek to discover, which one - if ( hasSubIndexId && aLex.Peek() == EKeySpace ) - { - ParseSubIndexIntroL( aLex ); - } - else - { - ParseServiceIntroL( aLex, aCollection ); - } - } - -// ----------------------------------------------------------------------------- -// ParseServiceIntroL -// Parses part of an index message. -// Returns: None -// ----------------------------------------------------------------------------- -// -LOCAL_C void ParseServiceIntroL( - TLex& aLex, - CCbsDbImpTopicCollection& aCollection ) - { - // We'll store the results here - TCbsDbTopicIdentity identity; - - // message-id - TUint messageId; - ParseMessageIdL( aLex, messageId ); - identity.iNumber = TUint16( messageId ); - - // delimeter - TChar delimeter( aLex.Get() ); - if ( delimeter != ' ' && delimeter != '.' ) - { - User::Leave( KErrCorrupt ); - } - - // service-name - TPtrC serviceName; - ParseNameCharactersCrLfL( aLex, serviceName ); - // drop crlf - serviceName.Set( serviceName.Left( serviceName.Length()-2 ) ); - - // If the delimeter is ' ', store the identity. Otherwise - // it only refers to a subindex page, so we skip it - if ( delimeter == ' ' ) - { - // Copy max. KCbsDbTopicNameLength characters - identity.iName = serviceName.Left( KCbsDbTopicNameLength ); - // Store the topic identity into the database - aCollection.AddTopicIdentityL( identity ); - } - } - -// ----------------------------------------------------------------------------- -// ParseMessageIdL -// Parses part of an index message. -// Returns: None -// ----------------------------------------------------------------------------- -// -LOCAL_C void ParseMessageIdL( - TLex& aLex, - TUint& aMessageId ) - { - if ( aLex.Val( aMessageId ) != KErrNone - || aMessageId < KMinTopicNumber - || aMessageId > KMaxTopicNumber ) - { - User::Leave( KErrCorrupt ); - } - } - -// ----------------------------------------------------------------------------- -// ParseSubIndexIntroL -// Parses part of an index message. -// subindex-intro = " " subindex-name crlf -// subindex-name = name-character+ -// Returns: None -// ----------------------------------------------------------------------------- -// -LOCAL_C void ParseSubIndexIntroL( - TLex& aLex ) - { - if ( aLex.Get() != EKeySpace ) - { - User::Leave( KErrCorrupt ); - } - - // subindex-name crlf - TPtrC subIndexName; - ParseNameCharactersCrLfL( aLex, subIndexName ); - } - -// ----------------------------------------------------------------------------- -// ParseSubIndexIdL -// Parses part of an index message. -// subindex-id = subindex-character+ -// Returns: None -// ----------------------------------------------------------------------------- -// -LOCAL_C void ParseSubIndexIdL( - TLex& aLex ) - { - // check that there is at least one subindex-character - if ( !aLex.Peek().IsAlpha() ) - { - User::Leave( KErrCorrupt ); - } - - // subindex-id - while ( aLex.Peek().IsAlpha() ) - { - aLex.Inc(); - } - } - -// ----------------------------------------------------------------------------- -// ParseNameCharactersCrLfL -// Parses part of an index message. -// name-character+ crlf -// Returns: None -// ----------------------------------------------------------------------------- -// -LOCAL_C void ParseNameCharactersCrLfL( - TLex& aLex, - TPtrC& aName ) - { - aLex.Mark(); - - // check that we have at least one name-character - TChar currCharacter( aLex.Get() ); - if( currCharacter == EKeyLineFeed - || currCharacter == EKeyEnter - || currCharacter == 0 ) - { - User::Leave( KErrCorrupt ); - } - - // scan until LF or EOS - while( currCharacter != EKeyLineFeed && currCharacter != 0 ) - { - currCharacter = aLex.Get(); - } - - // CR-LF is ok, EOS is not - if( currCharacter == EKeyLineFeed ) - { - aName.Set( aLex.MarkedToken() ); - } - else - { - User::Leave( KErrCorrupt ); - } - } - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::CCbsReceiverHelper -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsReceiverHelper::CCbsReceiverHelper( - CCbsDbImp& aDatabase ) - : iDatabase( aDatabase ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsReceiverHelper::ConstructL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsReceiverHelper::ConstructL()"); - - iVwsSession = CVwsSessionWrapper::NewL(); - - // Array for SIM Topic numbers. This way we know which topics - // to delete also from the SIM card (when deleting all topics). - iSimTopics = new ( ELeave ) CArrayFixFlat( 1 ); - - // Fetch local variation bits from CenRep - CRepository* repository = CRepository::NewL( KCRUidCbsVariation ); - TInt err = repository->Get( KCbsVariationFlags, iLVBits ); - if ( err ) - { - iLVBits = 0; - } - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::ConstructL(): CenRep error: %d", err ); - delete repository; - - CBSLOGSTRING("CBSSERVER: <<< CCbsReceiverHelper::ConstructL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsReceiverHelper* CCbsReceiverHelper::NewL( - CCbsDbImp& aDatabase ) - { - // Normal two phase construction. - CCbsReceiverHelper* self = new ( ELeave ) CCbsReceiverHelper( aDatabase ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// Destructor -CCbsReceiverHelper::~CCbsReceiverHelper() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsReceiverHelper::~CCbsReceiverHelper()"); - - delete iSimTopics; - delete iVwsSession; - - CBSLOGSTRING("CBSSERVER: <<< CCbsReceiverHelper::~CCbsReceiverHelper()"); - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::CCbsReceiverHelper -// Processes a message received by the receiver. -// -// This function is called when a message is received. -// -// Assumptions; -// 1. The message doesn't have it's permanent or read -// flags raised - method leaves with KErrNotSupported -// if this is the case. -// 2. If an index message (root or subindex) is passed as -// a parameter, the language indication prefix, if any, -// has been removed before HandleReceivedMessageL() is called. -// -// Assumption (2) holds because language indications are removed -// by Receiver module in an instance of CCbsRecDecoder. -// Message may not be accepted if it is somehow invalid -// or the reception has been disabled. -// This function also handles the detection of new topics -// and the processing of an index message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsReceiverHelper::HandleReceivedMessageL( - CCbsMessage& aMessage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsReceiverHelper::HandleReceivedMessageL()"); - - if ( aMessage.IsIndexMessage() ) - { - CBSLOGSTRING("CBSSERVER: CCbsReceiverHelper::HandleReceivedMessageL(): Index msg."); - - // It is assumed that a language indication prefix, - // if any, has already been removed from the message. - aMessage.RemoveIndexHeaderL(); - - TBool isChildSubindex( aMessage.IsChildSubindex() ); - - // Parse the index message - HandleIndexMessageL( aMessage.Contents(), isChildSubindex ); - - // Child subindex messages won't be displayed to the user. - if ( isChildSubindex ) - { - return; - } - } - - TUint16 topicNumber( aMessage.TopicNumber() ); - CBSLOGSTRING2("CBSSERVER: CCbsReceiverHelper::HandleReceivedMessageL(): topic number: %d.", topicNumber ); - - TCbsDbTopic topic; - iDatabase.TopicListL().FindTopicByNumberL( topicNumber, topic ); - CBSLOGSTRING("CBSSERVER: CCbsReceiverHelper::HandleReceivedMessageL(): iDatabase.TopicListL().FindTopicByNumberL(..) called OK." ); - - // If subscribed, handle the message - if ( topic.iSubscribed ) - { - CBSLOGSTRING("CBSSERVER: CCbsReceiverHelper::HandleReceivedMessageL(): Topic subscribed, processing." ); - - // Create and initialize message - TCbsDbMessage message; - - TTime now; - now.UniversalTime(); - message.iDateTime = now.Int64(); - message.iKey = aMessage.Key(); - message.iLanguage = aMessage.Language(); - message.iLength = aMessage.Contents().Length(); - message.iPermanent = EFalse; - message.iRead = EFalse; - TPtrC ptr( aMessage.Contents() ); - - iDatabase.TopicMessagesL().AddMessageL( topicNumber, message, ptr ); - CBSLOGSTRING("CBSSERVER: CCbsReceiverHelper::HandleReceivedMessageL(): Msg added OK." ); - - if ( aMessage.RequiresImmediateDisplay() ) - { - CBSLOGSTRING("CBSSERVER: CCbsReceiverHelper::HandleReceivedMessageL(): Calling LaunchMessageImmediateDisplay()... " ); - - // If the operator indicates that this message must be displayed - // immediately, request a view switch of CBS UI application. - LaunchMessageImmediateDisplay( message ); - - CBSLOGSTRING("CBSSERVER: CCbsReceiverHelper::HandleReceivedMessageL(): LaunchMessageImmediateDisplay() called OK." ); - } - else if ( topic.iHotmarked ) - { - // The message is of a hotmarked topic => Show a soft notification. - CBSLOGSTRING("CBSSERVER: CCbsReceiverHelper::HandleReceivedMessageL(): Calling LaunchMessageSoftNotification()... " ); - LaunchMessageSoftNotificationL( ETrue ); - CBSLOGSTRING("CBSSERVER: CCbsReceiverHelper::HandleReceivedMessageL(): LaunchMessageSoftNotification() called OK." ); - } - } // if ( topic.iSubscribed ) - else - { - CBSLOGSTRING("CBSSERVER: CCbsReceiverHelper::HandleReceivedMessageL(): Topic NOT subscribed, msg not processed." ); - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsReceiverHelper::HandleReceivedMessageL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::CheckForNewTopicL -// Checks if aMessage's topic is in the topic list. -// -// If the topic detection is enabled and the topic of this -// message is not in the topic list, the topic is added -// to the list. The method will then return ETrue. -// Otherwise EFalse is returned. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsReceiverHelper::CheckForNewTopicL( - const CCbsMessage& aMessage ) - { - // Check if the topic detection is on and if so, add topic if the topic - // is a new topic. - TBool detection; - TBool result( EFalse ); - - iDatabase.SettingsL().GetTopicDetectionStatus( detection ); - - if ( detection && HandleTopicDetectedL( aMessage.TopicNumber() ) ) - { - // If a new topic added, we do not send the message to - // the database so return ETrue. - result = ETrue; - } - else - { - // Topic detection disabled or topic already in the database - result = EFalse; - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::CheckForSubscriptionAndExistenceL -// Checks if the topic of this message is listed and subscribed. -// Returns ETrue only if the message does not exist in the -// database and the message's topic is subscribed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsReceiverHelper::CheckForSubscriptionAndExistenceL( - const CCbsMessage& aMessage ) - { - // Check if the message belongs to some subscribed topic. - TCbsDbTopic topic; - TUint16 topicNumber( 0 ); - - // Index messages are stored in topic 0. - if ( !aMessage.IsIndexMessage() ) - { - topicNumber = aMessage.TopicNumber(); - } - - TRAPD( errorCode, iDatabase.TopicListL().FindTopicByNumberL( topicNumber, topic ) ); - - if ( errorCode == KErrNotFound ) - { - return EFalse; - } - User::LeaveIfError( errorCode ); - - return topic.iSubscribed; - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::LanguageOfMessageSubscribedL -// Checks if aMessage's language has been subscribed by the user. -// ETrue is returned either if the language specified has been -// subscribed, message language is "Other" or the user has -// prefers to receive messages of all languages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsReceiverHelper::LanguageOfMessageSubscribedL( - const CCbsMessage& aMessage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsReceiverHelper::LanguageOfMessageSubscribedL" ); - - TCbsDbLanguages languages; - iDatabase.SettingsL().GetLanguages( languages ); - - if ( aMessage.Language() < 0 || aMessage.Language() >= ECbsCount ) - { - return EFalse; - } - - TCbsDbLanguage language( aMessage.Language() ); - CBSLOGSTRING2("CBSSERVER: CCbsReceiverHelper::LanguageOfMessageSubscribedL: language: %d.", language ); - - TBool subscribed( languages.iLanguages[ECbsAll] || - languages.iLanguages[ECbsOther] && language == ECbsOther || - !languages.iLanguages[ECbsOther] && languages.iLanguages[language] ); - - CBSLOGSTRING2("CBSSERVER: <<< CCbsReceiverHelper::LanguageOfMessageSubscribedL, returning %d.", subscribed ); - return subscribed; - } - -// --------------------------------------------------------- -// AddSimTopicL() -// -// Adds the given topic (aNumber, aName) into the DB. -// --------------------------------------------------------- -void CCbsReceiverHelper::AddSimTopicL( - const TUint aNumber, - const TDesC& aName ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsReceiverHelper::AddSimTopicL()"); - - TCbsDbTopic topic; - if ( aName == KNullDesC ) // Topic name not given, use "SIM topics". - { - // Establish file server session. - RFs fs; - User::LeaveIfError( fs.Connect() ); - CleanupClosePushL( fs ); - - // Open localized resource file. - RResourceFile resourceFile; - CbsUtils::FindAndOpenDefaultResourceFileLC( - fs, resourceFile ); // on CS - - // Read "SIM topic"-string. - TResourceReader reader; - reader.SetBuffer( resourceFile.AllocReadLC( - R_TEXT_SIM_TOPIC ) ); // on CS - - HBufC* text = reader.ReadHBufCL(); - topic.iName = *text; - CleanupStack::PopAndDestroy(3); // fs, resourceFile, readerBuf - - CBSLOGSTRING("CBSSERVER: CCbsReceiverHelper::AddSimTopicL(): Topic name read from resources."); - } - else // Use the given topic name. - { - topic.iName = aName; - } - - topic.iNumber = TUint16( aNumber ); - topic.iHotmarked = EFalse; - topic.iProtected = EFalse; - - // Variated feature - if ( iLVBits & KCbsLVFlagTopicSubscription ) - { - topic.iSubscribed = ETrue; - } - else - { - topic.iSubscribed = EFalse; - } - - // Leaves, if the topic already exists, so we trap that - // error. All other errors are passed as a normal leave. - CBSLOGSTRING2("CBSSERVER: CCbsReceiverHelper::AddSimTopicL(): Topic %d from SIM to topic list...", topic.iNumber ); - // Try to add topic to topic list, topic not detected automatically - TRAPD( err, iDatabase.TopicListL().AddTopicL( topic, EFalse ) ); - CBSLOGSTRING2("CBSSERVER: CCbsReceiverHelper::AddSimTopicL(): AddTopicL() TRAPped error: %d.", err ); - - if( err != KErrAlreadyExists && err != KErrArgument ) - { - CBSLOGSTRING("CBSSERVER: CCbsReceiverHelper::AddSimTopicL(): Leave if error != -11 || -6"); - User::LeaveIfError( err ); - } - - // Append to SIM Topic array - iSimTopics->AppendL( topic.iNumber ); - CBSLOGSTRING2("CBSSERVER: CCbsReceiverHelper::AddSimTopicL(): Topic %d appended to array.", topic.iNumber ); - - // Leave so that caller is informed e.g. if topic already exists - User::LeaveIfError( err ); - CBSLOGSTRING("CBSSERVER: <<< CCbsReceiverHelper::AddSimTopicL()" ); - - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::SimTopics -// Returns topics currently added from the SIM card. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CArrayFixFlat& CCbsReceiverHelper::SimTopics() const - { - return *iSimTopics; - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::DeleteFromSimTopicCache -// Deletes the topic number from local SIM Topic array. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsReceiverHelper::DeleteFromSimTopicCache( const TUint16 aNumber ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsReceiverHelper::DeleteFromSimTopicCache()"); - CBSLOGSTRING2("CBSSERVER: CCbsReceiverHelper::DeleteFromSimTopicCache(): Topic number: %d", aNumber ); - CBSLOGSTRING2("CBSSERVER: CCbsReceiverHelper::DeleteFromSimTopicCache(): Topic count in cache (1): %d", iSimTopics->Count() ); - - // Check if this topic is a SIM Topic (can be found in the array) - TKeyArrayFix key( 0, ECmpTUint16 ); - TInt index; - TUint16 topicNumber( aNumber ); - TInt result( iSimTopics->FindIsq( topicNumber, key, index ) ); - - CBSLOGSTRING2("CBSSERVER: CCbsReceiverHelper::DeleteFromSimTopicCache(): FindIsq() result: %d", result ); - CBSLOGSTRING2("CBSSERVER: CCbsReceiverHelper::DeleteFromSimTopicCache(): FindIsq() result, position: %d", index ); - - // Delete the topic from the array - if ( result == KErrNone ) - { - CBSLOGSTRING2("CBSSERVER: CCbsReceiverHelper::DeleteFromSimTopicCache(): Topic no. %d found from cache.", aNumber ); - iSimTopics->Delete( index ); - CBSLOGSTRING2("CBSSERVER: CCbsReceiverHelper::DeleteFromSimTopicCache(): Topic deleted from cache, index: %d", index ); - iSimTopics->Compress(); - CBSLOGSTRING("CBSSERVER: CCbsReceiverHelper::DeleteFromSimTopicCache(): SIM Topic array compressed."); - } - - CBSLOGSTRING2("CBSSERVER: CCbsReceiverHelper::DeleteFromSimTopicCache(): Topic count in cache (2): %d", iSimTopics->Count() ); - CBSLOGSTRING("CBSSERVER: <<< CCbsReceiverHelper::DeleteFromSimTopicCache()"); - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::Database -// Returns a reference to the CCbsDbImp instance. -// If a topic of the same number already exists -// in DB, does nothing. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsDbImp& CCbsReceiverHelper::Database() const - { - return iDatabase; - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::TopicsDetected -// Returns the number of detected topics. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TUint CCbsReceiverHelper::TopicsDetected() const - { - return iTopicsDetected; - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::ClearTopicsDetectedCounter -// Sets the counter for detected topics to zero. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsReceiverHelper::ClearTopicsDetectedCounter() - { - // Clear the variable indicating the amount of detected topics. - iTopicsDetected = 0; - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::HandleTopicDetectedL -// Handles detected topic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsReceiverHelper::HandleTopicDetectedL( - const TCbsDbTopicNumber& iTopicNumber ) - { - // Create new topic and initialise it. - TCbsDbTopic topic; - topic.iNumber = iTopicNumber; - topic.iName = KNullDesC; - topic.iProtected = EFalse; - topic.iSubscribed = EFalse; - topic.iHotmarked = EFalse; - - TBool result( ETrue ); - - // Try to add the topic. If succeeded, - // increase counter iTopicsDetected. - TRAPD( error, iDatabase.TopicListL().AddTopicL( topic, ETrue ) ); - - if ( error == KErrAlreadyExists ) - { - result = EFalse; - } - else if ( error != KErrNone && error != KErrAlreadyExists ) - { - User::Leave( error ); - } - else - { - // Update the detected topics counter - iTopicsDetected++; - } - return result; - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::HandleIndexMessageL -// Processes an index message and builds a new topic collection -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsReceiverHelper::HandleIndexMessageL( - const TDesC& aContents, - const TBool aIsChildSubIndex ) - { - // Previous topic identities are cleared if a root index message - // is received. - if ( !aIsChildSubIndex ) - { - iDatabase.TopicCollectionL().Clear(); - } - // Parses topic identities from the index message. - // The identities are stored in the current topic collection. - // If the index message is corrupt, it should still be stored, - // so trap the error. - TLex lex( aContents ); - TRAPD( error, ParseMessageFormatL( lex, iDatabase.TopicCollectionL() ) ); - switch ( error ) - { - case KErrNone: - // If the message all went fine, apply. - // The topic identities are written into persistent memory. - iDatabase.TopicCollectionL().Apply(); - break; - - case KErrCorrupt: - // Do not react on corrupt messages. - break; - - default: - // All other errors will prevent saving the message. - User::Leave( error ); - break; - } - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::ParseTopicIdentitiesL -// Parses all topic identities from aText which is assumed to be -// an index message's content. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsReceiverHelper::ParseTopicIdentitiesL( - const TDesC& aText ) - { - // Create a lexer and pass it to the parser - TLex lex( aText ); - - ParseMessageFormatL( lex, iDatabase.TopicCollectionL() ); - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::LaunchMessageSoftNotificationL -// Requests to launch a soft notification. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsReceiverHelper::LaunchMessageSoftNotificationL( const TBool aPlayTone ) - { - TInt numberOfHotMsgs( 0 ); - numberOfHotMsgs = iDatabase.TopicListL().UnreadHotmarkedMessageCount(); - - CAknSoftNotifier* notifier = CAknSoftNotifier::NewLC(); // on CS - - TurnLightsOn(); - - if ( aPlayTone ) - { - PlayCbsTone(); - } - - notifier->SetNotificationCountL( ECellBroadcastNotification, numberOfHotMsgs ); - CleanupStack::PopAndDestroy( notifier ); - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::LaunchMessageImmediateDisplay -// Requests to show the message immediately. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsReceiverHelper::LaunchMessageImmediateDisplay( - const TCbsDbMessage& aMessage ) - { - TUid uiViewUid( TUid::Uid( ECbsUiMsgViewId ) ); - TVwsViewId id( KUidCbsUiappApp, uiViewUid ); - TPckgBuf pckg( aMessage.iHandle ); - - // Ignore result value. - iVwsSession->CreateActivateViewEvent( id, KCbsImmediateMessageId, pckg ); - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::TurnLightsOn -// Turns lights on -// ----------------------------------------------------------------------------- -// -void CCbsReceiverHelper::TurnLightsOn() - { - // Change the bit on and off. SysAp will detect that - // the lights should be switched on for the specified time. - RProperty::Set(KPSUidCoreApplicationUIs, KLightsControl, ELightsOn); - RProperty::Set(KPSUidCoreApplicationUIs, KLightsControl, ELightsOff); - } - -// ----------------------------------------------------------------------------- -// CCbsReceiverHelper::PlayCbsTone -// Plays a tone -// ----------------------------------------------------------------------------- -// -void CCbsReceiverHelper::PlayCbsTone() - { - // <-- QT PHONE START --> - /* - RProperty::Define( KPSUidNcnList, KNcnPlayAlertTone, RProperty::EInt, - ECapability_None , ECapabilityWriteDeviceData ); - RProperty::Set( KPSUidNcnList, KNcnPlayAlertTone, KCbsMessageTone ); - */ - // <-- QT PHONE END--> - } - -// ================= OTHER EXPORTED FUNCTIONS ============== - -// End of File - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsSatRefresh.cpp --- a/cbs/CbsServer/ServerSrc/CCbsSatRefresh.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: This module contains the implementation of CCbsSatRefresh -* class member functions. -* -*/ - - - -// INCLUDE FILES -#include "CCbsSatRefresh.h" -#include "CCbsServer.h" -#include -#include - -#include "CbsLogger.h" - -// Constants - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CCbsSatRefresh::CCbsSatRefresh -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsSatRefresh::CCbsSatRefresh( CCbsServer& aCbsServer ): - iCbsServer ( aCbsServer ) - { - CBSLOGSTRING( ">>> CBSSERVER: CCbsSatRefresh::CCbsSatRefresh" ); - CBSLOGSTRING( "<<< CBSSERVER: CCbsSatRefresh::CCbsSatRefresh" ); - } - -// ----------------------------------------------------------------------------- -// CCbsSatRefresh::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsSatRefresh::ConstructL() - { - CBSLOGSTRING( ">>> CBSSERVER: CCbsSatRefresh::ConstructL" ); - - iSatSession = new ( ELeave ) RSatSession; - iSatSession->ConnectL(); - iSatRefresh = new ( ELeave ) RSatRefresh( *this ); - iSatRefresh->OpenL( *iSatSession ); - - TSatRefreshFiles file; - file.Append( KCbmiEf ); - iSatRefresh->NotifyFileChangeL( file ); - - CBSLOGSTRING( "<<< CBSSERVER: CCbsSatRefresh::ConstructL" ); - } - -// ----------------------------------------------------------------------------- -// CCbsSatRefresh::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsSatRefresh* CCbsSatRefresh::NewL( CCbsServer& aCbsServer ) - { - CCbsSatRefresh* self = new (ELeave) CCbsSatRefresh( aCbsServer ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - - -// Destructor -CCbsSatRefresh::~CCbsSatRefresh() - { - CBSLOGSTRING( ">>> CBSSERVER: CCbsSatRefresh::~CCbsSatRefresh" ); - - if ( iSatRefresh ) - { - // Cancel notifications. - iSatRefresh->Cancel(); - // Close SubSession. - iSatRefresh->Close(); - } - delete iSatRefresh; - - if ( iSatSession ) - { - iSatSession->Close(); - } - delete iSatSession; - - CBSLOGSTRING( "<<< CBSSERVER: CCbsSatRefresh::~CCbsSatRefresh" ); - } - -// ----------------------------------------------------------------------------- -// CCbsSatRefresh::AllowRefresh -// Refresh query. Determines whether it allow the refresh to happen. -// ----------------------------------------------------------------------------- -// -TBool CCbsSatRefresh::AllowRefresh( TSatRefreshType aType, const TSatRefreshFiles& /*aFiles*/ ) - { - // Refresh is always allowed - CBSLOGSTRING( ">>> CBSSERVER: CCbsSatRefresh::AllowRefresh()" ); - CBSLOGSTRING2( "CBSSERVER: CCbsSatRefresh::AllowRefresh() Refresh type: %d", aType ); - CBSLOGSTRING( "<<< CBSSERVER: CCbsSatRefresh::AllowRefresh complete, returning ETrue." ); - - // To prevent ARMV5 compiler warnings - if ( aType ) - { - aType = ERefreshTypeNotSet; - } - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CCbsSatRefresh::Refresh -// Notification of refresh. In this method the client should not close -// or cancel the RSatRefresh subsession. -// ----------------------------------------------------------------------------- -// -void CCbsSatRefresh::Refresh( TSatRefreshType aType, const TSatRefreshFiles& /*aFiles*/ ) - { - // Reload SIM Topics in case of refresh - CBSLOGSTRING( ">>> CBSSERVER: CCbsSatRefresh::Refresh" ); - CBSLOGSTRING2( "CBSSERVER: CCbsSatRefresh::Refresh Type: %d", aType ); - - TRAP_IGNORE( iCbsServer.ReLoadSimTopicsL() ); - - // Notify SAT Server that refresh initiated file read is done - iSatRefresh->RefreshEFRead( EFalse ); - - // To prevent ARMV5 compiler warnings - if ( aType ) - { - aType = ERefreshTypeNotSet; - } - - CBSLOGSTRING( "<<< CBSSERVER: CCbsSatRefresh::Refresh complete " ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsScheduler.cpp --- a/cbs/CbsServer/ServerSrc/CCbsScheduler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsScheduler class -* member functions. -* -*/ - - -// INCLUDES -#include "CbsServerPanic.h" -#include "CCbsScheduler.h" -#include "CCbsServer.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsScheduler::CCbsScheduler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsScheduler::CCbsScheduler() - { - } - -// ----------------------------------------------------------------------------- -// CCbsScheduler::SetServer -// Gives a pointer of the current CCbsServer instance to the scheduler. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsScheduler::SetServer( - CCbsServer* aServer ) - { - iServer = aServer; - } - -// ----------------------------------------------------------------------------- -// CCbsScheduler::Error -// Overridden to handle leaves in request functions and unexpected situations. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsScheduler::Error( - TInt aError ) const - { - // Server caused the error - if ( iServer->IsActive() ) - { - __DEBUGGER(); - } - else - { - // Panic the client. - if ( aError == KErrBadDescriptor ) - { - iServer->PanicClient( KErrBadDescriptor ); - } - // Otherwise relay the error code to the client and restart the server - iServer->ServerMessage().Complete( aError ); - iServer->ReStart(); - } - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsServer.cpp --- a/cbs/CbsServer/ServerSrc/CCbsServer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,519 +0,0 @@ -/* -* Copyright (c) 2003-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: This module contains the implementation of CCbsServer class -* member functions. -* -* This file contains the entry point for CbsServer.exe/dll. -* -*/ - - -// INCLUDE FILES - -#include -#include - -#include "CbsCommon.h" -#include "CCbsScheduler.h" -#include "CbsServerConstants.h" -#include "CbsServerPanic.h" -#include "CCbsServer.h" -#include "CCbsSession.h" -#include "CbsUtils.h" - -#include "CCbsRecEtel.h" -#include "CCbsDbImp.H" - -#include "CCbsDbImp.H" -#include "CCbsRecEtel.h" - -#include "CCbsDbImpSettings.H" -#include "CCbsDbImpTopicList.h" -#include "CCbsReceiverHelper.h" -#include "CCbsSatRefresh.h" - -#include -#include "CbsServerInternalPSKeys.h" -#include "CCbsShutdownMonitor.h" -#include "CbsLogger.h" -#include "CbsServerUid.h" - - -// LOCAL FUNCTION PROTOTYPES -LOCAL_C void InitServerL(); - -// ==================== LOCAL FUNCTIONS ==================== - -// ----------------------------------------------------------------------------- -// InitServerL -// Initializes and starts CBS Server. -// Creates the active scheduler and an instance of the server. -// Returns: None -// ----------------------------------------------------------------------------- -// -LOCAL_C void InitServerL() - { - CBSLOGSTRING("CBSSERVER: >>> InitServerL()"); - // perform init code under the cleanup stack - User::RenameThread( KCbsServerName ); - - // create server - if one of this name does not already exist - TFindServer findCbsServer( KCbsServerName ); - TFullName pathName; - - RMutex serverStartMutex; - TInt createErr( serverStartMutex.CreateGlobal( _L("CBSSERVERMTX") ) ); - if ( createErr ) - { - TInt openErr( serverStartMutex.OpenGlobal( _L("CBSSERVERMTX") ) ); - User::LeaveIfError( openErr ); - } - serverStartMutex.Wait(); - - if ( findCbsServer.Next( pathName ) != KErrNone ) - { - // start scheduler and server - CCbsScheduler* scheduler = new (ELeave) CCbsScheduler; - CleanupStack::PushL( scheduler ); - CActiveScheduler::Install( scheduler ); - - CCbsServer* server = CCbsServer::NewL(); - CleanupStack::PushL( server ); - - // The scheduler needs access to the server instance. - scheduler->SetServer( server ); - - // Set the key using Publish & Subscribe - RProperty property; - _LIT_SECURITY_POLICY_PASS( KCbsServerReadPolicy ); - _LIT_SECURITY_POLICY_S0( KCbsServerWritePolicy, KCbsServerUid3 ); - - property.Define( KPSUidCellBroadcast, KCbsServerStarted, RProperty::EInt, KCbsServerReadPolicy, KCbsServerWritePolicy ); - CBSLOGSTRING("CBSSERVER: InitServerL(): Property defined."); - - property.Set( KPSUidCellBroadcast, KCbsServerStarted, 1 ); - CBSLOGSTRING("CBSSERVER: InitServerL(): Property set."); - - property.Close(); - - serverStartMutex.Signal(); - serverStartMutex.Close(); - - CBSLOGSTRING("CBSSERVER: InitServerL(): CbsServer created ok, starting active schduler."); - - RProcess::Rendezvous( KErrNone ); - - // start fielding requests from clients - CActiveScheduler::Start(); - CBSLOGSTRING("CBSSERVER: InitServerL(): CbsServer shutting down, destroying scheduler & server instances."); - - // finished when the scheduler stops - CleanupStack::PopAndDestroy(2); // server, scheduler - } - else - { - serverStartMutex.Signal(); - serverStartMutex.Close(); - } - CBSLOGSTRING("CBSSERVER: <<< InitServerL()"); - } - - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsServer::CCbsServer -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsServer::CCbsServer( - TInt aPriority ) - : CServer2( aPriority ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsServer::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsServer::ConstructL() - { - CBSLOGSTRING( "CBSSERVER: >>> CCbsServer::ConstructL()" ); - // Use PubSub to monitor shutdown event - iShutdownMonitor = CCbsShutdownMonitor::NewL( *this ); - - iReceiver = CCbsRecEtel::NewL(); - - iDatabase = CCbsDbImp::NewL(); - - iHelper = CCbsReceiverHelper::NewL( *iDatabase ); - - iReceiver->SetInterface( iHelper ); - InitReceiverL(); - - // Create the container index. - iContainerIx = CObjectConIx::NewL(); - iContainer = NewContainerL(); - iIndex = CObjectIx::NewL(); - - // Create SAT refresh listener - TInt error( KErrNone ); - TRAP( error, iSatRefresh = CCbsSatRefresh::NewL( *this )); - CBSLOGSTRING2( "CBSSERVER: CCbsServer::ConstructL(): CCbsSatRefresh::NewL error: %d", error ); - - // Start the server - if ( Start( KCbsServerName ) != KErrNone ) - { - CbsServerPanic( ECbsServerStartFailed ); - } - - CBSLOGSTRING( "CBSSERVER: <<< CCbsServer::ConstructL()" ); - } - -// ----------------------------------------------------------------------------- -// CCbsServer::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsServer* CCbsServer::NewL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsServer::NewL()"); - CCbsServer* self = new ( ELeave ) CCbsServer( KCbsServerPriority ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - CBSLOGSTRING("CBSSERVER: <<< CCbsServer::NewL()"); - return self; - } - - -// Destructor -CCbsServer::~CCbsServer() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsServer::~CCbsServer()"); - // Note: it is important to delete in correct order - - // The correct order is: - // 1st: sessions, subsessions and other server related objects - // 2nd: receiver - // 3rd: database - - if ( iIndex ) - { - delete iIndex; - iIndex = NULL; - } - - if ( iContainer ) - { - if ( iContainerIx ) - { - iContainerIx->Remove( iContainer ); - iContainer = NULL; - } - } - - // Delete subsessions - if ( iContainerIx ) - { - delete iContainerIx; - iContainerIx = NULL; - } - - if ( iSatRefresh ) - { - delete iSatRefresh; - iSatRefresh = NULL; - } - - if ( iReceiver ) - { - delete iReceiver; - iReceiver = NULL; - } - - if ( iDatabase ) - { - delete iDatabase; - iDatabase = NULL; - } - - if ( iHelper ) - { - delete iHelper; - iHelper = NULL; - } - - if ( iShutdownMonitor ) - { - delete iShutdownMonitor; - iShutdownMonitor = NULL; - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsServer::~CCbsServer()"); - } - -// ----------------------------------------------------------------------------- -// CCbsServer::NewSessionL -// Creates a new session (an instance of CCbsSession). -// -// The method is meant to be called by the Symbian OS server framework and -// so it should not be used in any other case. -// -// The method leaves if the version given as parameter and the server -// version differ. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CSession2* CCbsServer::NewSessionL( - const TVersion& aVersion, - const RMessage2& /*aMessage*/ ) const - { - TVersion currentVersion( KCbsServerVersionMajor, - KCbsServerVersionMinor, - KCbsServerVersionBuild ); - - // Check the client version - if ( !User::QueryVersionSupported( currentVersion, aVersion ) ) - { - User::Leave( KErrNotSupported ); - } - - // Create and return a new session - return CCbsSession::NewL( *( CCbsServer* ) this ); - } - -// ----------------------------------------------------------------------------- -// CCbsServer::NewContainerL -// Creates a new session object container. -// -// It is the responsibility of the caller to delete the object -// container, when it is no longer used. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CObjectCon* CCbsServer::NewContainerL() - { - // Create the new container. - return iContainerIx->CreateL(); - } - -// ----------------------------------------------------------------------------- -// CCbsServer::Database -// Returns a reference to the database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsDbImp& CCbsServer::Database() - { - return *iDatabase; - } - -// ----------------------------------------------------------------------------- -// CCbsServer::Receiver -// Returns a reference to the receiver. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsRecEtel& CCbsServer::Receiver() - { - return *iReceiver; - } - -// ----------------------------------------------------------------------------- -// CCbsServer::TotalTopicsDetected -// Returns the total number of detected (via topic detection feature) -// topics and then clears the counter. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsServer::TotalTopicsDetected() - { - TInt count( iHelper->TopicsDetected() ); - iHelper->ClearTopicsDetectedCounter(); - return count; - } - -// ----------------------------------------------------------------------------- -// CCbsServer::PanicClient -// Panics the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsServer::PanicClient( - TInt aPanic ) const - { - __DEBUGGER(); // Debugger breakpoint in server's context. - Message().Panic( KCbsServerName, aPanic ); - } - -// ----------------------------------------------------------------------------- -// CCbsServer::Shutdown -// Shuts down the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsServer::Shutdown() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsServer::Shutdown()"); - Cancel(); - CActiveScheduler::Stop(); - CBSLOGSTRING("CBSSERVER: <<< CCbsServer::Shutdown()"); - } - -// ----------------------------------------------------------------------------- -// CCbsServer::ContainerIndex -// Returns the container index. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CObjectConIx& CCbsServer::ContainerIndex() - { - return *iContainerIx; - } - -// ----------------------------------------------------------------------------- -// CCbsServer::ServerMessage -// Returns the current IPC message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const RMessage2 CCbsServer::ServerMessage() const - { - return Message(); - } - -// ----------------------------------------------------------------------------- -// CCbsServer::ReturnObjectByHandle -// Returns a subsession object matching the given handle. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsObject* CCbsServer::ReturnObjectByHandle( - TUint aHandle ) - { - return ( CCbsObject* )iIndex->At( aHandle ); - } - -// ----------------------------------------------------------------------------- -// CCbsServer::DeleteObjectByHandle -// Deletes a subsession -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsServer::DeleteObjectByHandle( - TUint aHandle ) - { - // Find object and then delete it - CCbsObject* object = ReturnObjectByHandle( aHandle ); - - if ( object ) - { - // Remove from index (and it will delete the object) - iIndex->Remove( aHandle ); - } - else - { - CbsServerPanic( EInvalidSessionObject ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsServer::Container -// Returns the object container -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CObjectCon& CCbsServer::Container() - { - return *iContainer; - } - -// ----------------------------------------------------------------------------- -// CCbsServer::ObjectIx -// Returns the object index -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CObjectIx& CCbsServer::ObjectIx() - { - return *iIndex; - } - -// ----------------------------------------------------------------------------- -// CCbsServer::InitReceiverL -// Initializes the receiver with values retrieved from the database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsServer::InitReceiverL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsServer::InitReceiverL()"); - - // DB leave trapped. - TInt ignore( KErrNone ); - TRAP( ignore, iReceiver->LoadSimTopicsL() ); - CBSLOGSTRING2("CBSSERVER: CCbsServer::InitReceiverL(): LoadSimTopicsL() TRAPped error: %d", ignore); - - iReceiver->ApplyStateChangesL(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsServer::InitReceiverL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsServer::ReLoadSimTopicsL -// Initializes the receiver with values retrieved from the database. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsServer::ReLoadSimTopicsL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsServer::ReLoadSimTopicsL()"); - - TInt ignore( KErrNone ); - - TRAP( ignore, iReceiver->LoadSimTopicsL() ); - CBSLOGSTRING2("CBSSERVER: CCbsServer::ReLoadSimTopicsL(): LoadSimTopicsL() TRAPped error: %d", ignore); - - iReceiver->ApplyStateChangesL(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsServer::ReLoadSimTopicsL()"); - } - -// ================= OTHER EXPORTED FUNCTIONS ============== - -// ----------------------------------------------------------------------------- -// E32Main -// E32Main implements the executable entry function. -// Creates a cleanup stack and runs the server. -// Returns: Zero -// ----------------------------------------------------------------------------- -// -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - CTrapCleanup* cleanup = CTrapCleanup::New(); - - TRAPD( error, InitServerL() ); - - __ASSERT_ALWAYS( !error, User::Panic( KCbsServerName, error) ); - delete cleanup; - __UHEAP_MARKEND; - return 0; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsSession.cpp --- a/cbs/CbsServer/ServerSrc/CCbsSession.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,506 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsSession class -* member functions. -* -* This class represents a server-side session. -* -* The instances of the class are responsible of handling -* the requests of client-side RCbs and RCbsMcnSession objects. -* -* This class contains handlers for opening subsessions and -* retrieving some general CBS information. -* -* Client will be panicked, if a request is invalid. -* -*/ - - - -// INCLUDE FILES - -#include "CbsCommon.h" -#include "CbsServerConstants.h" -#include "CbsServerPanic.h" -#include "CCbsServer.h" -#include "CCbsSession.h" -#include "CCbsObject.h" -#include "CCbsRecEtel.h" -#include "CCbsSettings.h" -#include "CCbsTopicList.h" -#include "CCbsTopicCollection.h" -#include "CCbsTopicMessages.h" -#include "CCbsMcnSession.h" - -#include "CCbsDbImp.H" -#include "CbsLogger.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsSession::CCbsSession -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsSession::CCbsSession( - CCbsServer& aServer ) - : CSession2(), - iCbsServer( aServer ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsSession::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsSession::ConstructL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsSession::ConstructL()"); - CBSLOGSTRING("CBSSERVER: <<< CCbsSession::ConstructL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsSession::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSession2* CCbsSession::NewL( - CCbsServer& aServer ) - { - CCbsSession* self = new ( ELeave ) CCbsSession( aServer ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - - -// Destructor -// Session destructor is called when the client-side session -// object makes a Close()-call. There's no need to send -// a "close session" request to the server. -CCbsSession::~CCbsSession() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsSession::~CCbsSession()"); - CBSLOGSTRING("CBSSERVER: <<< CCbsSession::~CCbsSession()"); - } - -// ----------------------------------------------------------------------------- -// CCbsSession::DispatchMessageL -// Finds the appropriate message service method and calls it to -// handle the request. -// -// Relays a message to a proper message handling method. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSession::DispatchMessageL( - const RMessage2& aMessage ) - { - if ( !HandleSessionRequestsL( aMessage ) ) - { - // The request was not for the session. Submit requests to - // the correct subsessions. - CCbsObject* object = iCbsServer.ReturnObjectByHandle( aMessage.Int3() ); - - if ( object ) - { - // Let the subsession to handle the request - if ( !object->HandleRequestsL( aMessage ) ) - { - aMessage.Complete( KErrNotSupported ); - } - } - else - { - PanicClient( ECbsBadRequest ); - } - } - } - -// ----------------------------------------------------------------------------- -// CCbsSession::HandleSessionRequestsL -// Handles the session-based requests. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsSession::HandleSessionRequestsL( - const RMessage2& aMessage ) - { - TBool result( ETrue ); - TCbsServerRequest request( ( TCbsServerRequest ) aMessage.Function() ); - - // Handle requests for the session. - switch ( request ) - { - case EMcnCloseSession: - { - // Close the session - aMessage.Complete( KErrNone ); - } - break; - - case ECbsCloseSession: - { - // Close the session - aMessage.Complete( KErrNone ); - } - break; - - case EMcnGetCellInfo: - case EMcnGetInfoMessage: - { - GetCurrentMcnInfoL(); - } - break; - - case ECbsCreateSettingsSubsession: - { - NewSettingsL(); - } - break; - - case ECbsCreateTopicListSubsession: - { - NewTopicListL(); - } - - break; - - case ECbsCreateTopicMessagesSubsession: - { - NewTopicMessagesL(); - } - break; - - case ECbsCreateTopicCollectionSubsession: - { - NewTopicCollectionL(); - } - break; - - case EMcnCreateSubsession: - { - NewMcnSubsessionL(); - } - break; - - case ECbsShutdown: - { - iCbsServer.Shutdown(); - aMessage.Complete( KErrNone ); - } - break; - - default: - // The request was not for the session. - result = EFalse; - } - return result; - } - -// ----------------------------------------------------------------------------- -// CCbsSession::PanicClient -// Panics the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSession::PanicClient( - TCbsSessionPanic aPanic ) const - { - // Panic - iCurrentMessage.Panic( KCbsServerName, aPanic ); - } - -// ----------------------------------------------------------------------------- -// CCbsSession::TotalTopicsDetected -// Returns the number of new topics detected. -// The counter will be reset after a call. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsSession::TotalTopicsDetected() - { - return iCbsServer.TotalTopicsDetected(); - } - -// ----------------------------------------------------------------------------- -// CCbsSession::Message -// Returns the current message in process -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -RMessage2& CCbsSession::Message() - { - return iCurrentMessage; - } - -// ----------------------------------------------------------------------------- -// CCbsSession::ServiceL -// Handles the received message. -// The method simply calls DispatchMessageL to process a -// message and informs the client if the handling failed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSession::ServiceL( - const RMessage2& aMessage ) - { - iCurrentMessage = aMessage; - - TRAPD( result, DispatchMessageL( aMessage ) ); - - if ( result != KErrNone ) - { - // Inform the client - aMessage.Complete( result ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsSession::NewSettingsL -// Create a new subsession, settings, for the session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSession::NewSettingsL() - { - // Create a new settings object - CCbsSettings* object = - CCbsSettings::NewL( *this, iCbsServer.Database().SettingsL(), - iCbsServer.Receiver() ); - - // Add the object to the object container to generate unique id - iCbsServer.Container().AddL( object ); - - // Add object to object index; this returns a unique handle so - // we can get it again - TInt handle( iCbsServer.ObjectIx().AddL( object ) ); - - // Write the handle to client - TPckg< TInt > handlePckg( handle ); - TRAPD( result, iCurrentMessage.WriteL( 3, handlePckg ) ); - - if ( result != KErrNone ) - { - // Writing failed, the client called the server in a wrong way - iCbsServer.ObjectIx().Remove( handle ); - PanicClient( ECbsBadDescriptor ); - } - else - { - Message().Complete( KErrNone ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsSession::NewTopicListL -// Create a new subsession, topic list, for the session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSession::NewTopicListL() - { - // Create a new topic list object - CCbsTopicList* object = - CCbsTopicList::NewL( *this, iCbsServer.Database().TopicListL(), - iCbsServer.Receiver() ); - - // Add the object to the object container to generate unique id - iCbsServer.Container().AddL( object ); - - // Add object to object index; this returns a unique handle - // so we can get it again - TInt handle( iCbsServer.ObjectIx().AddL( object ) ); - - // Write the handle to client - TPckg< TInt > handlePckg2( handle ); - TRAPD( result, iCurrentMessage.WriteL( 3, handlePckg2 ) ); - - if ( result != KErrNone ) - { - // Writing failed, the client called the server in a wrong way - iCbsServer.ObjectIx().Remove( handle ); - PanicClient( ECbsBadDescriptor ); - } - else - { - Message().Complete( KErrNone ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsSession::NewTopicCollectionL -// Create a new subsession, topic collection, for the session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSession::NewTopicCollectionL() - { - // Create a new topic list object - CCbsTopicCollection* object = - CCbsTopicCollection::NewL( *this, - iCbsServer.Database().TopicCollectionL(), - iCbsServer.Database().TopicListL() ); - - // Add the object to the object container to generate unique id - iCbsServer.Container().AddL( object ); - - // Add object to object index; this returns a unique handle - // so we can get it again - TInt handle( iCbsServer.ObjectIx().AddL( object ) ); - - // Write the handle to client - TPckg< TInt > handlePckg2( handle ); - TRAPD( result, iCurrentMessage.WriteL( 3, handlePckg2 ) ); - - if ( result != KErrNone ) - { - // Writing failed, the client called the server in a wrong way - iCbsServer.ObjectIx().Remove( handle ); - PanicClient( ECbsBadDescriptor ); - } - else - { - Message().Complete( KErrNone ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsSession::NewTopicMessagesL -// Create a new subsession, topic messages, for the session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSession::NewTopicMessagesL() - { - // Create a new topic list object - CCbsTopicMessages* object = - CCbsTopicMessages::NewL( *this, - iCbsServer.Database().TopicMessagesL(), - iCbsServer.Receiver() ); - - // Add the object to the object container to generate unique id - iCbsServer.Container().AddL( object ); - - // Add object to object index; this returns a unique handle - // so we can get it again - TInt handle( iCbsServer.ObjectIx().AddL( object ) ); - - // Write the handle to client - TPckg< TInt > handlePckg2( handle ); - TRAPD( result, iCurrentMessage.WriteL( 3, handlePckg2 ) ); - - if ( result != KErrNone ) - { - // Writing failed, the client called the server in a wrong way - iCbsServer.ObjectIx().Remove( handle ); - PanicClient( ECbsBadDescriptor ); - } - else - { - Message().Complete( KErrNone ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsSession::NewMcnSubsessionL -// Create a new MCN subsession. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSession::NewMcnSubsessionL() - { - // Create a new settings object - CCbsMcnSession* object = - CCbsMcnSession::NewL( *this, iCbsServer.Receiver() ); - - // Add the object to the object container to generate unique id - iCbsServer.Container().AddL( object ); - - // Add object to object index; this returns a unique handle so - // we can get it again - TInt handle( iCbsServer.ObjectIx().AddL( object ) ); - - // Write the handle to client - TPckg< TInt > handlePckg( handle ); - TRAPD( result, iCurrentMessage.WriteL( 3, handlePckg ) ); - - if ( result != KErrNone ) - { - // Writing failed, the client called the server in a wrong way - iCbsServer.ObjectIx().Remove( handle ); - PanicClient( ECbsBadDescriptor ); - } - else - { - Message().Complete( KErrNone ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsSession::GetCurrentMcnInfoL -// Return the current cell info message to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSession::GetCurrentMcnInfoL() - { - TBuf buf; - - // First, read topic number from the client - - TInt topicNumber( 0 ); - topicNumber = iCurrentMessage.Int1(); - - TInt infoReceived( KErrNone ); - if ( topicNumber == KCellInfoTopic ) - { - infoReceived = iCbsServer.Receiver().GetCurrentMessage( buf, KCellInfoTopic ); - } - else if ( topicNumber == KHomeZoneTopic ) - { - infoReceived = iCbsServer.Receiver().GetCurrentMessage( buf, KHomeZoneTopic ); - } - else - { - infoReceived = KErrNotSupported; - } - - TRAPD( result, iCurrentMessage.WriteL( 0, buf ) ); - - if ( result != KErrNone ) - { - PanicClient( ECbsBadDescriptor ); - } - else - { - Message().Complete( infoReceived ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsSession::Server -// Return the server instance -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsServer& CCbsSession::Server() - { - return iCbsServer; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsSetFilterSettingHandler.cpp --- a/cbs/CbsServer/ServerSrc/CCbsSetFilterSettingHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,160 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsSetFilterSettingHandler -* class member functions -* -*/ - - -// INCLUDE FILES - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -#include -#include -#include "CCbsSetFilterSettingHandler.h" -#include "CCbsRecEtel.h" -#include "CCbsRecEtelMonitor.h" -#include "CbsServerConstants.h" -#include "CbsServerPanic.h" -#include "CbsLogger.h" - - -// ==================== LOCAL FUNCTIONS ===================================== - - -// ================= MEMBER FUNCTIONS ======================================= - -// ----------------------------------------------------------------------------- -// CCbsSetFilterSettingHandler::CCbsSetFilterSettingHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsSetFilterSettingHandler::CCbsSetFilterSettingHandler( - CCbsRecEtel& aEtel, - MCbsEtelMessaging& aMessaging - ) : CActive( EPriorityStandard ), - iEtel( aEtel ), - iSmsMessaging( aMessaging ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CCbsSetFilterSettingHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsSetFilterSettingHandler::ConstructL() - { - } - -// ----------------------------------------------------------------------------- -// CCbsSetFilterSettingHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsSetFilterSettingHandler* CCbsSetFilterSettingHandler::NewL( - CCbsRecEtel& aEtel, - MCbsEtelMessaging& aMessaging ) - { - CCbsSetFilterSettingHandler* self = - new ( ELeave ) CCbsSetFilterSettingHandler( aEtel, aMessaging ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// Destructor -CCbsSetFilterSettingHandler::~CCbsSetFilterSettingHandler() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsSetFilterSettingHandler::~CCbsSetFilterSettingHandler()"); - Cancel(); - CBSLOGSTRING("CBSSERVER: <<< CCbsSetFilterSettingHandler::~CCbsSetFilterSettingHandler()"); - } - -// ----------------------------------------------------------------------------- -// CCbsSetFilterSettingHandler::SetFilterSetting -// Requests ETel to change the filter setting. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -void CCbsSetFilterSettingHandler::SetFilterSetting( - RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter aSetting ) - { - if ( IsActive() ) - { - Cancel(); - } - iSmsMessaging.SetFilterSetting( iStatus, aSetting ); - SetActive(); - } - -// ----------------------------------------------------------------------------- -// CCbsSetFilterSettingHandler::RunL -// Called after ETel has completed the SetFilterSetting request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSetFilterSettingHandler::RunL() - { - if ( iStatus != KErrNone ) - { - // Causes a call to RunError() - User::Leave( iStatus.Int() ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsSetFilterSettingHandler::DoCancel -// Cancels an outstanding SetFilterSetting request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSetFilterSettingHandler::DoCancel() - { - iSmsMessaging.SetFilterSettingCancel(); - } - -// ----------------------------------------------------------------------------- -// CCbsSetFilterSettingHandler::RunError -// Is called if RunL() leaves. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsSetFilterSettingHandler::RunError( TInt aError ) - { - CBSLOGSTRING2("CBSSERVER: >>> CCbsSetFilterSettingHandler::RunError(): Error code: %d", aError ); - CBSLOGSTRING("CBSSERVER: <<< CCbsSetFilterSettingHandler::RunError(), returning KErrNone." ); - - // To prevent ARMV5 compiler warnings - if ( aError ) - { - aError = KErrNone; - } - return KErrNone; - } - - -// ================= OTHER EXPORTED FUNCTIONS =============================== - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsSettings.cpp --- a/cbs/CbsServer/ServerSrc/CCbsSettings.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,426 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsSettings class -* member functions. -* -* The server-side CbsClient subsession for modifying settings. -* -*/ - - -// INCLUDE FILES - -#include "CbsCommon.h" -#include "CbsServerPanic.h" -#include "CbsServerConstants.h" -#include "CCbsSettings.h" -#include "CCbsDbImpSettings.H" -#include "CCbsRecEtel.h" -#include "CCbsServer.h" -#include "CbsLogger.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsSettings::CCbsSettings -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsSettings::CCbsSettings( - CCbsSession& aSession, - CCbsDbImpSettings& aSettings, - CCbsRecEtel& aReceiver ) - : CCbsObject( aSession ), - iSettings( aSettings ), - iReceiver( aReceiver ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsSettings::ConstructL() - { - // Add itself as an observer. - iSettings.AddObserverL( this ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsSettings* CCbsSettings::NewL( - CCbsSession& aSession, - CCbsDbImpSettings& aSettings, - CCbsRecEtel& aReceiver ) - { - CCbsSettings* self = - new ( ELeave ) CCbsSettings( aSession, aSettings, aReceiver ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// Destructor -CCbsSettings::~CCbsSettings() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsSettings::~CCbsSettings()"); - iSettings.RemoveObserver( this ); - CBSLOGSTRING("CBSSERVER: <<< CCbsSettings::~CCbsSettings()"); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::HandleRequestsL -// Handles the requests for this subsession. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsSettings::HandleRequestsL( - const RMessage2& aMessage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsSettings::HandleRequestsL()"); - - TBool requestHandled( ETrue ); - - // Check needed capabilities - TBool hasCapWrite( EFalse ); - hasCapWrite = aMessage.HasCapability( ECapabilityWriteDeviceData ); - - CBSLOGSTRING2("CBSSERVER: CCbsSettings::HandleRequestsL(), caps checked: %d", hasCapWrite ); - - // Get the request - TInt function = aMessage.Function(); - - // If caps are not ok, leave - if ( ( function == ECbsSetReceptionStatus || - function == ECbsSetTopicDetectionStatus || - function == ECbsSetLanguages ) && - !hasCapWrite ) - { - CBSLOGSTRING("CBSSERVER: CCbsSettings::HandleRequestsL(): Caps NOT OK, leaving with KErrPermissionDenied..."); - User::Leave( KErrPermissionDenied ); - } - - // Handle the requests for the subsession - switch ( function ) - { - case ECbsCloseSettingsSubsession: - CloseSettings(); - aMessage.Complete( KErrNone ); - break; - - case ECbsGetReceptionStatus: - GetReceptionStatusL(); - break; - - case ECbsSetReceptionStatus: - SetReceptionStatusL(); - break; - - case ECbsGetTopicDetectionStatus: - GetTopicDetectionStatusL(); - break; - - case ECbsSetTopicDetectionStatus: - SetTopicDetectionStatusL(); - break; - - case ECbsGetLanguages: - GetLanguagesL(); - break; - - case ECbsSetLanguages: - SetLanguagesL(); - break; - - case ECbsNotifySettingsChanged: - NotifySettingsChanged(); - break; - - case ECbsNotifySettingsChangedCancel: - NotifySettingsChangedCancel(); - break; - default: - requestHandled = EFalse; - break; - } - - CBSLOGSTRING2("CBSSERVER: <<< CCbsSettings::HandleRequestsL(), returning requestHandled: %d", requestHandled ); - return requestHandled; - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::TopicDetectionStatusChangedIndL -// Called when the topic detection is changed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::TopicDetectionStatusChangedIndL() - { - // Notify the client in case there is a pending notification request. - NotifyClientL( ECbsModifiedTopicDetectionStatus ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::ReceptionStatusChangedIndL -// Called when reception status is changed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::ReceptionStatusChangedIndL() - { - // Notify the client in case there is a pending notification request. - NotifyClientL( ECbsModifiedReceptionStatus ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::LanguagesChangedIndL -// Called when reception status is changed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::LanguagesChangedIndL() - { - // Notify the client in case there is a pending notification request. - NotifyClientL( ECbsModifiedLanguages ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::LimitedReceptionStatusChangedIndL -// Called when reception status is changed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::LimitedReceptionStatusChangedIndL() - { - // Notify the client in case there is a pending notification request. - NotifyClientL( ECbsModifiedLimitedReceptionStatus ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::CleanupTimeChangedIndL -// Called when clean up time of read messages is changed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::CleanupTimeChangedIndL() - { - // Notify the client in case there is a pending notification request. - NotifyClientL( ECbsModifiedCleanupTime ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::CloseSettings -// Close the subsession. -// Note that the method will delete itself, so the object is no -// longer valid after the call. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::CloseSettings() - { - // Removes the object. - Session().Server().DeleteObjectByHandle( Message().Int3() ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::GetReceptionStatusL -// Passes the reception status from the database to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::GetReceptionStatusL() - { - // First, get the reception status from the database. - TBool receptionStatus( EFalse ); - iSettings.GetReceptionStatus( receptionStatus ); - - // Write the reception status to the client side. - TPckgBuf< TBool > statusPckg( receptionStatus ); - Message().WriteL( 0, statusPckg ); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::SetReceptionStatusL -// Change the reception status to the requested one. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::SetReceptionStatusL() - { - // Read the reception status from the client side and then - // change the current status to the requested one. - TPckgBuf< TBool > statusPckg( EFalse ); - Message().ReadL( 0, statusPckg ); - - // Change the status. - TBool status( statusPckg() ); - iSettings.SetReceptionStatusL( status ); - iReceiver.ApplyStateChangesL(); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::GetTopicDetectionStatusL -// Return the current topic detection status to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::GetTopicDetectionStatusL() - { - // First, get the topic detection status. - TBool topicDetectionStatus( EFalse ); - iSettings.GetTopicDetectionStatus( topicDetectionStatus ); - - // Write the topic detection status to the client side. - TPckgBuf< TBool > statusPckg( topicDetectionStatus ); - Message().WriteL( 0, statusPckg ); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::SetTopicDetectionStatusL -// Change the topic detection status to the requested one. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::SetTopicDetectionStatusL() - { - // Read the topic detection status from the client side and then - // change the current status to the requested one. - TPckgBuf< TBool > statusPckg( EFalse ); - Message().ReadL( 0, statusPckg ); - - iSettings.SetTopicDetectionStatusL( statusPckg() ); - iReceiver.ApplyStateChangesL(); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::GetLanguagesL -// Return the preferred languages to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::GetLanguagesL() - { - // Get the language settings. - TCbsDbLanguages language; - iSettings.GetLanguages( language ); - - // Write the preferred languages to the client side. - TPckgBuf< TCbsSettingsLanguages > languagePckg( language ); - Message().WriteL( 0, languagePckg ); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::SetLanguagesL -// Sets preferred languages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::SetLanguagesL() - { - // Read the preferred languages from the client side and then - // change the current languages to the requested. - TPckgBuf< TCbsSettingsLanguages > languagePckg; - Message().ReadL( 0, languagePckg ); - - // Update db's language settings. - TCbsDbLanguages languages( languagePckg() ); - iSettings.SetLanguagesL( languages ); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::NotifySettingsChanged -// Make request to notify when settings are changed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::NotifySettingsChanged() - { - // If there is already a pending request, cancel it. - if ( iIsMessage ) - { - NotifySettingsChangedCancel(); - } - - // And then save the message. - iMessage = Message(); - iIsMessage = ETrue; - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::NotifySettingsChangedCancel -// Cancel the request to notify when settings are changed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::NotifySettingsChangedCancel() - { - if ( iIsMessage ) - { - iMessage.Complete( KErrCancel ); - } - - iIsMessage = EFalse; - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsSettings::NotifyClientL -// Notifies the client (if there is a pending request). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsSettings::NotifyClientL( - TCbsSettingsEvent aEvent ) - { - // If there is a pending request, then process it. - if ( iIsMessage ) - { - // Make a pointer descriptor - TPckg eventPckg( aEvent ); - iMessage.WriteL( 0, eventPckg ); - - iMessage.Complete( KErrNone ); - iIsMessage = EFalse; - } - } - - -// ========================== OTHER EXPORTED FUNCTIONS ========================= -// End of File - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsShutdownMonitor.cpp --- a/cbs/CbsServer/ServerSrc/CCbsShutdownMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,138 +0,0 @@ -/* -* Copyright (c) 2004 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: This module contains the implementation of CCbsShutdownMonitor class -* member functions. -* -*/ - - -// INCLUDE FILES -#include -#include "CCbsShutdownMonitor.h" -#include "CCbsServer.h" -#include -#include "CbsLogger.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsShutdownMonitor::CCbsShutdownMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsShutdownMonitor::CCbsShutdownMonitor( CCbsServer& aServer ) - : CActive( EPriorityStandard ), - iServer( aServer ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsShutdownMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsShutdownMonitor::ConstructL() - { - CActiveScheduler::Add( this ); - - // Attach to startup property - iProperty.Attach( KPSUidStartup, KPSGlobalSystemState ); - IssueRequest(); - } - -// ----------------------------------------------------------------------------- -// CCbsShutdownMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsShutdownMonitor* CCbsShutdownMonitor::NewL( CCbsServer& aServer ) - { - CCbsShutdownMonitor* self = - new ( ELeave ) CCbsShutdownMonitor( aServer ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// Destructor -CCbsShutdownMonitor::~CCbsShutdownMonitor() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsShutdownMonitor::~CCbsShutdownMonitor()"); - Cancel(); - iProperty.Close(); - CBSLOGSTRING("CBSSERVER: <<< CCbsShutdownMonitor::~CCbsShutdownMonitor()"); - } - -// ----------------------------------------------------------------------------- -// CCbsShutdownMonitor::IssueRequest -// Requests that we are notified when the system state changes. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsShutdownMonitor::IssueRequest() - { - if ( !IsActive() ) - { - // Subscribe again - iProperty.Subscribe( iStatus ); - SetActive(); - } - } - -// ----------------------------------------------------------------------------- -// CCbsShutdownMonitor::RunL -// Becomes active when the system state changes. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsShutdownMonitor::RunL() - { - if ( iStatus == KErrNone ) - { - // Resubscribe before processing new value to prevent missing updates - IssueRequest(); - - // Property updated, get new value - TInt state( 0 ); - TInt error( KErrNone ); - error = iProperty.Get( state ); - - if ( !error ) - { -#ifdef RD_STARTUP_CHANGE - if ( state == ESwStateShuttingDown ) - { - iServer.Shutdown(); - } -#endif - } - } - } - -// ----------------------------------------------------------------------------- -// CCbsShutdownMonitor::DoCancel -// Cancels an outstanding Subscribe request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsShutdownMonitor::DoCancel() - { - iProperty.Cancel(); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsTopicCollection.cpp --- a/cbs/CbsServer/ServerSrc/CCbsTopicCollection.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,286 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsTopicCollection class -* member functions. -* -* -*/ - - -// INCLUDE FILES - -#include "CbsCommon.h" -#include "CCbsSession.h" -#include "CCbsTopicCollection.h" -#include "CCbsDbImpTopicCollection.h" -#include "CCbsDbImpTopicList.h" -#include "CbsServerConstants.h" -#include "CCbsServer.h" -#include "CbsLogger.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsTopicCollection::CCbsTopicCollection -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsTopicCollection::CCbsTopicCollection( - CCbsSession& aSession, - CCbsDbImpTopicCollection& aCollection, - CCbsDbImpTopicList& aList ) - : CCbsObject( aSession ), - iCollection( aCollection ), - iTopicList ( aList ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsTopicCollection::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsTopicCollection::ConstructL() - { - iCollection.AddObserverL( this ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicCollection::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsTopicCollection* CCbsTopicCollection::NewL( - CCbsSession& aSession, - CCbsDbImpTopicCollection& aCollection, - CCbsDbImpTopicList& aList ) - { - // Normal two phase construction. - CCbsTopicCollection* self = - new ( ELeave ) CCbsTopicCollection( aSession, aCollection, aList ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// Destructor -CCbsTopicCollection::~CCbsTopicCollection() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsTopicCollection::~CCbsTopicCollection()"); - // Remove from the observers. - iCollection.RemoveObserver( this ); - CBSLOGSTRING("CBSSERVER: <<< CCbsTopicCollection::~CCbsTopicCollection()"); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicCollection::HandleRequestsL -// Passes the requests to proper functions. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsTopicCollection::HandleRequestsL( - const RMessage2& aMessage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsTopicCollection::HandleRequestsL()"); - - TBool requestHandled( ETrue ); - - // Handle the requests. - switch ( aMessage.Function() ) - { - case ECbsCloseTopicCollectionSubsession: - CloseCollection(); - aMessage.Complete( KErrNone ); - break; - - case ECbsGetTopicInfoCount: - GetTopicCountL(); - break; - - case ECbsGetTopicInfo: - GetTopicInfoL(); - break; - - case ECbsTopicInList: - TopicInListL(); - break; - - case ECbsNotifyOnChange: - NotifyOnChange(); - break; - - case ECbsNotifyOnChangeCancel: - NotifyOnChangeCancel(); - break; - - default: - requestHandled = EFalse; - break; - } - - CBSLOGSTRING2("CBSSERVER: <<< CCbsTopicCollection::HandleRequestsL(), returning requestHandled: %d", requestHandled ); - return requestHandled; - } - -// ----------------------------------------------------------------------------- -// CCbsTopicCollection::TopicCollectionContentsChangedInd -// Called whenever topic collection contents are changed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicCollection::TopicCollectionContentsChangedInd() - { - // Notify if necessary. - Notify(); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicCollection::CloseCollection -// Closes the subsession. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicCollection::CloseCollection() - { - // Removes the object. - Session().Server().DeleteObjectByHandle( Message().Int3() ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicCollection::GetTopicCountL -// Writes the number of topics in the topic collection to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicCollection::GetTopicCountL() - { - TInt count; - iCollection.GetTopicIdentityCount( count ); - // Write the count to the client side. - TPckgBuf< TInt > pckg( count ); - Message().WriteL( 0, pckg ); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicCollection::GetTopicInfoL -// Writes the topic identity requested by the client to the client side. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicCollection::GetTopicInfoL() - { - // Get the index from the client - TInt index( 0 ); - index = Message().Int0(); - - TCbsTopicInfo info; - iCollection.GetTopicIdentityL( index, info ); - - // Write the count to the client side. - TPckgBuf< TCbsTopicInfo > pckg( info ); - Message().WriteL( 1, pckg ); - - // Complete the request. - Message().Complete( KErrNone ); - - } - -// ----------------------------------------------------------------------------- -// CCbsTopicCollection::TopicInListL -// Writes a truth value to the client determining the existence -// of a topic in the current topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicCollection::TopicInListL() - { - // Get the topic index from the client - TInt index( 0 ); - index = Message().Int0(); - - // Check if this topic exists in the topic list. - TCbsTopicInfo topicInfo; - iCollection.GetTopicIdentityL( index, topicInfo ); - - TBool inList( iTopicList.TopicIndexInList( topicInfo.iNumber ) >= 0 ); - - // Write the result back to the client. - TPckgBuf< TBool > pckg( inList ); - Message().WriteL( 1, pckg ); - - // Complete the request. - Message().Complete( KErrNone ); - - } - -// ----------------------------------------------------------------------------- -// CCbsTopicCollection::NotifyOnChange -// Sets up a notification so that the client will be notified when the -// collecton is changed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicCollection::NotifyOnChange() - { - // Just create a pending request. - if ( iIsMessage ) - { - NotifyOnChangeCancel(); - } - - iIsMessage = ETrue; - iMessage = Message(); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicCollection::NotifyOnChangeCancel -// Cancels the pending request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicCollection::NotifyOnChangeCancel() - { - // Cancel the notification. - if ( iIsMessage ) - { - iMessage.Complete( KErrCancel ); - } - - iIsMessage = EFalse; - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicCollection::Notify -// Notifies the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicCollection::Notify() - { - // Notify, if necessary - if ( iIsMessage ) - { - iMessage.Complete( KErrNone ); - } - } - -// ================= OTHER EXPORTED FUNCTIONS ============== - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsTopicList.cpp --- a/cbs/CbsServer/ServerSrc/CCbsTopicList.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,697 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsTopicList class -* member functions. -* -* -*/ - - - -// INCLUDE FILES - -#include "CbsCommon.h" -#include "CbsServerConstants.h" -#include "CCbsSession.h" -#include "CCbsTopicList.h" - -#include "CCbsDbImpTopicList.h" -#include "CCbsRecEtel.h" -#include "CCbsServer.h" -#include "CbsLogger.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsTopicList::CCbsTopicList -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsTopicList::CCbsTopicList( - CCbsSession& aSession, - CCbsDbImpTopicList& aTopicList, - CCbsRecEtel& aReceiver ) - : CCbsObject( aSession ), - iTopicList( aTopicList ), - iReceiver( aReceiver ), - iIsMessage( EFalse ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::ConstructL() - { - iTopicList.AddObserverL( this ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsTopicList* CCbsTopicList::NewL( - CCbsSession& aSession, - CCbsDbImpTopicList& aTopicList, - CCbsRecEtel& aReceiver ) - { - CCbsTopicList* self = - new ( ELeave ) CCbsTopicList( aSession, aTopicList, aReceiver ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// Destructor -CCbsTopicList::~CCbsTopicList() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsTopicList::~CCbsTopicList()"); - iTopicList.RemoveObserver( this ); - CBSLOGSTRING("CBSSERVER: <<< CCbsTopicList::~CCbsTopicList()"); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::HandleRequestsL -// Handle the requests for the object. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsTopicList::HandleRequestsL( - const RMessage2& aMessage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsTopicList::HandleRequestsL()"); - - TBool requestHandled( ETrue ); - - // Handle all requests for the subsession - switch ( aMessage.Function() ) - { - case ECbsCloseTopicListSubsession: - CloseTopicList(); - aMessage.Complete( KErrNone ); - break; - case ECbsGetTopicCount: - GetTopicCountL(); - break; - - case ECbsGetTopic: - GetTopicL(); - break; - - case ECbsFindTopicByNumber: - FindTopicByNumberL(); - break; - - case ECbsGetNextAndPrevTopicNumber: - GetNextAndPrevTopicNumberL(); - break; - - case ECbsDeleteTopic: - DeleteTopicL(); - break; - - case ECbsChangeTopicNameAndNumber: - ChangeTopicNameAndNumberL(); - break; - - case ECbsChangeTopicSubscriptionStatus: - ChangeTopicSubscriptionStatusL(); - break; - - case ECbsChangeTopicHotmarkStatus: - ChangeTopicHotmarkStatusL(); - break; - - case ECbsAddTopic: - AddTopicL(); - break; - - case ECbsNotifyOnEvent: - NotifyOnEvent(); - break; - - case ECbsNotifyOnEventCancel: - NotifyOnEventCancel(); - break; - - case ECbsGetNewTopicsCount: - GetNewTopicsCountL(); - break; - - case ECbsGetLatestTopicNumber: - GetLatestTopicNumberL(); - break; - - case ECbsGetUnreadMessageCount: - GetUnreadMessageCountL(); - break; - - case ECbsGetHotmarkedMessageHandle: - GetHotmarkedMessageHandleL(); - break; - - case ECbsDeleteAll: - DeleteAllL(); - break; - - case ECbsGetUnreadHotmarkedMessageCount: - GetUnreadHotmarkedMessageCountL(); - break; - - default: - requestHandled = EFalse; - break; - } - - // Return truth value indicating whether it was possible - // to handle the request or not. - - CBSLOGSTRING2("CBSSERVER: <<< CCbsTopicList::HandleRequestsL(), returning requestHandled: %d", requestHandled ); - - return requestHandled; - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::TopicListInitializedIndL -// Called when the topic list is initialized. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::TopicListInitializedIndL() - { - // Notification. - NotifyClientL( ECbsTopicListInitialized, 0 ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::TopicAddedIndL -// Called whenever a topic is created. -// If necessary, the client will be notified. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::TopicAddedIndL( - const TCbsDbTopicNumber& aNumber ) - { - // Notification. - NotifyClientL( ECbsTopicAdded, aNumber ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::TopicDeletedIndL -// Called whenever a topic is deleted. -// If necessary, the client will be notified. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::TopicDeletedIndL( - const TCbsDbTopicNumber& aNumber ) - { - // Notification. - NotifyClientL( ECbsTopicDeleted, aNumber ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::TopicModifiedIndL -// Called whenever a topic is modified. -// If necessary, the client will be notified. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::TopicModifiedIndL( - const TCbsDbTopicNumber& aNumber ) - { - // Notification. - NotifyClientL( ECbsTopicModified, aNumber ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::TopicNewMessageReceivedIndL -// Called whenever a new message has been received. -// If necessary, the client will be notified. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::TopicNewMessageReceivedIndL( - const TCbsDbMessageHandle& aHandle ) - { - TCbsTopicNumber topic( iTopicList.ExtractTopicNumber( aHandle ) ); - NotifyClientL( ECbsTopicReceivedNewMessage, topic ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::CloseTopicList -// Closes and destroys the subsession. -// Note that after the call has completed, the object is no longer -// valid. It is also left for the callee's task to complete -// the request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::CloseTopicList() - { - // Removes the object. - Session().Server().DeleteObjectByHandle( Message().Int3() ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::GetTopicCountL -// Returns the total number of topics to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::GetTopicCountL() - { - // Write the topic count to the client side. - TInt count( 0 ); - iTopicList.GetTopicCount( count ); - TPckgBuf< TInt > pckg( count ); - - Message().WriteL( 0, pckg ); - - // Complete the request - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::GetTopicL -// Returns the requested topic to the client. -// Retrieves topic information with an index to topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::GetTopicL() - { - // First, read the index from the client side - TInt topicIndex( 0 ); - topicIndex = Message().Int0(); - - // Then read the topic from the topic list - TPckgBuf< TCbsTopic > pckgTopic; - TRAPD( errorCode, iTopicList.GetTopicL( topicIndex, pckgTopic() ) ); - - if ( errorCode == KErrNone ) - { - // Finally, write the topic information to the client side - Message().WriteL( 1, pckgTopic ); - } - - // Complete the request. - Message().Complete( errorCode ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::FindTopicByNumberL -// Finds a topic by number and returns it to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::FindTopicByNumberL() - { - // First, read the number from the client side - TInt topicNumber( 0 ); - topicNumber = Message().Int0(); - - // Find topic by handle - TPckgBuf< TCbsTopic > pckgTopic; - iTopicList.FindTopicByNumberL( static_cast ( topicNumber ), - pckgTopic() ); - - // Finally, write the topic information to the client side - Message().WriteL( 1, pckgTopic ); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::DeleteTopicL -// Deletes a topic by its number and returns it to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::DeleteTopicL() - { - // First, read the handle from the client side - TInt topicNumber( 0 ); - topicNumber = Message().Int0(); - - // Delete the topic - iTopicList.DeleteTopicL( static_cast ( topicNumber ) ); - - iReceiver.DeleteSimTopicL( static_cast ( topicNumber ), EFalse ); - - iReceiver.ApplyStateChangesL(); - - // Complete the request - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::ChangeTopicNameAndNumberL -// Changes a topic name and number. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::ChangeTopicNameAndNumberL() - { - TCbsDbTopicName name; - TInt oldNumber( 0 ); - TInt newNumber( 0 ); - - oldNumber = Message().Int0(); - newNumber = Message().Int1(); - Message().ReadL( 2, name ); - - // First find the topic. - TCbsDbTopic topic; - iTopicList.FindTopicByNumberL( static_cast ( oldNumber ), topic ); - - // Then do the operations. - iTopicList.UpdateTopicNameAndNumberL( static_cast ( oldNumber ), - static_cast ( newNumber ), name ); - - // Now we may need to change the subscriptions - if ( oldNumber != newNumber ) - { - iReceiver.DeleteSimTopicL( static_cast ( oldNumber ), EFalse ); - } - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::ChangeTopicSubscriptionStatusL -// Changes topic subscription status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::ChangeTopicSubscriptionStatusL() - { - TInt topicNumber( 0 ); - TPckgBuf< TBool > pckgStatus; - - topicNumber = Message().Int0(); - Message().ReadL( 1, pckgStatus ); - - // First find the topic. - TCbsDbTopic topic; - iTopicList.FindTopicByNumberL( static_cast ( topicNumber ), topic ); - - // Then update. - iTopicList.UpdateTopicSubscriptionStatusL( static_cast ( topicNumber ), pckgStatus() ); - iReceiver.ApplyStateChangesL(); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::ChangeTopicHotmarkStatusL -// Changes topic hotmark status. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::ChangeTopicHotmarkStatusL() - { - TPckgBuf< TBool > pckgStatus; - TInt topicNumber( 0 ); - topicNumber = Message().Int0(); - Message().ReadL( 1, pckgStatus ); - - // Then update - iTopicList.UpdateTopicHotmarkStatusL( static_cast ( topicNumber ), pckgStatus() ); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::AddTopicL -// Adds a topic to the list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::AddTopicL() - { - // First, get the topic information from the client side - TPckgBuf< TCbsTopic > pckgTopic; - Message().ReadL( 0, pckgTopic ); - - // It is not allowed to set protected. - if ( pckgTopic().iProtected ) - { - User::Leave( KErrArgument ); - } - - // Add the topic, not detected automatically - iTopicList.AddTopicL( pckgTopic(), EFalse ); - - // Load the default topic stream - iTopicList.LoadDefaultTopicStreamL(); - - // Write updated data to the client side (only handle is updated) - Message().WriteL( 0, pckgTopic ); - - // Complete the request - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::NotifyOnEvent -// Sets up a pending notification request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::NotifyOnEvent() - { - if ( iIsMessage ) - { - NotifyOnEventCancel(); - } - - iMessage = Message(); - iIsMessage = ETrue; - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::NotifyOnEventCancel -// Cancels a pending notification request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::NotifyOnEventCancel() - { - // Cancel the pending notify request. - if ( iIsMessage ) - { - iMessage.Complete( KErrCancel ); - iIsMessage = EFalse; - } - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::GetNewTopicsCountL -// Returns the number of "new" topics to the client. -// By new it is referred to topics that are created because of -// topic detection since last power on. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::GetNewTopicsCountL() - { - TPckgBuf< TInt > pckg( Session().TotalTopicsDetected() ); - Message().WriteL( 0, pckg ); - - // Complete the request - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::GetLatestTopicNumberL -// Retrieves the number of the topic that was added -// last to the topic list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::GetLatestTopicNumberL() - { - TCbsTopicNumber number( 0 ); - TInt result( iTopicList.GetLatestTopicNumber( number ) ); - if ( result == KErrNone ) - { - TPckgBuf pckg( number ); - Message().WriteL( 0, pckg ); - Message().Complete( KErrNone ); - } - else - { - User::Leave( result ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::GetUnreadMessageCountL -// Returns the total amount of unread messages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::GetUnreadMessageCountL() - { - // Get unread message count from the database. - TPckgBuf pckg( 0 ); - iTopicList.GetUnreadMessageCount( pckg() ); - - Message().WriteL( 0, pckg ); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::GetHotmarkedMessageHandleL -// Returns a handle to the latest (that is not yet taken) -// hotmarked message handle. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::GetHotmarkedMessageHandleL() - { - // Get the hotmarked message handle. - TCbsMessageHandle handle( 0 ); - iTopicList.GetHotmarkedMessageHandleL( handle ); - - // And then write it to the client. - TPckgBuf< TCbsMessageHandle > pckg( handle ); - Message().WriteL( 0, pckg ); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::GetUnreadHotmarkedMessageCountL -// Returns the number of hotmarked, unread messages. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::GetUnreadHotmarkedMessageCountL() - { - TInt number( iTopicList.UnreadHotmarkedMessageCount() ); - TPckgBuf pckgNumber( number ); - Message().WriteL( 0, pckgNumber ); - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::DeleteAllL -// Deletes all topics. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::DeleteAllL() - { - // Delete all topic from the SIM card - iReceiver.DeleteAllSimTopicsL(); - - // Delete all topic from the server store - iTopicList.InitializeListL( EFalse ); - iReceiver.ApplyStateChangesL(); - - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::NotifyClientL -// If there is a pending notify request, notifies -// the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::NotifyClientL( - TCbsTopicListEvent aEvent, - TCbsTopicNumber aNumber ) - { - // If there is a pending request, then process it. - if ( iIsMessage ) - { - // First check if the client is interested of the topics. - TInt requested( iMessage.Int0() ); - if ( ( requested & aEvent ) ) - { - // The client is interested of the event, so notify the client. - // Make up a pointer descriptors. - TPtr8 eventPtr( reinterpret_cast(&aEvent), - sizeof( TCbsTopicListEvent ), - sizeof( TCbsTopicListEvent) ); - - TPtr8 numberPtr( reinterpret_cast(&aNumber), - sizeof( TCbsTopicNumber ), - sizeof( TCbsTopicNumber) ); - // Write through the pointer descriptors. - iMessage.WriteL( 1, eventPtr ); - iMessage.WriteL( 2, numberPtr ); - - iMessage.Complete( KErrNone ); - iIsMessage = EFalse; - } - } - } - -// ----------------------------------------------------------------------------- -// CCbsTopicList::GetNextAndPrevTopicNumberL -// Retrieves and returns the numbers of topics that -// precede and succeed the given topic in topic list. -// Also returns two flags indicating whether the -// given topic is the first and/or the last topic in list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicList::GetNextAndPrevTopicNumberL() - { - // Retrieve the requested topic number - TPckgBuf pckgCurrentTopic( 0 ); - Message().ReadL( 0, pckgCurrentTopic ); - - // Determine requested information - TCbsTopicNumber nextTopic( 0 ); - TCbsTopicNumber prevTopic( 0 ); - TInt position( 0 ); - iTopicList.GetNextAndPrevTopicNumberL( - pckgCurrentTopic(), nextTopic, prevTopic, position ); - - // Write results back - TPckgBuf pckgResults; - pckgResults().iNextTopic = nextTopic; - pckgResults().iPrevTopic = prevTopic; - pckgResults().iPosition = position; - Message().WriteL( 1, pckgResults ); - - // Complete request - Message().Complete( KErrNone ); - } - - -// ================= OTHER EXPORTED FUNCTIONS ============== - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CCbsTopicMessages.cpp --- a/cbs/CbsServer/ServerSrc/CCbsTopicMessages.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,422 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsTopicMessages class -* member functions. -* -* -*/ - - -// INCLUDE FILES - -#include -#include "CbsCommon.h" -#include "CbsServerPanic.h" -#include "CCbsTopicMessages.h" -#include "CCbsSession.h" -#include "CbsServerConstants.h" -#include "CCbsDbImpTopicMessages.h" -#include "CCbsServer.h" -#include "CbsLogger.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::CCbsTopicMessages -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsTopicMessages::CCbsTopicMessages( - CCbsSession& aSession, - CCbsDbImpTopicMessages& aMessages, - CCbsRecEtel& aReceiver ) - : CCbsObject( aSession ), - iMessages( aMessages ), - iLocked( 0 ), - iReceiver( aReceiver ) - { - } - - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsTopicMessages* CCbsTopicMessages::NewL( - CCbsSession& aSession, - CCbsDbImpTopicMessages& aMessages, - CCbsRecEtel& aReceiver ) - { - // Normal two phase construction - CCbsTopicMessages* self = - new ( ELeave ) CCbsTopicMessages( aSession, aMessages, aReceiver ); - return self; - } - - -// Destructor -CCbsTopicMessages::~CCbsTopicMessages() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsTopicMessages::~CCbsTopicMessages()"); - CBSLOGSTRING("CBSSERVER: <<< CCbsTopicMessages::~CCbsTopicMessages()"); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::HandleRequestsL -// Handle the requests for the object. -// Passes requests to proper functions -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsTopicMessages::HandleRequestsL( - const RMessage2& aMessage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsTopicMessages::HandleRequestsL()"); - TBool requestHandled ( ETrue ); - // Handle the requests that are for the subsession. - switch ( aMessage.Function() ) - { - case ECbsCloseTopicMessagesSubsession: - CloseTopicMessages(); - aMessage.Complete( KErrNone ); - break; - - case ECbsGetMessageCount: - GetMessageCountL(); - break; - - case ECbsGetMessage: - GetMessageL(); - break; - - case ECbsFindMessageByHandle: - FindMessageByHandleL(); - break; - - case ECbsGetMessageIndexByHandle: - GetMessageIndexByHandleL(); - break; - - case ECbsGetNextAndPrevMsgHandle: - GetNextAndPrevMsgHandleL(); - break; - - case ECbsDeleteMessage: - DeleteMessageL( iReceiver ); - break; - - case ECbsSaveMessage: - SaveMessageL( iReceiver ); - break; - - case ECbsLockMessage: - LockMessageL(); - break; - - case ECbsReadMessage: - ReadMessageL( iReceiver ); - break; - - case ECbsGetMessageContents: - GetMessageContentsL(); - break; - - default: - requestHandled = EFalse; - break; - } - CBSLOGSTRING2("CBSSERVER: <<< CCbsTopicMessages::HandleRequestsL(), returning requestHandled: %d", requestHandled ); - return requestHandled; - } - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::CloseTopicMessages -// Closes the subsession. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicMessages::CloseTopicMessages() - { - // Removes the object. - Session().Server().DeleteObjectByHandle( Message().Int3() ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::GetMessageCountL -// Returns the total amount of messages to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicMessages::GetMessageCountL() - { - // First, get the handle from the client - TInt topicNumber( 0 ); - topicNumber = Message().Int0(); - - // Then, get the message count from the database. - TInt count( 0 ); - iMessages.GetMessageCountL( static_cast ( topicNumber ), count ); - - // Write the message count to the client side. - TPckgBuf< TInt > pckgCount( count ); - Message().WriteL( 1, pckgCount ); - - // Complete the request. - Message().Complete( KErrNone ); - - } - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::GetMessageL -// Returns the requested message to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicMessages::GetMessageL() - { - // Read the parameters from the client side - TInt topicNumber( 0 ); - TInt index( 0 ); - topicNumber = Message().Int0(); - index = Message().Int1(); - - // Then get the message from database. - TPckgBuf< TCbsDbMessage > pckgMessage; - iMessages.GetMessageL( static_cast ( topicNumber ), index, pckgMessage() ); - - // And finally write the message information to the client side - Message().WriteL( 2, pckgMessage ); - - // And complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::FindMessageByHandleL -// Finds a message by its handle. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicMessages::FindMessageByHandleL() - { - // Read the parameters from the client side. - TPckgBuf< TCbsMessageHandle > pckgHandle( 0 ); - Message().ReadL( 0, pckgHandle ); - - // Find the message. - TPckgBuf< TCbsMessage > pckgMessage; - iMessages.FindMessageByHandleL( pckgHandle(), pckgMessage() ); - - // Write the result to the client side. - Message().WriteL( 1, pckgMessage ); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::GetMessageIndexByHandleL -// Returns message index in topic by message handle. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicMessages::GetMessageIndexByHandleL() - { - TPckgBuf< TCbsMessageHandle > pckgHandle( 0 ); - Message().ReadL( 0, pckgHandle ); - - TInt index( iMessages.FindMessagePositionByHandleL( pckgHandle() ) ); - - TPckgBuf< TInt > pckgIndex( index ); - Message().WriteL( 1, pckgIndex ); - - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::DeleteMessageL -// Deletes a message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicMessages::DeleteMessageL( const CCbsRecEtel& aReceiver ) - { - // Read the handle from the client side. - TPckgBuf< TCbsMessageHandle > pckgHandle( 0 ); - Message().ReadL( 0, pckgHandle ); - - // And then try to delete the message. - iMessages.DeleteMessageL( pckgHandle(), aReceiver ); - - // Finally, complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::SaveMessageL -// Saves a message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicMessages::SaveMessageL( const CCbsRecEtel& aReceiver ) - { - // Read the parameter from the client side. - TPckgBuf< TCbsMessageHandle > pckgHandle( 0 ); - Message().ReadL( 0, pckgHandle ); - - // Save the message. - iMessages.SaveMessageL( pckgHandle(), aReceiver ); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::LockMessageL -// Locks a message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicMessages::LockMessageL() - { - // Read the parameter from the client side. - TPckgBuf< TCbsMessageHandle > pckgHandle( 0 ); - Message().ReadL( 0, pckgHandle ); - - TCbsDbMessageHandle handle( pckgHandle() ); - - if ( handle != iLocked ) - { - iMessages.LockMessageL( iLocked, handle ); - iLocked = handle; - } - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::ReadMessageL -// Reads a message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicMessages::ReadMessageL( const CCbsRecEtel& aReceiver ) - { - // Read parameter from the client side. - TPckgBuf< TCbsMessageHandle > pckgHandle( 0 ); - Message().ReadL( 0, pckgHandle ); - - // Perform the operation. - iMessages.ReadMessageL( pckgHandle(), aReceiver ); - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::GetMessageContentsL -// Returns the content of the message to the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicMessages::GetMessageContentsL() - { - // Read the parameters from the client side. - TPckgBuf< TCbsMessageHandle > pckgHandle( 0 ); - Message().ReadL( 0, pckgHandle ); - - TInt bufSize( 0 ); - bufSize = Message().Int1(); - - TCbsDbMessage message; - iMessages.FindMessageByHandleL( pckgHandle(), message ); - - if ( message.iLength != 0 ) - { - // Message is not empty. - // First allocate memory and then get the contents. - // Finally write data to client side. - TInt size ( ( message.iLength < bufSize ) ? - message.iLength : bufSize ); - - // guaranteed to allocate n bytes, n >= size - HBufC* buffer = HBufC::NewLC( size ); // on CS - - TPtr16 pointer( buffer->Des() ); - pointer.Zero(); - - // Note: parameter 'size' required, since MaxLength - // may be > bufSize - iMessages.GetMessageContentsL( pckgHandle(), pointer, size ); - -#ifndef _DEBUG - Message().WriteL( 2, pointer ); -#else - TRAPD( result, Message().WriteL( 2, pointer ) ); - if ( result != KErrNone ) - { - RDebug::Print(_L("Server buffer length: %d, max: %d"), - pointer.Length(), pointer.MaxLength()); - __DEBUGGER(); - User::Leave( result ); - } - -#endif - CleanupStack::PopAndDestroy(); // buffer - } - - // Complete the request. - Message().Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CCbsTopicMessages::GetNextAndPrevMsgHandleL -// Retrieves and returns the handles of messages that -// precede and succeed the given message in topic. -// Also returns two flags indicating whether the -// given message is the first and/or the last message in topic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsTopicMessages::GetNextAndPrevMsgHandleL() - { - // Retrieve the requested topic number - TPckgBuf< TCbsMessageHandle > pckgCurrentMsg( 0 ); - Message().ReadL( 0, pckgCurrentMsg ); - - // Determine requested information - TCbsMessageHandle nextMsg(0); - TCbsMessageHandle prevMsg(0); - TInt position(0); - iMessages.GetNextAndPrevMsgHandleL( - pckgCurrentMsg(), nextMsg, prevMsg, position); - - // Write results back - TPckgBuf< TCbsNextPrevMsgAndPosition > pckgResults; - pckgResults().iPrevMsg = prevMsg; - pckgResults().iNextMsg = nextMsg; - pckgResults().iPosition = position; - - Message().WriteL( 1, pckgResults ); - - // Complete request - Message().Complete( KErrNone ); - - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CbsServerPanic.cpp --- a/cbs/CbsServer/ServerSrc/CbsServerPanic.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* -* Copyright (c) 2003 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: Contains a single function, CbsServerPanic(), which panics the - server displaying an error code. - member functions. -* -*/ - - - -// INCLUDE FILES - -#include "CbsServerConstants.h" -#include "CbsServerPanic.h" - -// ==================== LOCAL FUNCTIONS ==================== - -// ----------------------------------------------------------------------------- -// CbsServerPanic -// Panics the server -// Returns: None -// ----------------------------------------------------------------------------- -// -GLDEF_C void CbsServerPanic( - TCbsServerPanic aPanic ) - { - User::Panic( KCbsServerName, aPanic ); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CbsStreamHelper.cpp --- a/cbs/CbsServer/ServerSrc/CbsStreamHelper.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -/* -* Copyright (c) 2003 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: Provides two helper functions for the database: -* read and write a boolean value into a stream. -* -*/ - - - -// INCLUDE FILES - -#include "CbsStreamHelper.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CbsStreamHelper::ReadBoolL -// Reads a boolen value from a stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CbsStreamHelper::ReadBoolL( - RReadStream& aStream ) - { - TInt8 integer; - aStream >> integer; - - TBool result( ETrue ); - switch ( integer ) - { - case 0: - result = EFalse; - break; - - case 1: - result = ETrue; - break; - - default: - User::Leave( KErrCorrupt ); - break; - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CbsStreamHelper::WriteBoolL -// Writes a boolen value to a stream. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CbsStreamHelper::WriteBoolL( - RWriteStream& aStream, - TBool aBool ) - { - TInt8 integer; - if ( aBool == EFalse ) - { - integer = 0; - } - else - { - integer = 1; - } - aStream << integer; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/CbsUtils.cpp --- a/cbs/CbsServer/ServerSrc/CbsUtils.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,211 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CbsUtils class -* member functions. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include -#include // FFS critical level check -#include "CbsUtils.h" -#include -#include -#include -#include -#include "CbsLogger.h" - - -// ================= CONSTANTS ======================= - -const TInt KRamMemoryCriticalLevel = 1500000; // KRAMLOWTHRESHOLD = 1500000 - - -// ================= MEMBER FUNCTIONS ======================= - - -// ----------------------------------------------------------------------------- -// CbsUtils::FindAndOpenDefaultResourceFileLC -// Searches and opens the DLL default resource file. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CbsUtils::FindAndOpenDefaultResourceFileLC( - RFs& aFs, - RResourceFile& aResFile ) - { - // default resource file path - - _LIT(KDirAndFile,"z:CbsServer.rsc"); - - TParse* fp = new(ELeave) TParse(); - fp->Set(KDirAndFile, &KDC_RESOURCE_FILES_DIR, NULL); - - static const TInt KDefResFileSignature = 4; - - // Find the resource file - TFileName fileName( fp->FullName() ); - BaflUtils::NearestLanguageFile( aFs, fileName ); - - // Open the resource file - aResFile.OpenL( aFs, fileName ); - // Push close operation in tbe cleanup stack - CleanupClosePushL( aResFile ); - - aResFile.ConfirmSignatureL( KDefResFileSignature ); - - delete fp; - } - -// ----------------------------------------------------------------------------- -// CbsUtils::FFSCriticalLevelCheckL -// Checks that there is space for writing data on FFS. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CbsUtils::FFSCriticalLevelCheckL( - const TInt aBytesToWrite, - RFs& aFs ) - { - CBSLOGSTRING("CBSSERVER: >>> CbsUtils::FFSCriticalLevelCheckL()"); - - // Checks RAM memory critical level. - if (RamMemCriticalLevelCheckL( aBytesToWrite )) - { - User::Leave( KErrDiskFull ); // returns KErrDiskFull -> no changes to clients - } - - // Checks RAM disk critical level - if ( SysUtil::FFSSpaceBelowCriticalLevelL( &aFs, aBytesToWrite ) ) - { - User::Leave( KErrDiskFull ); - } - - CBSLOGSTRING("CBSSERVER: <<< CbsUtils::FFSCriticalLevelCheckL()"); - } - -// ----------------------------------------------------------------------------- -// CbsUtils::RamMemCriticalLevelCheckL -// Checks that there is space for allocating data in memory. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CbsUtils::RamMemCriticalLevelCheckL( - const TInt aBytesToWrite) - { - - // Read the critical threahold RAM memory level from the repository. - TInt thresholdVal; - CRepository* repository = CRepository::NewLC( KCRUidUiklaf ); - if (repository->Get( KUikOOMRamLowThreshold, thresholdVal ) != KErrNone) - { - thresholdVal = KRamMemoryCriticalLevel; - } - CleanupStack::PopAndDestroy( repository ); - - TInt freeMem = 0; - HAL::Get(HAL::EMemoryRAMFree, freeMem); - if ( freeMem > (thresholdVal + aBytesToWrite) ) - { - return EFalse; - } - - return ETrue; - } -// ----------------------------------------------------------------------------- -// CbsUtils::VolumeCriticalLevelCheckL -// Leaves with KErrDiskFull if writing aBytesToWrite bytes -// to the RAM File System would reduce the free space on RAM -// under the critical level. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CbsUtils::VolumeCriticalLevelCheckL( - const TDesC& aFileName, - TInt aBytesToWrite, - const RFs& aFs ) - { - // Convert file name to a volume number - TInt volumeNumber; - aFs.CharToDrive( aFileName[0], volumeNumber ); - - // Find out if the volume has enough free space - TVolumeInfo volume; - User::LeaveIfError( aFs.Volume( volume, volumeNumber ) ); - if ( volume.iFree < aBytesToWrite ) - { - User::Leave( KErrDiskFull ); - } - } - -// ----------------------------------------------------------------------------- -// CbsUtils::ExistsL -// Returns ETrue, if the file aFile exists. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CbsUtils::ExistsL( - const RFs& aFs, - const TDesC& aFile ) - { - TParse filename; - aFs.Parse( aFile, filename ); - - TBool returnCode( EFalse ); - TUint attributes; - - TInt result( aFs.Att( filename.FullName(), attributes ) ); - if ( result == KErrNone ) - { - returnCode = ETrue; - } - else if ( result == KErrNotFound ) - { - returnCode = EFalse; - } - else - { - User::Leave( result ); - } - return returnCode; - } - -// ----------------------------------------------------------------------------- -// CbsUtils::DeleteFileL -// Deletes the given file. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CbsUtils::DeleteFileL( - RFs& aFs, - const TDesC& aFile ) - { - TInt result( aFs.Delete( aFile ) ); - if ( result != KErrNone && - result != KErrNotFound && - result != KErrPathNotFound ) - { - User::Leave( result ); - } - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/Ccbsreccollector.cpp --- a/cbs/CbsServer/ServerSrc/Ccbsreccollector.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,584 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsRecDecoder class -* member functions. -* -* This class represents a collector, which stores pages of multipaged -* messages. Complete messages are assembled and returned back to -* the caller of CollectL() method. -* -* CCbsRecCollector stores message pages in a number of dynamic arrays. -* If all but one page of a message are present in collector, and -* the remaining page is received, the pages will be assembled and -* the corresponding message chain deleted. -* -* The maximum number of incomplete messages stored in collector at once -* is fixed and determined by KMaxCollectorMessages in CCbsRecCollector.cpp. -* -* CCbsRecCollector implements a circular list to contain message. -* Each incomplete message occupies a slot in this list. If the list already -* contains KMaxCollectorMessages messages, the next received multipaged -* message will delete all received pages of the oldest message in list. -* -* On receival of a message page, the collector compares network information -* (PLMN, LAC, CellId) of both messages to decide whether pages are of -* the same message. In short, for pages to be of the same message -* their network information have to meet the requirements set by the -* geographical scope of the already collected page. -* See ETSI GSM 03.41 for a detailed description. -* -*/ - - -// INCLUDE FILES -#include "CbsServerPanic.h" -#include "CCbsRecCollector.h" -#include "CCbsRecMessage.h" -#include "CCbsMessageFactory.h" -#include "CCbsMessageCleanUpTimer.h" -#include "CbsLogger.h" - -// CONSTANTS - -// Maximum number of pages in a single CB message. -const TInt KMaxMessagePages = 15; - -// Maximum number of partial messages contained in the collector list. -const TInt KMaxCollectorMessages = 10; - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsRecCollector::CCbsRecCollector -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsRecCollector::CCbsRecCollector( CCbsMessageFactory& aFactory ) - : iRootNodeIterator( 0 ), - iFactory( aFactory ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsRecCollector::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsRecCollector::ConstructL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecCollector::ConstructL()"); - - // initialize the root node array - iRootNodeArray = new ( ELeave ) CArrayPtrFlat< CMessageBuffer > - ( KMaxCollectorMessages ); - iRootNodeArray->SetReserveL( KMaxCollectorMessages ); - iMessageCleanupTimerArray = new ( ELeave ) CArrayPtrFlat< CCbsMessageCleanupTimer > - ( KMaxCollectorMessages ); - - for ( TInt i( 0 ); i < KMaxCollectorMessages; i++) - { - CMessageBuffer* array = new ( ELeave ) - CMessageBuffer( KMaxMessagePages ); - CleanupStack::PushL( array ); - iRootNodeArray->AppendL( array ); - - CCbsMessageCleanupTimer* messageCleanUpTimer = CCbsMessageCleanupTimer::NewL( *this, *array ); - iMessageCleanupTimerArray->AppendL( messageCleanUpTimer ); - - CleanupStack::Pop(); // array - } - CBSLOGSTRING("CBSSERVER: <<< CCbsRecCollector::ConstructL()"); - } - - -// ----------------------------------------------------------------------------- -// CCbsRecCollector::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// - CCbsRecCollector* CCbsRecCollector::NewL( CCbsMessageFactory& aFactory ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecCollector::NewL()"); - - CCbsRecCollector* self = new ( ELeave ) CCbsRecCollector( aFactory ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecCollector::NewL()"); - return self; - } - -// Destructor -CCbsRecCollector::~CCbsRecCollector() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecCollector::~CCbsRecCollector()"); - - if ( iRootNodeArray ) - { - TInt rootArrayLength( iRootNodeArray->Count() ); - for ( TInt i( 0 ); i < rootArrayLength; i++ ) - { - iRootNodeArray->At( i )->ResetAndDestroy(); - } - iRootNodeArray->ResetAndDestroy(); - delete iRootNodeArray; - } - - if ( iMessageCleanupTimerArray ) - { - iMessageCleanupTimerArray->ResetAndDestroy(); - delete iMessageCleanupTimerArray; - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecCollector::~CCbsRecCollector()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecCollector::CollectL -// Adds a message to the location pointed by iRootNodeIterator. -// -// Checks if all pages of message are present. If all pages -// are present, sets aCompleted to ECbsMessageComplete, -// combines message pages into a single message, destroys -// pages from the list and returns the complete message -// to caller in aMessage. - -// Algorithm: -// 1. Check if other pages of this message exist in list. -// (serial number and message identifier match) -// 2. True: Check if the other messages in chain need -// to be deleted. This is based on geographical scope -// and network information. -// Add this message to the correct message chain. -// False: Add this message to the chain pointed -// by the iRootNodeIterator. -// 3. Seek out the position in the chosed message chain so that -// the page number sequence remains ordered (1, 2, .., n) -// 4. Add the page to the correct position in chain. -// 5. Check if all pages of this message exist (number count). -// 6. True: Combine message pages into a single message -// and return this page to the caller. Set aCompleted -// to ECbsMessageComplete. -// False: Set aCompleted to ECbsMessageIncomplete. -// -// Note: Ownership of aMessage assumed. aMessage assumed to be -// on cleanup stack. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsMessage* CCbsRecCollector::CollectL( - CCbsMessage* aMessage, TInt aMessageType ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecCollector::CollectL()"); - - // 1. - CMessageBuffer* array = FindChainContainingPage( *aMessage ); - CCbsMessage* mergedMessage = NULL; - - if ( array ) - { - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): array != NULL"); - - // 2. (True), 3. - __ASSERT_DEBUG( array->Count() > 0, - CbsServerPanic( ECbsCollectorArrayEmpty ) ); - - // Check geographical scope and network info to decide whether - // existing pages in this chain should be deleted. - TBool preserveExistingPages( - CheckPageAreaInfoMatch( *aMessage, *array->At( 0 ) ) ); - - CBSLOGSTRING2("CBSSERVER: CCbsRecCollector::CollectL(): preserveExistingPages: %d", preserveExistingPages ); - - if ( preserveExistingPages ) - { - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): Adding msg to chain..."); - // aMessage is deleted, if it is a duplicate. - AddMessageToChainL( aMessage, *array ); - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): Adding msg to chain OK."); - } - else - { - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): Deleting chain..."); - DeleteChainL( *array ); - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): Deleting chain OK."); - array->InsertL( 0, aMessage ); - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): Msg added to array."); - } - // aMessage, ownership transferred to msg chain or - // aMessage has been deleted by AddMessageToChainL - CleanupStack::Pop(); - - // 5. Check if this chain contains all pages of the message. - if ( AllPagesPresent( *array ) ) - { - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): All pages present, merging..."); - - // 6. merge creates a new copy of this message - // leaves a pointer to msg to cleanup stack - mergedMessage = MergePagesLC( *array ); // on CS - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): Merging OK."); - - // we stop timer if its livecast message - if ( aMessageType == ECbsMessageLivecast ) - { - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): Msg type == ECbsMessageLivecast, stopping timer."); - - TKeyArrayFix key(0, ECmpTUint16); - TInt index; - iRootNodeArray->Find( array, key, index); - iMessageCleanupTimerArray->At( index )->StopTimer(); - - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): Timer stopped."); - } - - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): Deleting chain..."); - DeleteChainL( *array ); - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): Deleting chain OK."); - - CleanupStack::Pop(); // mergedMessage - } - } - else - { - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): array == NULL"); - - // if message pagenumber does not start from 1, its not inserted to chain. - if ( aMessage->ThisPage () == 1 ) - { - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): aMessage->ThisPage () == 1"); - - // 2. (False) - // add this page as the first node in chain pointed by - // iRootNodeIterator. Delete any pages contained in the chain - // occuping this location first. - array = iRootNodeArray->At( iRootNodeIterator ); - DeleteChainL( *array ); - array->InsertL( 0, aMessage ); - CleanupStack::Pop(); // aMessage, ownership transferred to msg chain. - iRootNodeIterator++; - // Return to the first message, if passed the - // maximum messages. - iRootNodeIterator %= KMaxCollectorMessages; - - if ( aMessageType == ECbsMessageLivecast ) - { - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): aMessageType == ECbsMessageLivecast"); - - // start timeout timer for livecast message - TKeyArrayFix key(0, ECmpTUint16); - TInt index; - iRootNodeArray->Find( array, key, index); - iMessageCleanupTimerArray->At( index )->StartTimer(); - - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): Timer started."); - } - } - else - { - CBSLOGSTRING("CBSSERVER: CCbsRecCollector::CollectL(): CleanupStack::Pop()"); - CleanupStack::Pop(); - } - } - // mergedMessage == NULL if msg not completed, - // otherwise return the complete message - CBSLOGSTRING("CBSSERVER: <<< CCbsRecCollector::CollectL(), returning mergedMessage."); - - return mergedMessage; - } - -// ----------------------------------------------------------------------------- -// CCbsRecCollector::DeleteChainL -// Deletes all message pages contained in aArray. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecCollector::DeleteChainL( - CMessageBuffer& aArray ) const - { - aArray.ResetAndDestroy(); - } - -// ----------------------------------------------------------------------------- -// CCbsRecCollector::AllPagesPresent -// Returns ETrue if all pages of the message of aArray are present. -// Counts pages in message chain aArray and compares the result -// against the total number of pages in the message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsRecCollector::AllPagesPresent( - const CMessageBuffer& aArray ) const - { - TBool result( ETrue ); - if ( TUint( aArray.Count() ) < aArray.At( 0 )->TotalPages() ) - { - result = EFalse; - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CCbsRecCollector::MergePagesLC -// Returns a complete message in aMessage. -// Merges all pages in message chain aArray and returns -// a pointer to the resulting assembled message. The pointer -// is also left on the cleanup stack. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsMessage* CCbsRecCollector::MergePagesLC( - CMessageBuffer& aArray ) const - { - if ( aArray.Count() <= 0 ) - { - User::Leave( KErrNotFound ); - } - // Create a new message based on first message page in the chain. - CCbsMessage* message = iFactory.CreateMessageL( *aArray.At( 0 ) ); - - CleanupStack::PushL( message ); // left on cleanup stack - - // Traverse through the chain and merge contents. - TInt length( 0 ); - TInt count( aArray.Count() ); - - // If this is a Livecast message, use the 8-bit representation - // (message not decoded). - if ( message->IsLivecastMessage() ) - { - for ( TInt j( 0 ); j < count; j++ ) - { - length += aArray.At( j )->Contents8().Length(); - } - - __ASSERT_DEBUG( length >= 0, CbsServerPanic( ECbsCollectorMergeFailed ) ); - - message->ReserveContentSize8L( length ); - count = aArray.Count(); - - for ( TInt i( 1 ); i < count; i++ ) - { - message->AppendContent8( aArray.At( i )->Contents8() ); - } - } - // Else use the 16-bit representation (message already decoded) - else - { - for ( TInt j( 0 ); j < count; j++ ) - { - length += aArray.At( j )->Contents().Length(); - } - - __ASSERT_DEBUG( length >= 0, CbsServerPanic( ECbsCollectorMergeFailed ) ); - - message->ReserveContentSizeL( length ); - count = aArray.Count(); - - // Append the rest of the pages (first page handled earlier) - for ( TInt i( 1 ); i < count; i++ ) - { - message->AppendContent( aArray.At( i )->Contents() ); - } - } - return message; - } - -// ----------------------------------------------------------------------------- -// CCbsRecCollector::FindChainContainingPage -// Returns the buffer containing pages of same message. -// Finds and returns a message chain which already contains pages -// of aMessage's message. If none is found, NULL is returned. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CMessageBuffer* CCbsRecCollector::FindChainContainingPage( - const CCbsMessage& aMessage ) const - { - TBool quitSeek( EFalse ); - TInt seekIterator( 0 ); - TCbsDbMessageKey key( aMessage.Key() ); - TCbsDbTopicNumber topicNumber( aMessage.TopicNumber() ); - CMessageBuffer* array = NULL; - - // find out if the root array contains pages of this message - while ( ( seekIterator < KMaxCollectorMessages ) && !quitSeek ) - { - array = iRootNodeArray->At( seekIterator ); - if ( array->Count() > 0 ) - { - CCbsMessage* msg = array->At( 0 ); - if ( key == msg->Key() && topicNumber == msg->TopicNumber() ) - { - quitSeek = ETrue; - } - } - seekIterator++; - } - - if ( !quitSeek ) - { - array = NULL; - } - - return array; - } - -// ----------------------------------------------------------------------------- -// CCbsRecCollector::AddMessageToChainL -// Adds message page aMessage to the correct position in message chain aArray -// -// Message chains are ordered in ascending page number order. -// Duplicate pages are not accepted. -// -// Ownership of aMessage is transferred to aArray, if the given page -// hasn't been already collected. The given page will be deleted, -// if it already exists in the chain. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecCollector::AddMessageToChainL( - CCbsMessage* aMessage, - CMessageBuffer& aArray ) const - { - // Find out a position for this page in the chain. - TInt chainLength( aArray.Count() ); - TInt insertPosition( -1 ); - TBool duplicate( EFalse ); - - for ( TInt i( 0 ); ( i < chainLength ) && !duplicate; i++ ) - { - CCbsMessage* msg = aArray.At( i ); - if ( insertPosition == -1 && msg->ThisPage() > aMessage->ThisPage() ) - { - insertPosition = i; - } - else if ( msg->ThisPage() == aMessage->ThisPage() ) - { - duplicate = ETrue; // This page has been already collected - delete aMessage; - } - } - - // If this message was not a duplicate, add it to the chain - if ( !duplicate ) - { - if ( insertPosition == -1 ) - { - aArray.AppendL( aMessage ); - } - else - { - aArray.InsertL( insertPosition, aMessage ); - } - } - } - -// ----------------------------------------------------------------------------- -// CCbsRecCollector::CheckPageAreaInfoMatch -// Checks if these pages can be merged. Returns ETrue, if merging is acceptable. -// -// Decision is based network information and geographical scope of -// pages. Network information consists of cell id, location area code -// and operator id. -// -// Assumption: aPage1 and aPage have identical message -// identifiers and serial numbers. -// Returns ETrue if the pages are of same message. -// On EFalse previous pages should be deleted. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCbsRecCollector::CheckPageAreaInfoMatch( - const CCbsMessage& aPage1, - const CCbsMessage& aPage2 ) const - { - RMobilePhone::TMobilePhoneNetworkInfoV1 info1; - RMobilePhone::TMobilePhoneNetworkInfoV1 info2; - - aPage1.GetPLMN( info1 ); - aPage2.GetPLMN( info2 ); - - TBool result( EFalse ); - - if ( info1.iCountryCode == KRecMessageNoNetworkInfo || - info2.iCountryCode == KRecMessageNoNetworkInfo ) - { - // Network info is unavailable; we must assume that the aPage1 - // is of the same page area as aPage2, so we return ETrue - // unconditionally. - result = ETrue; - } - - if ( info1.iCountryCode == info2.iCountryCode && - info1.iNetworkId == info2.iNetworkId ) - // PLMN match - { - if ( aPage1.LAC() == aPage2.LAC() ) - // LAC match - { - if ( aPage1.CellId() == aPage2.CellId() ) - // Cell match - { - // Full network information match - result = ETrue; - } - else - { - // Cell mismatch - if ( aPage1.GeographicalScope() == - ECbsRecGeographicalScopeCell ) - // Cell id mismatch and scoped cell wide. - { - result = EFalse; - } - else - // Cell id mismatch, not scoped cell wide. - { - result = ETrue; - } - } - } - else - // LAC mismatch - { - if ( aPage1.GeographicalScope() == - ECbsRecGeographicalScopePLMN ) - { - // LAC mismatch but scoped operator-wide - result = ETrue; - } - else - { - // LAC mismatch and not scoped operator-wide - result = EFalse; - } - } - } - else - // PLMN mismatch - { - result = EFalse; // operator mismatch - } - - return result; - } - - -// ================= OTHER EXPORTED FUNCTIONS ============== - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/Ccbsrecdecoder.cpp --- a/cbs/CbsServer/ServerSrc/Ccbsrecdecoder.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,368 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsRecDecoder class -* member functions. -* -* CCCbsRecDecoder handles decoding of message contents. -* -* CbsServer receives messages stored in 8-bit descriptors -* from ETel. This class converts them into 16-bit descriptors -* and decodes the message representation into UCS-2 (which -* is used by Symbian OS internally). -* -*/ - - -// INCLUDE FILES - -#include -#include -#include "CbsServerConstants.h" -#include "CCbsRecDecoder.h" -#include "CCbsMessage.h" -#include "CCbsRecMessage.h" -#include "CCbsRecWcdmaMessage.h" -#include "CbsLogger.h" - -// CONSTANTS - -// Max characters in generated unicode -const TInt KMaxCharsInGeneratedUnicode = 128; - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsMcnSession::CCbsMcnSession -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsRecDecoder::CCbsRecDecoder() - { - } - -// ----------------------------------------------------------------------------- -// CCbsRecDecoder::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsRecDecoder::ConstructL() - { - iConverter = CCnvCharacterSetConverter::NewL(); - User::LeaveIfError( iFs.Connect() ); - } - -// ----------------------------------------------------------------------------- -// CCbsRecDecoder::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsRecDecoder* CCbsRecDecoder::NewL() - { - CCbsRecDecoder* self = new(ELeave) CCbsRecDecoder; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// Destructor -CCbsRecDecoder::~CCbsRecDecoder() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecDecoder::~CCbsRecDecoder()"); - iFs.Close(); - delete iConverter; - CBSLOGSTRING("CBSSERVER: <<< CCbsRecDecoder::~CCbsRecDecoder()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecDecoder::DecodeL -// Decodes 7-bit, 8-bit and 16-bit representations into UCS-2. -// If the message has a language indication prefixed -// in the message body, the indication is removed. -// Compressed messages are not supported. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecDecoder::DecodeL( - CCbsMessage& aMessage ) - { - if ( aMessage.IsCompressed() ) - { - User::Leave( KErrNotSupported ); - } - - // Convert message into plaintext. - DoDecodeL( aMessage ); - - // 8-bit representation not needed anymore. - aMessage.ReleaseEightBitRepresentation(); - - // Determine language of this message (from header or content), - aMessage.ResolveLanguage(); - - // Remove language indication, if present, from message. - aMessage.RemoveLanguageIndicationFromBodyL(); - } - -// ----------------------------------------------------------------------------- -// CCbsRecDecoder::DoDecodeL -// Decodes the given message's content. -// Decodes aMessage's 7-bit/Unicode representation -// into internal Unicode representation. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecDecoder::DoDecodeL( - CCbsMessage& aMessage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecDecoder::DoDecodeL()"); - - TCbsRecAlphabet alphabet( aMessage.Alphabet() ); - if ( alphabet == ECbsRecAlphabetDefault || - alphabet == ECbsRecAlphabetUnspecified ) - { - DefaultAlphabetDecodeL( aMessage ); - } - else if ( alphabet == ECbsRecAlphabet8bit ) - { - EightbitAlphabetDecodeL( aMessage ); - } - else - { - UnicodeDecodeL( aMessage ); - } - CBSLOGSTRING("CBSSERVER: <<< CCbsRecDecoder::DoDecodeL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecDecoder::UnicodeDecodeL -// Decodes 8-bit and Unicode message representations. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecDecoder::UnicodeDecodeL( - CCbsMessage& aMsg ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecDecoder::UnicodeDecodeL()"); - - TPtrC8 contents( aMsg.Contents8() ); - - // Reserve enough space for the actual contents plus - // the CR key - aMsg.ReserveContentSizeL( contents.Length()+1 ); - - // Check if the message is preceded with language. - if( aMsg.DCS() == DCS_MPLI_UCS2 ) - { - // The language is encoded as 7-bit USSD. Unpack that - // and add CR after the language to match the default - // alphabet case. - TBuf<3> language; - language.Copy( contents.Left(2) ); - language[1] <<= 1; - language[1] |= (language[0] & 0x80) >> 7; - language[0] &= 0x7f; - language.Append( EKeyEnter ); - aMsg.AppendContent( language ); - - // Skip the language indication - contents.Set( contents.Mid(2) ); - } - - // The rest of the message is UCS2 encoded Unicode. - // Make sure the byte order is correct. - HBufC* text = HBufC::NewL( contents.Length() / 2 ); - CleanupStack::PushL( text ); - - TPtr ptr( text->Des() ); - TInt length( contents.Length() ); - - // If the length is an odd number, remove the last character. - if ( length & 0x01 ) - { - length -= 1; - } - - for ( TInt i( 0 ); i < length; i += 2 ) - { - ptr.Append( ( contents[ i ] << 8 ) + contents[ i + 1 ] ); - } - - aMsg.AppendContent( RemoveTrailingCR( *text ) ); - CleanupStack::PopAndDestroy(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecDecoder::UnicodeDecodeL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecDecoder::DefaultAlphabetDecodeL -// Decodes 7-bit message representation. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecDecoder::DefaultAlphabetDecodeL( - CCbsMessage& aMsg ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecDecoder::DefaultAlphabetDecodeL()"); - - // Check that the converter is available - CCnvCharacterSetConverter* characterSetConverter = - CCnvCharacterSetConverter::NewLC(); // on CS - - CCnvCharacterSetConverter::TAvailability availability = - characterSetConverter->PrepareToConvertToOrFromL( - KCharacterSetIdentifierSms7Bit, iFs ); - - if ( availability == CCnvCharacterSetConverter::ENotAvailable ) - { - User::Leave( KErrNotFound ); - } - - // Allocate a buffer for the cleartext message - TBuf8< KCbsMaxCharsInPage + 1 > realMsg; - - // Get a pointer to the encoded message - TPtrC8 msgPartOfEtelMsg = aMsg.Contents8(); - - // Length of the cleartext message. - TInt messageLength( ( msgPartOfEtelMsg.Length() * 8 ) / 7 ); - - static const TUint mask_table[ 8 ] = - { 0x7F, 0x01,0x03,0x07,0x0F,0x1F,0x3F,0x7F }; - TUint8 si,di; // Indexes - TInt tmp_modulo; // Temporary; to improve efficiency - si = 0; - - // The location of the current 7-bit character determines the - // action to be taken. Only every 7th character is not divided into - // two bytes. All other characters will have to be contructed by - // combining bits of two consequent bytes. - - for ( di = 0; di < messageLength; di++ ) - { - TUint num2 = 0; - tmp_modulo = di % 8; - switch ( tmp_modulo ) - { - case 0: - num2 = msgPartOfEtelMsg[ si ] & 0x7F; - realMsg.Append( num2 ); - break; - case 7: - num2 = ( msgPartOfEtelMsg[ si ] >> 1 ) & 0x7F; - realMsg.Append( num2 ); - si++; - break; - default: - num2 = msgPartOfEtelMsg[ si ] >> ( 8 - ( tmp_modulo ) ); - num2 &= mask_table[ tmp_modulo ]; - num2 |= msgPartOfEtelMsg[ si + 1 ] << ( tmp_modulo ); - num2 &= 0x7F; - realMsg.Append( num2 ); - si++; - break; - }//switch( tmp_modulo ) - }//for - - TBuf16 generatedUnicode; - TInt state( CCnvCharacterSetConverter::KStateDefault ); // has to be ref. - - // Remove all trailing control characters from the end of the Cell info msg - TBuf8 cleanedMsg; - if ( aMsg.TopicNumber() == KCellInfoTopic ) - { - cleanedMsg = RemoveTrailingControlChars( realMsg ); - User::LeaveIfError( characterSetConverter->ConvertToUnicode( - generatedUnicode, cleanedMsg, state ) ); - } - else - { - User::LeaveIfError( characterSetConverter->ConvertToUnicode( - generatedUnicode, realMsg, state ) ); - } - - CleanupStack::PopAndDestroy(); // characterSetConverter - - aMsg.ReserveContentSizeL( messageLength ); - aMsg.AppendContent( RemoveTrailingCR( generatedUnicode ) ); - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecDecoder::DefaultAlphabetDecodeL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecDecoder::EightbitAlphabetDecodeL -// Decodes 8-bit message representation. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecDecoder::EightbitAlphabetDecodeL( - CCbsMessage& aMsg ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecDecoder::EightbitAlphabetDecodeL()"); - - // Copy 8-bit representation to 16-bit - HBufC* hbuf = HBufC::NewL( aMsg.Contents8().Length() ); - CleanupStack::PushL( hbuf ); - - TPtr16 ptr16 = hbuf->Des(); - ptr16.Copy( aMsg.Contents8() ); - - // Reserve enough space for the actual contents - aMsg.ReserveContentSizeL( aMsg.Contents8().Length() ); - aMsg.AppendContent( RemoveTrailingCR( *hbuf ) ); - - CleanupStack::PopAndDestroy( hbuf ); - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecDecoder::EightbitAlphabetDecodeL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecDecoder::RemoveTrailingCR -// Removes the trailing CRs from a message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TPtrC CCbsRecDecoder::RemoveTrailingCR( - const TDesC& aText ) - { - TInt i( aText.Length() ); - for ( ; i > 0 && aText[ i - 1 ] == EKeyEnter; i-- ) - { - // nothing - } - - return aText.Left( i ); - } - -// ----------------------------------------------------------------------------- -// CCbsRecDecoder::RemoveTrailingControlChars -// Removes the trailing control characters from a message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TPtrC8 CCbsRecDecoder::RemoveTrailingControlChars( - const TDesC8& aText ) - { - TInt i( aText.Length() ); - for ( ; i > 0 && ( aText[ i - 1 ] == EKeyEnter || aText[ i - 1 ] == EKeyLineFeed ); i-- ) - { - // nothing - } - - return aText.Left( i ); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/Ccbsrecetel.cpp --- a/cbs/CbsServer/ServerSrc/Ccbsrecetel.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,942 +0,0 @@ -/* -* Copyright (c) 2003 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: This class creates the ETEL receiver package subcomponents, handles -* incoming CBS messages and communicates with the server interface. -* -* -*/ - - -// INCLUDE FILES - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -#include -#include // CMobilePhoneBroadcastIdList -#include - -#include "CbsServerConstants.h" -#include "CbsServerPanic.h" -#include "CCbsDbImp.H" -#include "CCbsDbImpTopicList.h" -#include "CCbsDbImpSettings.H" -#include "CCbsRecCollector.h" -#include "CCbsRecDecoder.h" -#include "CCbsRecEtel.h" -#include "CCbsRecEtelMonitor.h" -#include "CCbsRecNetworkListener.h" -#include "CCbsRecMessage.h" -#include "CCbsReceiverHelper.h" -#include "CbsUtils.h" - -#include "CCbsEtelMessaging.h" -#include "MCbsEtelMessaging.h" -#include "MCbsMcnSubscriptionsProvider.h" -#include "CCbsSetFilterSettingHandler.h" - -#include "CCbsRecWcdmaMessage.h" -#include "CCbsMessageFactory.h" -#include "CCbsLivecastHandler.h" -#include "CbsLogger.h" - -#include // for local variation -#include "cbsinternalcrkeys.h" // for local variation -#include "cbsvariant.hrh" // for local variation - - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::CCbsRecEtel -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -CCbsRecEtel::CCbsRecEtel() - : iReception( RMobileBroadcastMessaging::EBroadcastAcceptAll ), - iCellInfoReceived( EFalse ), - iReceptionEnabled( EFalse ), - iLimitedReception( EFalse ), - iStartTime( 0 ), - iEndTime( 0 ), - iHomeZoneReceived( EFalse ), - iNewSimTopicsAdded( EFalse ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsRecEtel::ConstructL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtel::ConstructL()"); - - iSubscriptionProviders = new ( ELeave ) - CArrayFixFlat< MCbsMcnSubscriptionsProvider* >( 1 ); - - iDecoder = CCbsRecDecoder::NewL(); - - // Establish a session with the ETel server. - ConnectToEtelL(); - - // Create a listener to monitor network state changes, - iNetworkListener = CCbsRecNetworkListener::NewL( iGsmPhone ); - - // Construct the command handlers - iFilterSettingHandler = CCbsSetFilterSettingHandler::NewL( *this, *iMessaging ); - - // Create the message factory - iFactory = CCbsMessageFactory::NewL( *this ); - - // Message page collector - iCollector = CCbsRecCollector::NewL( *iFactory ); - - // LC message handler - iLivecastHandler = CCbsLivecastHandler::NewL( *this ); - - // Message monitor - iEtelMonitor = CCbsRecEtelMonitor::NewL( *this, *iMessaging, *iFactory, *iLivecastHandler ); - - // Fetch local variation bits from CenRep - CRepository* repository = CRepository::NewL( KCRUidCbsVariation ); - TInt err = repository->Get( KCbsVariationFlags, iLVBits ); - if ( err ) - { - iLVBits = 0; - } - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::ConstructL(): CenRep error: %d", err ); - delete repository; - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtel::ConstructL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsRecEtel* CCbsRecEtel::NewL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtel::NewL()"); - - CCbsRecEtel* self = new ( ELeave ) CCbsRecEtel; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtel::NewL()"); - return self; - } - -// Destructor - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -CCbsRecEtel::~CCbsRecEtel() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtel::~CCbsRecEtel()"); - - // Disable CB reception, ignore result - TRAP_IGNORE( SetReceptionStatusL( - RMobileBroadcastMessaging::EBroadcastAcceptNone ) ); - - delete iNetworkListener; - delete iEtelMonitor; - delete iFilterSettingHandler; - delete iLivecastHandler; - - if ( iMessaging ) - { - iMessaging->Close(); // owned by CCbsEtelFactory - } - delete iMessaging; - - delete iCollector; - delete iDecoder; - delete iFactory; - delete iSubscriptionProviders; - - iCustomPhone.Close(); - iGsmPhone.Close(); - iEtelServer.Close(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtel::~CCbsRecEtel()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::HandleMessageReceivedL -// Handles a received CBS message page. -// -// The message have -// to be decoded, uncompressed and collected only if -// certain conditions hold. These are checked first. -// -// The handling sequence is as follows: -// 1. If the reception is off, reject this message. -// 2. If the user has set a time limit for receiving messages, -// check if the current time is such that the message -// should not be received. -// 3. Check whether message's language has been subscribed. -// Reject the message if not. If message id a Class 0 message, -// do not reject, since the msg should be shown. -// 4. If the topic detection is enabled and this message -// is of an unknown topic, add the new topic and -// reject this message (since the new topic cannot -// be subscribed at this point). -// 5. If the same message exists in the database, this -// message is ignored. -// 6. The decoder decodes the page. -// 7. If the message is multipaged, it is given to -// the message collector. -// 8. A complete message is forwarded to CCbsReceiverHelper, -// which either stores the message into the database -// or handles it as an index message. -// -// This function is called from CCbsRecEtelMonitor::RunL(). -// -// Note: Message reception status check may be unnecessary, -// if the ETel Monitor instance handles the check. -// -// Note: Message subscription check is necessary here. -// UI client's subscriptions might differ from MCN client's -// subscriptions. -// -// Note: Language cannot be read from the header if the -// language information is stored in the content of -// the message. This is particulary troublesome, if -// the message is compressed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecEtel::HandleMessageReceivedL( - CCbsMessage* aMessage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtel::HandleMessageReceivedL()"); - - CleanupStack::PushL( aMessage ); // take ownership - - // Decode a message. Language indication prefix, if any, is also - // removed here. A leave occurs if the message is compressed. - iDecoder->DecodeL( *aMessage ); - - // Add network information to message. - TInt error = AddNetworkInfo( *aMessage ); - - // If the message is a cell info, extract the information. - if ( aMessage->TopicNumber() == KCellInfoTopic ) - { - if ( KErrNone == error ) - { - ExtractCellInformation( *aMessage ); - } - else - { - iCellInfoReceived = EFalse; - } - } - else if ( aMessage->TopicNumber() == KHomeZoneTopic ) - { - if ( KErrNone == error ) - { - ExtractHomeZoneInformation( *aMessage ); - } - else - { - iHomeZoneReceived = EFalse; - } - } - - // Route the message to all MCN client session-objects. - RouteMessageL( *aMessage ); - - // 1. If the reception is off, reject this message. - // 2. If the time of the day is such that the user has decided - // not to receive any messages, reject this message. - // 3. Check whether message's language has been subscribed - // 4. Check if the topic of this message is not in the topic list - // and the topic detection is enabled. - // 5. Check if the topic of this message has been subscribed. - // 6. Check if this message already exists in the database. - - // This variable must be local, since if the common reception status - // is used, this check can mess it up. - TBool uiReceptionEnabled( EFalse ); - iInterface->Database().SettingsL().GetReceptionStatus( uiReceptionEnabled ); - - if ( !uiReceptionEnabled || - ( iInterface->LanguageOfMessageSubscribedL( *aMessage ) == EFalse && - aMessage->RequiresImmediateDisplay() == EFalse ) || - iInterface->CheckForNewTopicL( *aMessage ) || - iInterface->CheckForSubscriptionAndExistenceL( *aMessage ) == EFalse ) - { - CBSLOGSTRING("CBSSERVER: CCbsRecEtel::HandleMessageReceivedL(): Rejecting msg, PopAndDestroy()."); - CleanupStack::PopAndDestroy( aMessage ); - } - else - { - // Check if this message is multipaged and if it is, - // give it to the message collector. If it isn't, - // forward the message to the receiver helper - if ( aMessage->TotalPages() > 1 ) - { - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::HandleMessageReceivedL(): Multipaged msg, total pages: %d.", aMessage->TotalPages() ); - - // Ensure that the network info is available. - // If not, reject the message, because info is required to collect - // pages of a multipaged message. - if ( KErrNone != error ) - { - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::HandleMessageReceivedL(): AddNetworkInfo error: %d, PopAndDestroy().", error ); - CleanupStack::PopAndDestroy( aMessage ); - } - else - { - // Ownership of aMessage transferred to iCollector with - // aMessage left on the cleanup stack. - CBSLOGSTRING("CBSSERVER: CCbsRecEtel::HandleMessageReceivedL(): Calling iCollector->CollectL()..."); - CCbsMessage* completedMsg = iCollector->CollectL( aMessage, ECbsMessageTypeUnspecified ); - CBSLOGSTRING("CBSSERVER: CCbsRecEtel::HandleMessageReceivedL(): iCollector->CollectL() finished OK."); - - if ( completedMsg ) - { - // Message pages combined => Handle like a single-paged msg. - // Result code ignored. - CleanupStack::PushL( completedMsg ); - CBSLOGSTRING("CBSSERVER: CCbsRecEtel::HandleMessageReceivedL(): MULTIPAGED: Calling iInterface->HandleReceivedMessageL()..."); - iInterface->HandleReceivedMessageL( *completedMsg ); - CBSLOGSTRING("CBSSERVER: CCbsRecEtel::HandleMessageReceivedL(): MULTIPAGED: iInterface->HandleReceivedMessageL() finished OK."); - CleanupStack::PopAndDestroy( completedMsg ); - } - } - } - else - { - // single page - CBSLOGSTRING("CBSSERVER: CCbsRecEtel::HandleMessageReceivedL(): SINGLEPAGED: Calling iInterface->HandleReceivedMessageL()..."); - iInterface->HandleReceivedMessageL( *aMessage ); - CBSLOGSTRING("CBSSERVER: CCbsRecEtel::HandleMessageReceivedL(): SINGLEPAGED: iInterface->HandleReceivedMessageL() finished OK."); - CleanupStack::PopAndDestroy( aMessage ); - } - } - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtel::HandleMessageReceivedL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::AddNetworkInfo -// This method blocks if no current network info is -// available and the call to retrieve information blocks. -// -// Augments aMessage with current network information (i.e., PLMN, LAC -// and Cell ID). Does nothing if the network listener iListener -// is unavailable. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -TInt CCbsRecEtel::AddNetworkInfo( - CCbsMessage& aMessage ) const - { - TInt result( KErrNone ); - - RMobilePhone::TMobilePhoneNetworkInfoV1 info; - RMobilePhone::TMobilePhoneLocationAreaV1 area; - - result = iNetworkListener->GetCurrentNetworkInfo( info, area ); - - if ( result == KErrNone ) - { - aMessage.SetNetworkInfo( info, area ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::SetInterface -// Sets the interface to which all accepted messages are given. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecEtel::SetInterface( - CCbsReceiverHelper* aInterface ) - { - __ASSERT_DEBUG( aInterface != 0, User::Panic( _L( "InterfaceNull" ), 0 ) ); - iInterface = aInterface; - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::AddSubscriptionProviderL -// MCN client sessions register to CCbsRecEtel using this function. -// -// When topic subscriptions are gathered during execution of -// ApplyStateChangesL(), subscriptions of each registered subscription -// provider are added to the CBMI list that determines which -// topics are received. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecEtel::AddSubscriptionProviderL( - MCbsMcnSubscriptionsProvider* aProvider ) - { - __TEST_INVARIANT; - if ( !aProvider ) - { - User::Leave( KErrArgument ); - } - - iSubscriptionProviders->AppendL( aProvider ); - - __TEST_INVARIANT; - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::RemoveSubscriptionProviderL -// Removes a MCN topic subscription provider. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecEtel::RemoveSubscriptionProviderL( - const MCbsMcnSubscriptionsProvider* aProvider ) - { - __TEST_INVARIANT; - if ( !aProvider ) - { - User::Leave( KErrArgument ); - } - - TInt count( iSubscriptionProviders->Count() ); - for ( TInt i( 0 ); i < count; i++ ) - { - if ( iSubscriptionProviders->At( i ) == aProvider ) - { - iSubscriptionProviders->Delete( i ); - ApplyStateChangesL(); - __TEST_INVARIANT; - return; - } - } - -#ifdef _DEBUG - CbsServerPanic( EMcnProviderNotFound ); -#endif - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::ApplyStateChangesL -// Retrieves current subscriptions and settings from DB. -// -// Reception should be enabled if: -// 1) User has enabled it or -// 2) There are MCN clients with outstanding message routing -// requests or -// 3) New topics were found from SIM card and they were added to Topic list -// -// If the reception is enabled, all topics and languages -// are subscribed from ETel. Filtering is done in CbsServer -// on receival of a CB message (see HandleMessageReceivedL()). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -void CCbsRecEtel::ApplyStateChangesL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtel::ApplyStateChangesL()"); - - // Determine reception status: If any MCN client requests messages or new - // SIM Topics have just been addded, then reception should be enabled. - // Otherwise UI client reception setting is used. - TUint numberOfMcnSubscriptions( NumberOfMcnSubscriptions() ); - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::ApplyStateChangesL(): numberOfMcnSubscriptions: %d", numberOfMcnSubscriptions ); - - TBool receptionStatus( EFalse ); - TInt errorCode( KErrNone ); - TRAP( errorCode, iInterface->Database().SettingsL().GetReceptionStatus( receptionStatus ) ); - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::ApplyStateChangesL(): Database reception status: %d", receptionStatus ); - - TBool receptionEnabled( EFalse ); - - // Variated feature - if ( iLVBits & KCbsLVFlagTopicSubscription ) - { - receptionEnabled = ( receptionStatus || numberOfMcnSubscriptions > 0 || iNewSimTopicsAdded ); - } - else - { - receptionEnabled = ( receptionStatus || numberOfMcnSubscriptions > 0 ); - } - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::ApplyStateChangesL(): Should reception be enabled: %d", receptionEnabled ); - - // Check if the reception status should be changed - if ( receptionEnabled != iReceptionEnabled ) - { - CBSLOGSTRING("CBSSERVER: CCbsRecEtel::ApplyStateChangesL(): Changing reception status."); - - if ( !receptionEnabled ) - { - // Set reception off - SetReceptionStatusL( RMobileBroadcastMessaging::EBroadcastAcceptNone ); - CBSLOGSTRING("CBSSERVER: CCbsRecEtel::ApplyStateChangesL(): Changing reception status, status set OFF."); - } - else - { - // Set reception on - SetReceptionStatusL( RMobileBroadcastMessaging::EBroadcastAcceptAll ); - CBSLOGSTRING("CBSSERVER: CCbsRecEtel::ApplyStateChangesL(): Changing reception status, status set ON."); - } - } - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtel::ApplyStateChangesL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::GetCurrentMessage -// Returns the current information message. -// The information is retrieved from the last cell information or HomeZone -// message. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsRecEtel::GetCurrentMessage( - TDes& aInfoMessage, - TInt aTopicNumber ) - { - // Handle the cell info message (topic 50) - if ( aTopicNumber == KCellInfoTopic && iCellInfoReceived ) - { - RMobilePhone::TMobilePhoneNetworkInfoV1 networkInfo; - RMobilePhone::TMobilePhoneLocationAreaV1 area; - - iNetworkListener->GetCurrentNetworkInfo( networkInfo, area ); - - if ( iCellInfoLAC == area.iLocationAreaCode && - iCellInfoCellId == area.iCellId && - iCellInfoPLMN.iCountryCode == networkInfo.iCountryCode && - iCellInfoPLMN.iNetworkId == networkInfo.iNetworkId ) - { - aInfoMessage.Copy( iCurrentCellInfoMessage ); - return KErrNone; - } - iCellInfoReceived = EFalse; - } - // Handle the HomeZone message (topic 221) - else if ( aTopicNumber == KHomeZoneTopic && iHomeZoneReceived ) - { - RMobilePhone::TMobilePhoneNetworkInfoV1 networkInfo; - RMobilePhone::TMobilePhoneLocationAreaV1 area; - - iNetworkListener->GetCurrentNetworkInfo( networkInfo, area ); - - if ( iHomeZoneLAC == area.iLocationAreaCode && - iHomeZoneCellId == area.iCellId && - iHomeZonePLMN.iCountryCode == networkInfo.iCountryCode && - iHomeZonePLMN.iNetworkId == networkInfo.iNetworkId ) - { - aInfoMessage.Copy( iCurrentHomeZoneMessage ); - return KErrNone; - } - iHomeZoneReceived = EFalse; - } - - return KErrNotFound; - } - -// --------------------------------------------------------- -// LoadSimTopicsL() -// Loads topics from SIM, if any exists. Saves them into DB. -// --------------------------------------------------------- - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -TInt CCbsRecEtel::LoadSimTopicsL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtel::LoadSimTopicsL()"); - - TInt result( iCustomPhone.StartSimCbTopicBrowsing() ); - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::LoadSimTopicsL(): StartSimCbTopicBrowsing() returned: %d.", result); - - if ( result != KErrNone ) - { - CBSLOGSTRING2("CBSSERVER: <<< CCbsRecEtel::LoadSimTopicsL(), returning %d.", result); - return result; - } - - // Retrieve topics one at time from SIM and store them into DB. - RMmCustomAPI::TSimCbTopic topic; - TInt error( KErrNone ); - while ( ( error = iCustomPhone.GetNextSimCbTopic( topic ) ) == KErrNone ) - { - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::LoadSimTopicsL(): GetNextSimCbTopic() returned KErrNone. (%d)", error ); - TRAPD( result, iInterface->AddSimTopicL( topic.iNumber, topic.iName ) ); - - // Indicate that at least one new SIM Topic was added to Topic list - if ( !result ) - { - // Variated feature - if ( iLVBits & KCbsLVFlagTopicSubscription ) - { - iNewSimTopicsAdded = ETrue; - CBSLOGSTRING("CBSSERVER: CCbsRecEtel::LoadSimTopicsL(), iNewSimTopicsAdded = ETRUE" ); - } - } - } - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::LoadSimTopicsL(), GetNextSimCbTopic error: %d.", error); - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::LoadSimTopicsL(), AddSimTopicL result: %d.", result); - - // To prevent ARMV5 compiler warning - if ( error ) - { - error = KErrNone; - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtel::LoadSimTopicsL(), returning KErrNone."); - return KErrNone; - } - -// --------------------------------------------------------- -// DeleteSimTopicL -// Delete the SIM topic. If the SIM topic does not exist, -// ignore, because that's what we actually want. -// --------------------------------------------------------- - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -void CCbsRecEtel::DeleteSimTopicL( const TUint16 aNumber, const TBool aDeleteAll ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtel::DeleteSimTopicL()"); - - TInt number( aNumber ); - - // All other errors than KErrNotFound are thrown. - TInt ret( iCustomPhone.DeleteSimCbTopic( number ) ); - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::DeleteSimTopicL(): DeleteSimCbTopic() returned: %d.", ret); - -#ifdef __WINS__ - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::DeleteSimTopicL(): DeleteSimCbTopic() returned: %d", ret ); -#else - if ( ret != KErrNotFound ) - { - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::DeleteSimTopicL(): DeleteSimCbTopic() returned: %d", ret ); - User::LeaveIfError( ret ); - } - -#endif - // Delete one by one from cache only if we are deleting just one topic from the SIM card - if ( !aDeleteAll ) - { - // Delete from local array - iInterface->DeleteFromSimTopicCache( aNumber ); - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtel::DeleteSimTopicL()"); - } - -// --------------------------------------------------------- -// CCbsRecEtel::DeleteAllSimTopicsL -// Deletes all topics from the SIM card. -// (other items were commented in a header). -// --------------------------------------------------------- - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - -void CCbsRecEtel::DeleteAllSimTopicsL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtel::DeleteAllSimTopicsL()"); - - TInt count = iInterface->SimTopics().Count(); - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::DeleteAllSimTopicsL(): SIM Topic count: %d", count ); - - for ( TInt i( 0 ); i < count; i++ ) - { - TInt topicNum = iInterface->SimTopics().At( i ); - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::DeleteAllSimTopicsL(): SIM Topic number: %d", topicNum ); - DeleteSimTopicL( topicNum, ETrue ); - } - - // Delete all topics from the cache - iInterface->SimTopics().Reset(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtel::DeleteAllSimTopicsL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::ConnectToEtelL -// Establishes a connection with the EPOC Telephony Server server. -// Also opens the necessary EPOC Telephony Server resources such as RPhone and -// RAdvGsmSmsMessaging sessions. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - - /***************************************************** - * Series 60 Customer / TSY - * Needs customer TSY implementation - *****************************************************/ -void CCbsRecEtel::ConnectToEtelL() - { - TInt result( KErrNone ); - - // Connect to ETel - User::LeaveIfError( iEtelServer.Connect() ); - - // Load Phone TSY module - result = iEtelServer.LoadPhoneModule( KMmTsyModuleName ); - if ( result != KErrNone ) - { - User::Leave( result ); - } - - // This function retrieves the total number of phones supported by all - // the currently loaded EPOC Telephony Server (TSY) modules. - TInt phoneCount( 0 ); - User::LeaveIfError( iEtelServer.EnumeratePhones( phoneCount ) ); - - // This function retrieves information associated with the specified phone - RTelServer::TPhoneInfo phoneInfo; - while ( phoneCount-- ) - { - User::LeaveIfError( iEtelServer.GetPhoneInfo( phoneCount, - phoneInfo ) ); - - if ( phoneInfo.iName == KMmTsyPhoneName ) - { - phoneCount = 0; - } - } - - // Open GSM phone - result = iGsmPhone.Open( iEtelServer, phoneInfo.iName ); - if ( result != KErrNone ) - { - User::Leave( result ); - } - - // Create an EPOC Telephony Server messaging instance - iMessaging = CCbsEtelMessaging::NewL(); - - // Open SMS Messaging - result = iMessaging->Open( iGsmPhone ); - if ( result != KErrNone ) - { - User::Leave( result ); - } - - // Opens a custom phone subsession by name - result = iCustomPhone.Open( iGsmPhone ); - if ( result != KErrNone ) - { - User::Leave( result ); - } - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::SetReceptionStatusL -// Sets the requested CB reception status aStatus to ME. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ -void CCbsRecEtel::SetReceptionStatusL( - RMobileBroadcastMessaging::TMobilePhoneBroadcastFilter aSetting ) - { - if ( iEtelMonitor ) - { - if ( aSetting == RMobileBroadcastMessaging::EBroadcastAcceptNone ) - { - iEtelMonitor->Cancel(); - } - else - { - iEtelMonitor->IssueRequest(); - } - } - - if ( iMessaging ) - { - iFilterSettingHandler->SetFilterSetting( aSetting ); - } - - iReceptionEnabled = ( aSetting == RMobileBroadcastMessaging::EBroadcastAcceptAll ); - - // Variated feature - if ( iLVBits & KCbsLVFlagTopicSubscription ) - { - // Set reception setting on also for UI, - // if new topics were added from the SIM card - if ( iNewSimTopicsAdded ) - { - iInterface->Database().SettingsL().SetReceptionStatusL( ETrue ); - iNewSimTopicsAdded = EFalse; - } - } - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::NumberOfMcnSubscriptions -// Returns the total number of topic subscriptions made by -// MCN clients registered to the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TUint CCbsRecEtel::NumberOfMcnSubscriptions() const - { - TUint count( 0 ); - TInt mcnClientCount( iSubscriptionProviders->Count() ); - for ( TInt i( 0 ); i < mcnClientCount; i++ ) - { - count += iSubscriptionProviders->At( i )->NumberOfSubscriptions(); - } - return count; - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::RouteMessageL -// Passes the given CB message to each registered subscriptions -// provider -// a subscription provider is a MCN client wishing -// CB message routing service -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecEtel::RouteMessageL( - const CCbsMessage& aMessage ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtel::RouteMessageL()"); - - TInt count( iSubscriptionProviders->Count() ); - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::RouteMessageL(): Provider count: %d", count); - - for ( TInt i( 0 ); i < count; i++ ) - { - CBSLOGSTRING2("CBSSERVER: CCbsRecEtel::RouteMessageL(): Routing to provider: %d", i ); - iSubscriptionProviders->At( i )->RouteMessageL( aMessage ); - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtel::RouteMessageL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::ExtractCellInformation -// Copies Current cell information (district info, MCN) -// into receiver's cache. -// -// This way MCN clients can be provided the current -// cell information message even without message routing service. -// -// The given message is assumed to be a valid cell information -// message (CB message of topic 050). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecEtel::ExtractCellInformation( - const CCbsMessage& aMessage ) - { - - iCurrentCellInfoMessage.Copy( aMessage.Contents() ); - aMessage.GetPLMN( iCellInfoPLMN ); - iCellInfoLAC = aMessage.LAC(); - iCellInfoCellId = aMessage.CellId(); - - iCellInfoReceived = ETrue; - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::ExtractHomeZoneInformation -// Copies Current HomeZone information into receiver's cache. -// -// This way MCN clients can be provided the current HomeZone -// message even without message routing service. -// -// The given message is assumed to be a valid HomeZone -// message (CB message of topic 221). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecEtel::ExtractHomeZoneInformation( - const CCbsMessage& aMessage ) - { - iCurrentHomeZoneMessage.Copy( aMessage.Contents() ); - aMessage.GetPLMN( iHomeZonePLMN ); - iHomeZoneLAC = aMessage.LAC(); - iHomeZoneCellId = aMessage.CellId(); - - iHomeZoneReceived = ETrue; - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::Collector -// Returns the message collector reference. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsRecCollector& CCbsRecEtel::Collector() - { - return *iCollector; - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::Interface -// Returns the receiver helper reference. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CCbsReceiverHelper& CCbsRecEtel::Interface() const - { - return *iInterface; - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtel::__DbgTestInvariant -// Checks that the object is in a valid state, and panics if it is not. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecEtel::__DbgTestInvariant() const - { -#if defined (_DEBUG) - if ( iSubscriptionProviders == NULL || - iEtelMonitor == NULL || iMessaging == NULL || iInterface == NULL || - iDecoder == NULL || iCollector ==NULL || iNetworkListener == NULL ) - { - User::Invariant(); - } -#endif // _DEBUG - } - -// ================= OTHER EXPORTED FUNCTIONS ============== -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/Ccbsrecetelmonitor.cpp --- a/cbs/CbsServer/ServerSrc/Ccbsrecetelmonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,214 +0,0 @@ -/* -* Copyright (c) 2003 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: This module contains the implementation of CCbsRecEtelMonitor class -* member functions. -* -*/ - - - -// INCLUDE FILES - -#include -#include "CbsServerConstants.h" -#include "CCbsRecEtel.h" -#include "CCbsRecEtelMonitor.h" -#include "CCbsRecMessage.h" -#include "CCbsRecWcdmaMessage.h" -#include "CCbsMessageFactory.h" -#include "CbsServerPanic.h" -#include "CCbsLivecastHandler.h" -#include -#include // for feature definitions -#include "CbsLogger.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsRecEtelMonitor::CCbsRecEtelMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsRecEtelMonitor::CCbsRecEtelMonitor( - CCbsRecEtel& aEtel, - MCbsEtelMessaging& aMessaging, - CCbsMessageFactory& aFactory, - CCbsLivecastHandler& aLivecastHandler ) - : CActive( EPriorityStandard ), - iEtel( aEtel ), - iSmsMessaging( aMessaging ), - iMsgAttributesPckg( iAttributes ), // Message attributes - iFactory( aFactory ), - iLivecastHandler( aLivecastHandler ), - iNewstickerSupported( EFalse ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtelMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsRecEtelMonitor::ConstructL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtelMonitor::ConstructL()"); - - CActiveScheduler::Add( this ); - - // Sets up TLS, must be done before FeatureManager is used. - FeatureManager::InitializeLibL(); - - // Check if Newsticker feature is supported - if ( FeatureManager::FeatureSupported( KFeatureIdNewsticker ) ) - { - iNewstickerSupported = ETrue; - CBSLOGSTRING("CBSSERVER: CCbsRecEtelMonitor::ConstructL(): Newsticker supported."); - } - else - { - CBSLOGSTRING("CBSSERVER: CCbsRecEtelMonitor::ConstructL(): Newsticker NOT supported."); - } - - // Frees the TLS! Must be done after FeatureManager is used. - FeatureManager::UnInitializeLib(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtelMonitor::ConstructL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtelMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsRecEtelMonitor* CCbsRecEtelMonitor::NewL( - CCbsRecEtel& aEtel, - MCbsEtelMessaging& aSmsMessaging, - CCbsMessageFactory& aFactory, - CCbsLivecastHandler& aLivecastHandler ) - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtelMonitor::NewL()"); - - CCbsRecEtelMonitor* self = - new ( ELeave ) CCbsRecEtelMonitor( aEtel, aSmsMessaging, aFactory, aLivecastHandler ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtelMonitor::NewL()"); - return self; - } - -// Destructor -CCbsRecEtelMonitor::~CCbsRecEtelMonitor() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtelMonitor::~CCbsRecEtelMonitor()"); - Cancel(); - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtelMonitor::~CCbsRecEtelMonitor()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtelMonitor::IssueRequest -// Requests EPOC Telephony Server to forward next received CB message to this object. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecEtelMonitor::IssueRequest() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtelMonitor::IssueRequest()"); - - if ( !IsActive() ) - { - iMsgData.FillZ(); - iSmsMessaging.ReceiveMessage( iStatus, iMsgData, iMsgAttributesPckg ); - SetActive(); - } - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtelMonitor::IssueRequest()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtelMonitor::RunL -// Becomes active when EPOC Telephony Server has copied a CB message to -// iMsgData. The message is then given to CCbsRecEtel for -// processing. -// Finally this function re-issues the ReceiveMessage request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecEtelMonitor::RunL() - { - CBSLOGSTRING2("CBSSERVER: >>> CCbsRecEtelMonitor::RunL(), iStatus: %d", iStatus.Int() ); - - if ( iStatus == KErrNone ) - { - CCbsMessage* currentMessage = NULL; - TCbsMessageType msgType( ECbsMessageTypeUnspecified ); - - CBSLOGSTRING("CBSSERVER: CCbsRecEtelMonitor::RunL(): Calling CreateMessageL()..." ); - currentMessage = iFactory.CreateMessageL( iMsgData, iAttributes, msgType ); - CBSLOGSTRING("CBSSERVER: CCbsRecEtelMonitor::RunL(): CreateMessageL() called OK." ); - - if ( currentMessage ) - { - if ( msgType == ECbsMessageLivecast ) - { - CBSLOGSTRING("CBSSERVER: CCbsRecEtelMonitor::RunL(): LC message" ); - - if ( iNewstickerSupported ) - { - // Ownership of currentMessage transferred to iLivecastHandler - CBSLOGSTRING("CBSSERVER: CCbsRecEtelMonitor::RunL(): Calling HandleLivecastMessageL()..." ); - TInt lcResult( KErrNone ); - TRAP( lcResult, iLivecastHandler.HandleLivecastMessageL( currentMessage ) ); - CBSLOGSTRING2("CBSSERVER: CCbsRecEtelMonitor::RunL(): HandleLivecastMessageL() finished, result: %d", lcResult ); - } - else - { - CBSLOGSTRING("CBSSERVER: CCbsRecEtelMonitor::RunL(): NewsSticker is not supported" ); - } - } - else - { - CBSLOGSTRING("CBSSERVER: CCbsRecEtelMonitor::RunL(): Normal message" ); - - // Ownership of currentMessage transferred to iEtel - CBSLOGSTRING("CBSSERVER: CCbsRecEtelMonitor::RunL(): Calling HandleMessageReceivedL()..." ); - TInt result( KErrNone ); - TRAP( result, iEtel.HandleMessageReceivedL( currentMessage ) ); - CBSLOGSTRING2("CBSSERVER: CCbsRecEtelMonitor::RunL(): HandleMessageReceivedL() finished, result: %d", result ); - } - } - - // Renew the request - IssueRequest(); - } - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtelMonitor::RunL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecEtelMonitor::DoCancel -// Cancels an outstanding ReceiveMessage request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecEtelMonitor::DoCancel() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecEtelMonitor::DoCancel()" ); - iSmsMessaging.ReceiveMessageCancel(); - CBSLOGSTRING("CBSSERVER: <<< CCbsRecEtelMonitor::DoCancel()" ); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/ServerSrc/Ccbsrecnetworklistener.cpp --- a/cbs/CbsServer/ServerSrc/Ccbsrecnetworklistener.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,351 +0,0 @@ -/* -* Copyright (c) 2003-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: This module contains the implementation of CCbsRecNetworkListener class -* member functions. -* -*/ - - - -// INCLUDES -#include -#include -#include -#include "CCbsRecNetworkListener.h" -#include "CbsLogger.h" - -// CONSTANTS - -/// Network listener's priority in active scheduler. -const TInt KCbsRecNetworkListenerPriority = CActive::EPriorityStandard + 5; - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCbsRecNetworkListener::CCbsRecNetworkListener -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CCbsRecNetworkListener::CCbsRecNetworkListener( - RMobilePhone& aPhone ) - : CActive( KCbsRecNetworkListenerPriority ), - iNetworkInfoRetrieved( EFalse ), - iPhone( aPhone ), - iNetworkInfoPckg( iNetworkInfo ), - iGetCurrentNetworkActive( EFalse ), - iNotifyNwRegChange( EFalse ) - { - } - -// ----------------------------------------------------------------------------- -// CCbsRecNetworkListener::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCbsRecNetworkListener::ConstructL() - { - CActiveScheduler::Add( this ); - IssueGetCurrentNwRequest(); - } - -// ----------------------------------------------------------------------------- -// CCbsRecNetworkListener::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCbsRecNetworkListener* CCbsRecNetworkListener::NewL( - RMobilePhone& aPhone ) - { - CCbsRecNetworkListener* self = - new (ELeave) CCbsRecNetworkListener( aPhone ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - - -// Destructor -CCbsRecNetworkListener::~CCbsRecNetworkListener() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecNetworkListener::~CCbsRecNetworkListener()"); - Cancel(); - CBSLOGSTRING("CBSSERVER: <<< CCbsRecNetworkListener::~CCbsRecNetworkListener()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecMessage::GetCurrentNetworkInfo -// Fetches the current networking info. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCbsRecNetworkListener::GetCurrentNetworkInfo( - RMobilePhone::TMobilePhoneNetworkInfoV1& aNetworkInfo, - RMobilePhone::TMobilePhoneLocationAreaV1& aArea ) - { - TInt errorCode; - if ( !iNetworkInfoRetrieved ) - { - // No network state change notification arrived yet - errorCode = KErrNotFound; - } - else - { - // Get both infos from member variables - aNetworkInfo = iNetworkInfo; - aArea = iArea; - errorCode = KErrNone; - } - return errorCode; - } - -// ----------------------------------------------------------------------------- -// CCbsRecMessage::RunL -// Called after NotifyCurrentNetworkChange is completed by EPOC Telephony Server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecNetworkListener::RunL() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecNetworkListener::RunL()"); - if ( iGetCurrentNetworkActive ) - { - // Current request is getting current active network - HandleGetCurrentNetworkResult(); - } - else - { - if ( iNotifyNwRegChange ) - { - // Current request is notifying network registeration change - HandleNotifyNetworkRegistrationStatusChangeResult(); - } - else - { - // Current request is notifying current network state change - HandleNotifyCurrentNetworkChangeResult(); - } - } - CBSLOGSTRING("CBSSERVER: <<< CCbsRecNetworkListener::RunL()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecMessage::DoCancel -// Called whenever the listener has been requested to cancel. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecNetworkListener::DoCancel() - { - // Cancel current request. Ongoing request can be: - // GetCurrentNetwork, NotifyNetworkRegistrationStatusChange and - // NotifyCurrentNetworkChange. - - // Check if the initialization phase was going on - if ( iGetCurrentNetworkActive ) - { - iPhone.CancelAsyncRequest( EMobilePhoneGetCurrentNetwork ); - iGetCurrentNetworkActive = EFalse; - } - else - { - // Check if the notification of network registration state change - if ( iNotifyNwRegChange ) - { - iPhone.CancelAsyncRequest( EMobilePhoneNotifyNetworkRegistrationStatusChange ); - iNotifyNwRegChange = EFalse; - } - else - { - // Current request is notification of current network change - iPhone.CancelAsyncRequest( EMobilePhoneNotifyCurrentNetworkChange ); - } - } - } - -// ----------------------------------------------------------------------------- -// CCbsRecNetworkListener::IssueGetCurrentNwRequest -// Requests getting current network information from EPOC Telephony Server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecNetworkListener::IssueGetCurrentNwRequest() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecNetworkListener::\ - IssueGetCurrentNwRequest()"); - if ( !IsActive() ) - { - iPhone.GetCurrentNetwork( iStatus, iNetworkInfoPckg, iArea ); - SetActive(); - iGetCurrentNetworkActive = ETrue; - } - else - { - CBSLOGSTRING("CBSSERVER: CCbsRecNetworkListener::\ - IssueGetCurrentNwRequest(), Aready active"); - } - CBSLOGSTRING("CBSSERVER: <<< CCbsRecNetworkListener::\ - IssueGetCurrentNwRequest()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecNetworkListener::IssueNotifyNwRegChangeRequest -// Requests notification of network registration state change -// from EPOC Telephony Server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecNetworkListener::IssueNotifyNwRegChangeRequest() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecNetworkListener::\ - IssueNotifyNwRegChangeRequest()"); - if ( !IsActive() ) - { - iPhone.NotifyNetworkRegistrationStatusChange( iStatus, iRegistration ); - SetActive(); - iNotifyNwRegChange = ETrue; - } - else - { - CBSLOGSTRING("CBSSERVER: CCbsRecNetworkListener::\ - IssueNotifyNwRegChangeRequest(), Aready active"); - } - CBSLOGSTRING("CBSSERVER: <<< CCbsRecNetworkListener::\ - IssueNotifyNwChangeRequest()"); - } - -// ----------------------------------------------------------------------------- -// CCbsRecNetworkListener::IssueNotifyNwChangeRequest -// Requests notification of network state change from EPOC Telephony Server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecNetworkListener::IssueNotifyNwChangeRequest() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecNetworkListener::\ - IssueNotifyNwChangeRequest"); - if ( !IsActive() ) - { - iPhone.NotifyCurrentNetworkChange( iStatus, iNetworkInfoPckg, iArea ); - SetActive(); - } - else - { - CBSLOGSTRING("CBSSERVER: CCbsRecNetworkListener::\ - IssueNotifyNwChangeRequest(), Aready active"); - } - CBSLOGSTRING("CBSSERVER: <<< CCbsRecNetworkListener::\ - IssueNotifyNwChangeRequest()"); - } - - -// ----------------------------------------------------------------------------- -// When the current request is GetCurrentNetwork, handle the return result -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecNetworkListener::HandleGetCurrentNetworkResult() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecNetworkListener::\ - HandleGetCurrentNetworkResult"); - iGetCurrentNetworkActive = EFalse; - - if ( KErrNone == iStatus.Int() ) - { - // Get the network information successfully - // Submit the notify current network change request. - iNetworkInfoRetrieved = ETrue; - IssueNotifyNwChangeRequest(); - } - else - { - // Run into some problems to get network information, - // submit the request of notification of network registration - // state change - CBSLOGSTRING2("CBSSERVER: CCbsRecNetworkListener::\ - HandleGetCurrentNetworkResult, iStatus is %d", iStatus.Int()); - IssueNotifyNwRegChangeRequest(); - } - CBSLOGSTRING("CBSSERVER: <<< CCbsRecNetworkListener::\ - HandleGetCurrentNetworkResult"); - } - -// ----------------------------------------------------------------------------- -// When the current request is NotifyNetworkRegistrationStatusChange, -// handle the return result -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecNetworkListener::HandleNotifyNetworkRegistrationStatusChangeResult() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecNetworkListener::\ - HandleNotifyNetworkRegistrationStatusChangeResult()"); - - if ( KErrNone == iStatus.Int() ) - { - CBSLOGSTRING2("CBSSERVER: CCbsRecNetworkListener::\ - HandleNotifyNetworkRegistrationStatusChangeResult(), \ - registration status is %d", iRegistration); - - if ( ( RMobilePhone::ERegisteredOnHomeNetwork == - iRegistration ) || - ( RMobilePhone::ERegisteredRoaming == iRegistration ) ) - { - // ME successfully registered on network, submit GetCurrentNetwork - // request to get current network information - iNotifyNwRegChange = EFalse; - IssueGetCurrentNwRequest(); - } - else - { - // ME didn't successfully registered on network. - // Resubmit this request. - IssueNotifyNwRegChangeRequest(); - } - } - else - { - CBSLOGSTRING2("CBSSERVER: CCbsRecNetworkListener::\ - HandleNotifyNetworkRegistrationStatusChangeResult, \ - iStatus is %d", iStatus.Int() ); - IssueNotifyNwRegChangeRequest(); - } - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecNetworkListener::\ - HandleNotifyNetworkRegistrationStatusChangeResult()"); - } - -// ----------------------------------------------------------------------------- -// When the current request is NotifyCurrentNetworkChange, -// handle the return result -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCbsRecNetworkListener::HandleNotifyCurrentNetworkChangeResult() - { - CBSLOGSTRING("CBSSERVER: >>> CCbsRecNetworkListener::\ - HandleNotifyCurrentNetworkChangeResult()"); - - CBSLOGSTRING2("CBSSERVER: CCbsRecNetworkListener::\ - HandleNotifyCurrentNetworkChangeResult, \ - iStatus is %d", iStatus.Int()); - iNetworkInfoRetrieved = ( KErrNone == iStatus.Int() ) ? ETrue : EFalse; - IssueNotifyNwChangeRequest(); - - CBSLOGSTRING("CBSSERVER: <<< CCbsRecNetworkListener::\ - HandleNotifyCurrentNetworkChangeResult()"); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/conf/cbsserver.confml Binary file cbs/CbsServer/conf/cbsserver.confml has changed diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/conf/cbsserver_1020298F.crml Binary file cbs/CbsServer/conf/cbsserver_1020298F.crml has changed diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/conf/cbsserver_102078EE.crml Binary file cbs/CbsServer/conf/cbsserver_102078EE.crml has changed diff -r 35488577e233 -r 2fa1fa551b0b cbs/CbsServer/loc/CbsServer.loc --- a/cbs/CbsServer/loc/CbsServer.loc Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2003 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: This is the localisation file of CBS Server. -* -*/ - - -// LOCALISATION STRINGS: - -// d: SIM topic description -// l: list_single_graphic_heading_pane_t1 -// w: S90DialogListBox -#define qtn_cb_litext_sim_topic "SIM topic" - -// d: This text is used when adding a Index topic to database. -// l: list_single_graphic_heading_pane_t1 -// w: S90DialogListBox -#define qtn_cb_litext_index "Index" - -// d: This text is used when adding Standard Topic List to database. -// l: list_single_graphic_heading_pane_t1 -// w: S90DialogListBox -#define qtn_cb_litext_standard_topic_list "Default Topic List" - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cbs/cbsserver/Group/CbsServer.mmp --- a/cbs/cbsserver/Group/CbsServer.mmp Mon Aug 23 15:50:31 2010 +0300 +++ b/cbs/cbsserver/Group/CbsServer.mmp Fri Sep 03 13:59:20 2010 +0300 @@ -39,7 +39,7 @@ START RESOURCE ../Data/CbsServer.rss HEADER -TARGET CbsServer.rsg +TARGET cbsserver.rsg TARGETPATH RESOURCE_FILES_DIR LANGUAGE_IDS END diff -r 35488577e233 -r 2fa1fa551b0b cbs/cbsserver/ServerSrc/CCbsDbImp.cpp --- a/cbs/cbsserver/ServerSrc/CCbsDbImp.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/cbs/cbsserver/ServerSrc/CCbsDbImp.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -33,7 +33,7 @@ #include #include -#include +#include #include "CbsUtils.h" #include "CbsServerPanic.h" diff -r 35488577e233 -r 2fa1fa551b0b cbs/cbsserver/ServerSrc/CCbsDbImpTopicList.cpp --- a/cbs/cbsserver/ServerSrc/CCbsDbImpTopicList.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/cbs/cbsserver/ServerSrc/CCbsDbImpTopicList.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -30,7 +30,7 @@ #include // Resource access #include // Resource access -#include +#include #include "CbsServerPanic.h" #include "CbsStreamHelper.h" diff -r 35488577e233 -r 2fa1fa551b0b cbs/cbsserver/ServerSrc/CCbsReceiverHelper.cpp --- a/cbs/cbsserver/ServerSrc/CCbsReceiverHelper.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/cbs/cbsserver/ServerSrc/CCbsReceiverHelper.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -27,7 +27,7 @@ #include // Resource access #include // Resource access -#include +#include #include "CbsCommon.h" #include "CbsUtils.h" diff -r 35488577e233 -r 2fa1fa551b0b cbs/cbsui/rom/CbsUiResources.iby --- a/cbs/cbsui/rom/CbsUiResources.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -/* -* Copyright (c) 2010 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: CBS resources rom build file -* -*/ - - -#ifndef __CBSUI_RESOURCES_IBY__ -#define __CBSUI_RESOURCES_IBY__ - -#ifdef __CELL_BROADCAST - -data=DATAZ_\resource\apps\cbsui.rsc S60_APP_RESOURCE(cbsui.rsc) - -#endif // __CELL_BROADCAST - -#endif // __CBSUI_RESOURCES_IBY__ diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Bmarm/PSUIU.DEF --- a/cellular/PsetNotesUi/Bmarm/PSUIU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,15 +0,0 @@ -EXPORTS - NewL__19CPsuiResourceLoader @ 1 NONAME R3UNUSED ; CPsuiResourceLoader::NewL(void) - CreateCFObsL__14CPsuiContainer @ 2 NONAME R3UNUSED ; CPsuiContainer::CreateCFObsL(void) - CreateCWObsL__14CPsuiContainer @ 3 NONAME R3UNUSED ; CPsuiContainer::CreateCWObsL(void) - CreateCliObsL__14CPsuiContainer @ 4 NONAME R3UNUSED ; CPsuiContainer::CreateCliObsL(void) - NewLC__19CPsuiResourceLoader @ 5 NONAME R3UNUSED ; CPsuiResourceLoader::NewLC(void) - NewL__14CPsuiContainer @ 6 NONAME R3UNUSED ; CPsuiContainer::NewL(void) - NewL__14CPsuiDivertObsR14CPsuiContainer @ 7 NONAME R3UNUSED ; CPsuiDivertObs::NewL(CPsuiContainer &) - NewL__15CPsuiBarringObsR14CPsuiContainer @ 8 NONAME R3UNUSED ; CPsuiBarringObs::NewL(CPsuiContainer &) - NewL__15CPsuiWaitingObsR14CPsuiContainer @ 9 NONAME R3UNUSED ; CPsuiWaitingObs::NewL(CPsuiContainer &) - NewL__16CPsuiCliObserverR14CPsuiContainer @ 10 NONAME R3UNUSED ; CPsuiCliObserver::NewL(CPsuiContainer &) - CreateCBObsL__14CPsuiContainer @ 11 NONAME R3UNUSED ; CPsuiContainer::CreateCBObsL(void) - DeleteAndCreateNoteMaster__14CPsuiContainer @ 12 NONAME R3UNUSED ; CPsuiContainer::DeleteAndCreateNoteMaster(void) - GetNoteMaster__14CPsuiContainer @ 13 NONAME R3UNUSED ; CPsuiContainer::GetNoteMaster(void) - diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Bwins/PSUIU.DEF --- a/cellular/PsetNotesUi/Bwins/PSUIU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,13 +0,0 @@ -EXPORTS - ?CreateCBObsL@CPsuiContainer@@QAEPAVCPsuiBarringObs@@XZ @ 1 NONAME ; class CPsuiBarringObs * CPsuiContainer::CreateCBObsL(void) - ?CreateCFObsL@CPsuiContainer@@QAEPAVCPsuiDivertObs@@XZ @ 2 NONAME ; class CPsuiDivertObs * CPsuiContainer::CreateCFObsL(void) - ?CreateCWObsL@CPsuiContainer@@QAEPAVCPsuiWaitingObs@@XZ @ 3 NONAME ; class CPsuiWaitingObs * CPsuiContainer::CreateCWObsL(void) - ?CreateCliObsL@CPsuiContainer@@QAEPAVCPsuiCliObserver@@XZ @ 4 NONAME ; class CPsuiCliObserver * CPsuiContainer::CreateCliObsL(void) - ?NewL@CPsuiBarringObs@@SAPAV1@AAVCPsuiContainer@@@Z @ 5 NONAME ; class CPsuiBarringObs * CPsuiBarringObs::NewL(class CPsuiContainer &) - ?NewL@CPsuiCliObserver@@SAPAV1@AAVCPsuiContainer@@@Z @ 6 NONAME ; class CPsuiCliObserver * CPsuiCliObserver::NewL(class CPsuiContainer &) - ?NewL@CPsuiContainer@@SAPAV1@XZ @ 7 NONAME ; class CPsuiContainer * CPsuiContainer::NewL(void) - ?NewL@CPsuiDivertObs@@SAPAV1@AAVCPsuiContainer@@@Z @ 8 NONAME ; class CPsuiDivertObs * CPsuiDivertObs::NewL(class CPsuiContainer &) - ?NewL@CPsuiResourceLoader@@SAPAV1@XZ @ 9 NONAME ; class CPsuiResourceLoader * CPsuiResourceLoader::NewL(void) - ?NewL@CPsuiWaitingObs@@SAPAV1@AAVCPsuiContainer@@@Z @ 10 NONAME ; class CPsuiWaitingObs * CPsuiWaitingObs::NewL(class CPsuiContainer &) - ?NewLC@CPsuiResourceLoader@@SAPAV1@XZ @ 11 NONAME ; class CPsuiResourceLoader * CPsuiResourceLoader::NewLC(void) - diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Data/Psui.rss --- a/cellular/PsetNotesUi/Data/Psui.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,192 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Resources of Phone Setting UI Notes -* -*/ - - -// RESOURCE IDENTIFIER -NAME PSUI - -// INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include "eikon.rsg" -#include - -// RESOURCE DEFINITIONS -RESOURCE RSS_SIGNATURE { } - -//--------------------------------------------------------------------------- -// resources for basic service group strings -//--------------------------------------------------------------------------- -// -RESOURCE TBUF r_bs_alpha_0 { buf = text_bs_alpha_0; } -RESOURCE TBUF r_bs_alpha_10 { buf = text_bs_alpha_10; } -RESOURCE TBUF r_bs_alpha_11 { buf = text_bs_alpha_11; } -RESOURCE TBUF r_bs_alpha_12 { buf = text_bs_alpha_12; } -RESOURCE TBUF r_bs_alpha_13 { buf = text_bs_alpha_13; } -RESOURCE TBUF r_bs_alpha_16 { buf = text_bs_alpha_16; } -RESOURCE TBUF r_bs_alpha_19 { buf = text_bs_alpha_19; } -RESOURCE TBUF r_bs_alpha_20 { buf = text_bs_alpha_20; } -RESOURCE TBUF r_bs_alpha_21 { buf = text_bs_alpha_21; } -RESOURCE TBUF r_bs_alpha_22 { buf = text_bs_alpha_22; } -RESOURCE TBUF r_bs_alpha_24 { buf = text_bs_alpha_24; } -RESOURCE TBUF r_bs_alpha_25 { buf = text_bs_alpha_25; } -RESOURCE TBUF r_bs_alpha_26 { buf = text_bs_alpha_26; } -RESOURCE TBUF r_bs_alpha_27 { buf = text_bs_alpha_27; } -RESOURCE TBUF r_bs_alpha_89 { buf = text_bs_alpha_89; } -RESOURCE TBUF r_bs_alpha_20_vt { buf = qtn_bs_alpha_20_vt; } -RESOURCE TBUF r_bs_alpha_30 { buf = qtn_bs_alpha_30; } - -RESOURCE TBUF r_text_divert_active { buf = qtn_div_heading_active; } -RESOURCE TBUF r_text_divert_inactive { buf = qtn_div_heading_inactive; } - -//--------------------------------------------------------------------------- -// resources for note texts -//--------------------------------------------------------------------------- -// - -//divert specific -RESOURCE TBUF r_to_number { buf = qtn_div_quest_number;} -RESOURCE TBUF r_delay_time { buf = qtn_div_quest_delay_time;} -RESOURCE TBUF r_text_ss_detail_delay_sec { buf = text_ss_detail_delay_sec;} -RESOURCE TBUF r_activate_note { buf = text_divert_activated;} -RESOURCE TBUF r_plural_activate_note { buf = qtn_div_conf_activateall;} -RESOURCE TBUF r_cancel_note { buf = text_divert_canceled;} -RESOURCE TBUF r_plural_cancel_note { buf = qtn_div_conf_cancelall;} -RESOURCE TBUF r_not_active_note { buf = text_divert_inactive;} -RESOURCE TBUF r_divert_active { buf = qtn_divert_active;} -RESOURCE TBUF r_voip_divert_not_supported { buf = qtn_voip_divert_not_supported;} - -//call waiting specific -RESOURCE TBUF r_cw_active_note { buf = text_call_waiting_activated;} -RESOURCE TBUF r_cw_cancel_note { buf = text_call_waiting_cancelled;} -RESOURCE TBUF r_cw_not_active_note { buf = text_call_waiting_not_active;} -RESOURCE TBUF r_cw_not_provisioned_note {buf = qtn_cw_note_not_provisioned;} - -//call barring specific -RESOURCE TBUF r_cb_active_note { buf = text_barring_activated;} -RESOURCE TBUF r_cb_cancel_note { buf = text_barring_canceled;} -RESOURCE TBUF r_cb_plural_cancel_note { buf = qtn_barr_conf_cancelall;} -RESOURCE TBUF r_barring_not_active_note { buf = text_barring_not_active;} -RESOURCE TBUF r_password_changed_note { buf = text_password_changed;} -RESOURCE TBUF r_password_blocked_note { buf = qtn_paswd_info_code_blocked;} -RESOURCE TBUF r_contact_service_note { buf = qtn_ss_barring_operation_not_successfull;} - - -//cli specific -RESOURCE TBUF r_clir_active_note { buf = text_clir_active;} -RESOURCE TBUF r_clir_inactive_note { buf = text_clir_not_active;} -RESOURCE TBUF r_clip_active_note { buf = text_clip_active;} -RESOURCE TBUF r_clip_inactive_note { buf = text_clip_not_active;} -RESOURCE TBUF r_colr_active_note { buf = text_colr_active;} -RESOURCE TBUF r_colr_inactive_note { buf = text_colr_not_active;} -RESOURCE TBUF r_colp_active_note { buf = text_colp_active;} -RESOURCE TBUF r_colp_inactive_note { buf = text_colp_not_active;} - -//general error -RESOURCE TBUF r_password_error_note { buf = text_password_error;} -RESOURCE TBUF r_not_done_note { buf = text_not_done;} -RESOURCE TBUF r_request_cancelled_note { buf = text_unconfirmed;} -RESOURCE TBUF r_not_allowed { buf = text_not_allowed;} -RESOURCE TBUF r_services_in_conflict { buf = qtn_srvrq_info_confl;} -RESOURCE TBUF r_result_unknown { buf = text_result_unknown;} -RESOURCE TBUF r_no_service { buf = text_no_service;} -RESOURCE TBUF r_request_rejected { buf = text_request_rejected;} - -//----------------------------------------------------------------------------- -// resource for confirmation query -//----------------------------------------------------------------------------- -// -RESOURCE DIALOG r_confirmation_query - { - flags = EGeneralQueryFlags; - buttons = R_AVKON_SOFTKEYS_BACK; - items = - { - DLG_LINE - { - type = EAknCtQuery; - id = EGeneralQuery; - control = AVKON_CONFIRMATION_QUERY - { - layout = EConfirmationQueryLayout; - label = qtn_div_quest_number; - animation = R_QGN_NOTE_INFO_ANIM; - }; - } - }; - } - -//---------------------------------------------------- -// resources for softkeys -//---------------------------------------------------- -// -RESOURCE CBA r_psui_softkeys_number_back - { - buttons = - { - CBA_BUTTON {id = EAknSoftkeySelect; txt = qtn_div_softk_number;}, - CBA_BUTTON {id = EAknSoftkeyCancel; txt = text_softkey_back;}, - CBA_BUTTON {id = EAknSoftkeySelect; txt = qtn_div_softk_number;} - }; - } - -RESOURCE CBA r_psui_softkeys_details_back - { - buttons = - { - CBA_BUTTON {id = EAknSoftkeySelect; txt = qtn_div_softk_detail;}, - CBA_BUTTON {id = EAknSoftkeyCancel; txt = text_softkey_back;}, - CBA_BUTTON {id = EAknSoftkeySelect; txt = qtn_div_softk_detail;} - }; - } - -//---------------------------------------------------- -// resources for header texts in status lists -//---------------------------------------------------- -// -RESOURCE TBUF r_cw_status_heading { buf = qtn_cw_status_heading; } -RESOURCE TBUF r_barr_status_heading { buf = qtn_barr_heading_active; } - -//---------------------------------------------------- -// miscellanous new resources, added to the end so that -// binary compatibility is maintained -//---------------------------------------------------- -// -RESOURCE TBUF r_barring_active_note { buf = text_barring_active;} -RESOURCE TBUF r_net_info_lost { buf = text_net_info_lost;} -RESOURCE TBUF r_cw_active_no_bsc_note { buf = text_call_waiting_active;} - -//---------------------------------------------------- -// resources for CNAP inquiry -//---------------------------------------------------- -// -RESOURCE TBUF r_cnap_active { buf = qtn_cnap_active;} -RESOURCE TBUF r_cnap_inactive { buf = qtn_cnap_not_active;} - -//---------------------------------------------------- -// resources for Offline mode -//---------------------------------------------------- -// -RESOURCE TBUF r_offline_mode { buf = qtn_offline_not_possible;} -RESOURCE TBUF r_offline_mode_sap { buf = qtn_offline_not_possible_sap;} - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Data/psui_stub.SIS Binary file cellular/PsetNotesUi/Data/psui_stub.SIS has changed diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Data/psui_stub.pkg --- a/cellular/PsetNotesUi/Data/psui_stub.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +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: For packing psui stub component. -; -; psui_stub.pkg - -; Languages -&EN - -; Header -#{"psui"},(0x100059C6),1,0,0,TYPE=SA - -;Localised Vendor name -%{"Nokia"} - -;Unique Vendor name -:"Nokia" - -; Target - -""-"z:\sys\bin\psui.dll" -""-"z:\resource\psui.rsc" \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Group/Psui.mmp --- a/cellular/PsetNotesUi/Group/Psui.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Project specification file for the Phonesettings Notes Ui -* -*/ - -#include -#include - -// Capability assignment. -CAPABILITY CAP_GENERAL_DLL - -TARGET psui.dll -TARGETTYPE dll -UID 0x1000008d 0x100059C6 - -SOURCEPATH ../src -SOURCE psuibarringobs.cpp -SOURCE psuiwaitingobs.cpp -SOURCE psuidivertobs.cpp -SOURCE psuinotemaster.cpp -SOURCE psuiresourceloader.cpp -SOURCE psuicontainer.cpp -SOURCE psuicliobserver.cpp -SOURCE psuivariationproxy.cpp -#ifdef RD_PHONE_NG -SOURCE psuiquerydialog.cpp -#endif // RD_PHONE_NG -SOURCE psuireqobserver.cpp -SOURCE psuinotecontroller.cpp - -START RESOURCE ../data/psui.rss -HEADER -TARGETPATH RESOURCE_FILES_DIR -// Language definition -LANGUAGE_IDS - -END // RESOURCE - -SYSTEMINCLUDE ../../../inc - -USERINCLUDE . ../inc -MW_LAYER_SYSTEMINCLUDE - -LIBRARY bafl.lib -LIBRARY euser.lib -LIBRARY cone.lib -LIBRARY aknnotify.lib -LIBRARY eikcoctl.lib -LIBRARY avkon.lib -LIBRARY commonengine.lib -LIBRARY etelmm.lib -LIBRARY featmgr.lib -LIBRARY numbergrouping.lib -LIBRARY servicerequest.lib -LIBRARY centralrepository.lib -#ifdef RD_PHONE_NG -LIBRARY eikdlg.lib -LIBRARY eikcore.lib -#endif // RD_PHONE_NG - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Group/bld.inf --- a/cellular/PsetNotesUi/Group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Project information -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_MMPFILES -../group/psui.mmp - -PRJ_EXPORTS -../inc/psuiresourceloader.h |../../../inc/psuiresourceloader.h -../data/psui_stub.sis /epoc32/data/z/system/install/psui_stub.sis - -// IBY Files -../rom/psui.iby CORE_APP_LAYER_IBY_EXPORT_PATH(psui.iby) -../rom/psuiresources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(psuiresources.iby) - -// LOC files -../loc/psui.loc MW_LAYER_LOC_EXPORT_PATH(psui.loc) - - -//End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Inc/PsuiInternalConstants.h --- a/cellular/PsetNotesUi/Inc/PsuiInternalConstants.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2007 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: Constant values for the Phone Setting UI Notes -* -*/ - -#ifndef CPSUIINTERNALCONSTANTS_H -#define CPSUIINTERNALCONSTANTS_H - -// INCLUDES - -//CONSTANTS -const TInt KPSUINoBscGroup = 255; //unknown basic service group -const TInt KPSUIDetailsText = 64; //max. length of text in detailed note -const TText KLRMarker = 0x200E; //LRM marker - -// Phone Setting Notes UI's Note Controller Singleton UID -static const TUid KUidNoteControllerSingleton = { 0x0C }; - -_LIT( KPSUIListDivider, "\n" ); //list row divisor - -// Type of Call Forwarding request. -// EPsuiNoCF - not a call forwarding request -// EPsuiCFNry - call forwarding with number and timeout information -// EPsuiCFOther - call forwarding with number information -enum TCFType - { - EPsuiNoCF = 1, - EPsuiCFNry, - EPsuiCFOther - }; - -// Note types. -enum TPsuiNoteTypes - { - EPsuiConfirmationNote, - EPsuiWaitingNote, - EPsuiErrorNote, - EPsuiInformationNote - }; - -#endif //CPSUIINTERNALCONSTANTS_H diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Inc/PsuiNoteController.h --- a/cellular/PsetNotesUi/Inc/PsuiNoteController.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,161 +0,0 @@ -/* -* Copyright (c) 2007 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: -* Singleton class for controlling notes. -* -*/ - - -#ifndef PSUINOTECONTROLLER_H -#define PSUINOTECONTROLLER_H - -// INCLUDES -#include -#include "psuinotemaster.h" - -// CLASS DECLARATION - -class CPsuiNoteController : public CCoeStatic - { - public: - - /** - * Returns an instance of this class. When called for the first - * time, a new instance is created and returned. After that, - * calling InstanceL returns the same instance that was created - * earlier. - * - * @return A pointer to a CPsuiNoteController object - */ - static CPsuiNoteController* InstanceL(); - - /** - * Destructor. - */ - virtual ~CPsuiNoteController(); - - /** - * Shows the requested note. - * - * @param aType Type of note to be shown - * Error, confirmation, warning and waiting notes are supported. - * @param aResourceID Content text's resource ID for the note - */ - void ShowNoteL( TPsuiNoteTypes aType, TInt aResourceID ); - - /** - * Shows the basic service list assosiated with supplementary service - * activation or status check. - * - * @param aResourceHeading Heading for the list - * @param aBsc List of basic service groups - */ - void ShowBscListL( - TInt aResourceHeading, - TUint8 aBsc[KPSUIMaxBscNumber] ); - - /* - * Same as above, except intended for CF basic service lists. - * - * @param aResourceHeading Heading for the list - * @param aList List of basic service groups and their statuses - * and settings - * @param aCFType Type of call forwarding - * @param aIndex Index of list item user has selected - * @return user action ID, i.e. what kind of list to show next - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - TCFType ShowBscCFListL( - TInt aResourceHeading, - CMobilePhoneCFList& aList, - TCFType aCFType, - TInt& aIndex ); - - /** - * Shows detailed info about the selected basic service group. - * - * @param aCFType Type of Call Forwarding, defines softkeys - * @param aSetting List of basic service groups and their statuses - * and settings - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - void ShowCfInfoL( - TCFType& aCFType, - const RMobilePhone::TMobilePhoneCFInfoEntryV1& aSetting ); - - /* - * Returns correct resource ID based on error code. - * - * @param aErrorCode Error code for which the resource ID is needed - * @return Resource ID for the string text in the error note - */ - TInt SetErrorNoteResourceID ( const TInt aErrorCode ); - - /** - * Removes all notes that are being displayed by us. - */ - void RemoveNotesL(); - - /** - * Kills waiting note when the request is completed. - */ - void KillStaticNoteL(); - - /** - * Sets the connection to engine. - * This is needed to provide user the possibility to cancel - * pending requests. All the pointers are set with same - * command, if in the future the amount of parameters comes - * too large, redesigning might be worth doing. - * - * @param aWaitingEngine Reference to Phone Settings' object - * @param aBarringEngine Reference to Phone Settings' object - * @param aDivertEngine Reference to Phone Settings' object - * @param aCliEngine Reference to Phone Settings' object - */ - void SetEngineContacts( MPsetCallWaiting* aWaitingEngine, - MPsetCallBarring* aBarringEngine, - MPsetCallDiverting* aDivertEngine, - MPsetCli* aCliEngine); - - - private: - - /** - * Default constructor is private because we are using the - * singleton design pattern. - */ - CPsuiNoteController(); - - /** - * By default EPOC constructor is private. - */ - void ConstructL(); - - - private: - - // Note Master does the actual showing of notes and lists - CPsuiNoteMaster* iNote; - }; - -#endif // PSUINOTECONTROLLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Inc/PsuiNoteMaster.h --- a/cellular/PsetNotesUi/Inc/PsuiNoteMaster.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,214 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: -* CPsuiNoteMaster class is responsible for showing notes. It has also capa- -* bilities to show bsc list that is common for different features. -* Pending supplementary service request can be cancelled by the user. -* -*/ - - -#ifndef CPSUINOTEMASTER_H -#define CPSUINOTEMASTER_H - -// INCLUDES -#include -#include -#include "psuiconstants.h" -#include "psuiinternalconstants.h" -#include "psetcalldiverting.h" - -// FORWARD DECLARATIONS -class MPsetCallWaiting; -class MPsetCallBarring; -class MPsetCli; -class CAknWaitDialog; -class CAknGlobalNote; -class CAknPopupList; -class CAknSinglePopupMenuStyleListBox; -class CServiceRequest; -class CPsuiReqObserver; -class CPsuiQueryDialog; - -// CLASS DECLARATION - -/** -* CPsuiNoteMaster class is responsible for showing notes. It has also capa- -* bilities to show bsc list that is common for different features. -* Pending supplementary service request can be cancelled by the user. -* @lib psui.lib -* @since 1.0 -*/ -class CPsuiNoteMaster : public CBase - { - public: // Constructors and destructor - - /** - * Symbian OS two-phased constructor. - * - * @return Returns CPsuiNoteMaster-pointer. - */ - static CPsuiNoteMaster* NewL(); - - /** - * Destructor - */ - ~CPsuiNoteMaster(); - - private: - /** - * Symbian 2nd phase constructor. - */ - void ConstructL(); - - - public: //new - - /** - * Sets the connection to engine. - * This is needed to provide user the possibility to cancel - * pending requests. All the pointers are set with same - * command, if in the future the amount of parameters comes - * too large, redesigning might be worth doing. - * - * @param aWaitingEngine Reference to Phone Settings' object - * @param aBarringEngine Reference to Phone Settings' object - * @param aDivertEngine Reference to Phone Settings' object - * @param aCliEngine Reference to Phone Settings' object - */ - void SetEngineContacts( MPsetCallWaiting* aWaitingEngine, - MPsetCallBarring* aBarringEngine, - MPsetCallDiverting* aDivertEngine, - MPsetCli* aCliEngine); - - /** - * Shows the requested note. - * - * @param aType Type of note to be shown - * Error, confirmation, warning and waiting notes are supported. - * @param aResourceID Content text's resource ID for the note - */ - void ShowNoteL( TPsuiNoteTypes aType, TInt aResourceID ); - - /** - * Kills waiting note when the request is completed. - */ - void KillStaticNoteL(); - - /** - * Shows the basic service list assosiated with supplementary service - * activation or status check. - * - * @param aResourceHeading Heading for the list - * @param aBsc List of basic service groups - */ - void ShowBscListL( - TInt aResourceHeading, - TUint8 aBsc[KPSUIMaxBscNumber] ); - - /* - * Same as above, except intended for CF basic service lists. - * - * @param aResourceHeading Heading for the list - * @param aList List of basic service groups and their statuses - * and settings - * @param aCFType Type of call forwarding - * @param aIndex Index of list item user has selected - * @return user action ID, i.e. what kind of list to show next - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - TCFType ShowBscCFListL( - TInt aResourceHeading, - CMobilePhoneCFList& aList, - TCFType aCFType, - TInt& aIndex ); - - /** - * Shows detailed info about the selected basic service group. - * - * @param aCFType Type of Call Forwarding, defines softkeys - * @param aSetting List of basic service groups and their statuses - * and settings - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - void ShowCfInfoL( - TCFType& aCFType, - const RMobilePhone::TMobilePhoneCFInfoEntryV1& aSetting ); - - /** - * Shows request cancelled note. - */ - void ShowCancelRequestNoteL(); - - /* - * Returns correct resource ID based on error code. - * - * @param aErrorCode Error code for which the resource ID is needed - * @return Resource ID for the string text in the error note - */ - TInt SetErrorNoteResourceID ( const TInt aErrorCode ); - - /** - * Called when service request - * is cancelled by the user. - */ - void RequestNoteCancelledL(); - - protected: - - - private: //new - - void AppendCFNumber( TDes& aString, const TDesC& aNumber); - - void CreateListBoxL( - TCFType aCFType, CAknSinglePopupMenuStyleListBox* aList ); - - void KillRequestL(); - - void SetTitleL( const TInt& aResourceHeading ); - - HBufC* SetBsGroupLC( TUint8 aBscCode ); - - TBasicServiceGroups ChangeToGSM( const TInt& aBsc ); - - private: // Member variables - - // General Service request - CServiceRequest* iServiceRequest; - // Call Barrings engine - MPsetCallBarring* iBarringEngine; - // Reference to Call Waiting engine - MPsetCallWaiting* iWaitingEngine; - // Reference to Call Diverts engine - MPsetCallDiverting* iDivertEngine; - // Reference to Calling Identity engine - MPsetCli* iCliEngine; - // There is an active request - TBool iRequesting; - // Basic Service Groups list - CAknPopupList* iPopupList; - // Request note cancel observer - CPsuiReqObserver* iReqObserver; - // Diverts additional information query - CPsuiQueryDialog* iQuery; - - }; -#endif //CPSUINOTEMASTER_H diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Inc/PsuiQueryDialog.h --- a/cellular/PsetNotesUi/Inc/PsuiQueryDialog.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -/* -* Copyright (c) 2006 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: Query dialog for handling key events. -* -*/ - -/* -*/ - -#ifndef CPSUIQUERYDIALOG_H -#define CPSUIQUERYDIALOG_H - -// INCLUDES -#include - -NONSHARABLE_CLASS ( CPsuiQueryDialog ) : public CAknQueryDialog - { - public: // Constructors and destructor - - /** - * Symbian OS two-phased constructor. - * - * @return Returns CPsuiQueryDialog -pointer. - */ - static CPsuiQueryDialog* NewL( CAknQueryDialog::TTone aTone ); - - /** - * Constructor - */ - CPsuiQueryDialog( CAknQueryDialog::TTone aTone ); - - /** - * Destructor. - */ - virtual ~CPsuiQueryDialog(); - - - protected: - - /** - * From CCoeControl Handle key events. When a key event occurs, - * CONE calls this function for each control on the control stack, - * until one of them returns EKeyWasConsumed to indicate that it processed the key event. - * @param aKeyEvent The key event. - * @param aType The type of the event: EEventKey, EEventKeyUp or EEventKeyDown. - * @return Indicates whether or not the key event was used by this control. - */ - TKeyResponse OfferKeyEventL( const TKeyEvent& aKeyEvent, TEventCode aType ); - - /** - * From CEikdialog This function is called by the EIKON framework - * if the user activates a button in the button panel. - * It is not called if the Cancel button is activated, - * unless the EEikDialogFlagNotifyEsc flag is set. - * @param aButtonId The ID of the button that was activated - * @return Should return ETrue if the dialog should exit, and EFalse if it should not. - */ - TBool OkToExitL( TInt aCommand ); - }; - -#endif // CPSUIQUERYDIALOG_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Inc/PsuiReqObserver.h --- a/cellular/PsetNotesUi/Inc/PsuiReqObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* -* Copyright (c) 2006 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: Declaration of CPsuiReqObserver class. -* -*/ - - -#ifndef CPSUIREQOBSERVER_H -#define CPSUIREQOBSERVER_H - -// INCLUDES -#include -#include "psuinotemaster.h" - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* CPsuiReqObserver class is responsible for observe request note cancel. -* @since 3.2 -*/ -NONSHARABLE_CLASS ( CPsuiReqObserver ) : public CBase , public MServiceRequestObserver - { - public: // Constructors and destructor - - /** - * Symbian OS two-phased constructor. - * - */ - static CPsuiReqObserver* NewL( CPsuiNoteMaster& aNoteMaster ); - - /** - * Destructor - */ - ~CPsuiReqObserver(); - - private: - CPsuiReqObserver( CPsuiNoteMaster& aNoteMaster ); - - public: //new - - protected: - /** - * From MServiceRequestObserver. Called when service request - * is cancelled by the user. - */ - void MServiceRequestNoteCancelledL( TBool aCancelledWithEscape ); - - private: //new - - private: // Member variables - - CPsuiNoteMaster& iNoteMaster; - - }; -#endif //CPSUIREQOBSERVER_H diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Inc/PsuiResourceLoader.h --- a/cellular/PsetNotesUi/Inc/PsuiResourceLoader.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -/* -* Copyright (c) 2002,2003 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: Loads resources from file. -* -*/ - - -#ifndef CPSUIRESOURCELOADER_H -#define CPSUIRESOURCELOADER_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class RConeResourceLoader; - -// CLASS DECLARATION -/** -* A helper class for loading dll-specific resource files on demand. -* Searches and loads the specified resource file to the CONE environment -* (CCoeEnv) -object (accessible as iCoeEnv in CONE-related classes). -* After calling NewL the user can access the resources directly via -* the CONE environment. The resources in the file are accessible until -* the CPsuiResourceLoader object is destroyed. The resource file must be -* a well-formed UIKON resource file with NAME and RSS_SIGNATURE specified. -* -* @lib psui.lib -* @since 1.0 -*/ -class CPsuiResourceLoader : public CBase - { - public: // Constructors & destructor - - /** - * Symbian OS 1st phase constructor. Creates and returns a new - * resource loader object. - * Loads resource from any drive. If this function is succesful - * (doesn't leave) the resources in the file are usable through - * CCoeEnv. - * - * @return new object of this class holding a reference to the - * resource file. - * - * @exception KErrNotFound if the resource file is not found. - * @exception KErrNoMemory if out of memory. - * @exception error from CCoeEnv::AddResourceFileL. - */ - IMPORT_C static CPsuiResourceLoader* NewL(); - - /** - * Same as NewL, but leaves the created object onto the cleanup stack. - * @see NewL - */ - IMPORT_C static CPsuiResourceLoader* NewLC(); - - /* Destructor */ - ~CPsuiResourceLoader(); - - protected: // private constructor - - void ConstructL(); - - private: // member variables - - // CONE resource loader - RConeResourceLoader* iResourceLoader; - }; - -#endif // CPSUIRESOURCELOADER_H - -// End of File - diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Inc/PsuiVariationProxy.h --- a/cellular/PsetNotesUi/Inc/PsuiVariationProxy.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -/* -* Copyright (c) 2006 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: -* CPsuiVariationProxy class is proxy class for -* central repository variation -* (Call waiting/distinguish between not provisioned and not activated). -* -* -*/ - - -#ifndef PSUIVARIATIONPROXY_H -#define PSUIVARIATIONPROXY_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class CRepository; - -// CONSTANTS -const TUint KCallWaitingDistiquishNotProvisioned = 0x00000001; - -// CLASS DECLARATION -/** -* CPsuiVariationProxy class is proxy class for central repository variation -* @lib psui.lib -* @since 1.0 -*/ -NONSHARABLE_CLASS ( CPSuiVariationProxy ): public CBase -{ -public: //constructor & destructor - - /* Symbian OS 2-phase Constructor. */ - static CPSuiVariationProxy* NewL(); - - /* Destructor */ - ~CPSuiVariationProxy(); - -public: - /** - * Check from member variable 'iFeatures' is the requested feature active. - * - * @param aFeature is uid for used central repository variable. - * @return returns TBool type ETrue/EFalse is current feature enabled or not - */ - - TBool FeatureEnabled( TUint aFeature ) const; - -private: - - /** - * Constructor - * - * Open CenRep, read data into 'iFeatures' and close CenRep - * - */ - void ConstructL(); - -private: - /* Default constructor */ - CPSuiVariationProxy(); -private: - // Saves cen rep data. Readed in ConstructL() - TInt iFeatures; - -}; - -#endif diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Rom/Psui.iby --- a/cellular/PsetNotesUi/Rom/Psui.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,28 +0,0 @@ -/* -* Copyright (c) 2005 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: IBY file for psui stub compoment. -* -*/ - - -#ifndef __PSUI_IBY__ -#define __PSUI_IBY__ - -REM PhoneSettings Notes UI - -file=ABI_DIR\BUILD_DIR\psui.dll SHARED_LIB_DIR\psui.dll - -data=ZSYSTEM\install\psui_stub.sis System\Install\psui_stub.sis - -#endif diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Rom/PsuiResources.iby --- a/cellular/PsetNotesUi/Rom/PsuiResources.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2005 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: IBY file for psui resources. -* -*/ - - -#ifndef __PSUI_RESOURCES_IBY__ -#define __PSUI_RESOURCES_IBY__ - -//Resource file(s) for Psui - -data=DATAZ_\RESOURCE_FILES_DIR\psui.rsc RESOURCE_FILES_DIR\psui.rsc - -#endif \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Src/PsuiBarringObs.cpp --- a/cellular/PsetNotesUi/Src/PsuiBarringObs.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,174 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Shows notes related to Call Barrings operations. -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include - -#include "psuiinternalconstants.h" -#include "psuinotecontroller.h" - -// MEMBER FUNCTIONS -// --------------------------------------------------------------------------- -// Symbian OS two-phased Constructor. -// --------------------------------------------------------------------------- -EXPORT_C CPsuiBarringObs* CPsuiBarringObs::NewL( CPsuiContainer& aContainer ) - { - CPsuiBarringObs* self = new( ELeave ) CPsuiBarringObs; - self->SetContainer( aContainer ); - return self; - } - -// --------------------------------------------------------------------------- -// Sets container. -// --------------------------------------------------------------------------- -void CPsuiBarringObs::SetContainer( CPsuiContainer& aContainer ) - { - iContainer = &aContainer; - } - -// --------------------------------------------------------------------------- -// Handles changing of barring mode. -// --------------------------------------------------------------------------- -void CPsuiBarringObs::HandleBarringModeChangedL( TBarringProgram /* aType */, - TBarringStatus aStatus, - TBool aPlural ) - { - if ( aStatus == EBarringStatusActive ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - R_CB_ACTIVE_NOTE ); - } - else if ( aStatus == EBarringStatusInactive && !aPlural ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - R_CB_CANCEL_NOTE ); - } - - else if ( aStatus == EBarringStatusInactive && aPlural ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - R_CB_PLURAL_CANCEL_NOTE ); - } - } - -// --------------------------------------------------------------------------- -// Handles the get status notifications. -// --------------------------------------------------------------------------- -void CPsuiBarringObs::HandleBarringModeStatusL( TUint8 aBsc[KPSUIMaxBscNumber], - TBarringStatus aStatus ) - { - if ( aStatus != EBarringStatusActive ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - R_BARRING_NOT_ACTIVE_NOTE ); - } - else - { - //if no bsc-list, show "Barring active" note - if ( aBsc[0] == KPSUINoBscGroup ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - R_BARRING_ACTIVE_NOTE ); - } - //otherwise show bsc-list - else - { - CPsuiNoteController::InstanceL()->ShowBscListL( - R_BARR_STATUS_HEADING, - aBsc ); - } - } - } - -// --------------------------------------------------------------------------- -// Handles showing of error notes. -// --------------------------------------------------------------------------- -void CPsuiBarringObs::HandleBarringErrorL( TInt aReason ) - { - if ( aReason != KErrSatControl ) - { - TInt errorResource( - CPsuiNoteController::InstanceL()->SetErrorNoteResourceID( aReason ) ); - CPsuiNoteController::InstanceL()->ShowNoteL( EPsuiErrorNote, errorResource ); - } - } - -// --------------------------------------------------------------------------- -// Handles requesting notes (show/hide). -// --------------------------------------------------------------------------- -void CPsuiBarringObs::HandleCBRequestingL( TBool aOngoing, TBool aInterrupted ) - { - if ( aInterrupted ) - { - // if interrupted, means that incoming call and all notes must - // be immediately destroyed. - CPsuiNoteController::InstanceL()->RemoveNotesL(); - return; - } - if ( aOngoing ) - { - // show requesting note - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiWaitingNote, - -1 ); - } - else - { - // hide requesting note - CPsuiNoteController::InstanceL()->KillStaticNoteL(); - } - } - -// --------------------------------------------------------------------------- -// Handles call barring password notes. -// --------------------------------------------------------------------------- -void CPsuiBarringObs::CbPasswordChangedL( TBool aSuccess ) - { - if ( aSuccess ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - R_PASSWORD_CHANGED_NOTE ); - } - else - { - HandleBarringErrorL( KErrGsmSSNegativePasswordCheck ); - } - } - -// --------------------------------------------------------------------------- -// Sets engine contact for observer. -// --------------------------------------------------------------------------- -void CPsuiBarringObs::SetEngineContact( MPsetCallBarring* aBarringEngine ) - { - CPsuiNoteController::InstanceL()->SetEngineContacts( - NULL, - aBarringEngine, - NULL, - NULL ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Src/PsuiCliObserver.cpp --- a/cellular/PsetNotesUi/Src/PsuiCliObserver.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,189 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Shows notes related to Call Identity operations. -* -*/ - - -// INCLUDE FILES -#include -#include -#include - -#include "psuicliobserver.h" -#include "psuicontainer.h" -#include "psuinotecontroller.h" - -// MEMBER FUNCTIONS - -// --------------------------------------------------------------------------- -// Symbian OS two-phased constructor. -// --------------------------------------------------------------------------- -EXPORT_C CPsuiCliObserver* CPsuiCliObserver::NewL( CPsuiContainer& aContainer ) - { - CPsuiCliObserver* self = new( ELeave ) CPsuiCliObserver; - CleanupStack::PushL( self ); - // Sets up TLS, must be done before FeatureManager is used. - FeatureManager::InitializeLibL(); - CleanupStack::Pop( self ); - self->SetContainer( aContainer ); - return self; - } - -// --------------------------------------------------------------------------- -// Handles calling identity notes. -// --------------------------------------------------------------------------- -void CPsuiCliObserver::CliInformationL( TPsuiCli aType ) - { - TInt resourceID = R_NOT_DONE_NOTE; - switch( aType ) - { - case EPsuiClirOn: - resourceID = R_CLIR_ACTIVE_NOTE; - break; - case EPsuiClirOff: - resourceID = R_CLIR_INACTIVE_NOTE; - break; - case EPsuiClipOn: - resourceID = R_CLIP_ACTIVE_NOTE; - break; - case EPsuiClipOff: - resourceID = R_CLIP_INACTIVE_NOTE; - break; - case EPsuiColrOn: - resourceID = R_COLR_ACTIVE_NOTE; - break; - case EPsuiColrOff: - resourceID = R_COLR_INACTIVE_NOTE; - break; - case EPsuiColpOn: - resourceID = R_COLP_ACTIVE_NOTE; - break; - case EPsuiColpOff: - resourceID = R_COLP_INACTIVE_NOTE; - break; - case EPsuiCliUnknown: - default: - resourceID = R_NOT_DONE_NOTE; - break; - } - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - resourceID ); - } - -// --------------------------------------------------------------------------- -// Handles requesting notes (show/hide). -// --------------------------------------------------------------------------- -void CPsuiCliObserver::HandleCliRequestingL( TBool aOngoing, TBool aInterrupted ) - { - if ( aInterrupted ) - { - CPsuiNoteController::InstanceL()->RemoveNotesL(); - } - else - { - if ( aOngoing ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiWaitingNote, -1 ); - } - else - { - CPsuiNoteController::InstanceL()->KillStaticNoteL(); - } - } - } - -// --------------------------------------------------------------------------- -// Sets engine contact for observer. -// --------------------------------------------------------------------------- -void CPsuiCliObserver::SetEngineContact( MPsetCli* aEngine ) - { - CPsuiNoteController::InstanceL()->SetEngineContacts( - NULL, - NULL, - NULL, - aEngine ); - } - -// --------------------------------------------------------------------------- -// Handles Cnap status requests. -// --------------------------------------------------------------------------- -void CPsuiCliObserver::HandleCnapStatusL( TInt - aStatus - ) - { - if ( FeatureManager::FeatureSupported( KFeatureIdPhoneCnap ) ) - { - switch ( aStatus ) - { - case RMobilePhone::EIdServiceActivePermanent: - case RMobilePhone::EIdServiceActiveDefaultAllowed: - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - R_CNAP_ACTIVE ); - break; - case RMobilePhone::EIdServiceActiveDefaultRestricted: - case RMobilePhone::EIdServiceNotProvisioned: - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - R_CNAP_INACTIVE ); - break; - default: - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - R_NOT_DONE_NOTE ); - break; - } - } - else - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - R_NOT_DONE_NOTE ); - } - } - -// --------------------------------------------------------------------------- -// Handles errors. -// --------------------------------------------------------------------------- -void CPsuiCliObserver::HandleCliErrorL( TInt aError ) - { - if ( aError != KErrSatControl ) - { - TInt errorResource = - CPsuiNoteController::InstanceL()->SetErrorNoteResourceID( aError ); - CPsuiNoteController::InstanceL()->ShowNoteL( EPsuiErrorNote, errorResource ); - } - } - -// --------------------------------------------------------------------------- -// Sets container. -// --------------------------------------------------------------------------- -void CPsuiCliObserver::SetContainer( CPsuiContainer& aContainer ) - { - iContainer = &aContainer; - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -CPsuiCliObserver::~CPsuiCliObserver() - { - //Remove FeatureManager - FeatureManager::UnInitializeLib(); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Src/PsuiContainer.cpp --- a/cellular/PsetNotesUi/Src/PsuiContainer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Container object for the PSetNotes objects. -* -*/ - - -//INCLUDES -#include - -#include "psuiresourceloader.h" - -// --------------------------------------------------------------------------- -// Symbian OS two-phased constructor. -// --------------------------------------------------------------------------- -EXPORT_C CPsuiContainer* CPsuiContainer::NewL() - { - CPsuiContainer* self = new ( ELeave ) CPsuiContainer; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// Symbian OS 2nd phase constructor. -// --------------------------------------------------------------------------- -void CPsuiContainer::ConstructL() - { - iAppEngineResourceLoader = CPsuiResourceLoader::NewL(); - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -CPsuiContainer::~CPsuiContainer() - { - delete iAppEngineResourceLoader; - } - -// --------------------------------------------------------------------------- -// Creates cli observer. Ownership of the class is transferred. -// --------------------------------------------------------------------------- -EXPORT_C CPsuiCliObserver* CPsuiContainer::CreateCliObsL() - { - return CPsuiCliObserver::NewL( *this ); - } - -// --------------------------------------------------------------------------- -// Creates call waiting observer. Ownership of the class is transferred. -// --------------------------------------------------------------------------- -EXPORT_C CPsuiWaitingObs* CPsuiContainer::CreateCWObsL() - { - return CPsuiWaitingObs::NewL( *this ); - } - -// --------------------------------------------------------------------------- -// Creates call forward observer. Ownership of the class is transferred. -// --------------------------------------------------------------------------- -EXPORT_C CPsuiDivertObs* CPsuiContainer::CreateCFObsL() - { - return CPsuiDivertObs::NewL( *this ); - } - -// --------------------------------------------------------------------------- -// Creates call barring observer. Ownership of the class is transferred. -// --------------------------------------------------------------------------- -EXPORT_C CPsuiBarringObs* CPsuiContainer::CreateCBObsL() - { - return CPsuiBarringObs::NewL( *this ); - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Src/PsuiDivertObs.cpp --- a/cellular/PsetNotesUi/Src/PsuiDivertObs.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,211 +0,0 @@ -/* -* Copyright (c) 2002 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: Shows notes and lists for Divert supplementary service -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include - -#include "psuinotecontroller.h" - - -// --------------------------------------------------------------------------- -// Symbian OS two-phased constructor. -// --------------------------------------------------------------------------- -EXPORT_C CPsuiDivertObs* CPsuiDivertObs::NewL( CPsuiContainer& aContainer ) - { - CPsuiDivertObs* self = new ( ELeave ) CPsuiDivertObs; - self->SetContainer( aContainer ); - return self; - } - -// --------------------------------------------------------------------------- -// Sets container. -// --------------------------------------------------------------------------- -void CPsuiDivertObs::SetContainer( CPsuiContainer& aContainer ) - { - iContainer = &aContainer; - } - -// --------------------------------------------------------------------------- -// Handles changing of diverting. -// --------------------------------------------------------------------------- -void CPsuiDivertObs::HandleDivertingChangedL( - const TCallDivertSetting& aSetting, - TBool aPlural ) - { - switch( aSetting.iStatus ) - { - case EDivertingStatusActive: - if ( aPlural ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, R_PLURAL_ACTIVATE_NOTE ); - } - else - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, R_ACTIVATE_NOTE ); - } - - // Diverting calls does not affect Internet calls - if ( FeatureManager::FeatureSupported( KFeatureIdCommonVoip ) && - aSetting.iServiceGroup == EServiceGroupVoice ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiInformationNote, R_VOIP_DIVERT_NOT_SUPPORTED ); - } - break; - case EDivertingStatusNotRegistered: - case EDivertingStatusInactive: - if ( aPlural ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, R_PLURAL_CANCEL_NOTE ); - } - else - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, R_CANCEL_NOTE ); - } - break; - case EDivertingStatusNotProvisioned: - case EDivertingStatusUnknown: - default: - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, R_NOT_DONE_NOTE ); - } - } - -// --------------------------------------------------------------------------- -// Handles the get status notifications. -// --------------------------------------------------------------------------- -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CPsuiDivertObs::HandleDivertingStatusL( CMobilePhoneCFList& aSetting, - TBool /*aPlural*/ ) - { - TInt index = 0; - TCFType action = EPsuiCFOther; - - //check the first item - RMobilePhone::TMobilePhoneCFInfoEntryV1 cfInfo; - cfInfo = aSetting.GetEntryL( index ); - switch( cfInfo.iStatus ) - { - case RMobilePhone::ECallForwardingStatusNotActive: - CPsuiNoteController::InstanceL()->ShowBscCFListL( - R_TEXT_DIVERT_INACTIVE, - aSetting, - EPsuiNoCF, - index ); - break; - case RMobilePhone::ECallForwardingStatusActive: - while ( action != EPsuiNoCF ) - { - if ( cfInfo.iTimeout > 0 ) //cfnry involved - { - action = EPsuiCFNry; - } - else // other type of cf - { - action = EPsuiCFOther; - } - action = CPsuiNoteController::InstanceL()->ShowBscCFListL( - R_TEXT_DIVERT_ACTIVE, - aSetting, - action, - index ); - - if ( action != EPsuiNoCF ) //EPsuiCFNry or EPsuiCFOther - { - cfInfo = aSetting.GetEntryL( index ); - // display details-view with time and number - CPsuiNoteController::InstanceL()->ShowCfInfoL( action, cfInfo ); - } - } - break; - case RMobilePhone::ECallForwardingStatusNotRegistered: - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - R_NOT_ACTIVE_NOTE ); - break; - case RMobilePhone::ECallForwardingStatusNotProvisioned: - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - R_NOT_ALLOWED ); - break; - default: - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, - R_NOT_DONE_NOTE ); - break; - } - } - -// --------------------------------------------------------------------------- -// Handles showing of error notes. -// --------------------------------------------------------------------------- -void CPsuiDivertObs::HandleDivertingErrorL( TInt aReason ) - { - if ( aReason != KErrSatControl ) - { - TInt errorResource = - CPsuiNoteController::InstanceL()->SetErrorNoteResourceID( aReason ); - CPsuiNoteController::InstanceL()->ShowNoteL( EPsuiErrorNote, errorResource ); - } - } - -// --------------------------------------------------------------------------- -// Handles requesting notes (show/hide). -// --------------------------------------------------------------------------- -void CPsuiDivertObs::HandleCFRequestingL( TBool aTrue, TBool aInterrupted ) - { - if ( aInterrupted ) - { - CPsuiNoteController::InstanceL()->RemoveNotesL(); - return; - } - if ( aTrue ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiWaitingNote, -1 ); - } - else - { - CPsuiNoteController::InstanceL()->KillStaticNoteL(); - } - } - -// --------------------------------------------------------------------------- -// Sets engine contact for observer. -// --------------------------------------------------------------------------- -void CPsuiDivertObs::SetEngineContact( MPsetCallDiverting* aDivertEngine ) - { - CPsuiNoteController::InstanceL()->SetEngineContacts( - NULL, - NULL, - aDivertEngine, - NULL ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Src/PsuiNoteController.cpp --- a/cellular/PsetNotesUi/Src/PsuiNoteController.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -/* -* Copyright (c) 2007 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: Implementation of CPsuiNoteController class. -* -*/ - - -// INCLUDE FILES -#include "psuinotecontroller.h" -#include "psuiinternalconstants.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CPsuiNoteController::CPsuiNoteController -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPsuiNoteController::CPsuiNoteController() : CCoeStatic( KUidNoteControllerSingleton ) - { - } - -// Destructor -CPsuiNoteController::~CPsuiNoteController() - { - delete iNote; - iNote = NULL; - } - -// --------------------------------------------------------- -// CPsuiNoteController::InstanceL -// (other items were commented in a header). -// --------------------------------------------------------- -// -CPsuiNoteController* CPsuiNoteController::InstanceL() - { - CPsuiNoteController* instance = static_cast( - CCoeEnv::Static( KUidNoteControllerSingleton ) ); - if ( !instance ) - { - instance = new ( ELeave ) CPsuiNoteController; - CleanupStack::PushL( instance ); - instance->ConstructL(); - CleanupStack::Pop( instance ); - } - return instance; - } - -// ----------------------------------------------------------------------------- -// CPsuiNoteController::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPsuiNoteController::ConstructL() - { - iNote = CPsuiNoteMaster::NewL(); - } - -// --------------------------------------------------------- -// CPsuiNoteController::ShowNoteL -// --------------------------------------------------------- -// -void CPsuiNoteController::ShowNoteL( TPsuiNoteTypes aType, TInt aResourceID ) - { - iNote->ShowNoteL( aType, aResourceID ); - } - -// --------------------------------------------------------- -// CPsuiNoteController::ShowBscListL -// --------------------------------------------------------- -// -void CPsuiNoteController::ShowBscListL( TInt aResourceHeading, TUint8 aBsc[KPSUIMaxBscNumber] ) - { - iNote->ShowBscListL( aResourceHeading, aBsc ); - } - -// --------------------------------------------------------- -// CPsuiNoteController::SetErrorNoteResourceID -// --------------------------------------------------------- -// -TInt CPsuiNoteController::SetErrorNoteResourceID ( const TInt aErrorCode ) - { - return iNote->SetErrorNoteResourceID( aErrorCode ); - } - -// --------------------------------------------------------- -// CPsuiNoteController::RemoveNotesL -// --------------------------------------------------------- -// -void CPsuiNoteController::RemoveNotesL() - { - delete iNote; - iNote = NULL; - iNote = CPsuiNoteMaster::NewL(); - } - -// --------------------------------------------------------- -// CPsuiNoteController::KillStaticNoteL -// --------------------------------------------------------- -// -void CPsuiNoteController::KillStaticNoteL() - { - iNote->KillStaticNoteL(); - } - -// --------------------------------------------------------- -// CPsuiNoteController::SetEngineContacts -// --------------------------------------------------------- -// -void CPsuiNoteController::SetEngineContacts( MPsetCallWaiting* aWaitingEngine, - MPsetCallBarring* aBarringEngine, MPsetCallDiverting* aDivertEngine, - MPsetCli* aCliEngine ) - { - iNote->SetEngineContacts( aWaitingEngine, aBarringEngine, - aDivertEngine, aCliEngine ); - } - -// --------------------------------------------------------- -// CPsuiNoteController::ShowBscCFListL -// --------------------------------------------------------- -// -TCFType CPsuiNoteController::ShowBscCFListL( TInt aResourceHeading, - CMobilePhoneCFList& aList, TCFType aCFType, TInt& aIndex ) - { - return iNote->ShowBscCFListL( aResourceHeading, aList, - aCFType, aIndex ); - } - -// --------------------------------------------------------- -// CPsuiNoteController::ShowCfInfoL -// --------------------------------------------------------- -// -void CPsuiNoteController::ShowCfInfoL( TCFType& aCFType, - const RMobilePhone::TMobilePhoneCFInfoEntryV1& aSetting ) - { - iNote->ShowCfInfoL( aCFType, aSetting ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Src/PsuiNoteMaster.cpp --- a/cellular/PsetNotesUi/Src/PsuiNoteMaster.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,772 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Note master class shows the actual notes. -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "psuiinternalconstants.h" -#include "psuinotemaster.h" -#include "psuireqobserver.h" -#include "psuiquerydialog.h" - -#include -#include -// MACROS - -#ifdef _DEBUG - -#define RDEBUG(X) RDebug::Print(X); -#define RDEBUG_INT(X,Y) RDebug::Print(X,Y); -#else -#define RDEBUG(X) -#define RDEBUG_INT(X,Y) -#endif - -// MEMBER FUNCTIONS - -// --------------------------------------------------------------------------- -// Symbian OS two-phased constructor. -// --------------------------------------------------------------------------- -CPsuiNoteMaster* CPsuiNoteMaster::NewL() - { - CPsuiNoteMaster* self = new( ELeave ) CPsuiNoteMaster; - CleanupStack::PushL( self ); - // Sets up TLS, must be done before FeatureManager is used. - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// CPsuiNoteMaster::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPsuiNoteMaster::ConstructL() - { - iReqObserver = CPsuiReqObserver::NewL( *this ); - FeatureManager::InitializeLibL(); - - iServiceRequest = CServiceRequest::NewL( *iReqObserver ); - - } - - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -CPsuiNoteMaster::~CPsuiNoteMaster() - { - //Remove FeatureManager - FeatureManager::UnInitializeLib(); - - delete iServiceRequest; - - delete iReqObserver; - - if ( iQuery ) - { - delete iQuery; - iQuery = NULL; - } - - if ( iPopupList ) - { - iPopupList->CancelPopup(); - iPopupList = NULL; - } - - iBarringEngine = NULL; - iDivertEngine = NULL; - iWaitingEngine = NULL; - iCliEngine = NULL; - - } - -// --------------------------------------------------------------------------- -// CPsuiNoteMaster::SetEngineContacts() -// --------------------------------------------------------------------------- -void CPsuiNoteMaster::SetEngineContacts( MPsetCallWaiting* aWaitingEngine, - MPsetCallBarring* aBarringEngine, - MPsetCallDiverting* aDivertEngine, - MPsetCli* aCliEngine ) - { - iWaitingEngine = aWaitingEngine; - iBarringEngine = aBarringEngine; - iDivertEngine = aDivertEngine; - iCliEngine = aCliEngine; - } - -// --------------------------------------------------------------------------- -// CPsuiNoteMaster::ShowNoteL() -// --------------------------------------------------------------------------- -void CPsuiNoteMaster::ShowNoteL( TPsuiNoteTypes aType, TInt aResourceID ) - { - if ( aResourceID < 0 ) - { - if ( aType == EPsuiWaitingNote ) - { - iRequesting = ETrue; - iServiceRequest->StartL( KNullDesC ); - } - return; - } - - HBufC* string = StringLoader::LoadLC( aResourceID ); - - switch ( aType ) - { - case EPsuiConfirmationNote: - { - iServiceRequest->ShowCompletionNoteL( - ETrue, // aShowNote - KErrNone, // aError - CServiceRequest::ESerqGlobalConfirmationNote, // aNoteType - string->Des() ); // aText - break; - } - case EPsuiErrorNote: - { - CServiceRequest::TSerqNoteType errorType = CServiceRequest::ESerqGlobalErrorNote; - if ( aResourceID == R_NO_SERVICE || - aResourceID == R_NOT_ALLOWED ) - { - errorType = CServiceRequest::ESerqGlobalInformationNote; - } - iServiceRequest->ShowCompletionNoteL( - ETrue, - KErrNone, - errorType, - string->Des() ); - break; - } - case EPsuiInformationNote: - { - iServiceRequest->ShowCompletionNoteL( - ETrue, - KErrNone, - CServiceRequest::ESerqGlobalInformationNote, - string->Des() ); - } - default: - break; - } - CleanupStack::PopAndDestroy( string ); - string = NULL; - } - -// --------------------------------------------------------------------------- -// CPsuiNoteMaster::KillStaticNoteL() -// --------------------------------------------------------------------------- -void CPsuiNoteMaster::KillStaticNoteL() - { - if ( iRequesting ) - { - delete iServiceRequest; - iServiceRequest = NULL; - iServiceRequest = CServiceRequest::NewL( *iReqObserver ); - iRequesting =EFalse; - } - - } - -// --------------------------------------------------------------------------- -// CPsuiNoteMaster::KillRequestL() -// --------------------------------------------------------------------------- -void CPsuiNoteMaster::KillRequestL() - { - if ( iWaitingEngine ) - { - iWaitingEngine->CancelProcess(); - } - else if ( iBarringEngine ) - { - iBarringEngine->CancelCurrentRequest(); - } - else if ( iDivertEngine ) - { - iDivertEngine->CancelCurrentRequest(); - } - else if ( iCliEngine ) - { - ShowCancelRequestNoteL(); - iCliEngine->CancelAll(); - } - } -// --------------------------------------------------------------------------- -// CPsuiNoteMaster::ShowBscListL() -// --------------------------------------------------------------------------- -void CPsuiNoteMaster::ShowBscListL( TInt aResourceHeading, - TUint8 aBsc[KPSUIMaxBscNumber] ) - { - if ( !iWaitingEngine && - !iBarringEngine && - !iDivertEngine && - !iCliEngine ) - { - return; - } - - if ( aResourceHeading < 0 ) - { - User::Leave( KErrArgument ); - } - - CAknSinglePopupMenuStyleListBox* list = - new ( ELeave ) CAknSinglePopupMenuStyleListBox; - CleanupStack::PushL( list ); - - CreateListBoxL( EPsuiNoCF, list ); - - CDesCArray* items = new ( ELeave ) CDesCArrayFlat( KPSUIMaxBscNumber ); - CleanupStack::PushL( items ); - - CTextListBoxModel* model = list->Model(); - if ( !model ) - { - User::Leave( KErrGeneral ); - } - model->SetItemTextArray( items ); - model->SetOwnershipType( ELbmOwnsItemArray ); - CleanupStack::Pop( items ); // listbox model now owns this - - SetTitleL( aResourceHeading ); - - TUint8 numberOfBsc = 0; - HBufC* string = NULL; - while ( ( aBsc[numberOfBsc] != KPSUINoBscGroup ) && - ( numberOfBsc < KPSUIMaxBscNumber ) ) - { - TUint8 bscCode = aBsc[numberOfBsc]; - string = SetBsGroupLC( bscCode ); - - if ( string ) - { - items->AppendL( *string ); - CleanupStack::PopAndDestroy( string ); - } - numberOfBsc++; - } - - iPopupList->ExecuteLD(); - iPopupList = NULL; - CleanupStack::PopAndDestroy( list ); - } - -// --------------------------------------------------------------------------- -// Shows additional divert information. -// --------------------------------------------------------------------------- -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CPsuiNoteMaster::ShowCfInfoL( TCFType& aCFType, - const RMobilePhone::TMobilePhoneCFInfoEntryV1& aSetting ) - { - if ( aCFType == EPsuiNoCF ) - { - User::Leave( KErrArgument ); - } - - // Get base text and set phone number into it. - // Note that two characters are reserved for LRM markers. - TBuf string; - StringLoader::Load( string, R_TO_NUMBER ); - string.Append( KPSUIListDivider ); - - TInt pngErr( KErrNone ); - TInt pngSupported( 0 ); - CRepository* repository = CRepository::NewL( KCRUidNumberGrouping ); - pngErr = repository->Get( KNumberGrouping, pngSupported ); - delete repository; - - if ( KErrNone == pngErr && pngSupported != 0 ) - { - CPNGNumberGrouping* numberGrouping = - CPNGNumberGrouping::NewL( KPSUIMaxPSUIItemLength ); - CleanupStack::PushL( numberGrouping ); - - //Check that number fits (with or w/o number formatting). - if ( (aSetting.iNumber.iTelNumber.Length() + 2) <= numberGrouping->MaxDisplayLength() ) - { - numberGrouping->Set( aSetting.iNumber.iTelNumber ); - AppendCFNumber( string, numberGrouping->FormattedNumber() ); - } - else - { - AppendCFNumber( string, aSetting.iNumber.iTelNumber ); - } - CleanupStack::PopAndDestroy( numberGrouping ); - } - else - { - AppendCFNumber( string, aSetting.iNumber.iTelNumber ); - } - - //AVKON utils check whether or not conversion is needed - AknTextUtils::DisplayTextLanguageSpecificNumberConversion( string ); - string.Append( KPSUIListDivider ); - - // Add delay time. - if ( aCFType == EPsuiCFNry ) - { - //Header + divider. - HBufC* delayTime = StringLoader::LoadLC( R_DELAY_TIME ); - string.Append( *delayTime ); - CleanupStack::PopAndDestroy( delayTime ); - string.Append( KPSUIListDivider ); - - TBuf writeBuffer; - HBufC* readBuffer = StringLoader::LoadLC( R_TEXT_SS_DETAIL_DELAY_SEC ); - // format time, -1 means that there is no index in the key string. - StringLoader::Format( writeBuffer, *readBuffer, -1, aSetting.iTimeout ); - CleanupStack::PopAndDestroy( readBuffer ); - - string.Append( writeBuffer ); - } - - iQuery = CPsuiQueryDialog::NewL( CAknQueryDialog::ENoTone ); - TInt command( iQuery->ExecuteLD( R_CONFIRMATION_QUERY, string ) ); - if( command == EKeyNo ) - { - // End -key was pressed so don't relaunch previous query - aCFType = EPsuiNoCF; - } - iQuery = NULL; - } - -// --------------------------------------------------------------------------- -// Shows request cancelled note. -// --------------------------------------------------------------------------- -void CPsuiNoteMaster::ShowCancelRequestNoteL() - { - if ( iRequesting ) - { - ShowNoteL( EPsuiInformationNote, R_REQUEST_CANCELLED_NOTE ); - } - } - -// --------------------------------------------------------------------------- -// Returns resource ID for the most common error codes. -// --------------------------------------------------------------------------- -// -TInt CPsuiNoteMaster::SetErrorNoteResourceID ( const TInt aErrorCode ) - { - RDEBUG_INT( _L("PSUI.SetErrorNoteResourceID - code %d: "), aErrorCode ) - TInt resourceID = KErrNone; - switch ( aErrorCode ) - { - case KErrGsmSSSubscriptionViolation: - resourceID = R_CONTACT_SERVICE_NOTE; - break; - case KErrGsmSSUnknownSubscriber: - case KErrGsmSSAbsentSubscriber: - case KErrGsmSSIllegalOperation: - case KErrGsmSSIllegalSubscriber: - case KErrGsmSSIllegalEquipment: - case KErrGsmSSCallBarred: - case KErrGsmSSDataMissing: - resourceID = R_NOT_ALLOWED; - break; - case KErrGsmSSIncompatibility: - resourceID = R_SERVICES_IN_CONFLICT; - break; - case KErrGsmSSSystemFailure: - resourceID = R_RESULT_UNKNOWN; - break; - case KErrGsmSSUnexpectedDataValue: - case KErrGsmSSResourcesUnavailable: - resourceID = R_REQUEST_REJECTED; - break; - case KErrGsmSSNegativePasswordCheck: - case KErrGsmSSPasswordRegistrationFailure: - resourceID = R_PASSWORD_ERROR_NOTE; - break; - case KErrGsmSSPasswordAttemptsViolation: - resourceID = R_PASSWORD_BLOCKED_NOTE; - break; - case KErrGsmSMSNoNetworkService: - case KErrGsmNoService: - resourceID = R_NO_SERVICE; - break; - case KErrSsActivationDataLost: - resourceID = R_NET_INFO_LOST; - break; - case KErrGsmOfflineOpNotAllowed: - if ( FeatureManager::FeatureSupported( KFeatureIdOfflineMode ) ) - { - TInt value = EBTSapNotConnected; - RProperty::Get( - KPSUidBluetoothSapConnectionState, - KBTSapConnectionState, - value ); - if ( value == EBTSapConnected ) - { - resourceID = R_OFFLINE_MODE_SAP; - } - else - { - resourceID = R_OFFLINE_MODE; - } - } - break; - default: - resourceID = R_NOT_DONE_NOTE; - break; - } - return resourceID; - } - -// --------------------------------------------------------------------------- -// CPsuiNoteMaster::ShowBscCFListL() -// --------------------------------------------------------------------------- -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -TCFType CPsuiNoteMaster::ShowBscCFListL( TInt aResourceHeading, - CMobilePhoneCFList& aList, - TCFType aCFType, - TInt& aIndex ) - { - //note master was deleted - do not create another bsc-list - if ( !iWaitingEngine && - !iBarringEngine && - !iDivertEngine && - !iCliEngine ) - { - return EPsuiNoCF; - } - - if ( aResourceHeading < 0 ) - { - User::Leave( KErrArgument ); - } - - CAknSinglePopupMenuStyleListBox* list = - new ( ELeave ) CAknSinglePopupMenuStyleListBox; - CleanupStack::PushL( list ); - - CreateListBoxL( aCFType, list ); - - CDesCArray* items = new ( ELeave ) CDesCArrayFlat( KPSUIMaxBscNumber ); - CleanupStack::PushL( items ); - - CTextListBoxModel* model = list->Model(); - if ( !model ) - { - User::Leave( KErrGeneral ); - } - model->SetItemTextArray( items ); - model->SetOwnershipType( ELbmOwnsItemArray ); - CleanupStack::Pop( items ); - - SetTitleL( aResourceHeading ); - - TInt entries = aList.Enumerate(); - TInt numberOfBscs = 0; - RMobilePhone::TMobilePhoneCFInfoEntryV1 cfInfo; - HBufC* string = NULL; - while ( entries > numberOfBscs ) - { - cfInfo = aList.GetEntryL( numberOfBscs ); - string = SetBsGroupLC( - static_cast ( ChangeToGSM( cfInfo.iServiceGroup ) ) ); - // if no string was retrieved, ignore it. - if ( string ) - { - items->AppendL( *string ); - CleanupStack::PopAndDestroy( string ); - } - numberOfBscs++; - } - list->SetCurrentItemIndex( aIndex ); - - TInt popupRet = iPopupList->ExecuteLD(); - aIndex = list->CurrentItemIndex(); - iPopupList = NULL; - CleanupStack::PopAndDestroy( list ); - - if ( popupRet ) // if number or details softkey pressed - { - return aCFType; - } - return EPsuiNoCF; - } - -// --------------------------------------------------------------------------- -// CPsuiNoteMaster::CreateListBoxL -// --------------------------------------------------------------------------- -void CPsuiNoteMaster::CreateListBoxL( TCFType aCFType, - CAknSinglePopupMenuStyleListBox* aList ) - { - TInt resourceId = 0; - if ( aCFType == EPsuiNoCF ) - { - resourceId = R_AVKON_SOFTKEYS_BACK; - } - else if ( aCFType == EPsuiCFOther ) - { - resourceId = R_PSUI_SOFTKEYS_NUMBER_BACK; - } - else - { - resourceId = R_PSUI_SOFTKEYS_DETAILS_BACK; - } - - // Create popup list - iPopupList = CAknPopupList::NewL( aList, resourceId ); - aList->ConstructL( iPopupList, CEikListBox::ELeftDownInViewRect ); - aList->CreateScrollBarFrameL( ETrue ); - aList->ScrollBarFrame()->SetScrollBarVisibilityL( - CEikScrollBarFrame::EOff, - CEikScrollBarFrame::EAuto ); - } - -// --------------------------------------------------------------------------- -// CPsuiNoteMaster::SetTitleL -// --------------------------------------------------------------------------- -void CPsuiNoteMaster::SetTitleL( const TInt& aResourceHeading ) - { - TRAPD ( ignore, - HBufC* string = StringLoader::LoadLC( aResourceHeading ); - iPopupList->SetTitleL( *string ); - CleanupStack::PopAndDestroy( string ); - ); - if ( ignore ) - { - HBufC16* emptyHeader = NULL; - iPopupList->SetTitleL( emptyHeader->Des() ); - delete emptyHeader; - } - } -// --------------------------------------------------------------------------- -// CPsuiNoteMaster::AppendCFNumber -// --------------------------------------------------------------------------- -void CPsuiNoteMaster::AppendCFNumber( TDes& aString, const TDesC& aNumber ) - { - aString.Append( KLRMarker ); - aString.Append( aNumber ); - aString.Append( KLRMarker ); - } -// --------------------------------------------------------------------------- -// CPsuiNoteMaster::SetBsGroupLC -// --------------------------------------------------------------------------- -HBufC* CPsuiNoteMaster::SetBsGroupLC( TUint8 aBscCode ) - { - HBufC* string = NULL; - switch( aBscCode ) - { - case 0: - string = StringLoader::LoadLC( R_BS_ALPHA_0 ); - break; - case 10: - string = StringLoader::LoadLC( R_BS_ALPHA_10 ); - break; - case 11: - string = StringLoader::LoadLC( R_BS_ALPHA_11 ); - break; - case 12: - string = StringLoader::LoadLC( R_BS_ALPHA_12 ); - break; - case 13: - string = StringLoader::LoadLC( R_BS_ALPHA_13 ); - break; - case 16: - string = StringLoader::LoadLC( R_BS_ALPHA_16 ); - break; - case 19: - string = StringLoader::LoadLC( R_BS_ALPHA_19 ); - break; - case 20: - if ( FeatureManager::FeatureSupported( KFeatureIdCsVideoTelephony ) ) - { - string = StringLoader::LoadLC( R_BS_ALPHA_20_VT ); - } - else - { - string = StringLoader::LoadLC( R_BS_ALPHA_20 ); - } - break; - case 21: - string = StringLoader::LoadLC( R_BS_ALPHA_21 ); - break; - case 22: - string = StringLoader::LoadLC( R_BS_ALPHA_22 ); - break; - case 24: - string = StringLoader::LoadLC( R_BS_ALPHA_24 ); - break; - case 25: - string = StringLoader::LoadLC( R_BS_ALPHA_25 ); - break; - case 26: - string = StringLoader::LoadLC( R_BS_ALPHA_26 ); - break; - case 27: - string = StringLoader::LoadLC( R_BS_ALPHA_27 ); - break; - case 30: - string = StringLoader::LoadLC( R_BS_ALPHA_30 ); - break; - case 89: - string = StringLoader::LoadLC( R_BS_ALPHA_89 ); - break; - default: - // all the services that are not displayed to ui - break; - } - return string; - } - -// --------------------------------------------------------- -// CPsuiNoteMaster::ChangeToGSM -// -// --------------------------------------------------------- -TBasicServiceGroups CPsuiNoteMaster::ChangeToGSM( const TInt& aBsc ) - { - switch ( aBsc ) - { - case RMobilePhone::EAllServices: - return EAllTeleAndBearer; - case RMobilePhone::EAllTele: - return EAllTele; - case RMobilePhone::EVoiceService: - case RMobilePhone::ETelephony: - return ETelephony; - case RMobilePhone::EAllDataTele: - return EAllDataTele; - case RMobilePhone::EFaxService: - return EFax; - case RMobilePhone::EShortMessageService: - return ESms; - case RMobilePhone::EAllDataExSms: - return EAllDataExSms; - case RMobilePhone::EAllTeleExcSms: - return EAllTeleExcSms; - case RMobilePhone::EAllPlmnTele: - return EAllPlmnTele; - case RMobilePhone::EPlmnTele1: - return EPlmnTele1; - case RMobilePhone::EPlmnTele2: - return EPlmnTele2; - case RMobilePhone::EPlmnTele3: - return EPlmnTele3; - case RMobilePhone::EPlmnTele4: - return EPlmnTele4; - case RMobilePhone::EPlmnTele5: - return EPlmnTele5; - case RMobilePhone::EPlmnTele6: - return EPlmnTele6; - case RMobilePhone::EPlmnTele7: - return EPlmnTele7; - case RMobilePhone::EPlmnTele8: - return EPlmnTele8; - case RMobilePhone::EPlmnTele9: - return EPlmnTele9; - case RMobilePhone::EPlmnTeleA: - return EPlmnTeleA; - case RMobilePhone::EPlmnTeleB: - return EPlmnTeleB; - case RMobilePhone::EPlmnTeleC: - return EPlmnTeleC; - case RMobilePhone::EPlmnTeleD: - return EPlmnTeleD; - case RMobilePhone::EPlmnTeleE: - return EPlmnTeleE; - case RMobilePhone::EPlmnTeleF: - return EPlmnTeleF; - case RMobilePhone::EAllBearer: - return EAllBearer; - case RMobilePhone::EAllAsync: - return EAllAsync; - case RMobilePhone::EAllSync: - return EAllSync; - case RMobilePhone::ECircuitDataService: - case RMobilePhone::ESyncData: - return ESyncData; - case RMobilePhone::EPacketDataService: - case RMobilePhone::EAsyncData: - return EAsyncData; - case RMobilePhone::EPacketData: - return EPacketData; - case RMobilePhone::EPadAccess: - return EPadAccess; - case RMobilePhone::EAllPlmnBearer: - return EAllPlmnBearer; - case RMobilePhone::EPlmnBearerServ1: - return EPlmnBearerServ1; - case RMobilePhone::EPlmnBearerServ2: - return EPlmnBearerServ2; - case RMobilePhone::EPlmnBearerServ3: - return EPlmnBearerServ3; - case RMobilePhone::EPlmnBearerServ4: - return EPlmnBearerServ4; - case RMobilePhone::EPlmnBearerServ5: - return EPlmnBearerServ5; - case RMobilePhone::EPlmnBearerServ6: - return EPlmnBearerServ6; - case RMobilePhone::EPlmnBearerServ7: - return EPlmnBearerServ7; - case RMobilePhone::EPlmnBearerServ8: - return EPlmnBearerServ8; - case RMobilePhone::EPlmnBearerServ9: - return EPlmnBearerServ9; - case RMobilePhone::EPlmnBearerServA: - return EPlmnBearerServA; - case RMobilePhone::EPlmnBearerServB: - return EPlmnBearerServB; - case RMobilePhone::EPlmnBearerServC: - return EPlmnBearerServC; - case RMobilePhone::EPlmnBearerServD: - return EPlmnBearerServD; - case RMobilePhone::EPlmnBearerServE: - return EPlmnBearerServE; - case RMobilePhone::EPlmnBearerServF: - return EPlmnBearerServF; - case RMobilePhone::EAuxVoiceService: - case RMobilePhone::EAltTele: - return EAltTele; - case RMobilePhone::EServiceUnspecified: - default: - return EUnknown; - } - } - -// ----------------------------------------------------------------------------- -// CPsuiNoteMaster::RequestNoteCancelledL -// Called when the Requesting note is cancelled by the user. -// ----------------------------------------------------------------------------- -// -void CPsuiNoteMaster::RequestNoteCancelledL() - { - KillRequestL(); - iRequesting = EFalse; - } -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Src/PsuiQueryDialog.cpp --- a/cellular/PsetNotesUi/Src/PsuiQueryDialog.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* -* Copyright (c) 2006 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: Query dialog for handling key events. -* -*/ - - -// INCLUDE FILES -#include "psuiquerydialog.h" - -// ================= MEMBER FUNCTIONS ======================= - -// C++ default constructor can NOT contain any code, that -// might leave. -// -CPsuiQueryDialog::CPsuiQueryDialog( CAknQueryDialog::TTone aTone ) : - CAknQueryDialog( aTone ) - { - } - -// --------------------------------------------------------------------------- -// Symbian OS two-phased constructor. -// --------------------------------------------------------------------------- -CPsuiQueryDialog* CPsuiQueryDialog::NewL( CAknQueryDialog::TTone aTone ) - { - CPsuiQueryDialog* self = new( ELeave )CPsuiQueryDialog( aTone ); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CPsuiQueryDialog::~CPsuiQueryDialog() - { - } - -// --------------------------------------------------------------------------- -// CPsuiQueryDialog::OfferKeyEventL -// --------------------------------------------------------------------------- -// -TKeyResponse CPsuiQueryDialog::OfferKeyEventL( const TKeyEvent& aKeyEvent, - TEventCode aType ) - { - if ( ( aKeyEvent.iScanCode == EStdKeyNo || aKeyEvent.iCode == EKeyNo ) && - aType == EEventKeyUp ) - { - // End -key was pressed, so exit this query dialog - TryExitL( EKeyNo ); - } - - return EKeyWasNotConsumed; - } - -// --------------------------------------------------------------------------- -// CPsuiQueryDialog::OkToExitL -// --------------------------------------------------------------------------- -// -TBool CPsuiQueryDialog::OkToExitL( TInt /*aCommand*/ ) - { - // Dismiss query - return ETrue; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Src/PsuiReqObserver.cpp --- a/cellular/PsetNotesUi/Src/PsuiReqObserver.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* Copyright (c) 2006 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: Request observer. -* -*/ - - -// INCLUDE FILES -#include - -#include "psuireqobserver.h" - -// MACROS - -// MEMBER FUNCTIONS - -// --------------------------------------------------------------------------- -// Symbian OS two-phased constructor. -// --------------------------------------------------------------------------- -CPsuiReqObserver* CPsuiReqObserver::NewL( CPsuiNoteMaster& aNoteMaster ) - { - return new( ELeave ) CPsuiReqObserver( aNoteMaster ); - } - -CPsuiReqObserver::CPsuiReqObserver( CPsuiNoteMaster& aNoteMaster ): - iNoteMaster(aNoteMaster) - { - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -CPsuiReqObserver::~CPsuiReqObserver() - { - } - -// ----------------------------------------------------------------------------- -// CPsuiNoteMaster::MServiceRequestNoteCancelledL -// Called when the Requesting note is cancelled by the user. -// ----------------------------------------------------------------------------- -// -void CPsuiReqObserver::MServiceRequestNoteCancelledL( TBool /*aCancelledWithEscape*/ ) - { - iNoteMaster.RequestNoteCancelledL(); - } -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Src/PsuiResourceLoader.cpp --- a/cellular/PsetNotesUi/Src/PsuiResourceLoader.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* -* Copyright (c) 2002-2004,2007 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: Loads resources from file. -* -*/ - - -// INCLUDE FILES -#include -#include - -#include "psuiresourceloader.h" - -// CONSTANTS -_LIT( KPsuiResourceFileNameAndPath, "Z:\\resource\\Psui.rsc" ); - -// MEMBER FUNCTIONS -//----------------------------------------------------------------------------- -// Symbian OS two-phased constructor. -//----------------------------------------------------------------------------- -EXPORT_C CPsuiResourceLoader* CPsuiResourceLoader::NewL() - { - CPsuiResourceLoader* self = CPsuiResourceLoader::NewLC(); - CleanupStack::Pop( self ); - return self; - } - -//----------------------------------------------------------------------------- -// Symbian OS two-phased constructor. -//----------------------------------------------------------------------------- -EXPORT_C CPsuiResourceLoader* CPsuiResourceLoader::NewLC() - { - CPsuiResourceLoader* self = new( ELeave ) CPsuiResourceLoader; - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -//----------------------------------------------------------------------------- -// Destructor. -//----------------------------------------------------------------------------- -CPsuiResourceLoader::~CPsuiResourceLoader() - { - if ( iResourceLoader ) - { - iResourceLoader->Close(); - } - delete iResourceLoader; - iResourceLoader = NULL; - } - -// ---------------------------------------------------------------------------- -// -// Creates the resource loader and connects it with environment. -// -// ---------------------------------------------------------------------------- -// -void CPsuiResourceLoader::ConstructL() - { - iResourceLoader = new ( ELeave ) RConeResourceLoader( *CCoeEnv::Static() ); - TFileName fileName ( KPsuiResourceFileNameAndPath ); - iResourceLoader->OpenL( fileName ); - } -// End of File - diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Src/PsuiVariationProxy.cpp --- a/cellular/PsetNotesUi/Src/PsuiVariationProxy.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* -* Copyright (c) 2006 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: Implementation of CPSuiVariationProxy class. -* -* -*/ - - -#include "psuivariationproxy.h" -#include -#include - -CPSuiVariationProxy::CPSuiVariationProxy() - { - } - -CPSuiVariationProxy::~CPSuiVariationProxy() - { - } - -CPSuiVariationProxy* CPSuiVariationProxy::NewL() - { - CPSuiVariationProxy* self = new ( ELeave ) CPSuiVariationProxy(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -void CPSuiVariationProxy::ConstructL() - { - TInt setting = 0; - CRepository* centralRepository = CRepository::NewLC( KCRUidPhoneSettings ); - centralRepository->Get( KPSetCallWaiting, setting ); - if( setting ) - { - iFeatures |= KCallWaitingDistiquishNotProvisioned; - } - CleanupStack::PopAndDestroy( centralRepository ); - } - -TBool CPSuiVariationProxy::FeatureEnabled( TUint aFeature ) const - { - return aFeature&iFeatures; - } diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/Src/PsuiWaitingObs.cpp --- a/cellular/PsetNotesUi/Src/PsuiWaitingObs.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,168 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles requests for showing Call Waiting notes. -* -*/ - - -// INCLUDE FILES -#include -#include -#include - -#include "psuiinternalconstants.h" -#include "psuinotecontroller.h" -#include "psuivariationproxy.h" - -// MEMBER FUNCTIONS -// --------------------------------------------------------------------------- -// Symbian OS two-phased Constructor. -// --------------------------------------------------------------------------- -EXPORT_C CPsuiWaitingObs* CPsuiWaitingObs::NewL( CPsuiContainer& aContainer ) - { - CPsuiWaitingObs* self = new( ELeave ) CPsuiWaitingObs; - CleanupStack::PushL( self ); - self->ConstructL( aContainer ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// Symbian OS 2nd phase Constructor. -// --------------------------------------------------------------------------- -void CPsuiWaitingObs::ConstructL( CPsuiContainer& aContainer ) - { - iContainer = &aContainer; - - CPSuiVariationProxy* variationProxy = CPSuiVariationProxy::NewL(); - CleanupStack::PushL( variationProxy ); - iCallWaitingDistinguishEnabled = variationProxy->FeatureEnabled( KCallWaitingDistiquishNotProvisioned); - CleanupStack::PopAndDestroy( variationProxy ); - - } - -// --------------------------------------------------------------------------- -// Handles changing of call waiting. -// --------------------------------------------------------------------------- -void CPsuiWaitingObs::HandleCallWaitingChangedL -( const MPsetCallWaiting::TSetCallWaiting aSetting, const TInt /* aResult */ ) - { - if ( aSetting == MPsetCallWaiting::EActivateCallWaiting ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, R_CW_ACTIVE_NOTE ); - } - else if ( aSetting == MPsetCallWaiting::EDeactivateCallWaiting ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, R_CW_CANCEL_NOTE ); - } - } - -// --------------------------------------------------------------------------- -// Sets engine contact for observer. -// --------------------------------------------------------------------------- -void CPsuiWaitingObs::SetEngineContact( MPsetCallWaiting& aEngineContact ) - { - CPsuiNoteController::InstanceL()->SetEngineContacts( - &aEngineContact, NULL, NULL, NULL ); - } - -// --------------------------------------------------------------------------- -// Handles requesting notes (show/hide). -// --------------------------------------------------------------------------- -void CPsuiWaitingObs::HandleCWRequestingL( TBool aOngoing, TBool aInterrupted ) - { - if ( aInterrupted ) - { - CPsuiNoteController::InstanceL()->RemoveNotesL(); - return; - } - - if ( aOngoing ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiWaitingNote, -1 ); - } - else - { - CPsuiNoteController::InstanceL()->KillStaticNoteL(); - } - } - -// --------------------------------------------------------------------------- -// Handles the get status notifications. -// --------------------------------------------------------------------------- -// -void CPsuiWaitingObs::HandleCallWaitingGetStatusL( - const MPsetCallWaiting::TGetCallWaitingStatus aStatus, - TUint8 aBsc[KPSUIMaxBscNumber] ) - { - - if ( iCallWaitingDistinguishEnabled && aStatus == MPsetCallWaiting::EStatusNotProvisioned ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, R_CW_NOT_PROVISIONED_NOTE ); - } - else if ( aStatus != MPsetCallWaiting::EStatusActive ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( - EPsuiConfirmationNote, R_CW_NOT_ACTIVE_NOTE ); - } - else - { - if( iCallWaitingDistinguishEnabled ) - { - - //show only "CW active" even if the bsc list is present. - //This change is to fix the error ENYI-6DYFKZ - CPsuiNoteController::InstanceL()->ShowNoteL( EPsuiConfirmationNote, - R_CW_ACTIVE_NO_BSC_NOTE ); - } - else - { - - //if no bsc-list present, show only "CW active" - if ( aBsc[0] == KPSUINoBscGroup ) - { - CPsuiNoteController::InstanceL()->ShowNoteL( EPsuiConfirmationNote, - R_CW_ACTIVE_NO_BSC_NOTE ); - } - else - { - - CPsuiNoteController::InstanceL()->ShowBscListL( - R_CW_STATUS_HEADING, - aBsc ); - } - } - } - } - -// --------------------------------------------------------------------------- -// This function handles errors in call waiting requests. -// --------------------------------------------------------------------------- -// -void CPsuiWaitingObs::HandleCWErrorL( TInt aReason ) - { - if ( aReason != KErrSatControl ) - { - TInt errorResource( - CPsuiNoteController::InstanceL()->SetErrorNoteResourceID( aReason ) ); - - CPsuiNoteController::InstanceL()->ShowNoteL( EPsuiErrorNote, errorResource ); - } - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/eabi/psuiu.def --- a/cellular/PsetNotesUi/eabi/psuiu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -EXPORTS - _ZN14CPsuiContainer12CreateCBObsLEv @ 1 NONAME - _ZN14CPsuiContainer12CreateCFObsLEv @ 2 NONAME - _ZN14CPsuiContainer12CreateCWObsLEv @ 3 NONAME - _ZN14CPsuiContainer13CreateCliObsLEv @ 4 NONAME - _ZN14CPsuiContainer4NewLEv @ 5 NONAME - _ZN14CPsuiDivertObs4NewLER14CPsuiContainer @ 6 NONAME - _ZN15CPsuiBarringObs4NewLER14CPsuiContainer @ 7 NONAME - _ZN15CPsuiWaitingObs4NewLER14CPsuiContainer @ 8 NONAME - _ZN16CPsuiCliObserver4NewLER14CPsuiContainer @ 9 NONAME - _ZN19CPsuiResourceLoader4NewLEv @ 10 NONAME - _ZN19CPsuiResourceLoader5NewLCEv @ 11 NONAME - _ZTI14CPsuiContainer @ 12 NONAME - _ZTI14CPsuiDivertObs @ 13 NONAME - _ZTI15CPsuiBarringObs @ 14 NONAME - _ZTI15CPsuiNoteMaster @ 15 NONAME - _ZTI15CPsuiWaitingObs @ 16 NONAME - _ZTI16CPsuiCliObserver @ 17 NONAME - _ZTI19CPsuiNoteController @ 18 NONAME - _ZTI19CPsuiResourceLoader @ 19 NONAME - _ZTV14CPsuiContainer @ 20 NONAME - _ZTV14CPsuiDivertObs @ 21 NONAME - _ZTV15CPsuiBarringObs @ 22 NONAME - _ZTV15CPsuiNoteMaster @ 23 NONAME - _ZTV15CPsuiWaitingObs @ 24 NONAME - _ZTV16CPsuiCliObserver @ 25 NONAME - _ZTV19CPsuiNoteController @ 26 NONAME - _ZTV19CPsuiResourceLoader @ 27 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/loc/psui.loc --- a/cellular/PsetNotesUi/loc/psui.loc Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,305 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Localization strings for Phone Settings UI Notes -* -*/ - - -// LOCALISATION STRINGS - -//SUCCESFUL ACTIVATION -//d: confirmation note when divert succesfully actived -//l: popup_note_window -#define text_divert_activated "Divert activated" - -//d: confirmation note when several diverts succesfully actived -//l: popup_note_window -#define qtn_div_conf_activateall "Diverts activated" - -//d: left sofktey -//l: control_pane_t1/opt7 -#define qtn_div_softk_number "Number" - -//d: softkey text -//l: control_pane_t1/opt7 -#define qtn_div_softk_detail "Details" - -//d: item when divert succesfully activated -//d: (was previously qtn_div_check_number) -//l: popup_note_image_window -#define qtn_div_quest_number "To number: " - -//d: item when divert succesfully activated -//d: (was previously qtn_div_check_delay) -//l: popup_note_image_window -#define qtn_div_quest_delay_time "Delay time: " - -//d: item when divert succesfully activated -//l: popup_note_image_window -#define text_ss_detail_delay_sec "%N seconds" - -//d: confirmation note when inquiry for divert active status -//l: popup_note_window -#define qtn_divert_active "Divert active" - -//DEACTIVATION OF CALL FORWARDING -//d: confirmation note when divert is not active -//l: popup_note_window -#define text_divert_deactivated "Divert deactivated" - -//d: confirmation note when divert cancelled -//l: popup_note_window -#define text_divert_canceled "Divert cancelled" - -//d: confirmation note when several diverts cancelled -//l: popup_note_window -#define qtn_div_conf_cancelall "Diverts cancelled" - -//d: heading to the list of services divert is inactive for -//l: heading_pane_t1 -#define qtn_div_heading_inactive "Inactive for:" - -//INTERROGATION OF CALL FORWARDING -//d: confirmation note when divert is not active -//l: popup_note_window -#define text_divert_inactive "Divert not active" - -// STATUS QUERY -//d: information note 1st row when receiving status from the network -//l: popup_note_image_window -#define qtn_div_info_easy "Divert to: " - -//d: information note 2nd row when diverted to voice mailbox -//l: popup_note_image_window -#define qtn_div_info_voice_mailbox "Voice mailbox" - -//d: information note 2nd row when diverted to none -//l: popup_note_image_window -#define qtn_div_info_to_none "None" - -//d: heading to the list where cf is active -//l: heading_pane_t1 -#define qtn_div_heading_active "Active for:" - -//ERROR CASES -//d: information note text when network has lost some cf information -//l: popup_note_window -#define text_net_info_lost "Check network services" - -//d: information note text when voice unconditional cf active -//d: and in call setup state -//l: popup_note_window -#define text_incoming_calls_diverted "Note: all incoming calls diverted" - -//d: information note text when voice conditional cf active -//d: and in call setup state -//l: popup_note_window -#define text_some_inc_calls_diverted "Note: you have active diverts" - -//d: error note text when entering invalid phone number -//l: popup_note_window -#define text_invalid_number "Invalid phone number" - -//d: information note that divert does not affect Internet calls -//d: when divert is actived -//l: popup_note_window -//w: -//r: 3.0 -// -#define qtn_voip_divert_not_supported "Diverting calls does not affect Internet calls" - -//TELECOMMUNICATION SERVICES -//d: basic service group name, all tele and bearer services -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_0 "All services" - -//d: basic service group name, all teleservices -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_10 "Voice, fax and messages" - -//d: basic service group name, telephony services -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_11 "Voice calls" - -//d: basic service group name, all data teleservices -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_12 "Fax and messages" - -//d: basic service group name, facsimile services -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_13 "Fax" - -//d: basic service group name, short message services -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_16 "Messages" - -//d: basic service group name, all teleservices except sms -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_19 "Voice calls and fax" - -//d: basic service group name, bearer services -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_20 "Data services" - -//d: basic service group name, all async services -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_21 "Asynchronous services" - -//d: basic service group name, all sync services -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_22 "Synchronous services" - -//d: basic service group name, all data circuit sync -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_24 "Synchronous data services" - -//d: basic service group name, all data circuit async -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_25 "Asynchronous data services" - -//d: basic service group name, all dedicated packet accesses -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_26 "Packet data" - -//d: basic service group name, all dedicated PAD accesses -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_27 "PAD access" - -//d: basic service group name, alternate line services -//l: list_single_pane_t1_cp2 -#define text_bs_alpha_89 "Alternate line services" - -//d: basic service group name, video telephony services -//l: list_single_pane_t1_cp2 -#define qtn_bs_alpha_30 "Video calls" - -//d: basic service group name, data and video services -//l: list_single_pane_t1_cp2 -#define qtn_bs_alpha_20_vt "Data and video services" - - -//CALL WAITING -//d: information note when call waiting is succesfully activated -//l: popup_note_window -#define text_call_waiting_activated "Call waiting activated" - -//d: information note when call waiting is succesfully cancelled -//l: popup_note_window -#define text_call_waiting_cancelled "Call waiting cancelled" - -//d: heading to the popup window displaying the result of call waiting inquiry -//l: heading_pane_t1 -#define qtn_cw_status_heading "Active for:" - -//d: information note when call waiting status asked, but no service active -//l: popup_note_window -#define text_call_waiting_not_active "Call waiting not active" - -//d: information note when call waiting status asked, -//d: but no basic service groups available -//l: popup_note_window -#define text_call_waiting_active "Call waiting active" - - -//d: information note when call waiting status asked, but not provisioned -//l: popup_note_window -//r: 3.1 -#define qtn_cw_note_not_provisioned "Call waiting not provisioned" - - - -//CALL BARRING -//d: heading to the popup window displaying the result of call barring inquiry -//l: heading_pane_t1 -#define qtn_barr_heading_active "Active for:" - -//d: confirmation note when barring is activated -//l: popup_note_window -#define text_barring_activated "Barring activated" - -//d: confirmation note when barring is cancelled -//l: popup_note_window -#define text_barring_canceled "Barring cancelled" - -//d: confirmation note when several barrings are cancelled -//l: popup_note_window -#define qtn_barr_conf_cancelall "Barrings cancelled" - -//d: result when interrogation of call barring reveals that barring not active -//l: popup_note_window -#define text_barring_not_active "Barring not active" - -//d: result when interrogation of call barring reveals that barring is active -//l: popup_note_window -#define text_barring_active "Barring active" - -//d: the barring password is incorrect -//l: popup_note_window -#define text_password_error "Password error" - -//d: barring password has been changed -//l: popup_note_window -#define text_password_changed "Password changed" - -//d: barring password has been blocked -//l: popup_note_window -#define qtn_paswd_info_code_blocked "Password blocked" - -//d: barring contact service needed -//l: popup_note_window -#define qtn_ss_barring_operation_not_successfull "Barring operation not successful. Contact your service provider" - - -//CLI-notes -//d: confirmation note when clir queried, positive answer -//l: popup_note_window -#define text_clir_active "Own No. not sent on calling" - -//d: confirmation note when clir queried, negative answer -//l: popup_note_window -#define text_clir_not_active "Own No. sent on calling" - -//d: confirmation note when clip queried, positive answer -//l: popup_note_window -#define text_clip_active "Number of caller is shown" - -//d: confirmation note when clip queried, negative answer -//l: popup_note_window -#define text_clip_not_active "Number of caller is not shown" - -//d: confirmation note when colp queried, positive answer -//l: popup_note_window -#define text_colp_active "Answering number is shown" - -//d: confirmation note when colp queried, negative answer -//l: popup_note_window -#define text_colp_not_active "Answering number is not shown" - -//d: confirmation note when colr queried, positive answer -//l: popup_note_window -#define text_colr_active "Own No. not sent on answering" - -//d: confirmation note when colr queried, negative answer -//l: popup_note_window -#define text_colr_not_active "Own No. sent on answering" - -//d: confirmation note when cnap queried, positive answer -//l: popup_note_window -#define qtn_cnap_active "Name of caller is shown" - -//d: confirmation note when cnap queried, negative answer -//l: popup_note_window -#define qtn_cnap_not_active "Name of caller is not shown" - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/tsrc/public/basic/BWINS/T_PSetNotesUiU.DEF --- a/cellular/PsetNotesUi/tsrc/public/basic/BWINS/T_PSetNotesUiU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -EXPORTS - ?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * __cdecl CreateTestSuiteL(void) diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/tsrc/public/basic/EABI/T_PSetNotesUiU.DEF --- a/cellular/PsetNotesUi/tsrc/public/basic/EABI/T_PSetNotesUiU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - _Z16CreateTestSuiteLv @ 1 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/tsrc/public/basic/Src/T_PSetNotesUi.cpp --- a/cellular/PsetNotesUi/tsrc/public/basic/Src/T_PSetNotesUi.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,152 +0,0 @@ -/* -* Copyright (c) 2006 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: Implementation of T_PSetNotesUi class. -* -*/ - - -// CLASS HEADER -#include "T_PSetNotesUi.h" - -// EXTERNAL INCLUDES -#include -#include -#include - -// INTERNAL INCLUDES - - -// CONSTRUCTION -T_PSetNotesUi* T_PSetNotesUi::NewL() - { - T_PSetNotesUi* self = T_PSetNotesUi::NewLC(); - CleanupStack::Pop(); - - return self; - } - -T_PSetNotesUi* T_PSetNotesUi::NewLC() - { - T_PSetNotesUi* self = new( ELeave ) T_PSetNotesUi(); - CleanupStack::PushL( self ); - - self->ConstructL(); - - return self; - } - -// Destructor (virtual by CBase) -T_PSetNotesUi::~T_PSetNotesUi() - { - } - -// Default constructor -T_PSetNotesUi::T_PSetNotesUi() - { - } - -// Second phase construct -void T_PSetNotesUi::ConstructL() - { - // The ConstructL from the base class CEUnitTestSuiteClass must be called. - // It generates the test case table. - CEUnitTestSuiteClass::ConstructL(); - } - -// METHODS - - -void T_PSetNotesUi::SetupL( ) - { - iContainer = CPsuiContainer::NewL(); - } - - -void T_PSetNotesUi::Teardown( ) - { - delete iContainer; - } - -void T_PSetNotesUi::T_TestL() - { - } - -void T_PSetNotesUi::T_Test2L() - { - CPsuiWaitingObs* waitingObs = iContainer->CreateCWObsL(); - delete waitingObs; - } - -void T_PSetNotesUi::T_Test3L() - { - CPsuiDivertObs* divertObs = iContainer->CreateCFObsL(); - delete divertObs; - } - -void T_PSetNotesUi::T_Test4L() - { - CPsuiBarringObs* cbObs = iContainer->CreateCBObsL(); - delete cbObs; - } - -void T_PSetNotesUi::T_Test5L() - { - CPsuiCliObserver* cliObs = iContainer->CreateCliObsL(); - delete cliObs; - } - -// TEST TABLE -EUNIT_BEGIN_TEST_TABLE( - T_PSetNotesUi, - "Add test suite description here.", - "MODULE" ) - -EUNIT_TEST( - "CPsuiContainer::NewL", - "", - "CPsuiContainer::NewL", - "FUNCTIONALITY", - SetupL, T_TestL, Teardown) - -EUNIT_TEST( - "CreateCWObsL", - "", - "CreateCWObsL", - "FUNCTIONALITY", - SetupL, T_Test2L, Teardown) - -EUNIT_TEST( - "CreateCFObsL", - "", - "CreateCFObsL", - "FUNCTIONALITY", - SetupL, T_Test3L, Teardown) - -EUNIT_TEST( - "CreateCBObsL", - "", - "CreateCBObsL", - "FUNCTIONALITY", - SetupL, T_Test4L, Teardown) - -EUNIT_TEST( - "CreateCliObsL", - "", - "CreateCliObsL", - "FUNCTIONALITY", - SetupL, T_Test5L, Teardown) - -EUNIT_END_TEST_TABLE - -// END OF FILE diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/tsrc/public/basic/Src/T_PSetNotesUi.h --- a/cellular/PsetNotesUi/tsrc/public/basic/Src/T_PSetNotesUi.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 2006 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: Declaration of T_PSetNotesUi class. -* -*/ - - -#ifndef __T_PSETNOTESUI_H__ -#define __T_PSETNOTESUI_H__ - -// EXTERNAL INCLUDES -#include -#include - - -// INTERNAL INCLUDES - - -// FORWARD DECLARATIONS -class CPsuiContainer; - -// CLASS DEFINITION -/** - * TODO Auto-generated EUnit test suite - * - */ -NONSHARABLE_CLASS( T_PSetNotesUi ) - : public CEUnitTestSuiteClass - { - public: // Constructors and destructors - - /** - * Two phase construction - */ - static T_PSetNotesUi* NewL(); - static T_PSetNotesUi* NewLC(); - /** - * Destructor - */ - ~T_PSetNotesUi(); - - private: // Constructors and destructors - - T_PSetNotesUi(); - void ConstructL(); - - private: // New methods - - void SetupL(); - - void Teardown(); - - void T_TestL(); - void T_Test2L(); - void T_Test3L(); - void T_Test4L(); - void T_Test5L(); - void T_Test6L(); - void T_Test7L(); - - - private: // Data - - CPsuiContainer* iContainer; - - EUNIT_DECLARE_TEST_TABLE; - - }; - -#endif // __T_PSETNOTESUI_H__ - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/tsrc/public/basic/Src/T_PSetNotesUi_DllMain.cpp --- a/cellular/PsetNotesUi/tsrc/public/basic/Src/T_PSetNotesUi_DllMain.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2006 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: Entry point for psetnotesui test. -* -*/ - - -// CLASS HEADER -#include "T_PSetNotesUi.h" - -// EXTERNAL INCLUDES -#include - -EXPORT_C MEUnitTest* CreateTestSuiteL() - { - return T_PSetNotesUi::NewL(); - } - -#ifndef EKA2 -GLDEF_C TInt E32Dll( TDllReason ) - { - return KErrNone; - } -#endif - -// END OF FILE diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/tsrc/public/basic/group/T_PSetNotesUi.mmp --- a/cellular/PsetNotesUi/tsrc/public/basic/group/T_PSetNotesUi.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/* -* Copyright (c) 2007 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: Project specification file -* -*/ - -#include - -TARGET T_PSetNotesUi.dll -TARGETTYPE dll -TARGETPATH /DigiaEUnit/Tests -UID 0x1000af5a 0x01700000 - -CAPABILITY ALL -TCB -DRM -VENDORID VID_DEFAULT - -SOURCEPATH ../Src -SOURCE T_PSetNotesUi.cpp - -// Sources required by the test suite -SOURCEPATH ../Src -SOURCE T_PSetNotesUi_DllMain.cpp - -USERINCLUDE ../Src - -SYSTEMINCLUDE /epoc32/include/Digia/EUnit -MW_LAYER_SYSTEMINCLUDE - - -LIBRARY EUnit.lib -LIBRARY EUnitUtil.lib -LIBRARY euser.lib -LIBRARY psui.lib - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/tsrc/public/basic/group/T_PSetNotesUi.pkg --- a/cellular/PsetNotesUi/tsrc/public/basic/group/T_PSetNotesUi.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +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: For packing psetnotesui test component. -; -; Supported languages -&en - -; Package header (one name for each supported language) -#{"T_PSetNotesUi"},(0x01700000),1,0,0 - -;Localised Vendor name -%{"Nokia Test EN"} - -;Unique Vendor name -:"Vendor" - -;Key and certificate -*"rd-key.pem","rd.cer" - -; Language independent files that are always installed -"\epoc32\release\armv5\urel\T_PSetNotesUi.dll"-"C:\DigiaEUnit\Tests\T_PSetNotesUi.dll" -"\epoc32\release\armv5\urel\T_PSetNotesUi.dll"-"C:\sys\bin\T_PSetNotesUi.dll" diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/tsrc/public/basic/group/T_PSetNotesUi.sis Binary file cellular/PsetNotesUi/tsrc/public/basic/group/T_PSetNotesUi.sis has changed diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/tsrc/public/basic/group/bld.inf --- a/cellular/PsetNotesUi/tsrc/public/basic/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -/* -* Copyright (c) 2007 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: Build information file -* -*/ - -#include - -PRJ_PLATFORMS - ARMV5 GCCE WINSCW - -PRJ_EXPORTS -//../rom/T_PSetNotesUI.iby CORE_APP_LAYER_IBY_EXPORT_PATH(T_PSetNotesUI.iby) - -PRJ_MMPFILES - -PRJ_TESTMMPFILES -T_PSetNotesUi.mmp - - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/PsetNotesUi/tsrc/public/basic/rom/T_PSetNotesUI.iby --- a/cellular/PsetNotesUi/tsrc/public/basic/rom/T_PSetNotesUI.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -/* -* Copyright (c) 2007 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: IBY file - * -*/ - -#ifndef __T_PSETNOTESUI_IBY__ -#define __T_PSETNOTESUI_IBY__ - -file= ABI_DIR\BUILD_DIR\T_PSetNotesUI.dll SHARED_LIB_DIR\T_PSetNotesUI.dll - -#endif diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/BWINS/SSSETTINGSU.DEF --- a/cellular/SSSettings/BWINS/SSSETTINGSU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -EXPORTS - ??0RCustomerServiceProfileCache@@QAE@XZ @ 1 NONAME ; RCustomerServiceProfileCache::RCustomerServiceProfileCache(void) - ??0RSSSettings@@QAE@XZ @ 2 NONAME ; RSSSettings::RSSSettings(void) - ??1CSSSettingsRefreshContainer@@UAE@XZ @ 3 NONAME ; CSSSettingsRefreshContainer::~CSSSettingsRefreshContainer(void) - ??1RCustomerServiceProfileCache@@QAE@XZ @ 4 NONAME ; RCustomerServiceProfileCache::~RCustomerServiceProfileCache(void) - ?Cancel@RSSSettings@@QAEXW4TSSSettingsSetting@@AAVMSSSettingsObserver@@@Z @ 5 NONAME ; void RSSSettings::Cancel(enum TSSSettingsSetting, class MSSSettingsObserver &) - ?CancelAll@RSSSettings@@QAEXAAVMSSSettingsObserver@@@Z @ 6 NONAME ; void RSSSettings::CancelAll(class MSSSettingsObserver &) - ?ChangedCspTable@RCustomerServiceProfileCache@@QAEHAAVTDes8@@0@Z @ 7 NONAME ; int RCustomerServiceProfileCache::ChangedCspTable(class TDes8 &, class TDes8 &) - ?Close@RCustomerServiceProfileCache@@QAEXXZ @ 8 NONAME ; void RCustomerServiceProfileCache::Close(void) - ?Close@RSSSettings@@QAEXXZ @ 9 NONAME ; void RSSSettings::Close(void) - ?CspCPHSTeleservices@RCustomerServiceProfileCache@@QAEHAAW4TCspCPHSTeleservices@RMobilePhone@@@Z @ 10 NONAME ; int RCustomerServiceProfileCache::CspCPHSTeleservices(enum RMobilePhone::TCspCPHSTeleservices &) - ?CspCPHSValueAddedServices@RCustomerServiceProfileCache@@QAEHAAW4TCspValueAdded@RMobilePhone@@@Z @ 11 NONAME ; int RCustomerServiceProfileCache::CspCPHSValueAddedServices(enum RMobilePhone::TCspValueAdded &) - ?CspCallCompletion@RCustomerServiceProfileCache@@QAEHAAW4TCspCallCompletion@RMobilePhone@@@Z @ 12 NONAME ; int RCustomerServiceProfileCache::CspCallCompletion(enum RMobilePhone::TCspCallCompletion &) - ?CspCallOffering@RCustomerServiceProfileCache@@QAEHAAW4TCspCallOffering@RMobilePhone@@@Z @ 13 NONAME ; int RCustomerServiceProfileCache::CspCallOffering(enum RMobilePhone::TCspCallOffering &) - ?CspCallRestriction@RCustomerServiceProfileCache@@QAEHAAW4TCspCallRestriction@RMobilePhone@@@Z @ 14 NONAME ; int RCustomerServiceProfileCache::CspCallRestriction(enum RMobilePhone::TCspCallRestriction &) - ?CspTeleServices@RCustomerServiceProfileCache@@QAEHAAW4TCspTeleservices@RMobilePhone@@@Z @ 15 NONAME ; int RCustomerServiceProfileCache::CspTeleServices(enum RMobilePhone::TCspTeleservices &) - ?Get@RSSSettings@@QAEHW4TSSSettingsSetting@@AAH@Z @ 16 NONAME ; int RSSSettings::Get(enum TSSSettingsSetting, int &) - ?HandleRefresh@RCustomerServiceProfileCache@@QAEHXZ @ 17 NONAME ; int RCustomerServiceProfileCache::HandleRefresh(void) - ?HandleRefresh@RSSSettings@@QAEHXZ @ 18 NONAME ; int RSSSettings::HandleRefresh(void) - ?HandleSIMChanged@RSSSettings@@QAEHXZ @ 19 NONAME ; int RSSSettings::HandleSIMChanged(void) - ?IsValueValidCugIndex@RSSSettings@@QBEHABH@Z @ 20 NONAME ; int RSSSettings::IsValueValidCugIndex(int const &) const - ?NewL@CSSSettingsRefreshContainer@@SAPAV1@XZ @ 21 NONAME ; class CSSSettingsRefreshContainer * CSSSettingsRefreshContainer::NewL(void) - ?Open@RCustomerServiceProfileCache@@QAEHXZ @ 22 NONAME ; int RCustomerServiceProfileCache::Open(void) - ?Open@RSSSettings@@QAEHPAVRTelServer@@@Z @ 23 NONAME ; int RSSSettings::Open(class RTelServer *) - ?Open@RSSSettings@@QAEHXZ @ 24 NONAME ; int RSSSettings::Open(void) - ?PreviousCugValue@RSSSettings@@QAEHAAH@Z @ 25 NONAME ; int RSSSettings::PreviousCugValue(int &) - ?RefreshHandler@CSSSettingsRefreshContainer@@QAEAAVMSSSettingsRefreshHandler@@XZ @ 26 NONAME ; class MSSSettingsRefreshHandler & CSSSettingsRefreshContainer::RefreshHandler(void) - ?Register@RSSSettings@@QAEHW4TSSSettingsSetting@@AAVMSSSettingsObserver@@@Z @ 27 NONAME ; int RSSSettings::Register(enum TSSSettingsSetting, class MSSSettingsObserver &) - ?RegisterAll@RSSSettings@@QAEHAAVMSSSettingsObserver@@@Z @ 28 NONAME ; int RSSSettings::RegisterAll(class MSSSettingsObserver &) - ?ResetPreviousCugValue@RSSSettings@@QAEHXZ @ 29 NONAME ; int RSSSettings::ResetPreviousCugValue(void) - ?Set@RSSSettings@@QAEHW4TSSSettingsSetting@@H@Z @ 30 NONAME ; int RSSSettings::Set(enum TSSSettingsSetting, int) - diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/Logger/SSSettingsLogger.h --- a/cellular/SSSettings/Logger/SSSettingsLogger.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* Copyright (c) 2005 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: -* Macro definition file for logging. -* -* -*/ - - - -#ifndef SSSETTINGSLOGGER_H -#define SSSETTINGSLOGGER_H - -#include "sssettingsloggingconf.h" -#include -#include -#include - -_LIT( KLogsDir, "SSS"); -_LIT( KLogFileName, "SSS.log"); - -/* - We have 3 possible logging methods: - - set SSS_LOGGING_METHOD to 0 to get no logging at all - set SSS_LOGGING_METHOD to 1 to get logging via RDebug::Print - set SSS_LOGGING_METHOD to 2 to get logging to log file - - Switching on/off is done in the Configuration file (SSSettingsLoggingConf.h) - */ - -#if ( defined (_SSSLOGGING) ) - #if ( defined (_SSS_LOGGING_TO_FILE)) - #define SSS_LOGGING_METHOD 2 - #else - #define SSS_LOGGING_METHOD 1 - #endif -#else - #define SSS_LOGGING_METHOD 0 -#endif - - -#if (SSS_LOGGING_METHOD==0) - #define __SSSLOGSTRING(C) - #define __SSSLOGSTRING1(C, X) - #define __SSSLOGSTRING2(C, X, Y) - #define __SSSLOGSTRING3(C, X, Y, Z) -#endif -#if (SSS_LOGGING_METHOD==1) - #define __SSSLOGSTRING(C) RDebug::Print(_L(C)); - #define __SSSLOGSTRING1(C, X) RDebug::Print(_L(C),X); - #define __SSSLOGSTRING2(C, X, Y) RDebug::Print(_L(C),X, Y); - #define __SSSLOGSTRING3(C, X, Y, Z) RDebug::Print(_L(C),X, Y, Z); -#endif -#if (SSS_LOGGING_METHOD==2) - #define __SSSLOGSTRING(C) {_LIT(tempLogDes,C);RFileLogger::WriteFormat(KLogsDir(),KLogFileName(), EFileLoggingModeAppend, tempLogDes());} - #define __SSSLOGSTRING1(C, X) {_LIT(tempLogDes,C);RFileLogger::WriteFormat(KLogsDir(),KLogFileName(), EFileLoggingModeAppend, TRefByValue(tempLogDes()),X);} - #define __SSSLOGSTRING2(C, X, Y) {_LIT(tempLogDes,C);RFileLogger::WriteFormat(KLogsDir(),KLogFileName(), EFileLoggingModeAppend, TRefByValue(tempLogDes()),X,Y);} - #define __SSSLOGSTRING3(C, X, Y, Z) {_LIT(tempLogDes,C);RFileLogger::WriteFormat(KLogsDir(),KLogFileName(), EFileLoggingModeAppend, TRefByValue(tempLogDes()),X,Y,Z);} -#endif - -#endif // SSSETTINGSLOGGER_H diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/Logger/SSSettingsLoggingConf.h --- a/cellular/SSSettings/Logger/SSSettingsLoggingConf.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* -* Copyright (c) 2005 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: -* Macro definition file for logging configuration. -* (Note:This file has to be separate from the logging header file -* to be able to include it in mmp file. If not we will get warning about not used -* flogger.lib in other logging cases where flogger.lib is not used.) -* -*/ - - - -#ifndef SSSCONFIGURATION_H -#define SSSCONFIGURATION_H - - -#ifdef _DEBUG // logging to file in debug only - -/** -* - Have this line active if you want to have logging for this component -* - Comment this line out if you don't want any logging for this component -*/ -#define _SSSLOGGING - -/** -* - Have this line active if you want to have logging to file -* - Comment this line out if you want to have logging via RDebug::Print -*/ -#define _SSS_LOGGING_TO_FILE - -#endif // _DEBUG - -#endif // SSSCONFIGURATION_H diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/eabi/sssettingsu.def --- a/cellular/SSSettings/eabi/sssettingsu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -EXPORTS - _ZN11RSSSettings11RegisterAllER19MSSSettingsObserver @ 1 NONAME - _ZN11RSSSettings13HandleRefreshEv @ 2 NONAME - _ZN11RSSSettings16HandleSIMChangedEv @ 3 NONAME - _ZN11RSSSettings16PreviousCugValueERi @ 4 NONAME - _ZN11RSSSettings21ResetPreviousCugValueEv @ 5 NONAME - _ZN11RSSSettings3GetE18TSSSettingsSettingRi @ 6 NONAME - _ZN11RSSSettings3SetE18TSSSettingsSettingi @ 7 NONAME - _ZN11RSSSettings4OpenEP10RTelServer @ 8 NONAME - _ZN11RSSSettings4OpenEv @ 9 NONAME - _ZN11RSSSettings5CloseEv @ 10 NONAME - _ZN11RSSSettings6CancelE18TSSSettingsSettingR19MSSSettingsObserver @ 11 NONAME - _ZN11RSSSettings8RegisterE18TSSSettingsSettingR19MSSSettingsObserver @ 12 NONAME - _ZN11RSSSettings9CancelAllER19MSSSettingsObserver @ 13 NONAME - _ZN11RSSSettingsC1Ev @ 14 NONAME - _ZN11RSSSettingsC2Ev @ 15 NONAME - _ZN27CSSSettingsRefreshContainer14RefreshHandlerEv @ 16 NONAME - _ZN27CSSSettingsRefreshContainer4NewLEv @ 17 NONAME - _ZN27CSSSettingsRefreshContainerD0Ev @ 18 NONAME - _ZN27CSSSettingsRefreshContainerD1Ev @ 19 NONAME - _ZN27CSSSettingsRefreshContainerD2Ev @ 20 NONAME - _ZN28RCustomerServiceProfileCache13HandleRefreshEv @ 21 NONAME - _ZN28RCustomerServiceProfileCache15ChangedCspTableER5TDes8S1_ @ 22 NONAME - _ZN28RCustomerServiceProfileCache15CspCallOfferingERN12RMobilePhone16TCspCallOfferingE @ 23 NONAME - _ZN28RCustomerServiceProfileCache15CspTeleServicesERN12RMobilePhone16TCspTeleservicesE @ 24 NONAME - _ZN28RCustomerServiceProfileCache17CspCallCompletionERN12RMobilePhone18TCspCallCompletionE @ 25 NONAME - _ZN28RCustomerServiceProfileCache18CspCallRestrictionERN12RMobilePhone19TCspCallRestrictionE @ 26 NONAME - _ZN28RCustomerServiceProfileCache19CspCPHSTeleservicesERN12RMobilePhone20TCspCPHSTeleservicesE @ 27 NONAME - _ZN28RCustomerServiceProfileCache25CspCPHSValueAddedServicesERN12RMobilePhone14TCspValueAddedE @ 28 NONAME - _ZN28RCustomerServiceProfileCache4OpenEv @ 29 NONAME - _ZN28RCustomerServiceProfileCache5CloseEv @ 30 NONAME - _ZN28RCustomerServiceProfileCacheC1Ev @ 31 NONAME - _ZN28RCustomerServiceProfileCacheC2Ev @ 32 NONAME - _ZN28RCustomerServiceProfileCacheD1Ev @ 33 NONAME - _ZN28RCustomerServiceProfileCacheD2Ev @ 34 NONAME - _ZNK11RSSSettings20IsValueValidCugIndexERKi @ 35 NONAME - _ZTI19CSSSettingsNotifier @ 36 NONAME - _ZTI22CSSSettingsAlsNotifier @ 37 NONAME - _ZTI25CSSSettingsRefreshHandler @ 38 NONAME - _ZTI27CSSSettingsRefreshContainer @ 39 NONAME - _ZTV19CSSSettingsNotifier @ 40 NONAME - _ZTV22CSSSettingsAlsNotifier @ 41 NONAME - _ZTV25CSSSettingsRefreshHandler @ 42 NONAME - _ZTV27CSSSettingsRefreshContainer @ 43 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/group/SSSettings.mmp --- a/cellular/SSSettings/group/SSSettings.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: This is project specification file for the SSSettings. -* -*/ - -#include -#include "../logger/sssettingsloggingconf.h" - - -TARGET sssettings.dll -TARGETTYPE dll -UID 0x1000008d 0x10005A01 - -VENDORID VID_DEFAULT - -// Capability assignment. -CAPABILITY CAP_GENERAL_DLL - -sourcepath ../src -SOURCE rsssettings.cpp -SOURCE csssettingsnotifier.cpp -SOURCE csssettingsalsnotifier.cpp -SOURCE rcustomerserviceprofilecache.cpp -SOURCE csssettingsrefreshcontainer.cpp -SOURCE csssettingsrefreshhandler.cpp -SOURCE csssettingsactiveobject.cpp - -USERINCLUDE ../inc -USERINCLUDE ../logger -SYSTEMINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE ../../../inc - -LIBRARY euser.lib -LIBRARY etel.lib // etel connection -LIBRARY customapi.lib // custom etel api -LIBRARY etelmm.lib -LIBRARY featmgr.lib -LIBRARY satclient.lib -LIBRARY centralrepository.lib -LIBRARY cenrepnotifhandler.lib -LIBRARY flogger.lib // logging - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/group/SSSettings_stub.SIS Binary file cellular/SSSettings/group/SSSettings_stub.SIS has changed diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/group/bld.inf --- a/cellular/SSSettings/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: This file provides the information required for building the -* SSSettings. -* -*/ - -#include - -PRJ_PLATFORMS -DEFAULT ARMV5 - -PRJ_EXPORTS - -../inc/csssettingsrefreshcontainer.h |../../../inc/csssettingsrefreshcontainer.h -../inc/msssettingsrefreshhandler.h |../../../inc/msssettingsrefreshhandler.h - -../group/sssettings_stub.sis /epoc32/data/z/system/install/sssettings_stub.sis - -// IBY files -../rom/sssettings.iby CORE_APP_LAYER_IBY_EXPORT_PATH(sssettings.iby) - -PRJ_MMPFILES -../group/sssettings.mmp - -//End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/group/sssettings.pkg --- a/cellular/SSSettings/group/sssettings.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +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: For packing sssettings component. -; -; Languages -&EN - -; Header -#{"SSSettings"}, (0x10005A01), 10, 1, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -"\epoc32\RELEASE\armv5\UREL\SSSettings.dll"-"z:\sys\bin\SSSettings.dll" diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/group/sssettings_stub.pkg --- a/cellular/SSSettings/group/sssettings_stub.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +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: For packing sssettings stub component. -; -; Languages -&EN - -; Header -#{"SSSettings"}, (0x10005A01), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\SSSettings.dll" diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/inc/CSSSettingsActiveObject.h --- a/cellular/SSSettings/inc/CSSSettingsActiveObject.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Interface for Active object handling Publish and subscribe -* notify events. -* -*/ - - -#ifndef CSSSETTINGSACTIVEOBJECT_H -#define CSSSETTINGSACTIVEOBJECT_H - -// INCLUDES -#include -#include - - -// CLASS DECLARATION - -/** -* Interface for Publish and Subscribe notify. -* -* @since 3.0 -* @lib SsSettings.lib -*/ -class MSSSettingsPubSubNotify - { - public: // New functions - - virtual void HandlePubSubNotify( - const TUid aUid, - const TUint32 aKeyId ) = 0; - }; - -/** -* Interface for Active object handling Publish and subscribe notify events. -* @lib sssettings.lib -* @since 3.0 -*/ -NONSHARABLE_CLASS( CSSSettingsActiveObject ) - : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aNotifyUid The Uid to be notified. - * @param aNotifyKey The key under aNotifyUid to be notified. - * @param aNotifyHandler The notifier to be informed about notify events. - * @return CSSSettingsActiveObject instance pointer. - */ - static CSSSettingsActiveObject* NewL( - const TUid aNotifyUid, - const TUint32 aNotifyKey, - MSSSettingsPubSubNotify& aNotifyHandler ); - - - /** - * Destructor. - */ - virtual ~CSSSettingsActiveObject(); - - - public: // New functions - - /** - * Starts the notify. - * - * @return Error code. - */ - TInt NotifyKeyChange(); - - /** - * Cancel notify - */ - void CancelNotify(); - - - protected: // Functions from base classes - - /** - * From CActive. - */ - void RunL(); - - /** - * From CActive. - */ - void DoCancel(); - - - private: - - /** - * Constructor. - */ - CSSSettingsActiveObject( - const TUid aNotifyUid, - const TUint32 aNotifyKey, - MSSSettingsPubSubNotify& aNotifyHandler ); - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL(); - - - private: // Data - - // Central Repository. - RProperty iProperty; - - // Uid to be notified. - TUid iNotifyUid; - - // Key to be notified. - TUint32 iNotifyKey; - - // Notify handler. - MSSSettingsPubSubNotify* iNotifyHandler; - - // The notify information. - TBool iNotify; - }; - -#endif // CSSSETTINGSACTIVEOBJECT_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/inc/CSSSettingsAlsNotifier.h --- a/cellular/SSSettings/inc/CSSSettingsAlsNotifier.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,238 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Interface for ALS control -* -*/ - - -#ifndef CSSSETTINGSALSNOTIFIER_H -#define CSSSETTINGSALSNOTIFIER_H - -// INCLUDES -#include -#include - -#include "rsssettings.h" -#include "csssettingsactiveobject.h" - -// FORWARD DECLARATIONS -class RMmCustomAPI; -class CRepository; -class CCenRepNotifyHandler; -class RProperty; - - -// CLASS DECLARATION - -/** -* Interface for Als control. -* -* @since 1.0 -* @lib SsSettings.lib -*/ -class CSSSettingsAlsNotifier : public CActive, - public MCenRepNotifyHandlerCallback, - public MSSSettingsPubSubNotify - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aMobilePhone Mobile phone - * @param aCustomPhone Pre-opened custom interface. - * @param aNotifyHandler Notify changes. - */ - static CSSSettingsAlsNotifier* NewL( - RMobilePhone& aMobilePhone, - RMmCustomAPI& aCustomPhone, - MCenRepNotifyHandlerCallback& aAlsNotifyHandler ); - - /** - * Destructor. - */ - virtual ~CSSSettingsAlsNotifier(); - - public: // New functions - - /** - * Starts the notifier. - * @return Error code - */ - TInt NotifyAlsChange(); - - /** - * Cancel notify - */ - void CancelNotify(); - - /** - * Set Als value. - * @param aValue - * @return If successful, KErrNone - * KErrNotSupported MS doesn't support ALS - */ - TInt SetAlsValue( TSSSettingsAlsValue aValue ); - - /** - * Get Als value - * @param aValue the value. - * @return If successful, KErrNone - */ - TInt GetAlsValue( TSSSettingsAlsValue& aValue ); - - /** - * Get Als support bits. - * @param aPPSupport Product profile support for als - * @param aSimSupport Sim support for Als. - * @param aCSPSupport CSP ALS support for Als. - * @param aCSPSupport CSP ALS error for als. - */ - void GetAlsSupport( TBool& aPPSupport, TBool& aSimSupport, TBool& aCSPSupport, TInt& aCSPError ); - - /** - * Handle SIM refresh - * @return If successful, KErrNone - */ - TInt HandleRefresh(); - - - protected: // New functions - - /** - * Gets PP support from ETel. - * @param aIsAlsSopportedInPP Is supported. - * @return If successful, KErrNone - */ - TInt CheckAlsSupportInProductProfile( TBool& aIsAlsSopportedInPP ); - - /** - * Gets Sim support from ETel. - * @param aIsAlsSopportedInSim Is supported. - * @return If successful, KErrNone - */ - TInt CheckAlsSupportInSim( TBool& aIsAlsSopportedInSim ); - - /** - * Checks Als support from Sim and PP if not checked. - * @return If successful, KErrNone - */ - TInt EnsureAlsStatus(); - - protected: // Functions from base classes - - /** - * From CActive. - */ - void RunL(); - - /** - * From CActive. - */ - void DoCancel(); - - /** - * From MCenRepNotifyHandlerCallback - */ - void HandleNotifyInt( - TUint32 aId, - TInt aNewValue ); - - /** - * From MCenRepNotifyHandlerCallback. - */ - void HandleNotifyError( - TUint32 aId, - TInt aError, - CCenRepNotifyHandler* aHandler ); - - /** - * From MSSSettingsAlsNotify. - */ - void HandlePubSubNotify( - const TUid aUid, - const TUint32 aKeyId ); - - private: - - /** - * C++ constructor. - */ - CSSSettingsAlsNotifier( - RMobilePhone& aMobilePhone, - RMmCustomAPI& aCustomPhone, - MCenRepNotifyHandlerCallback& aAlsNotifyHandler ); - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL(); - - // Prohibit copy constructor if not deriving from CBase. - CSSSettingsAlsNotifier( const CSSSettingsAlsNotifier& ); - // Prohibit assigment operator if not deriving from CBase. - CSSSettingsAlsNotifier& operator= ( const CSSSettingsAlsNotifier& ); - - /** - * Checks if Alternate Line is to be supported in parameter. - * @param aContainer The parameter to be checked. - * @return ETrue if supported, otherwise EFalse. - */ - TBool CheckIfAlsCSPSupported( const RMobilePhone::TCspCPHSTeleservices aContainer ) const; - - private: - - //Provides client access to mobile phone functionality provided by TSY. - RMobilePhone& iMobilePhone; - - // Custom phone. - RMmCustomAPI& iCustomPhone; - - // Does PP support ALS. - TBool iPPSupportAls; - - // Does SIM support ALS. - TBool iSimSupportAls; - - // Does SIM support CSP ALS. - TBool iAlsCSPSupport; - - // CSP ALS error. - TInt iAlsCSPError; - - // Is PP and Sim support checked. - TBool iAlsStatusChecked; - - // Active ALS, only valid in RunL. - RMobilePhone::TMobilePhoneALSLine iSimActiveAls; - - // Als Notify handler. - MCenRepNotifyHandlerCallback* iAlsNotifyHandler; - - // Central repository for ALS. - CRepository* iRepository; - - // Central repository notify handler for ALS. - CCenRepNotifyHandler* iCenRepNotifyHandler; - - // Notifier for ALS support in Product Profile. - CSSSettingsActiveObject* iPPSupportsAlNotifier; - - // Notifier for ALS support in SIM. - CSSSettingsActiveObject* iSimSupportsAlsNotifier; - }; - - -#endif // CSSSETTINGSALSNOTIFIER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/inc/CSSSettingsNotifier.h --- a/cellular/SSSettings/inc/CSSSettingsNotifier.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,161 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Notifier for changes. -* -*/ - - -#ifndef CSSSETTINGSNOTIFIER_H -#define CSSSETTINGSNOTIFIER_H - -// INCLUDES -#include - -#include "rsssettings.h" -#include "csssettingsactiveobject.h" - -// FORWARD DECLARATIONS -class CSSSettingsAlsNotifier; - - -// CLASS DECLARATION - -/** -* Notifier for changes -* @since 1.0 -* @lib SsSettings.lib -*/ -class CSSSettingsNotifier : public CActive, - public MCenRepNotifyHandlerCallback - { - public: // Constructors and destructor - - /** - * C++ constructor. - * @param aSettings reference to RSSSettings - */ - CSSSettingsNotifier( RSSSettings& aSettings ); - - /** - * Symbian OS constructor. Must be called before usage! - */ - void ConstructL(); - - /** - * Destructor. - */ - virtual ~CSSSettingsNotifier(); - - public: // New functions - - /** - * Adds observer. - * @param aSetting Set observer for this setting - * @return KErrNone if succesful. - */ - TInt AddNotifier( TSSSettingsSetting aSetting ); - - /** - * Removes observer - * @param aSetting Remove observer for this setting - */ - void RemoveNotifier( TSSSettingsSetting aSetting ); - - - /** - * To get ALS controller. - * @return The Als controller. NULL if not supported. - */ - CSSSettingsAlsNotifier* GetAlsHandler(); - - /** - * Handle SIM refresh - * @return Error code - */ - TInt HandleRefresh(); - - - protected: // Functions from base classes - - /** - * From CActive. This is called when ALS Blocking status - * is changed. - */ - void RunL(); - - /** - * From CActive. ALS blocking change notification is cancelled. - */ - void DoCancel(); - - /** - * From MCenRepNotifyHandlerCallback - */ - void HandleNotifyInt( - TUint32 aId, - TInt aNewValue ); - - /** - * From MCenRepNotifyHandlerCallback. - */ - void HandleNotifyError( - TUint32 aId, - TInt aError, - CCenRepNotifyHandler* aHandler ); - - private: - - // Prohibit copy constructor if not deriving from CBase. - CSSSettingsNotifier( const CSSSettingsNotifier& ); - // Prohibit assigment operator if not deriving from CBase. - CSSSettingsNotifier& operator= ( const CSSSettingsNotifier& ); - - private: - - // Determines if als supported. - TBool AlsSupport( - TBool aPPSupport, - TBool aCSPSupport, - TInt aCSPError ); - - private: - - // Settings data - RSSSettings& iSettings; - - // Als controller - CSSSettingsAlsNotifier* iAls; - - // valid in RunL - RMmCustomAPI::TGetAlsBlockStatus iAlsBlockStatus; - - // Central repository for SSSettings. - CRepository* iRepository; - - // Central repository notify handlers. - // Must use multiple handlers to observe all the keys: - // KSettingsAlsLine - // KSettingsCLIR - // KSettingsCUG - CCenRepNotifyHandler* iCenRepAlsNotifyHandler; - CCenRepNotifyHandler* iCenRepClirNotifyHandler; - CCenRepNotifyHandler* iCenRepCugNotifyHandler; - - // The notified keys. - TUint32 iNotifyKeys; - }; - -#endif // CSSSETTINGSNOTIFIER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/inc/CSSSettingsRefreshContainer.h --- a/cellular/SSSettings/inc/CSSSettingsRefreshContainer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/* -* Copyright (c) 2004 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: Container class for refresh related implementation. -* -*/ - - -#ifndef CSSSETTINGSREFRESHCONTAINER_H -#define CSSSETTINGSREFRESHCONTAINER_H - - -// INCLUDES -#include - - -// FORWARD DECLARATIONS -class CSSSettingsRefreshHandler; - - -// CLASS DECLARATION - -/** -* Container class for refresh related implementation. -* -* @since 2.8 -* @lib SsSettings.lib -*/ -class CSSSettingsRefreshContainer : - public CBase - { - public: // Constructor and destructor - - /** - * Two-phased constructor. - */ - IMPORT_C static CSSSettingsRefreshContainer* NewL(); - - /** - * Destructor. - */ - IMPORT_C ~CSSSettingsRefreshContainer(); - - - public: // New functions - - /** - * Return the refresh handler instance. - * - * @return The Refresh handler instance. - */ - IMPORT_C MSSSettingsRefreshHandler& RefreshHandler(); - - - private: - - /** - * C++ default constructor. - */ - CSSSettingsRefreshContainer(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - - private: // Data - - CSSSettingsRefreshHandler* iRefreshHandler; - }; - -#endif // CSSSETTINGSREFRESHCONTAINER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/inc/CSSSettingsRefreshHandler.h --- a/cellular/SSSettings/inc/CSSSettingsRefreshHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,174 +0,0 @@ -/* -* Copyright (c) 2004 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: The Refresh handler to inform SAT refresses. -* -*/ - - - -#ifndef CSSSETTINGSREFRESHHANDLER_H -#define CSSSETTINGSREFRESHHANDLER_H - - -// INCLUDES -#include -#include -#include -#include -#include -#include -#include -#include -#include "csssettingsactiveobject.h" - -// DATA TYPES - -// The needed functionality. -enum TSSSettingsRefreshFunction - { - ESSSettingsAllowRefresh = 0, // AllowRefresh functionality. - ESSSettingsRefresh = 1, // Refresh functionality. - }; - - -// FORWARD DECLARATIONS -class CSSSettingsNotifyInfo; - - -// CLASS DECLARATION - -/** -* The Refresh handler to inform SAT refreshes. -* This class is extended for BT SAP functionality from 3.0. -* -* @lib SsSettings.lib -* @since 2.8 -*/ -class CSSSettingsRefreshHandler : - public CBase, - public MSSSettingsRefreshHandler, - public MSatRefreshObserver, - public MSSSettingsPubSubNotify - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CSSSettingsRefreshHandler* NewL(); - - /** - * Destructor. - */ - virtual ~CSSSettingsRefreshHandler(); - - - public: // Functions from base classes - - /** - * @see MSSSettingsRefreshHandler::NotifyFileChangeL. - */ - void NotifyFileChangeL( - MSSSettingsRefreshObserver& aObserver, - TSatElementaryFiles aObservedFiles, - TSatRefreshType aObservedRefreshType ); - - /** - * @see MSSSettingsRefreshHandler::CancelNotify. - */ - void CancelNotify(); - - /** - * @see MSSSettingsRefreshHandler::ChangedCspTable. - */ - TInt ChangedCspTable( - TDes8& aChangedCsps, - TDes8& aNewValues ); - - - public: // Functions from base classes - - /** - * @see MSatRefreshObserver::AllowRefresh - */ - TBool AllowRefresh( - TSatRefreshType aType, - const TSatRefreshFiles& aFiles ); - - /** - * @see MSatRefreshObserver::Refresh - */ - void Refresh( - TSatRefreshType aType, - const TSatRefreshFiles& aFiles ); - - public: // From base class MSSSettingsPubSubNotify - /** - * @see MSSSettingsPubSubNotify - */ - void HandlePubSubNotify( - const TUid aUid, - const TUint32 aKeyId ); - - - private: - - /** - * C++ default constructor. - */ - CSSSettingsRefreshHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Common function for AllowRefresh and Refresh. - * - * @param atype Refresh Type. - * @param aFiles Refresh Files. - * @param aFunctionality The functionality wanted. - * @return Result of functionality. - */ - TBool DoHandleRefresh( - TSatRefreshType aType, - const TSatRefreshFiles& aFiles, - const TSSSettingsRefreshFunction aFunctionality ); - - private: // Data - - // Container for notify observer. - CSSSettingsNotifyInfo* iNotifyInfo; - - // The RSSSettings handle. - RSSSettings iRSSSettings; - - // The RCustomerServiceProfileCache handle. - RCustomerServiceProfileCache iRCspCache; - - // The RSatRefresh handle. - RSatRefresh* iRSatRefresh; - - // The RSatSession handle. - RSatSession iRSatSession; - - // Notifier for BT SAP support. - CSSSettingsActiveObject* iBtSapNotifier; - - }; - -#endif // CSSSETTINGSREFRESHHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/inc/MSSSettingsRefreshHandler.h --- a/cellular/SSSettings/inc/MSSSettingsRefreshHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -/* -* Copyright (c) 2004 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: The Refresh handler to inform SAT refresses. -* -*/ - - - -#ifndef MSSSETTINGSREFRESHHANDLER_H -#define MSSSETTINGSREFRESHHANDLER_H - - -// INCLUDES -#include -#include - - -// FORWARD DECLARATIONS -class CSSSettingsNotifyContainer; - - -// CLASS DECLARATION - -/** -* The Refresh handler to inform SAT refresses. -* -* @lib SsSettings.lib -* @since 2.8 -*/ -class MSSSettingsRefreshHandler - { - public: // New functions - - /** - * Start the waiting for refresh events. - * - * @param aObserver The observer to handle refresh events. - * @param aObservedFile The file change to be observed. - * @param aObservedRefreshType The refresh type(s) to be observed. - */ - virtual void NotifyFileChangeL( - MSSSettingsRefreshObserver& aObserver, - TSatElementaryFiles aObservedFile, - TSatRefreshType aObservedRefreshType ) = 0; - - /** - * Cancel the notification started in NotifyFileChangeL. - * - * @param aObserver The observer whose notify to be canceled. - * @param aObservedFile The file change to be canceled. - * @param aObservedRefreshType The refresh type to be canceled. - */ - virtual void CancelNotify() = 0; - - /** - * Get the changed CSP information after Refresh. - * - * @param aChangedCsps The changed CSP fields, - * type RMobilePhone::TMobilePhoneCspFileV1Pckg. - * @param aNewValues The new values of changed CSP fields, - * type RMobilePhone::TMobilePhoneCspFileV1Pckg. - * @return Error code. KErrNone if successful. - */ - virtual TInt ChangedCspTable( - TDes8& aChangedCsps, - TDes8& aNewValues ) = 0; - }; - -#endif // MSSSETTINGSREFRESHHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/inc/SSSettingsPrivateCRKeys.h --- a/cellular/SSSettings/inc/SSSettingsPrivateCRKeys.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* -* Copyright (c) 2004 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: SSSettings private Central Repository keys. -* -*/ - - -#ifndef SSSETTINGSPRIVATECRKEYS_H -#define SSSETTINGSPRIVATECRKEYS_H - -// INCLUDES -#include - -// CONSTANTS - -/** -* Supplementary Service Settings API -* Supplementary and CPHS service settings. -*/ -const TUid KCRUidSupplementaryServiceSettings = {0x101F87E3}; - -/** -* ALS line for outgoing calls, integer value -* -* This setting is only for SSSettings internal use. -* -* 0 = ALS not supported -* 1 = Primary line -* 2 = Secondary line -*/ -const TUint32 KSettingsAlsLine = 0x00000001; - -/** -* CLIR (Calling Line Idefitication Restriction) mode. -* -* 0 = Network default -* 1 = Explicit invoke -* 2 = Explicit suppress -*/ -const TUint32 KSettingsCLIR = 0x00000002; - -/** -* CUG mode. -* -*/ -const TUint32 KSettingsCUG = 0x00000003; - -/** -* Previous CUG index. -*/ -const TUint32 KSettingsPreviousCUGIndex = 0x00000004; - - -#endif // SSSETTINGSPRIVATECRKEYS_H - -// End of file \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/inc/SSSettingsPrivatePSKeys.h --- a/cellular/SSSettings/inc/SSSettingsPrivatePSKeys.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* -* Copyright (c) 2004 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: Private Publish and Subscribe keys. -* -*/ - - -#ifndef SSSETTINGSPRIVATEPSKEYS_H -#define SSSETTINGSPRIVATEPSKEYS_H - -// INCLUDES -#include - -// CONSTANTS - -/** -* Configuration settings in (U)SIM and product profile -*/ -const TUid KPSUidSSConfig = {0x101F87E4}; - -/** -* Cached Customer Service Profile(CSP) values. -* -* This setting is only for SSSettings' -* internal use, don't use it directly! -* -* Bits 24-31 Call Completion Services -* Bits 16-23 Call Offering Services -* Bits 8-15 Call Restriction Services -* Bits 0-7 Cphs Teleservices -*/ -const TUint32 KSettingsCspCache1 = 0x00000001; - -/** -* Cached Customer Service Profile(CSP) values. -* -* This setting is only for SSSettings' -* internal use, don't use it directly! -* -* Bits 24-31 Other Supp Services (03) -* Bits 16-23 CPSH Teleservices (06) -* Bits 8-15 CPHS Features (07) -* Bits 0-7 Cphs Value Added Services -*/ -const TUint32 KSettingsCspCache2 = 0x00000002; - -/** -* Cached Customer Service Profile(CSP) values. -* -* This setting is only for SSSettings' -* internal use, don't use it directly! -* -* Bits 24-31 -* Bits 16-23 Information Numbers (D5) -* Bits 8-15 Phase 2+ Services (09) -* Bits 0-7 Number Identifying (08) -*/ -const TUint32 KSettingsCspCache3 = 0x00000003; - -/** -* Support for ALS in product profile, integer value. -* -* Possible values: -* 0 (not supported) -* 1 (supported) -*/ -const TUint32 KSettingsPPSupportsALS = 0x00000004; - -/** -* Support for ALS in SIM, integer value. -* -* Possible values: -* 0 (not supported) -* 1 (supported) -*/ -const TUint32 KSettingsSIMSupportsALS = 0x00000005; - -#endif // SSSETTINGSPRIVATEPSKEYS_H - -// End of file \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/rom/SSSettings.iby --- a/cellular/SSSettings/rom/SSSettings.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -/* -* Copyright (c) 2005 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: IBY file - * -*/ - -#ifndef __SSSETTINGS_IBY__ -#define __SSSETTINGS_IBY__ - -file=ABI_DIR\BUILD_DIR\sssettings.dll SHARED_LIB_DIR\sssettings.dll -data=ZSYSTEM\install\sssettings_stub.sis System\Install\sssettings_stub.sis - -#endif diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/src/CSSSettingsActiveObject.cpp --- a/cellular/SSSettings/src/CSSSettingsActiveObject.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,152 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Interface for Active object handling Pub&Sub notify events. -* -*/ - - -// INCLUDE FILES -#include "csssettingsactiveobject.h" -#include - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSSSettingsActiveObject::CSSSettingsActiveObject -// ----------------------------------------------------------------------------- -// -CSSSettingsActiveObject::CSSSettingsActiveObject( - const TUid aNotifyUid, - const TUint32 aNotifyKey, - MSSSettingsPubSubNotify& aNotifyHandler ) -: CActive( CActive::EPriorityStandard ), - iNotifyUid ( aNotifyUid ), - iNotifyKey( aNotifyKey ), - iNotifyHandler( &aNotifyHandler ), - iNotify( EFalse ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsActiveObject::ConstructL -// ----------------------------------------------------------------------------- -// -void CSSSettingsActiveObject::ConstructL() - { - TInt err = iProperty.Attach( - iNotifyUid, - iNotifyKey ); - User::LeaveIfError( err ); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsActiveObject::NewL -// ----------------------------------------------------------------------------- -// -CSSSettingsActiveObject* CSSSettingsActiveObject::NewL( - const TUid aNotifyUid, - const TUint32 aNotifyKey, - MSSSettingsPubSubNotify& aNotifyHandler ) - { - CSSSettingsActiveObject* self = - new ( ELeave ) CSSSettingsActiveObject( - aNotifyUid, - aNotifyKey, - aNotifyHandler ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsActiveObject::~CSSSettingsActiveObject -// ----------------------------------------------------------------------------- -// -CSSSettingsActiveObject::~CSSSettingsActiveObject() - { - Cancel(); - iProperty.Close(); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsActiveObject::NotifyKeyChange -// ----------------------------------------------------------------------------- -// -TInt CSSSettingsActiveObject::NotifyKeyChange() - { - TInt err(KErrNone); - if ( iNotify || IsActive() ) - { - // Notify already active, so return error code. - err = KErrInUse; - } - else - { - iProperty.Subscribe( iStatus ); - SetActive(); - iNotify = ETrue; - } - return err; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsActiveObject::CancelNotifyCancelNotify -// ----------------------------------------------------------------------------- -// -void CSSSettingsActiveObject::CancelNotify() - { - Cancel(); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsActiveObject::RunL -// ----------------------------------------------------------------------------- -// -void CSSSettingsActiveObject::RunL() - { - TInt err = iStatus.Int(); - if ( err != KErrCancel && !iNotify ) - { - // Reset the notification. - iProperty.Subscribe( iStatus ); - SetActive(); - } - - if ( !err ) - { - if ( iNotifyHandler ) - { - iNotifyHandler->HandlePubSubNotify( - iNotifyUid, - iNotifyKey ); - } - } - } - -// --------------------------------------------------------- -// CSSSettingsActiveObject::DoCancel -// --------------------------------------------------------- -// -void CSSSettingsActiveObject::DoCancel() - { - iNotify = EFalse; - iProperty.Cancel(); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/src/CSSSettingsAlsNotifier.cpp --- a/cellular/SSSettings/src/CSSSettingsAlsNotifier.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,703 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Interface for ALS control -* -*/ - - - -// INCLUDE FILES -#include -#include -#include -#include // sssettings pub&sub keys. -#include // sssettings centrep keys. -#include - -#include "csssettingsalsnotifier.h" -#include "csssettingsactiveobject.h" -#include "sssettingslogger.h" - -// ================= MEMBER FUNCTIONS ======================= -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::CSSSettingsAlsNotifier -// ----------------------------------------------------------------------------- -// -CSSSettingsAlsNotifier::CSSSettingsAlsNotifier( - RMobilePhone& aMobilePhone, - RMmCustomAPI& aCustomPhone, - MCenRepNotifyHandlerCallback& aAlsNotifyHandler ) -: CActive( EPriorityStandard ), - iMobilePhone( aMobilePhone ), - iCustomPhone( aCustomPhone ), - iAlsNotifyHandler( &aAlsNotifyHandler ) - { - CActiveScheduler::Add( this ); - } - - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::ConstructL -// ----------------------------------------------------------------------------- -// -void CSSSettingsAlsNotifier::ConstructL() - { - iRepository = CRepository::NewL ( KCRUidSupplementaryServiceSettings ); - iCenRepNotifyHandler = CCenRepNotifyHandler::NewL( - *this, - *iRepository, - CCenRepNotifyHandler::EIntKey, - KSettingsAlsLine ); - iCenRepNotifyHandler->StartListeningL(); - - TInt error(KErrNone); - error = RProperty::Define( - KPSUidSSConfig, - KSettingsPPSupportsALS, - RProperty::EInt ); - if( ( error != KErrNone ) && ( error != KErrAlreadyExists ) ) - { - User::Leave ( error ); - } - error = RProperty::Define( - KPSUidSSConfig, - KSettingsSIMSupportsALS, - RProperty::EInt ); - if( ( error != KErrNone ) && ( error != KErrAlreadyExists ) ) - { - User::Leave ( error ); - } - - iPPSupportsAlNotifier = CSSSettingsActiveObject::NewL( - KPSUidSSConfig, - KSettingsPPSupportsALS, - *this ); - iSimSupportsAlsNotifier = CSSSettingsActiveObject::NewL( - KPSUidSSConfig, - KSettingsSIMSupportsALS, - *this ); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::NewL -// ----------------------------------------------------------------------------- -// -CSSSettingsAlsNotifier* CSSSettingsAlsNotifier::NewL( - RMobilePhone& aMobilePhone, - RMmCustomAPI& aCustomPhone, - MCenRepNotifyHandlerCallback& aAlsNotifyHandler ) - { - CSSSettingsAlsNotifier* self = - new ( ELeave ) CSSSettingsAlsNotifier( - aMobilePhone, - aCustomPhone, - aAlsNotifyHandler ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::~CSSSettingsAlsNotifier -// ----------------------------------------------------------------------------- -// -CSSSettingsAlsNotifier::~CSSSettingsAlsNotifier() - { - delete iPPSupportsAlNotifier; - delete iSimSupportsAlsNotifier; - - if( iCenRepNotifyHandler ) - { - iCenRepNotifyHandler->StopListening(); - } - delete iCenRepNotifyHandler; - delete iRepository; - - Cancel(); - // Do close after active request has been cancelled. - iMobilePhone.Close(); - iCustomPhone.Close(); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::RunL -// ----------------------------------------------------------------------------- -// -void CSSSettingsAlsNotifier::RunL() - { - __SSSLOGSTRING("[SSS]--> CSSSettingsAlsNotifier::RunL"); - TInt error = iStatus.Int(); - if (( error == KErrCancel ) || ( error == KErrNotSupported )) - { - return; - } - - // Reset the request: - RMobilePhone::TMobilePhoneALSLine newLine = iSimActiveAls; - iMobilePhone.NotifyALSLineChange( iStatus, iSimActiveAls ); - SetActive(); - - if ( error == KErrNone ) - { - TSSSettingsAlsValue newValue = ESSSettingsAlsNotSupported; - if ( newLine == RMobilePhone::EAlternateLinePrimary ) - { - newValue = ESSSettingsAlsPrimary; - } - else if ( newLine == RMobilePhone::EAlternateLineAuxiliary ) - { - newValue = ESSSettingsAlsAlternate; - } - else - { - newValue = ESSSettingsAlsNotSupported; - } - - // Inform observer. - iAlsNotifyHandler->HandleNotifyInt( - KSettingsAlsLine, - newValue ); - } - __SSSLOGSTRING("[SSS] <--CSSSettingsAlsNotifier::RunL"); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::DoCancel -// ----------------------------------------------------------------------------- -// -void CSSSettingsAlsNotifier::DoCancel() - { - iMobilePhone.CancelAsyncRequest( EMobilePhoneNotifyALSLineChange ); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::NotifyAlsChange -// ----------------------------------------------------------------------------- -// -TInt CSSSettingsAlsNotifier::NotifyAlsChange() - { - __SSSLOGSTRING("[SSS]--> CSSSettingsAlsNotifier::NotifyAlsChange"); - TInt error = EnsureAlsStatus(); - if ( error == KErrNone ) - { - error = iPPSupportsAlNotifier->NotifyKeyChange(); - - if ( error == KErrNone || error == KErrAlreadyExists ) - { - error = iSimSupportsAlsNotifier->NotifyKeyChange(); - if ( error != KErrNone && error != KErrAlreadyExists ) - { - iPPSupportsAlNotifier->CancelNotify(); - } - } - if ( error == KErrNone || error == KErrAlreadyExists ) - { - // Add notifier to Etel side if supported - if ( !IsActive() && iSimSupportAls ) - { - iMobilePhone.NotifyALSLineChange( iStatus, iSimActiveAls ); - SetActive(); - - // Everything was ok, so inform that. - error = KErrNone; - } - } - } - __SSSLOGSTRING("[SSS] <--CSSSettingsAlsNotifier::NotifyAlsChange"); - return error; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::CancelNotify -// ----------------------------------------------------------------------------- -// -void CSSSettingsAlsNotifier::CancelNotify() - { - iCenRepNotifyHandler->StopListening(); - iPPSupportsAlNotifier->CancelNotify(); - iSimSupportsAlsNotifier->CancelNotify(); - Cancel(); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::SetAlsValue -// ----------------------------------------------------------------------------- -// -TInt CSSSettingsAlsNotifier::SetAlsValue( TSSSettingsAlsValue aValue ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsAlsNotifier::SetAlsValue"); - TInt error = EnsureAlsStatus(); - if ( error != KErrNone ) - { - return error; - } - // If ALS not supported... - if ( !iPPSupportAls && !iSimSupportAls && !iAlsCSPSupport ) - { - aValue = ESSSettingsAlsNotSupported; - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::SetAlsValue: aValue: %d", aValue); - return KErrNone; - } - - // Check if aValue is corrupted. - if (( aValue < ESSSettingsAlsNotSupported ) || - ( aValue > ESSSettingsAlsAlternate )) - { - return KErrArgument; - } - - // If ALS is supported on SIM, use that. - if ( iSimSupportAls ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsAlsNotifier::SetAlsValue: SIM ALS supported"); - // Write to ETel - RMobilePhone::TMobilePhoneALSLine simAlsLine; - switch ( aValue ) - { - case ESSSettingsAlsPrimary: - simAlsLine = RMobilePhone::EAlternateLinePrimary; - break; - case ESSSettingsAlsAlternate: - simAlsLine = RMobilePhone::EAlternateLineAuxiliary; - break; - default: - return KErrNotSupported; - } - TRequestStatus status; - iMobilePhone.SetALSLine( status, simAlsLine ); - User::WaitForRequest( status ); - error = status.Int(); - } - else - { - error = iRepository->Set( KSettingsAlsLine, aValue ); - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::SetAlsValue: aValue: %d", aValue); - } - - __SSSLOGSTRING("[SSS] <--CSSSettingsAlsNotifier::SetAlsValue"); - return error; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::GetAlsValue -// ----------------------------------------------------------------------------- -// -TInt CSSSettingsAlsNotifier::GetAlsValue( TSSSettingsAlsValue& aValue ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsAlsNotifier::GetAlsValue"); - TInt error = EnsureAlsStatus(); - if ( error != KErrNone ) - { - return error; - } - - // If ALS not supported... - if ( !iPPSupportAls && !iSimSupportAls && !iAlsCSPSupport ) - { - aValue = ESSSettingsAlsNotSupported; - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::GetAlsValue: aValue: %d", aValue); - return KErrNone; - } - - // Check if aValue is corrupted. - if (( aValue < ESSSettingsAlsNotSupported ) || - ( aValue > ESSSettingsAlsAlternate )) - { - return KErrArgument; - } - - // If ALS is supported on SIM, use that. - if ( iSimSupportAls ) - { - // Get from ETel; - RMobilePhone::TMobilePhoneALSLine simAlsLine; - error = iMobilePhone.GetALSLine( simAlsLine ); - if ( error != KErrNone ) - { - return error; - } - switch ( simAlsLine ) - { - case RMobilePhone::EAlternateLineAuxiliary: - aValue = ESSSettingsAlsAlternate; - break; - case RMobilePhone::EAlternateLinePrimary: - aValue = ESSSettingsAlsPrimary; - break; - default: - __ASSERT_DEBUG( EFalse , Panic( - SSSettingsPanicConflictInAls ) ); - aValue = ESSSettingsAlsNotSupported; - error = KErrCorrupt; - break; - } - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::GetAlsValue: SimAls supported: aValue: %d", aValue); - } - else - { - error = iRepository->Get( KSettingsAlsLine, (TInt&)aValue ); - - if ( error != KErrNone ) - { - return error; - } - - TInt usedLine = aValue; - - // If used SIM doesn't support ALS set ESSSettingsAlsPrimary line to use. - if ( error == KErrNone && usedLine == ESSSettingsAlsNotSupported ) - { - // Set default value - error = SetAlsValue( ESSSettingsAlsPrimary ); - if ( error == KErrNone ) - { - aValue = ESSSettingsAlsPrimary; - } - } - else if (( aValue < ESSSettingsAlsNotSupported ) || - ( aValue > ESSSettingsAlsAlternate )) - { - error = KErrCorrupt; - } - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::GetAlsValue: aValue: %d", aValue); - } - __SSSLOGSTRING("[SSS] <--CSSSettingsAlsNotifier::GetAlsValue"); - return error; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::GetAlsSupport -// ----------------------------------------------------------------------------- -// -void CSSSettingsAlsNotifier::GetAlsSupport( - TBool& aPPSupport, TBool& aSimSupport, TBool& aCSPSupport, TInt& aCSPError ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsAlsNotifier::GetAlsSupport"); - TInt error = EnsureAlsStatus(); - - if( error != KErrNone ) - { - __SSSLOGSTRING("[SSS] If we aren't able to get ALS status we can not support it"); - // If we aren't able to get ALS status we can not support it. - aPPSupport = EFalse; - aSimSupport = EFalse; - aCSPSupport = EFalse; - aCSPError = iAlsCSPError; - return; - } - - aPPSupport = iPPSupportAls; - aSimSupport = iSimSupportAls; - aCSPSupport = iAlsCSPSupport; - aCSPError = iAlsCSPError; - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::GetAlsSupport: iPPSupportAls: %d", iPPSupportAls); - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::GetAlsSupport: iSimSupportAls: %d", iSimSupportAls); - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::GetAlsSupport: iAlsCSPSupport: %d", iAlsCSPSupport); - __SSSLOGSTRING("[SSS] <--CSSSettingsAlsNotifier::GetAlsSupport"); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::CheckAlsSupportInProductProfile -// ----------------------------------------------------------------------------- -// -TInt CSSSettingsAlsNotifier::CheckAlsSupportInProductProfile( - TBool& aIsAlsSopportedInPP ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsAlsNotifier::CheckAlsSupportInProductProfile"); - RMmCustomAPI::TAlsSupport ppAlsSupport; - - TInt error = iCustomPhone.CheckAlsPpSupport( ppAlsSupport ); - - if ( ( error == KErrNone ) && - ( ppAlsSupport == RMmCustomAPI::EAlsSupportOn ) ) - { - aIsAlsSopportedInPP = ETrue; - } - else - { - aIsAlsSopportedInPP = EFalse; - } - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::CheckAlsSupportInProductProfile: aIsAlsSopportedInPP: %d", aIsAlsSopportedInPP); - __SSSLOGSTRING("[SSS] <--CSSSettingsAlsNotifier::CheckAlsSupportInProductProfile"); - return error; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::CheckAlsSupportInSim -// ----------------------------------------------------------------------------- -// -TInt CSSSettingsAlsNotifier::CheckAlsSupportInSim( - TBool& aIsAlsSopportedInSim ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsAlsNotifier::CheckAlsSupportInSim"); - RMobilePhone::TMobilePhoneALSLine simAlsSupport; - TInt error = iMobilePhone.GetALSLine( simAlsSupport ); - - if (( error != KErrNone ) || - ( simAlsSupport == RMobilePhone::EAlternateLineUnknown ) || - ( simAlsSupport == RMobilePhone::EAlternateLineNotAvailable )) - { - aIsAlsSopportedInSim = EFalse; - } - else - { - aIsAlsSopportedInSim = ETrue; - } - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::CheckAlsSupportInSim: aIsAlsSopportedInSim: %d", aIsAlsSopportedInSim); - __SSSLOGSTRING("[SSS] <--CSSSettingsAlsNotifier::CheckAlsSupportInSim"); - return error; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::EnsureAlsStatus -// ----------------------------------------------------------------------------- -// -TInt CSSSettingsAlsNotifier::EnsureAlsStatus() - { - RMobilePhone::TCspCPHSTeleservices params = ( RMobilePhone::TCspCPHSTeleservices )0; - TInt error(KErrNone); - TInt simState(0); - TBool savePPSimAls(0); - TBool saveSimAls(0); - - __SSSLOGSTRING("[SSS]--> CSSSettingsAlsNotifier::EnsureAlsStatus"); - if ( iAlsStatusChecked ) - { - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::EnsureAlsStatus - Already checked: %d", iAlsStatusChecked); - return KErrNone; - } - - error = RProperty::Get( KPSUidStartup, KPSSimStatus, simState ); - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::EnsureAlsStatus - KPSUidSIMStatusValue: %d", simState); - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::EnsureAlsStatus - KPSUidSIMStatusValue Error: %d", error); - - if ( error == KErrNone ) - { - // Make sure that SIM state is OK otherwise parameters coming from SIM are mess. - if ( simState ==ESimUsable ) - { - // Get Als support from Product Profile. - error = CheckAlsSupportInProductProfile( iPPSupportAls ); - if ( error == KErrNone ) - { - savePPSimAls = ETrue; - } - if ( error != KErrNone ) - { - return error; - } - - // Get Als support from SIM. - error = CheckAlsSupportInSim( iSimSupportAls ); - if ( error == KErrNone ) - { - saveSimAls = ETrue; - } - if ( ( error != KErrNone ) && ( error != KErrNotFound ) ) - { - return error; - } - - // Open connection RCustomerServiceProfileCache. - RCustomerServiceProfileCache alsProfileCache; - error = alsProfileCache.Open(); - if ( error != KErrNone ) - { - return error; - } - - // Get ALS CSP bit from cache. - iAlsCSPError = alsProfileCache.CspCPHSTeleservices( params ); - - if ( iAlsCSPError == KErrNone || iAlsCSPError == KErrNotSupported ) - { - // Checks CSP ALS support. - iAlsCSPSupport = CheckIfAlsCSPSupported( params ); - } - // If ETEL/TSY responses with error KErrNotReady/KErrServerBusy then CSP value is not correct one - // and iAlsStatusChecked is set to EFalse. - else if ( iAlsCSPError == KErrNotReady || iAlsCSPError == KErrServerBusy ) - { - iAlsStatusChecked = EFalse; - alsProfileCache.Close(); - return iAlsCSPError; - } - // Close connection RCustomerServiceProfileCache. - alsProfileCache.Close(); - - // Save PP and SIM als values to P&S. - if ( savePPSimAls ) - { - error = RProperty::Set( KPSUidSSConfig, KSettingsPPSupportsALS, iPPSupportAls ); - if ( error != KErrNone ) - { - return error; - } - } - - if ( saveSimAls ) - { - error = RProperty::Set( KPSUidSSConfig, KSettingsSIMSupportsALS, iSimSupportAls ); - if ( error != KErrNone ) - { - return error; - } - } - - iAlsStatusChecked = ETrue; - } - else - { - iAlsStatusChecked = EFalse; - } - } - __SSSLOGSTRING1("[SSS]--> CSSSettingsAlsNotifier::EnsureAlsStatus: iAlsStatusChecked: %d", iAlsStatusChecked); - __SSSLOGSTRING("[SSS] <--CSSSettingsAlsNotifier::EnsureAlsStatus"); - return KErrNone; - } - -// --------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::CheckIfAlsCSPSupported -// --------------------------------------------------------------------------- -// -TBool CSSSettingsAlsNotifier::CheckIfAlsCSPSupported( - const RMobilePhone::TCspCPHSTeleservices aContainer ) const - { - TBool supported(EFalse); - - if ( ( aContainer & RMobilePhone::KCspALS ) != 0 ) - { - supported = ETrue; - } - return supported; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::HandleNotifyInt -// ----------------------------------------------------------------------------- -// -void CSSSettingsAlsNotifier::HandleNotifyInt( TUint32 aId, TInt /*aNewValue*/ ) - { - __SSSLOGSTRING("[SSS] -->CSSSettingsAlsNotifier::HandleNotifyInt"); - if ( aId == KSettingsAlsLine ) - { - iAlsStatusChecked = EFalse; - EnsureAlsStatus(); - - // Inform others - TSSSettingsAlsValue newLine = ESSSettingsAlsNotSupported; - if ( GetAlsValue( newLine ) == KErrNone ) - { - iAlsNotifyHandler->HandleNotifyInt( - KSettingsAlsLine, - newLine ); - } - } - __SSSLOGSTRING("[SSS] <--CSSSettingsAlsNotifier::HandleNotifyInt"); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::HandleNotifyError -// ----------------------------------------------------------------------------- -// -void CSSSettingsAlsNotifier::HandleNotifyError( TUint32 aId, TInt /*aError*/, - CCenRepNotifyHandler* /*aHandler*/ ) - { - if ( aId == KSettingsAlsLine ) - { - // Here you could call the below, if you are sure that it do not cause - // eternal loop - // TRAPD( error, aHandler->StartListeningL() ); - } - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::HandlePubSubNotify -// ----------------------------------------------------------------------------- -// -void CSSSettingsAlsNotifier::HandlePubSubNotify( const TUid aUid, const TUint32 aKeyId ) - { - if ( aUid == KPSUidSSConfig ) - { - if ( ( aKeyId == KSettingsPPSupportsALS ) || - ( aKeyId == KSettingsSIMSupportsALS ) ) - { - - if ( iAlsStatusChecked == EFalse ) - { - EnsureAlsStatus(); - } - - // Inform others - TSSSettingsAlsValue newValue = ESSSettingsAlsNotSupported; - if ( GetAlsValue( newValue ) == KErrNone ) - { - iAlsNotifyHandler->HandleNotifyInt( - KSettingsAlsLine, - newValue ); - } - } - } - } - -// ----------------------------------------------------------------------------- -// CSSSettingsAlsNotifier::HandleRefresh -// ----------------------------------------------------------------------------- -TInt CSSSettingsAlsNotifier::HandleRefresh() - { - __SSSLOGSTRING("[SSS]--> CSSSettingsAlsNotifier::HandleRefresh"); - TInt error = CheckAlsSupportInProductProfile( iPPSupportAls ); - if ( error == KErrNone ) - { - error = RProperty::Set( - KPSUidSSConfig, - KSettingsPPSupportsALS, - iPPSupportAls ); - } - - if ( error != KErrNone ) - { - return error; - } - - error = CheckAlsSupportInSim( iSimSupportAls ); - if ( error == KErrNone ) - { - error = RProperty::Set( - KPSUidSSConfig, - KSettingsSIMSupportsALS, - iSimSupportAls ); - } - - if ( error != KErrNone ) - { - return error; - } - - // Inform others - TSSSettingsAlsValue newLine; - error = GetAlsValue( newLine ); - if ( error == KErrNone ) - { - SetAlsValue( newLine ); - } - - __SSSLOGSTRING("[SSS] <--CSSSettingsAlsNotifier::HandleRefresh"); - return error; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/src/CSSSettingsNotifier.cpp --- a/cellular/SSSettings/src/CSSSettingsNotifier.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,422 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Notifier for changes. -* -*/ - - -// INCLUDE FILES -#include -#include -#include - -#include "csssettingsnotifier.h" -#include "msssettingsobserver.h" -#include "csssettingsalsnotifier.h" -#include "sssettingslogger.h" - - -// DATA TYPES - -/** -* It enumerates all keys to be notified from Central Repository under -* KCRUidSupplementaryServiceSettings. -* -* ESSSettingsKeyNone - No key change to be notified. -* ESSSettingsKeyAlsLine - Als line change to be notified. -* ESSSettingsKeyClir - Clir change to be notified. -* ESSSettingsKeyCug - Cug change to be notified. -* ESSSettingsKeyAll - All keys to be notified. -*/ -enum TSSSettingsCenRepNotifyKey - { - ESSSettingsKeyNone = 0x00000000, - ESSSettingsKeyAlsLine = 0x00000001, - ESSSettingsKeyClir = 0x00000002, - ESSSettingsKeyCug = 0x00000004, - - // Keep as last. - ESSSettingsKeyAll = 0xFFFFFFFF - }; - - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CSSSettingsNotifier::CSSSettingsNotifier -// ----------------------------------------------------------------------------- -// -CSSSettingsNotifier::CSSSettingsNotifier( RSSSettings& aSettings ) -: CActive( EPriorityStandard ), - iSettings( aSettings ), - iNotifyKeys ( ESSSettingsKeyNone ) - { - CActiveScheduler::Add( this ); - } - - -// ----------------------------------------------------------------------------- -// CSSSettingsNotifier::ConstructL -// ----------------------------------------------------------------------------- -// -void CSSSettingsNotifier::ConstructL() - { - iAls = CSSSettingsAlsNotifier::NewL( - iSettings.iData->iMobilePhone, - *iSettings.iData->iCustomPhone, - *this ); - - iRepository = CRepository::NewL( KCRUidSupplementaryServiceSettings ); - - iCenRepAlsNotifyHandler = CCenRepNotifyHandler::NewL( - *this, - *iRepository, - CCenRepNotifyHandler::EIntKey, - KSettingsAlsLine ); - - iCenRepClirNotifyHandler = CCenRepNotifyHandler::NewL( - *this, - *iRepository, - CCenRepNotifyHandler::EIntKey, - KSettingsCLIR ); - - iCenRepCugNotifyHandler = CCenRepNotifyHandler::NewL( - *this, - *iRepository, - CCenRepNotifyHandler::EIntKey, - KSettingsCUG ); - - // Start listening all the keys, the notify is handled only if there is - // notify request made. - iCenRepAlsNotifyHandler->StartListeningL(); - iCenRepClirNotifyHandler->StartListeningL(); - iCenRepCugNotifyHandler->StartListeningL(); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsNotifier::~CSSSettingsNotifier -// ----------------------------------------------------------------------------- -// -CSSSettingsNotifier::~CSSSettingsNotifier() - { - Cancel(); - if( iCenRepAlsNotifyHandler ) - { - iCenRepAlsNotifyHandler->StopListening(); - } - - if( iCenRepClirNotifyHandler ) - { - iCenRepClirNotifyHandler->StopListening(); - } - - if( iCenRepCugNotifyHandler ) - { - iCenRepCugNotifyHandler->StopListening(); - } - - delete iCenRepAlsNotifyHandler; - delete iCenRepClirNotifyHandler; - delete iCenRepCugNotifyHandler; - delete iRepository; - delete iAls; - - } - -// ----------------------------------------------------------------------------- -// CSSSettingsNotifier::AddNotifier -// ----------------------------------------------------------------------------- -// -TInt CSSSettingsNotifier::AddNotifier( TSSSettingsSetting aSetting ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsNotifier::AddNotifier"); - TInt error(KErrNone); - switch ( aSetting ) - { - case ESSSettingsCug: - iNotifyKeys = ( iNotifyKeys | ESSSettingsKeyCug ); - break; - - case ESSSettingsClir: - iNotifyKeys = ( iNotifyKeys | ESSSettingsKeyClir ); - break; - - case ESSSettingsAls: - error = iAls->NotifyAlsChange(); - if ( error == KErrNone || error == KErrAlreadyExists ) - { - iNotifyKeys = ( iNotifyKeys | ESSSettingsKeyAlsLine ); - } - break; - - case ESSSettingsAlsBlocking: - // Handled via active object - if ( !IsActive() ) - { - iSettings.iData->iCustomPhone->NotifyAlsBlockedChanged( - iStatus, iAlsBlockStatus ); - SetActive(); - } - else - { - error = KErrAlreadyExists; - } - break; - - case ESSSettingsDefaultCug: - //CUG default cannot be changed - break; - - default: - error = KErrNotSupported; - } - - __SSSLOGSTRING1("[SSS] CSSSettingsNotifier::AddNotifier: error: %d", error ); - __SSSLOGSTRING("[SSS] <--CSSSettingsNotifier::AddNotifier"); - return error; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsNotifier::RemoveNotifier -// ----------------------------------------------------------------------------- -// -void CSSSettingsNotifier::RemoveNotifier( TSSSettingsSetting aSetting ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsNotifier::RemoveNotifier"); - switch ( aSetting ) - { - case ESSSettingsCug: - iNotifyKeys = ( iNotifyKeys & ( ~ESSSettingsKeyCug ) ); - break; - - case ESSSettingsClir: - iNotifyKeys = ( iNotifyKeys & ( ~ESSSettingsKeyClir ) ); - break; - - case ESSSettingsAls: - if ( iAls ) - { - iAls->CancelNotify(); - } - iNotifyKeys = ( iNotifyKeys & ( ~ESSSettingsKeyAlsLine ) ); - break; - - case ESSSettingsAlsBlocking: - Cancel(); - break; - - default: - break; - } - __SSSLOGSTRING("[SSS] <--CSSSettingsNotifier::RemoveNotifier"); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsNotifier::RunL -// ----------------------------------------------------------------------------- -// -void CSSSettingsNotifier::RunL() - { - __SSSLOGSTRING("[SSS]--> CSSSettingsNotifier::RunL"); - switch ( iStatus.Int() ) - { - case KErrCancel: - case KErrNotSupported: - return; - case KErrNone: - // Inform observers - switch ( iAlsBlockStatus ) - { - case RMmCustomAPI::EBlockStatusNotSupported: - iSettings.InformChange( - ESSSettingsAlsBlocking, - static_cast ( - ESSSettingsAlsBlockingNotSupported ) ); - break; - case RMmCustomAPI::EBlockStatusActive: - iSettings.InformChange( - ESSSettingsAlsBlocking, - static_cast ( ESSSettingsAlsBlockingOn ) ); - break; - case RMmCustomAPI::EBlockStatusInactive: - iSettings.InformChange( ESSSettingsAlsBlocking, - static_cast ( ESSSettingsAlsBlockingOff ) ); - break; - case RMmCustomAPI::EBlockStatusUnknown: - break; - default: - break; - } - break; - default: - break; - } - - // re-activate request. - iSettings.iData->iCustomPhone->NotifyAlsBlockedChanged( - iStatus, iAlsBlockStatus ); - SetActive(); - - __SSSLOGSTRING("[SSS] <--CSSSettingsNotifier::RunL"); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsNotifier::DoCancel -// ----------------------------------------------------------------------------- -// -void CSSSettingsNotifier::DoCancel() - { - iSettings.iData->iCustomPhone->CancelAsyncRequest( - ECustomNotifyAlsBlockedChangedIPC ); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsNotifier::HandleNotifyInt -// ----------------------------------------------------------------------------- -// -void CSSSettingsNotifier::HandleNotifyInt( TUint32 aId, TInt aNewValue ) - { - __SSSLOGSTRING2("[SSS] -->CSSSettingsNotifier::HandleNotifyInt aId: %d aNewValue: %d", aId, aNewValue); - // First check CUG mode - if ( aId == KSettingsCUG ) - { - // Inform change only if Cug notify request is on. - if ( iNotifyKeys & ESSSettingsKeyCug ) - { - iSettings.InformChange( - ESSSettingsCug, - aNewValue ); - } - } - - // Then CLIR - else if ( aId == KSettingsCLIR ) - { - // Inform change only if Clir notify request is on. - if ( iNotifyKeys & ESSSettingsKeyClir ) - { - iSettings.InformChange( - ESSSettingsClir, - aNewValue ); - } - } - - // ALS - not forwarded if not supported - else if ( aId == KSettingsAlsLine ) - { - // Inform change only if Als line notify request is on. - if ( iNotifyKeys & ESSSettingsKeyAlsLine ) - { - TBool ppSupported(EFalse); - TBool simSupported(EFalse); - TBool cspSupported(EFalse); - TInt cspError(KErrNone); - iAls->GetAlsSupport( ppSupported, - simSupported, - cspSupported, - cspError ); - __SSSLOGSTRING1("[SSS] ppSupported: %d", ppSupported); - __SSSLOGSTRING1("[SSS] simSupported: %d", simSupported); - __SSSLOGSTRING1("[SSS] cspSupported: %d", cspSupported); - __SSSLOGSTRING1("[SSS] cspError: %d", cspError); - if ( AlsSupport( ppSupported, cspSupported, cspError ) ) - { - __SSSLOGSTRING1("[SSS] ->InformChange aNewValue:%d", aNewValue); - iSettings.InformChange( - ESSSettingsAls, - aNewValue ); - } - else - { - __SSSLOGSTRING("[SSS] ->InformChange AlsNotSupported "); - iSettings.InformChange( - ESSSettingsAls, - ESSSettingsAlsNotSupported ); - } - } - } - // Other - else - { - __ASSERT_DEBUG( EFalse, User::Invariant() ); - } - __SSSLOGSTRING("[SSS] <--CSSSettingsNotifier::HandleNotifyInt"); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsNotifier::AlsSupport -// ----------------------------------------------------------------------------- -// -TBool CSSSettingsNotifier::AlsSupport( TBool aPPSupport, TBool aCSPSupport, - TInt aCSPError ) - { - TBool send(EFalse); - // If aCSPSupport is false and CSP doesnt return error then it is not - // needed to send notification to clients. - if ( aPPSupport || ( aCSPSupport && aCSPError == KErrNone ) ) - { - send = ETrue; - } - - return send; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsNotifier::HandleNotifyError -// ----------------------------------------------------------------------------- -// -void CSSSettingsNotifier::HandleNotifyError( TUint32 /*aId*/, TInt /*aError*/, - CCenRepNotifyHandler* /*aHandler*/ ) - { - // Here you could call the below, if you are sure that it do not cause - // eternal loop - // TRAPD( error, aHandler->StartListeningL() ); - } - - -// ----------------------------------------------------------------------------- -// CSSSettingsNotifier::GetAlsHandler -// ----------------------------------------------------------------------------- -// -CSSSettingsAlsNotifier* CSSSettingsNotifier::GetAlsHandler() - { - __SSSLOGSTRING("[SSS]--> CSSSettingsNotifier::GetAlsHandler"); - TBool ppSupported(EFalse); - TBool simSupported(EFalse); - TBool cspSupported(EFalse); - TInt cspError(KErrNone); - iAls->GetAlsSupport( ppSupported, simSupported, cspSupported, cspError ); - __SSSLOGSTRING1("[SSS] CSSSettingsNotifier::GetAlsHandler: ppSupported: %d", ppSupported ); - __SSSLOGSTRING1("[SSS] CSSSettingsNotifier::GetAlsHandler: simSupported: %d", simSupported ); - __SSSLOGSTRING1("[SSS] CSSSettingsNotifier::GetAlsHandler: cspSupported: %d", cspSupported ); - if ( ppSupported || simSupported || cspSupported ) - { - __SSSLOGSTRING("[SSS] <--CSSSettingsNotifier::GetAlsHandler: ALS supported"); - return iAls; // returned only if supported - } - - __SSSLOGSTRING("[SSS] <--CSSSettingsNotifier::GetAlsHandler: NULL returned"); - return NULL; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsNotifier::HandleRefresh -// ----------------------------------------------------------------------------- -// -TInt CSSSettingsNotifier::HandleRefresh() - { - return iAls->HandleRefresh(); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/src/CSSSettingsRefreshContainer.cpp --- a/cellular/SSSettings/src/CSSSettingsRefreshContainer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -/* -* Copyright (c) 2004 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: Container class for refresh related implementation.. -* -*/ - - - -// INCLUDE FILES -#include -#include "csssettingsrefreshhandler.h" - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshContainer::CSSSettingsRefreshContainer -// ----------------------------------------------------------------------------- -// -CSSSettingsRefreshContainer::CSSSettingsRefreshContainer() - { - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshContainer::ConstructL -// ----------------------------------------------------------------------------- -// -void CSSSettingsRefreshContainer::ConstructL() - { - iRefreshHandler = CSSSettingsRefreshHandler::NewL(); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshContainer::NewL -// ----------------------------------------------------------------------------- -// -EXPORT_C CSSSettingsRefreshContainer* CSSSettingsRefreshContainer::NewL() - { - CSSSettingsRefreshContainer* self = - new( ELeave ) CSSSettingsRefreshContainer; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshContainer::~CSSSettingsRefreshContainer -// ----------------------------------------------------------------------------- -// -EXPORT_C CSSSettingsRefreshContainer::~CSSSettingsRefreshContainer() - { - delete iRefreshHandler; - iRefreshHandler = NULL; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshContainer::RefreshHandler -// ----------------------------------------------------------------------------- -// -EXPORT_C MSSSettingsRefreshHandler& - CSSSettingsRefreshContainer::RefreshHandler() - { - return *iRefreshHandler; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/src/CSSSettingsRefreshHandler.cpp --- a/cellular/SSSettings/src/CSSSettingsRefreshHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,326 +0,0 @@ -/* -* Copyright (c) 2004-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: The Refresh handler to inform SAT refresses. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include // bt sap central repository key. -#include - -#include "csssettingsrefreshhandler.h" -#include "sssettingslogger.h" -#include "csssettingsactiveobject.h" - -// ============================= LOCAL FUNCTIONS =============================== - - -// CLASS DECLARATION - -/** -* The Refresh notify observer info container. -* -* @lib SsSettings.lib -* @since 2.6 -*/ -class CSSSettingsNotifyInfo -:public CBase - { - public: // Data - - // Refresh observer. - MSSSettingsRefreshObserver* iObserver; - - // Observed file. - TSatElementaryFiles iObservedFile; - - // Observed refresh type. - TSatRefreshType iObservedRefreshType; - }; - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshHandler::CSSSettingsRefreshHandler -// ----------------------------------------------------------------------------- -// -CSSSettingsRefreshHandler::CSSSettingsRefreshHandler() - { - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshHandler::ConstructL -// ----------------------------------------------------------------------------- -// -void CSSSettingsRefreshHandler::ConstructL() - { - __SSSLOGSTRING("[SSS]--> CSSSettingsRefreshHandler::ConstructL"); - iNotifyInfo = new ( ELeave ) CSSSettingsNotifyInfo; - - User::LeaveIfError ( iRSSSettings.Open() ); - - User::LeaveIfError ( iRCspCache.Open() ); - - iRSatSession.ConnectL(); - - iRSatRefresh = new ( ELeave ) RSatRefresh ( *this); - iRSatRefresh->OpenL( iRSatSession ); - iRSatRefresh->NotifyFileChangeL(); - - if ( FeatureManager::FeatureSupported ( KFeatureIdBtSap ) ) - { - //create the active object instance - iBtSapNotifier = CSSSettingsActiveObject::NewL( - KPSUidBluetoothSapConnectionState, - KBTSapConnectionState, - *this ); - - //subscribe for key event notifications - iBtSapNotifier->NotifyKeyChange(); - } - __SSSLOGSTRING("[SSS] <--CSSSettingsRefreshHandler::ConstructL"); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshHandler::NewL -// ----------------------------------------------------------------------------- -// -CSSSettingsRefreshHandler* CSSSettingsRefreshHandler::NewL() - { - __SSSLOGSTRING("[SSS]--> CSSSettingsRefreshHandler::NewL"); - CSSSettingsRefreshHandler* self = new( ELeave ) CSSSettingsRefreshHandler; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - __SSSLOGSTRING("[SSS] <--CSSSettingsRefreshHandler::NewL"); - return self; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshHandler::~CSSSettingsRefreshHandler -// ----------------------------------------------------------------------------- -// -CSSSettingsRefreshHandler::~CSSSettingsRefreshHandler() - { - __SSSLOGSTRING("[SSS]--> CSSSettingsRefreshHandler::~CSSSettingsRefreshHandler"); - if ( iRSatRefresh ) - { - iRSatRefresh->Cancel(); - iRSatRefresh->Close(); - delete iRSatRefresh; - iRSatRefresh = NULL; - } - iRSatSession.Close(); - iRSSSettings.Close(); - - delete iNotifyInfo; - iNotifyInfo = NULL; - - if ( FeatureManager::FeatureSupported ( KFeatureIdBtSap ) ) - { - if( iBtSapNotifier ) - { - iBtSapNotifier->CancelNotify(); - } - delete iBtSapNotifier; - } - - iRCspCache.Close(); - - __SSSLOGSTRING("[SSS] <--CSSSettingsRefreshHandler::~CSSSettingsRefreshHandler"); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshHandler::NotifyFileChangeL -// ----------------------------------------------------------------------------- -// -void CSSSettingsRefreshHandler::NotifyFileChangeL( - MSSSettingsRefreshObserver& aObserver, - TSatElementaryFiles aObservedFiles, - TSatRefreshType aObservedRefreshType ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsRefreshHandler::NotifyFileChangeL"); - // Update variables. - iNotifyInfo->iObserver = &aObserver; - iNotifyInfo->iObservedFile = aObservedFiles; - iNotifyInfo->iObservedRefreshType = aObservedRefreshType; - __SSSLOGSTRING("[SSS] <--CSSSettingsRefreshHandler::NotifyFileChangeL"); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshHandler::CancelNotify -// ----------------------------------------------------------------------------- -// -void CSSSettingsRefreshHandler::CancelNotify() - { - iNotifyInfo->iObserver = NULL; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshHandler::ChangedCspTable -// ----------------------------------------------------------------------------- -// -TInt CSSSettingsRefreshHandler::ChangedCspTable( - TDes8& aChangedCsps, - TDes8& aNewValues ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsRefreshHandler::ChangedCspTable"); - return iRCspCache.ChangedCspTable( - aChangedCsps, - aNewValues ); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshHandler::AllowRefresh -// ----------------------------------------------------------------------------- -// -TBool CSSSettingsRefreshHandler::AllowRefresh( - TSatRefreshType aType, - const TSatRefreshFiles& aFiles ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsRefreshHandler::AllowRefresh"); - return DoHandleRefresh( aType, aFiles, ESSSettingsAllowRefresh ); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshHandler::Refresh -// ----------------------------------------------------------------------------- -// -void CSSSettingsRefreshHandler::Refresh( - TSatRefreshType aType, - const TSatRefreshFiles& aFiles ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsRefreshHandler::Refresh"); - DoHandleRefresh( aType, aFiles, ESSSettingsRefresh ); - __SSSLOGSTRING("[SSS] <--CSSSettingsRefreshHandler::Refresh"); - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshHandler::DoHandleRefresh -// ----------------------------------------------------------------------------- -// -TBool CSSSettingsRefreshHandler::DoHandleRefresh( - TSatRefreshType aType, - const TSatRefreshFiles& aFiles, - const TSSSettingsRefreshFunction aFunctionality ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsRefreshHandler::DoHandleRefresh"); - if ( aFunctionality == ESSSettingsRefresh ) - { - // Refresh handling needed only if the refresh has happened. - iRCspCache.HandleRefresh(); - iRSSSettings.HandleRefresh(); - } - - TBool cspEfFound = - aFiles.Locate( KCsp1Ef ) != KErrNotFound || - aFiles.Locate( KCsp2Ef ) != KErrNotFound; - - // KCspEf is no longer provided by SAT but GS and PS seem to depend on it, - // handled here for now. - TBool fileFound = - aFiles.Locate( iNotifyInfo->iObservedFile ) != KErrNotFound || - cspEfFound && iNotifyInfo->iObservedFile == KCspEf; - - - // By default refresh is allowed. - TBool allow(ETrue); - - // Handle only if there is observer. - if ( iNotifyInfo->iObserver ) - { - // Handle only if observer wants to listen this event. - if ( iNotifyInfo->iObservedRefreshType & aType ) - { - if ( aType != EFileChangeNotification || fileFound ) - { - if ( aFunctionality == ESSSettingsRefresh ) - { - // Inform the observer about the refresh event. - iNotifyInfo->iObserver->Refresh( - aType, iNotifyInfo->iObservedFile ); - iRSatRefresh->RefreshEFRead( cspEfFound ); - } - else // ESSSettingsAllowRefresh - { - // Inform the observer about the coming refresh event. - allow = iNotifyInfo->iObserver->AllowRefresh( - aType, iNotifyInfo->iObservedFile ); - } - } - - // If there is no client listening changed files SSSettings has to - // check if some CSP file is into the list and send right response - // since itself reads CSP files. - if ( !fileFound ) - { - iRSatRefresh->RefreshEFRead( !cspEfFound ); - } - } - else - { - iRSatRefresh->RefreshEFRead( EFalse ); - } - } - else if ( aType == EFileChangeNotification - || aType == ESimInitFileChangeNotification - || aType == ESimInit ) - { - iRSatRefresh->RefreshEFRead( !cspEfFound ); - } - else - { - // Do nothing - } - - __SSSLOGSTRING("[SSS] <--CSSSettingsRefreshHandler::DoHandleRefresh"); - return allow; - } - -// ----------------------------------------------------------------------------- -// CSSSettingsRefreshHandler::HandlePubSubNotify -// ----------------------------------------------------------------------------- -// -void CSSSettingsRefreshHandler::HandlePubSubNotify( const TUid aUid, - const TUint32 aKeyId ) - { - __SSSLOGSTRING("[SSS]--> CSSSettingsRefreshHandler::HandlePubSubNotify"); - if ( aUid == KPSUidBluetoothSapConnectionState && - aKeyId == KBTSapConnectionState ) - { - TInt btSapState(EBTSapNotConnected); - //get the current SAP state - RProperty::Get( aUid, aKeyId, btSapState ); - if ( btSapState == EBTSapNotConnected ) - { - // Refresh handling needed only if the BT SAP - // state is not connected. - iRCspCache.HandleRefresh(); - iRSSSettings.HandleRefresh(); - } - __SSSLOGSTRING1("[SSS] HandlePubSubNotify: btSapState: %d", btSapState); - } - __SSSLOGSTRING("[SSS] <--CSSSettingsRefreshHandler::HandlePubSubNotify"); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/src/RCustomerServiceProfileCache.cpp --- a/cellular/SSSettings/src/RCustomerServiceProfileCache.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,632 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Customer service profile cache -* -*/ - - -// INCLUDE FILES -#include // for feature definitions -#include -#include -#include -#include -#include - -#include "rcustomerserviceprofilecache.h" -#include "sssettingslogger.h" - -// CONSTANTS -#define KSSSettingsTSYName KMmTsyModuleName -const TInt KCspCacheTSYNameMaxLength( 80 ); -const TInt KCspCacheETelRetryCount(8); -const TInt KCspCacheETelRetryTimeout(100000); -const TInt KCspCacheNoFile(99999); -_LIT_SECURITY_POLICY_C1(KSSSettingReadPolicy, ECapabilityReadDeviceData); -_LIT_SECURITY_POLICY_C1(KSSSettingWritePolicy, ECapabilityWriteDeviceData); - - -// ==================== LOCAL FUNCTIONS ==================== - - -static TInt CspCacheDoOpenEtelConnection( RTelServer& aEtel, RPhone& aPhone ) - { - TInt phones(0); - if ( aEtel.EnumeratePhones( phones) == KErrNone ) - { - for ( TInt p = 0 ; p < phones ; p++ ) - { - TBuf tsyName; - if ( aEtel.GetTsyName( p,tsyName ) == KErrNone ) - { - if ( tsyName.CompareF( KSSSettingsTSYName ) == 0 ) - { - RTelServer::TPhoneInfo info; - if ( aEtel.GetPhoneInfo( p,info ) == KErrNone ) - { - if ( aPhone.Open( aEtel, info.iName ) == KErrNone ) - { - return KErrNone; - } - } - } - } - } - } - return KErrGeneral; - } - - -RCustomerServiceProfileCache::TCspCacheData::TCspCacheData():iCspFilePckg( - iCspFile ) - { - } - - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// Constructor -// ----------------------------------------------------------------------------- -EXPORT_C RCustomerServiceProfileCache::RCustomerServiceProfileCache() - { - iData = NULL; - } - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -EXPORT_C RCustomerServiceProfileCache::~RCustomerServiceProfileCache() - { - Close(); - } - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::Open -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCustomerServiceProfileCache::Open() - { - __SSSLOGSTRING("[SSS]--> RCustomerServiceProfileCache::Open"); - TRAPD( error, DoOpenL() ); - if ( error != KErrNone ) - { - Close(); - } - - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::Open: error: %d", error ); - __SSSLOGSTRING("[SSS] <-- RCustomerServiceProfileCache::Open"); - return error; - } - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::Close -// ----------------------------------------------------------------------------- -// -EXPORT_C void RCustomerServiceProfileCache::Close() - { - __SSSLOGSTRING("[SSS]--> RCustomerServiceProfileCache::Close"); - if ( iData == NULL ) - { - return; - } - - iData->iPhone.Close(); - iData->iEtel.Close(); - - delete iData; - iData = NULL; - - delete iOldCspFile; - iOldCspFile = NULL; - - FeatureManager::UnInitializeLib(); - __SSSLOGSTRING("[SSS] <-- RCustomerServiceProfileCache::Close"); - } - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::CspCallCompletion -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCustomerServiceProfileCache::CspCallCompletion( - RMobilePhone::TCspCallCompletion& aParams ) - { - __SSSLOGSTRING("[SSS]--> RCustomerServiceProfileCache::CspCallCompletion"); - TInt value(0); - TInt error = DoGetValues( value, ESsCspGroup1 ); - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::CspCallCompletion: error: %d", error); - - if ( error == KErrNone ) - { - //Read 8 bits are moved to correct place within a TInt. - aParams = ( RMobilePhone::TCspCallCompletion ) - ( ( value >> 24 ) & 0xff ); - } - - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::CspCallCompletion: value: %d", value); - __SSSLOGSTRING("[SSS] <-- RCustomerServiceProfileCache::CspCallCompletion"); - return error; - } - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::CspCallOffering -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCustomerServiceProfileCache::CspCallOffering( - RMobilePhone::TCspCallOffering& aParams ) - { - __SSSLOGSTRING("[SSS]--> RCustomerServiceProfileCache::CspCallOffering"); - TInt value(0); - TInt error = DoGetValues( value, ESsCspGroup1 ); - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::CspCallOffering: error: %d", error); - - if ( error == KErrNone ) - { - //Read 8 bits are moved to correct place within a TInt. - aParams = ( RMobilePhone::TCspCallOffering ) - ( ( value >> 16 ) & 0xff ); - } - - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::CspCallOffering: value: %d", value); - __SSSLOGSTRING("[SSS] <-- RCustomerServiceProfileCache::CspCallOffering"); - return error; - } - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::CspCallRestriction -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCustomerServiceProfileCache::CspCallRestriction( - RMobilePhone::TCspCallRestriction& aParams ) - { - __SSSLOGSTRING("[SSS]--> RCustomerServiceProfileCache::CspCallRestriction"); - TInt value(0); - TInt error = DoGetValues( value, ESsCspGroup1 ); - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::CspCallRestriction: error: %d", error); - - if ( error == KErrNone ) - { - //Read 8 bits are moved to correct place within a TInt. - aParams = ( RMobilePhone::TCspCallRestriction ) - ( ( value >> 8 ) & 0xff ); - } - - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::CspCallRestriction: value: %d", value); - __SSSLOGSTRING("[SSS] <-- RCustomerServiceProfileCache::CspCallRestriction"); - return error; - } - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::CspCPHSTeleservices -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCustomerServiceProfileCache::CspCPHSTeleservices( - RMobilePhone::TCspCPHSTeleservices& aParams ) - { - __SSSLOGSTRING("[SSS]--> RCustomerServiceProfileCache::CspCPHSTeleservices"); - TInt value(0); - TInt error = DoGetValues( value, ESsCspGroup1 ); - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::CspCPHSTeleservices: error: %d", error); - - if ( error == KErrNone ) - { - //Read 8 bits are moved to correct place within a TInt. - aParams = ( RMobilePhone::TCspCPHSTeleservices ) - ( value & 0xff ); - } - - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::CspCPHSTeleservices: value: %d", value); - __SSSLOGSTRING("[SSS] <-- RCustomerServiceProfileCache::CspCPHSTeleservices"); - return error; - } - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::HandleRefresh -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCustomerServiceProfileCache::HandleRefresh() - { - __SSSLOGSTRING("[SSS]--> RCustomerServiceProfileCache::HandleRefresh"); - // Save the old CSP information. - *iOldCspFile = iData->iCspFile; - - TRequestStatus status; - TInt value(0); - TInt valueExt(0); - iData->iPhone.GetCustomerServiceProfile( status, iData->iCspFilePckg ); - User::WaitForRequest( status ); - TInt error = status.Int(); - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::HandleRefresh: GetCustomerServiceProfile: error: %d", error); - - if ( error == KErrNone ) - { - // Read 8 bit groups are saved into one TInt. To make room for - // all groups, the first read groups are shifted left. - value = iData->iCspFile.iCallCompletionServices << 24; - value += iData->iCspFile.iCallOfferingServices << 16; - value += iData->iCspFile.iCallRestrictionServices << 8; - value += iData->iCspFile.iCphsTeleservices; - - // Read 8 bit groups are saved into one TInt. To make room for - // all groups, the first read groups are shifted left. - valueExt = iData->iCspFile.iTeleservices << 8; - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::HandleRefresh: valueExt1: %d", valueExt); - valueExt += iData->iCspFile.iValueAddedServices; - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::HandleRefresh: valueExt2: %d", valueExt); - } - else - { - value = KErrNotFound; - valueExt = KErrNotFound; - error = KErrNotSupported; - } - - if ( error == KErrNone ) - { - // Cache 2. - error = DefineAndSetValue( - KPSUidSSConfig, - KSettingsCspCache2, - valueExt ); - - if ( error == KErrNone ) - { - // Cache 1. - error = DefineAndSetValue( - KPSUidSSConfig, - KSettingsCspCache1, - value ); - } - } - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::HandleRefresh: error: %d", error); - __SSSLOGSTRING("[SSS] <-- RCustomerServiceProfileCache::HandleRefresh"); - return error; - } - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::CspCPHSValueAddedServices -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCustomerServiceProfileCache::CspCPHSValueAddedServices( - RMobilePhone::TCspValueAdded& aParams ) - { - __SSSLOGSTRING("[SSS]--> RCustomerServiceProfileCache::CspCPHSValueAddedServices"); - TInt value(0); - TInt error = DoGetValues( value, ESsCspGroup2 ); - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::CspCPHSValueAddedServices: error: %d", error); - - if ( error == KErrNone ) - { - aParams = ( RMobilePhone::TCspValueAdded )( value & 0xff ); - } - - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::CspCPHSValueAddedServices: value: %d", value); - __SSSLOGSTRING("[SSS] <-- RCustomerServiceProfileCache::CspCPHSValueAddedServices"); - return error; - } - - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::CspTeleServices - -// Include SM/CB, Reply path, Del. Conf, Prot. ID, Validity Period. -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCustomerServiceProfileCache::CspTeleServices( - RMobilePhone::TCspTeleservices& aParams ) - { - __SSSLOGSTRING("[SSS]--> RCustomerServiceProfileCache::CspTeleServices"); - TInt value(0); - TInt error = DoGetValues( value, ESsCspGroup2 ); - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::CspTeleServices: error: %d", error); - - if ( error == KErrNone ) - { - // Read 8 bits are moved to correct place within a TInt. - aParams = ( RMobilePhone::TCspTeleservices ) - ( ( value >> 8 ) & 0xff ); - } - - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::CspTeleServices: value: %d", value); - __SSSLOGSTRING("[SSS] <-- RCustomerServiceProfileCache::CspTeleServices"); - return error; - } - - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::ChangedCspTable -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RCustomerServiceProfileCache::ChangedCspTable( - TDes8& aChangedCsps, - TDes8& aNewValues ) - { - __SSSLOGSTRING("[SSS]--> RCustomerServiceProfileCache::ChangedCspTable"); - TInt error(KErrNone); - if ( !iData || !iOldCspFile ) - { - // CspFiles did not exist. - error = KErrCorrupt; - } - else - { - // Set the changed CSP file, done with XORing the old and new CSP file. - RMobilePhone::TMobilePhoneCspFileV1Pckg& cspFilePckg = - *reinterpret_cast< RMobilePhone::TMobilePhoneCspFileV1Pckg* >( - &aChangedCsps ); - RMobilePhone::TMobilePhoneCspFileV1& cspFile = cspFilePckg(); - - cspFile.iCallOfferingServices = ( TUint8 ) ( - iData->iCspFile.iCallOfferingServices ^ - iOldCspFile->iCallOfferingServices ); - - cspFile.iCallRestrictionServices = ( TUint8 ) ( - iData->iCspFile.iCallRestrictionServices ^ - iOldCspFile->iCallRestrictionServices ); - - cspFile.iOtherSuppServices = ( TUint8 ) ( - iData->iCspFile.iOtherSuppServices ^ - iOldCspFile->iOtherSuppServices ); - - cspFile.iCallCompletionServices = ( TUint8 ) ( - iData->iCspFile.iCallCompletionServices ^ - iOldCspFile->iCallCompletionServices ); - - cspFile.iTeleservices = ( TUint8 ) ( - iData->iCspFile.iTeleservices ^ - iOldCspFile->iTeleservices ); - - cspFile.iCphsTeleservices = ( TUint8 ) ( - iData->iCspFile.iCphsTeleservices ^ - iOldCspFile->iCphsTeleservices ); - - cspFile.iCphsFeatures = ( TUint8 ) ( - iData->iCspFile.iCphsFeatures ^ - iOldCspFile->iCphsFeatures ); - - cspFile.iNumberIdentServices = ( TUint8 ) ( - iData->iCspFile.iNumberIdentServices ^ - iOldCspFile->iNumberIdentServices ); - - cspFile.iPhase2PlusServices = ( TUint8 ) ( - iData->iCspFile.iPhase2PlusServices ^ - iOldCspFile->iPhase2PlusServices ); - - cspFile.iValueAddedServices = ( TUint8 ) ( - iData->iCspFile.iValueAddedServices ^ - iOldCspFile->iValueAddedServices ); - - - // Set the new values. - RMobilePhone::TMobilePhoneCspFileV1Pckg& newCspFilePckg = - *reinterpret_cast< RMobilePhone::TMobilePhoneCspFileV1Pckg* >( - &aNewValues ); - RMobilePhone::TMobilePhoneCspFileV1& newCpFile = newCspFilePckg(); - - newCpFile = iData->iCspFile; - } - - __SSSLOGSTRING("[SSS] <-- RCustomerServiceProfileCache::ChangedCspTable"); - return error; - } - - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::DoOpenL -// ----------------------------------------------------------------------------- -// -void RCustomerServiceProfileCache::DoOpenL() - { - __SSSLOGSTRING("[SSS]--> RCustomerServiceProfileCache::DoOpenL"); - if ( iData ) - { - Close(); - iData = NULL; - } - - FeatureManager::InitializeLibL(); - - iData = new ( ELeave ) TCspCacheData; - - // Retry ETel connection for a few times: - TInt error(KErrNone); - for ( TInt i = 0 ; i < KCspCacheETelRetryCount ; i++ ) - { - error = iData->iEtel.Connect(); - if ( error == KErrNone ) - { - break; - } - User::After( KCspCacheETelRetryTimeout ); - } - User::LeaveIfError( error ); - - - error = iData->iEtel.LoadPhoneModule( KSSSettingsTSYName ); - if (( error != KErrNone ) && ( error != KErrAlreadyExists )) - { - User::Leave( error ); - } - User::LeaveIfError( - CspCacheDoOpenEtelConnection( iData->iEtel, iData->iPhone ) ); - - // Create and reset old CSP file variable. - iOldCspFile = new ( ELeave ) RMobilePhone::TMobilePhoneCspFileV1; - DoResetOldCspFile(); - __SSSLOGSTRING("[SSS] <-- RCustomerServiceProfileCache::DoOpenL"); - } - - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::DoGetValues -// ----------------------------------------------------------------------------- -// -TInt RCustomerServiceProfileCache::DoGetValues( TInt& aValue, TSsGroups aGroup ) - { - __SSSLOGSTRING("[SSS]--> RCustomerServiceProfileCache::DoGetValues"); - TInt value(0); - TInt error(KErrNone); - if ( aGroup == ESsCspGroup1 ) - { - error = RProperty::Get( KPSUidSSConfig, KSettingsCspCache1, value ); - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::DoGetValues: ESsCspGroup1 value: %d", value); - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::DoGetValues: error: %d", error); - } - else - { - error = RProperty::Get( KPSUidSSConfig, KSettingsCspCache2, value ); - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::DoGetValues: ESsCspGroup2 value: %d", value); - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::DoGetValues: error: %d", error); - } - // KErrNotFound if Property has not been defined. - if ( error == KErrNotFound && aGroup == ESsCspGroup1 ) - { - error = DefineAndSetValue( KPSUidSSConfig, KSettingsCspCache1, value ); - } - else if ( error == KErrNotFound && aGroup == ESsCspGroup2 ) - { - error = DefineAndSetValue( KPSUidSSConfig, KSettingsCspCache2, value ); - } - - if ( error == KErrNone ) - { - if ( value != KCspCacheNoFile ) - { - __SSSLOGSTRING("[SSS] ---> GetCustomerServiceProfile"); - TRequestStatus status; - // GetCustomerServiceProfile status returns KErrNotFound if CSP product profile is OFF. - iData->iPhone.GetCustomerServiceProfile( - status , - iData->iCspFilePckg ); - User::WaitForRequest( status ); - error = status.Int(); - __SSSLOGSTRING1("[SSS] <--- GetCustomerServiceProfile: error: %d", error); - - if (( error == KErrNotReady ) || ( error == KErrServerBusy )) - { - return error; - } - } - else // CSP has been read return value, if value is KCspCacheNoFile then return KErrNotSupported. - { - __SSSLOGSTRING("[SSS] CSP file cannot be found from SIM"); - return KErrNotSupported; - } - - if ( error == KErrNone ) - { - if ( aGroup == ESsCspGroup1 ) - { - // Read 8 bit groups are saved into one TInt. To make room for - // all groups, the first read groups are shifted left. - // All the 8 bit data is available in the below keys. - - // currently only CW supported on the UI level - value = iData->iCspFile.iCallCompletionServices << 24; - // currently CFU, CFB, CFNRy, CFNRc are supported - value += iData->iCspFile.iCallOfferingServices << 16; - // complete barring is supported - value += iData->iCspFile.iCallRestrictionServices << 8; - // contains ALS, 1-bit - value += iData->iCspFile.iCphsTeleservices; - - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::DoGetValues: ESsCspGroup1; value: %d", value); - } - else - { - // Read 8 bit groups are saved into one TInt. To make room for - // all groups, the first read groups are shifted left. - - // supports SM/CB, Reply path, Del.Conf, Prot.ID, Validity Period - value = iData->iCspFile.iTeleservices << 8; - // currently PLMN MODE is supported in UI - value += iData->iCspFile.iValueAddedServices; - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::DoGetValues: ESsCspGroup2; value: %d", value); - } - aValue = value; - } - else - { - value = KCspCacheNoFile; - error = KErrNotSupported; - } - } - - if (( error == KErrNone ) || ( error == KErrNotSupported )) - { - TInt defError(0); - if ( aGroup == ESsCspGroup1 ) - { - __SSSLOGSTRING("[SSS] DefineAndSetValue -> KSettingsCspCache1"); - defError = DefineAndSetValue( KPSUidSSConfig, KSettingsCspCache1, value ); - } - else - { - __SSSLOGSTRING("[SSS] DefineAndSetValue -> KSettingsCspCache2"); - defError = DefineAndSetValue( KPSUidSSConfig, KSettingsCspCache2, value ); - } - - // Do not set error if defError is KErrNone. If Define/Set failed then error value is set. - if ( defError != KErrNone ) - { - error = defError; - } - } - - __SSSLOGSTRING1("[SSS] RCustomerServiceProfileCache::DoGetValues: error: %d", error); - __SSSLOGSTRING("[SSS] <-- RCustomerServiceProfileCache::DoGetValues"); - return error; - } - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::DoResetOldCspFile -// ----------------------------------------------------------------------------- -// -void RCustomerServiceProfileCache::DoResetOldCspFile() - { - if ( iOldCspFile ) - { - iOldCspFile->iCallOfferingServices = 0; - iOldCspFile->iCallRestrictionServices = 0; - iOldCspFile->iOtherSuppServices = 0; - iOldCspFile->iCallCompletionServices = 0; - iOldCspFile->iTeleservices = 0; - iOldCspFile->iCphsTeleservices = 0; - iOldCspFile->iCphsFeatures = 0; - iOldCspFile->iNumberIdentServices = 0; - iOldCspFile->iPhase2PlusServices = 0; - iOldCspFile->iValueAddedServices = 0; - } - } - -// ----------------------------------------------------------------------------- -// CustomerServiceProfileCache::DefineAndSetValue -// ----------------------------------------------------------------------------- -// -TInt RCustomerServiceProfileCache::DefineAndSetValue( TUid aCategory, - TUint aKey, TInt aValue ) - { - TInt err = RProperty::Define( - aCategory, aKey, - RProperty::EInt, KSSSettingReadPolicy, - KSSSettingWritePolicy ); - - if ( err == KErrNone || err == KErrAlreadyExists) - { - err = RProperty::Set( aCategory, aKey, aValue ); - } - return err; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/src/RSSSettings.cpp --- a/cellular/SSSettings/src/RSSSettings.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1195 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Class for getting information about the Clir, Cug, Als and -* Als blocking status in the phone. -* -*/ - - - -// INCLUDE FILES -#include // for feature definitions -#include -#include -#include -#include -#include -#include // central repository -#include // settings central repository keys. -#include -#include - -#include "rsssettings.h" -#include "msssettingsobserver.h" -#include "csssettingsnotifier.h" -#include "csssettingsalsnotifier.h" -#include "sssettingslogger.h" - -// CONSTANTS -_LIT( KPanicCat, "SSSettings" ); -#define KSSSettingsTSYName KMmTsyModuleName -const TInt KSSSettingsTSYNameMaxLength( 80 ); -const TInt KSSSettingsLastSetting(ESSSettingsDefaultCug); -const TInt KSSSettingsMaxETelRetryCount(7); -const TInt KSSSettingsETelRetryCountTimeout(100000); - -// ================= LOCAL FUNCTIONS ======================= -TInt SSSettingsDoOpenEtelConnection( RTelServer& aEtel, RPhone& aPhone ) - { - TInt phones(0); - if ( aEtel.EnumeratePhones( phones) == KErrNone ) - { - for ( TInt p = 0 ; p < phones ; p++ ) - { - TBuf tsyName; - if ( aEtel.GetTsyName( p,tsyName ) == KErrNone ) - { - if ( tsyName.CompareF( KSSSettingsTSYName ) == 0 ) - { - RTelServer::TPhoneInfo info; - if ( aEtel.GetPhoneInfo( p,info ) == KErrNone ) - { - if ( aPhone.Open( aEtel, info.iName ) == KErrNone ) - { - return KErrNone; - } - } - } - } - } - } - return KErrGeneral; - } - - -// ================= MEMBER FUNCTIONS ======================= - -// C++ default constructor can NOT contain any code, that -// might leave. -// -EXPORT_C RSSSettings::RSSSettings() - { - iData = NULL; - } - - -// --------------------------------------------------------- -// RSSSettings::Close -// --------------------------------------------------------- -// -EXPORT_C void RSSSettings::Close() - { - __SSSLOGSTRING("[SSS]--> RSSSettings::Close"); - DeleteSettingsData(); - __SSSLOGSTRING("[SSS] <--RSSSettings::Close"); - } - -// --------------------------------------------------------- -// RSSSettings::Open#1 -// --------------------------------------------------------- -// -EXPORT_C TInt RSSSettings::Open() - { - __SSSLOGSTRING("[SSS]--> RSSSettings::Open"); - TInt ret(KErrNone); - ret = Open( NULL ); - __SSSLOGSTRING("[SSS] <--RSSSettings::Open"); - return ret; - } - -// --------------------------------------------------------- -// RSSSettings::Open#3 -// --------------------------------------------------------- -// -EXPORT_C TInt RSSSettings::Open( RTelServer* aTelServer ) - { - __SSSLOGSTRING("[SSS]--> RSSSettings::Open3"); - TRAPD( error, OpenL( aTelServer ) ); - if ( error != KErrNone ) - { - DeleteSettingsData(); - } - __SSSLOGSTRING("[SSS] <--RSSSettings::Open3"); - return error; - - } - -// --------------------------------------------------------- -// RSSSettings::OpenL -// --------------------------------------------------------- -// -void RSSSettings::OpenL( RTelServer* aTelServer ) - { - __SSSLOGSTRING("[SSS]--> RSSSettings::OpenL"); - if ( iData ) - { - DeleteSettingsData(); - } - - iData = new ( ELeave ) TSSSettingsData; - - iData->iOwnTelServer = ETrue; - iData->iTelServer = NULL; - iData->iCallBack = NULL; - iData->iCallBackSetting = KErrBadDescriptor; - iData->iCallBackValue = KErrBadDescriptor; - iData->iNotifier = NULL; - iData->iCustomPhone = NULL; - iData->iCUGDefault = NULL; - iData->iRepository = NULL; - - // Create Notifier - // ConstructL is called later when the sessions are opened. - iData->iNotifier = new ( ELeave ) CSSSettingsNotifier( *this ); - - // Crate call back for async inform - TCallBack callBack( InformCallBack, this ); - iData->iCallBack = new ( ELeave ) - CAsyncCallBack( callBack, CActive::EPriorityStandard ); - - // Check central repository connection. - iData->iRepository = CRepository::NewL( - KCRUidSupplementaryServiceSettings ); - - // Check ETel connecion - if ( aTelServer ) - { - iData->iOwnTelServer = EFalse; - iData->iTelServer = aTelServer; - // Given ETel connection must be open. - if ( iData->iTelServer->Handle() == 0 ) - { - User::Leave( KErrBadHandle ); - } - } - else - { - iData->iOwnTelServer = ETrue; - iData->iTelServer = new ( ELeave ) RTelServer(); - - // Retry ETel connection: - TInt err(KErrNone); - for ( TInt i = 0 ; i < KSSSettingsMaxETelRetryCount ; i++ ) - { - err = iData->iTelServer->Connect(); - if ( err == KErrNone ) - { - break; - } - User::After( KSSSettingsETelRetryCountTimeout ); - } - - User::LeaveIfError( err ); - } - - // Open phones - TInt error = iData->iTelServer->LoadPhoneModule( KSSSettingsTSYName ); - if (( error != KErrNone ) && ( error != KErrAlreadyExists )) - { - User::Leave( error ); - } - - User::LeaveIfError( SSSettingsDoOpenEtelConnection( - *iData->iTelServer, iData->iMobilePhone ) ); - - iData->iCustomPhone = new ( ELeave ) RMmCustomAPI; - iData->iCustomPhone->Open( iData->iMobilePhone ); - - - // Finish off the notifier construct. - iData->iNotifier->ConstructL(); - - // Create arrays: - for ( TInt i = 0 ; i <= KSSSettingsLastSetting ; i++ ) - { - RSSSettingsObserverArray newArray; - User::LeaveIfError( iData->iObservers.Append( newArray ) ); - } - - //Get default CUG - error = GetDefaultCugL( iData->iCUGDefault ); - if ( error != KErrNone ) - { - //Support legacy, if error occurs - iData->iCUGDefault = ESSSettingsCugDefault; - } - __SSSLOGSTRING("[SSS] <--RSSSettings::OpenL"); - } - -// --------------------------------------------------------- -// RSSSettings::DeleteSettingsData -// --------------------------------------------------------- -// -void RSSSettings::DeleteSettingsData() - { - __SSSLOGSTRING("[SSS]--> RSSSettings::DeleteSettingsData"); - if ( iData == NULL ) - { - return; - } - - // if some event is waiting for the observer calls.. - if (( iData->iCallBackSetting != KErrBadDescriptor || - iData->iCallBackValue != KErrBadDescriptor ) && - iData->iCallBack ) - { - iData->iCallBack->Cancel(); - InformCallBack( this ); - } - - // close array - MSSSettingsObserver* observer = FindOneObserver(); - while ( observer ) - { - CancelAll( *observer ); - observer = FindOneObserver(); - } - - iData->iObservers.Reset(); - - // delete callback - if ( iData->iCallBack ) - { - iData->iCallBack->Cancel(); - delete iData->iCallBack; - iData->iCallBack = NULL; - } - - // Delete notifier - delete iData->iNotifier; - iData->iNotifier = NULL; - - delete iData->iRepository; - iData->iRepository = NULL; - - // close phones - if ( iData->iCustomPhone ) - { - iData->iCustomPhone->Close(); - delete iData->iCustomPhone; - iData->iCustomPhone = NULL; - } - - iData->iMobilePhone.Close(); - - // close ETel session - if (( iData->iTelServer ) && ( iData->iOwnTelServer )) - { - if ( iData->iTelServer->Handle() ) - { - iData->iTelServer->Close(); - } - delete iData->iTelServer; - iData->iTelServer = NULL; - } - - // delete data object - delete iData; - iData = NULL; - __SSSLOGSTRING("[SSS] <--RSSSettings::DeleteSettingsData"); - } - -// --------------------------------------------------------- -// RSSSettings::InformCallBack -// KErrBadDescriptor is used as not defined. -// --------------------------------------------------------- -// -TInt RSSSettings::InformCallBack( TAny* aPtr ) - { - __SSSLOGSTRING("[SSS]--> RSSSettings::InformCallBack"); - RSSSettings* settings = static_cast ( aPtr ); - - if ( !settings->iData ) - { - return KErrNone; - } - - // We need to have both setting and value to make observer call. - if ( settings->iData->iCallBackSetting == KErrBadDescriptor || - settings->iData->iCallBackValue == KErrBadDescriptor ) - { - settings->iData->iCallBackSetting = KErrBadDescriptor; - settings->iData->iCallBackValue = KErrBadDescriptor; - return KErrNone; - } - - settings->InformChange( - (TSSSettingsSetting)settings->iData->iCallBackSetting , - settings->iData->iCallBackValue ); - - settings->iData->iCallBackSetting = KErrBadDescriptor; - settings->iData->iCallBackValue = KErrBadDescriptor; - - __SSSLOGSTRING("[SSS] <--RSSSettings::InformCallBack"); - return KErrNone; - } - -// --------------------------------------------------------- -// RSSSettings::InformChange -// --------------------------------------------------------- -// -void RSSSettings::InformChange( TSSSettingsSetting aSetting, TInt aNewValue ) - { - __SSSLOGSTRING("[SSS]--> RSSSettings::InformChange"); - __ASSERT_DEBUG( iData, Panic( SSSettingsPanicOpenNotDone ) ); - - RSSSettingsObserverArray& array = iData->iObservers[aSetting]; - for ( TInt i = 0 ; i < array.Count() ; i++ ) - { - array[i]->PhoneSettingChanged( aSetting, aNewValue ); - } - - __SSSLOGSTRING("[SSS] <--RSSSettings::InformChange"); - } - -// --------------------------------------------------------- -// RSSSettings::RegisterAll -// --------------------------------------------------------- -// -EXPORT_C TInt RSSSettings::RegisterAll( MSSSettingsObserver& aObserver ) - { - __SSSLOGSTRING("[SSS]--> RSSSettings::RegisterAll"); - __ASSERT_DEBUG( iData, Panic( SSSettingsPanicOpenNotDone ) ); - if ( !iData ) - { - return KErrBadHandle; - } - - TInt error(KErrNone); - for ( TInt i = 0 ; i <= KSSSettingsLastSetting ; i++ ) - { - error = Register( static_cast ( i ), aObserver ); - // KErrAlreadyExists: it's already registered. - // KErrNotSupported: ALS and ALS blocking may return this. - if (( error != KErrNone ) && - ( error != KErrAlreadyExists ) && - ( error != KErrNotSupported )) - { - CancelAll( aObserver ); - break; - } - error = KErrNone; - } - __SSSLOGSTRING("[SSS] <--RSSSettings::RegisterAll"); - return error; - } - -// --------------------------------------------------------- -// RSSSettings::Register -// --------------------------------------------------------- -// -EXPORT_C TInt RSSSettings::Register( - TSSSettingsSetting aSetting, - MSSSettingsObserver& aObserver ) - { - __SSSLOGSTRING("[SSS]--> RSSSettings::Register"); - __ASSERT_DEBUG( iData, Panic( SSSettingsPanicOpenNotDone ) ); - if ( !iData ) - { - return KErrBadHandle; - } - __ASSERT_DEBUG( aSetting <= KSSSettingsLastSetting, - Panic( SSSettingsPanicInvalidRequest ) ); - - if ( ExistsObserver( aSetting, aObserver ) ) - { - return KErrAlreadyExists; - } - - RSSSettingsObserverArray& array = iData->iObservers[aSetting]; - - // When the first observer is set, the notifier is activated. - TInt error(KErrNone); - if ( array.Count() == 0 ) - { - error = iData->iNotifier->AddNotifier( aSetting ); - // if BT Sim Access Profile(SAP) is turned on then ETEL returns KErrNotReady. - if ( error != KErrNone ) - { - __SSSLOGSTRING1("[SSS]--> RSSSettings::Register -> Error code: %d", error ); - return error; - } - } - error = array.Append( &aObserver ); - - __SSSLOGSTRING("[SSS] <--RSSSettings::Register"); - return error; - } - -// --------------------------------------------------------- -// RSSSettings::CancelAll -// --------------------------------------------------------- -// -EXPORT_C void RSSSettings::CancelAll( - MSSSettingsObserver& aObserver ) - { - __SSSLOGSTRING("[SSS]--> RSSSettings::CancelAll"); - if ( !iData ) - { - return; - } - - for ( TInt i = 0 ; i <= KSSSettingsLastSetting ; i++ ) - { - Cancel( static_cast ( i ), aObserver ); - } - __SSSLOGSTRING("[SSS] <--RSSSettings::CancelAll"); - } - -// --------------------------------------------------------- -// RSSSettings::Cancel -// --------------------------------------------------------- -// -EXPORT_C void RSSSettings::Cancel( - TSSSettingsSetting aSetting, - MSSSettingsObserver& aObserver ) - { - __SSSLOGSTRING("[SSS]--> RSSSettings::Cancel"); - if ( !iData ) - { - return; - } - __ASSERT_ALWAYS( aSetting <= KSSSettingsLastSetting, - Panic( SSSettingsPanicInvalidRequest ) ); - - RSSSettingsObserverArray& array = iData->iObservers[aSetting]; - - TInt index = array.Find( &aObserver ); - if ( index == KErrNotFound ) - { - return; - } - - array.Remove( index ); - array.Compress(); - - // When the last observer is removed the notifier is cancelled. - if ( array.Count() == 0 ) - { - iData->iNotifier->RemoveNotifier( aSetting ); - } - __SSSLOGSTRING("[SSS] <--RSSSettings::Cancel"); - } - -// --------------------------------------------------------- -// RSSSettings::Get -// --------------------------------------------------------- -// -EXPORT_C TInt RSSSettings::Get( TSSSettingsSetting aSetting, TInt& aValue ) - { - __SSSLOGSTRING("[SSS]--> RSSSettings::Get"); - __ASSERT_DEBUG( iData, Panic( SSSettingsPanicOpenNotDone ) ); - if ( !iData ) - { - return KErrBadHandle; - } - - __ASSERT_DEBUG( aSetting <= KSSSettingsLastSetting, - Panic( SSSettingsPanicInvalidRequest ) ); - - TInt error(KErrNone); - TInt value(0); - if ( error != KErrNone ) - { - return error; - } - - // If Get fails, we try to save the default data. - switch ( aSetting ) - { - case ESSSettingsCug: - error = GetCug( value ); - if (( error != KErrNone ) && ( error != KErrNotFound )) - { - break; - } - if ( error == KErrNotFound ) - { - error = iData->iRepository->Set( - KSettingsCUG, - iData->iCUGDefault ); - - if ( error != KErrNone ) - { - break; - } - value = iData->iCUGDefault; - } - //If value outside of 0-32767 and not 65535, value is not accepted. - if ( iData->iCUGDefault == ESSSettingsAltCugDefault ) - { - if ((( value < ESSSettingsCugSuppress ) || - ( value > ESSSettingsCugMax )) && - ( value != ESSSettingsAltCugDefault )) - { - error = KErrCorrupt; - break; - } - } - //If value outside of 1-32767, it is not accepted. - else - { - if (( value < ESSSettingsCugSuppress ) || - ( value > ESSSettingsCugMax )) - { - error = KErrCorrupt; - break; - } - } - aValue = value; - break; - case ESSSettingsClir: - error = iData->iRepository->Get( - KSettingsCLIR, - value ); - if ( ( error != KErrNone ) && ( error != KErrNotFound ) ) - { - break; - } - if ( error == KErrNotFound ) - { - error = iData->iRepository->Set( - KSettingsCLIR, - ESSSettingsClirNetworkDefault ); - if ( error != KErrNone ) - { - break; - } - value = ESSSettingsClirNetworkDefault; - } - - if (( value < ESSSettingsClirNetworkDefault ) || - ( value > ESSSettingsClirExplicitSuppress )) - { - error = KErrCorrupt; - break; - } - aValue = value; - break; - - case ESSSettingsAls: - { - TInt simState(0); - error = RProperty::Get( KPSUidStartup, KPSSimStatus, simState ); - - __SSSLOGSTRING2("[SSS] ESSSettingsAls: SIM State: %d Error: %d", simState, error ); - if ( error == KErrNone ) - { - error = GetALSSettingValue( value, simState ); - aValue = value; - __SSSLOGSTRING1("[SSS] RSSSettings::Get: ALS Value: %d", aValue ); - } - break; - } - case ESSSettingsAlsBlocking: - { - RMmCustomAPI::TGetAlsBlockStatus alsBlockStatus = - RMmCustomAPI::EBlockStatusUnknown; - error = iData->iCustomPhone->GetAlsBlocked( alsBlockStatus ); - - if ( error != KErrNone ) - { - aValue = ESSSettingsAlsBlockingNotSupported; - return KErrNone; - } - switch ( alsBlockStatus ) - { - case RMmCustomAPI::EBlockStatusNotSupported: - aValue = ESSSettingsAlsBlockingNotSupported; - break; - case RMmCustomAPI::EBlockStatusActive: - aValue = ESSSettingsAlsBlockingOn; - break; - case RMmCustomAPI::EBlockStatusInactive: - aValue = ESSSettingsAlsBlockingOff; - break; - case RMmCustomAPI::EBlockStatusUnknown: - error = KErrNotSupported; - break; - default: - error = KErrNotSupported; - break; - } - break; - } - case ESSSettingsDefaultCug: - aValue = iData->iCUGDefault; - break; - default: - error = KErrNotSupported; - break; - } - - __SSSLOGSTRING("[SSS] <--RSSSettings::Get"); - __SSSLOGSTRING1("[SSS] <--RSSSettings::Get Error code: %d", error ); - return error; - } - -// --------------------------------------------------------- -// RSSSettings::GetALSSettingValue -// --------------------------------------------------------- -// -TInt RSSSettings::GetALSSettingValue( TInt& aValue, const TInt aSimState ) - { - __SSSLOGSTRING1("[SSS]--> RSSSettings::GetALSSettingValue SIMSTATE: %d", aSimState ); - TInt value(0); - TBool simAlsValue(EFalse); - TBool ppAlsValue(EFalse); - TBool alsCSPSupport(EFalse); - TInt error(KErrNone); - /* aValue is set to ESSSettingsAlsNotSupported value because if SimState isnt - ESimUsable or ALS handler doesnt exist then value should always be Not Supported.*/ - aValue = ESSSettingsAlsNotSupported; - - // als is NULL when ALS is not supported by PP als, SIM als and SIM csp als bits. - CSSSettingsAlsNotifier* als = iData->iNotifier->GetAlsHandler(); - __SSSLOGSTRING1("[SSS] AlsHandler value: %d", als ); - - // Make sure that SIM state is OK otherwise parameters coming from SIM are mess. - if ( ( aSimState == ESimUsable ) && als ) - { - error = als->GetAlsValue( (TSSSettingsAlsValue&) value ); - if ( error == KErrNone ) - { - if (( value < ESSSettingsAlsNotSupported ) || - ( value > ESSSettingsAlsAlternate )) - { - error = KErrCorrupt; - return error; - } - - TInt alsCSPError(KErrNone); - als->GetAlsSupport( ppAlsValue, simAlsValue, alsCSPSupport, alsCSPError ); - if ( alsCSPError == KErrNotReady || alsCSPError == KErrServerBusy ) - { - __SSSLOGSTRING1("[SSS] ALS - CSP specific Error code: %d", alsCSPError ); - return alsCSPError; - } - - // Decides if ALS is wanted to be shown. - if ( KErrNotSupported == IsALSSupported( ppAlsValue, simAlsValue, alsCSPSupport, error ) ) - { - value = ESSSettingsAlsNotSupported; - } - aValue = value; - } - } - __SSSLOGSTRING1("[SSS]<-- RSSSettings::GetALSSettingValue Error: %d", error ); - return error; - } - -// --------------------------------------------------------------------------- -// RSSSettings::IsALSSupported -// List all cases when als is shown. If there is some special SIM that doesn't -// support ALS then add case below and give error code KErrNotSupported. -// --------------------------------------------------------------------------- -// -TInt RSSSettings::IsALSSupported( TInt aPpAlsValue, TInt aSimAlsValue, - TBool aAlsCspSupport, TInt aAlsCspError ) const - { - TInt error(KErrNotSupported); - - __SSSLOGSTRING1("[SSS] RSSSettings::IsALSSupported ppAlsValue value: %d", aPpAlsValue ); - __SSSLOGSTRING1("[SSS] RSSSettings::IsALSSupported simAlsValue value: %d", aSimAlsValue ); - __SSSLOGSTRING1("[SSS] RSSSettings::IsALSSupported alsCSPSupport value: %d", aAlsCspSupport ); - __SSSLOGSTRING1("[SSS] RSSSettings::IsALSSupported alsCSPError value: %d", aAlsCspError ); - - // When PP ALS is on and used SIM card suppports CSP ALS then alsCSPSupport returns EFALSE and alsCSPError KErrNotSupported but ALS functionality - // needs to be shown therefore KErrNone is returned. - if ( aPpAlsValue && !aSimAlsValue && aAlsCspSupport == FALSE && aAlsCspError == KErrNotSupported ) - { - error = KErrNone; - } - else if ( aPpAlsValue && aSimAlsValue && aAlsCspSupport == FALSE ) - { - error = KErrNone; - } - else if ( aPpAlsValue && aSimAlsValue && aAlsCspSupport == TRUE ) - { - error = KErrNone; - } - else if ( aPpAlsValue && !aSimAlsValue && aAlsCspSupport == FALSE ) - { - error = KErrNone; - } - else if ( aPpAlsValue && !aSimAlsValue && aAlsCspSupport == TRUE ) - { - error = KErrNone; - } - else if ( !aPpAlsValue && aSimAlsValue && aAlsCspSupport == TRUE ) - { - error = KErrNone; - } - else if ( !aPpAlsValue && aSimAlsValue && aAlsCspSupport == FALSE ) - { - error = KErrNotSupported; - } - else if ( !aPpAlsValue && !aSimAlsValue && aAlsCspSupport == TRUE ) - { - error = KErrNone; - } - - return error; - } - -// --------------------------------------------------------- -// RSSSettings::Set -// --------------------------------------------------------- -// -EXPORT_C TInt RSSSettings::Set( TSSSettingsSetting aSetting, TInt aValue ) - { - __SSSLOGSTRING("[SSS]--> RSSSettings::Set"); - __ASSERT_DEBUG( iData, Panic( SSSettingsPanicOpenNotDone ) ); - if ( !iData ) - { - return KErrBadHandle; - } - - __ASSERT_DEBUG( aSetting <= KSSSettingsLastSetting, - Panic( SSSettingsPanicInvalidRequest ) ); - - TInt error(KErrNone); - if ( error != KErrNone ) - { - return error; - } - - switch ( aSetting ) - { - case ESSSettingsCug: - { - if ( iData->iCUGDefault == ESSSettingsAltCugDefault ) - { - if ((( aValue < ESSSettingsCugSuppress ) || - ( aValue > ESSSettingsCugMax )) && - ( aValue != iData->iCUGDefault )) - { - error = KErrArgument; - break; - } - } - else - { - if (( aValue < ESSSettingsCugSuppress ) || - ( aValue > ESSSettingsCugMax )) - { - error = KErrArgument; - break; - } - } - if ( error == KErrNone ) - { - error = SetCug( aValue, iData->iCUGDefault ); - } - } - break; - case ESSSettingsClir: - if (( aValue < ESSSettingsClirNetworkDefault ) || - ( aValue > ESSSettingsClirExplicitSuppress )) - { - error = KErrArgument; - break; - } - error = iData->iRepository->Set( - KSettingsCLIR, - aValue ); - break; - case ESSSettingsAls: - { - // ESSSettingsAlsBlockingNotSupported is not allowed to write - if (( aValue < ESSSettingsAlsBlockingOff ) || - ( aValue > ESSSettingsAlsAlternate )) - { - error = KErrArgument; - break; - } - - CSSSettingsAlsNotifier* als = iData->iNotifier->GetAlsHandler(); - if ( als ) - { - error = als->SetAlsValue( (TSSSettingsAlsValue)aValue ); - } - else - { - error = KErrNotSupported; - } - break; - } - case ESSSettingsAlsBlocking: - switch ( aValue ) - { - case ESSSettingsAlsBlockingOn: - error = iData->iCustomPhone->SetAlsBlocked( - RMmCustomAPI::EActivateBlock ); - break; - case ESSSettingsAlsBlockingOff: - error = iData->iCustomPhone->SetAlsBlocked( - RMmCustomAPI::EDeactivateBlock ); - break; - default: - error = KErrArgument; - break; - } - break; - case ESSSettingsDefaultCug: - return KErrNotSupported; - default: - error = KErrArgument; - break; - } - - if ( error == KErrNone ) - { - // If old request is still waiting, force it to end. - if (( iData->iCallBackSetting != KErrBadDescriptor ) || - ( iData->iCallBackValue != KErrBadDescriptor )) - { - iData->iCallBack->Cancel(); - InformCallBack( this ); - } - - // activate call back - iData->iCallBackSetting = aSetting; - iData->iCallBackValue = aValue; - iData->iCallBack->CallBack(); - } - __SSSLOGSTRING("[SSS] <--RSSSettings::Set"); - return error; - } - -// --------------------------------------------------------- -// RSSSettings::HandleSIMChanged -// --------------------------------------------------------- -// -EXPORT_C TInt RSSSettings::HandleSIMChanged() - { - __SSSLOGSTRING("[SSS]--> RSSSettings::HandleSIMChanged"); - __ASSERT_DEBUG( iData, Panic( SSSettingsPanicOpenNotDone ) ); - if ( !iData ) - { - return KErrBadHandle; - } - TInt error = Set( ESSSettingsCug, iData->iCUGDefault ); - if ( error != KErrNone ) - { - return error; - } - else - { - // Reset also the previous Cug value. - error = ResetPreviousCugValue(); - if ( error != KErrNone ) - { - return error; - } - } - - error = Set( ESSSettingsClir, ESSSettingsClirNetworkDefault ); - if ( error != KErrNone ) - { - return error; - } - - // Set als to primary only if it's stored in Shared Data. - CSSSettingsAlsNotifier* als = iData->iNotifier->GetAlsHandler(); - if ( als ) - { - TBool simAls(EFalse); - TBool ppAls(EFalse); - TBool cspAls(EFalse); - TInt cspError(KErrNone); - als->GetAlsSupport( ppAls, simAls, cspAls, cspError ); - __SSSLOGSTRING2("[SSS] RSSSettings::HandleSIMChanged: ppAls: %d, simAls: %d", ppAls, simAls ); - if ( !simAls ) - { - error = Set( ESSSettingsAls, ESSSettingsAlsPrimary ); - } - } - __SSSLOGSTRING("[SSS] <--RSSSettings::HandleSIMChanged"); - return error; - } - -// --------------------------------------------------------- -// RSSSettings::ExistsObserver -// --------------------------------------------------------- -// -TBool RSSSettings::ExistsObserver( TSSSettingsSetting aSetting, - MSSSettingsObserver& aObserver ) - { - __SSSLOGSTRING("[SSS]--> RSSSettings::ExistsObserver"); - if ( !iData ) - { - return EFalse; - } - - __ASSERT_ALWAYS( aSetting <= KSSSettingsLastSetting, - Panic( SSSettingsPanicInvalidRequest ) ); - - TInt index = iData->iObservers[aSetting].Find( &aObserver ); - if ( index == KErrNotFound ) - { - return EFalse; - } - - __SSSLOGSTRING("[SSS] <--RSSSettings::ExistsObserver"); - return ETrue; - } - -// --------------------------------------------------------- -// RSSSettings::FindOneObserver -// --------------------------------------------------------- -// -MSSSettingsObserver* RSSSettings::FindOneObserver() const - { - __SSSLOGSTRING("[SSS]--> RSSSettings::FindOneObserver"); - if ( iData == NULL ) - { - return NULL; - } - - for ( TInt settingIndex = 0 ; - settingIndex < iData->iObservers.Count() ; - settingIndex++ ) - { - RSSSettingsObserverArray& array = iData->iObservers[settingIndex]; - if ( array.Count() ) - { - return array[0]; - } - } - - __SSSLOGSTRING("[SSS] <--RSSSettings::FindOneObserver"); - return NULL; - } - -// --------------------------------------------------------- -// RSSSettings::GetCug -// --------------------------------------------------------- -// -TInt RSSSettings::GetCug( TInt& aValue ) const - { - __SSSLOGSTRING("[SSS]--> RSSSettings::GetCug"); - TInt value(KErrNone); - TInt error(KErrNone); - error = iData->iRepository->Get( - KSettingsCUG, - value ); - - if ( error == KErrNone ) - { - aValue = value; - } - - __SSSLOGSTRING1("[SSS] RSSSettings::GetCug: value: %d", value ); - __SSSLOGSTRING("[SSS] <--RSSSettings::GetCug"); - return error; - } - -// --------------------------------------------------------- -// RSSSettings::GetDefaultCugL -// --------------------------------------------------------- -// -TInt RSSSettings::GetDefaultCugL( TInt& aValue ) const - { - __SSSLOGSTRING("[SSS]--> RSSSettings::GetDefaultCugL"); - TInt value(0); - TBool useDefault(EFalse); - TInt error(KErrNone); - CRepository* repository = CRepository::NewL( KCRUidTelSrvVariation ); - error = repository->Get( - KTelSrvVariationFlags, - value ); - delete repository; - repository = NULL; - __SSSLOGSTRING1("[SSS]--> RSSSettings::GetDefaultCugL: value: %d", value); - - if ( error == KErrNotFound ) - { - useDefault = ETrue; - } - else if ( error != KErrNone ) - { - return error; - } - - if (( useDefault ) || - !( value & KTelephonyLVFlagStandardCugIndexing )) - { - value = ESSSettingsCugDefault; - } - else - { - value = ESSSettingsAltCugDefault; - } - //Return directly (i.e. no shifting). - aValue = value; - - __SSSLOGSTRING1("[SSS]--> RSSSettings::GetDefaultCugL: value: %d", value); - __SSSLOGSTRING("[SSS] <--RSSSettings::GetDefaultCugL"); - return error; - } - -// --------------------------------------------------------- -// RSSSettings::SetCug -// Reads existing CUG value from shared data. If new CUG -// value is between 1 and 32767 (or between 0 and 32767), -// value is to shared data. -// Change also the previous cug to be the old current one. -// --------------------------------------------------------- -// -TInt RSSSettings::SetCug( const TInt aValue, const TInt aCugDefault ) const - { - __SSSLOGSTRING("[SSS]--> RSSSettings::SetCug"); - TInt value(KErrNone); - TInt error(KErrNone); - error = iData->iRepository->Get( KSettingsCUG, value ); - __SSSLOGSTRING1("[SSS]--> RSSSettings::SetCug: value: %d", value); - if ( error == KErrNone ) - { - TInt previousCug(value); - - // CUG default must be saved as shared data default, to support - // different platform versions. Do not write default Cug again to - // Central Repository, if already exists. - if ( ( aValue != aCugDefault ) || - ( ( aValue == aCugDefault ) && ( previousCug != aCugDefault ) ) ) - { - // Write the current cug value to Central Repository. - error = iData->iRepository->Set( KSettingsCUG, aValue ); - __SSSLOGSTRING1("[SSS]--> RSSSettings::SetCug: aValue: %d", aValue); - if ( error == KErrNone ) - { - if ( ( previousCug != ESSSettingsCugSuppress ) && - ( previousCug != aCugDefault ) ) - { - // Write previous cug value to Central Repository. - // Default or Suppress value can not be previousCug. - error = iData->iRepository->Set( - KSettingsPreviousCUGIndex, - previousCug ); - __SSSLOGSTRING1("[SSS]--> RSSSettings::SetCug: previousCug: %d", previousCug); - } - } - } - } - __SSSLOGSTRING("[SSS] <--RSSSettings::SetCug"); - return error; - } - -// --------------------------------------------------------- -// RSSSettings::PreviousCugValue -// --------------------------------------------------------- -// -EXPORT_C TInt RSSSettings::PreviousCugValue( TInt& aPreviousValue ) - { - __SSSLOGSTRING("[SSS]--> RSSSettings::PreviousCugValue"); - __ASSERT_DEBUG( iData, Panic( SSSettingsPanicOpenNotDone ) ); - if ( !iData ) - { - return KErrBadHandle; - } - TInt value(KErrNone); - TInt error = iData->iRepository->Get( - KSettingsPreviousCUGIndex, - value ); - - if ( error == KErrNone ) - { - aPreviousValue = value; - } - - __SSSLOGSTRING1("[SSS]--> RSSSettings::PreviousCugValue: value: %d", value); - __SSSLOGSTRING("[SSS] <--RSSSettings::PreviousCugValue"); - return error; - } - -// --------------------------------------------------------- -// RSSSettings::ResetPreviousCugValue -// Reset PreviousCugValue -// --------------------------------------------------------- -// -EXPORT_C TInt RSSSettings::ResetPreviousCugValue() - { - __SSSLOGSTRING("[SSS]--> RSSSettings::ResetPreviousCugValue"); - __ASSERT_DEBUG( iData, Panic( SSSettingsPanicOpenNotDone ) ); - if ( !iData ) - { - return KErrBadHandle; - } - - TInt value(KErrNone); - TInt error(KErrNone); - error = iData->iRepository->Get( - KSettingsPreviousCUGIndex, - value ); - __SSSLOGSTRING1("[SSS]--> RSSSettings::PreviousCugValue; before setting: value: %d", value); - if ( error == KErrNone ) - { - // Set cug to default one. - value = iData->iCUGDefault; - error = iData->iRepository->Set( - KSettingsPreviousCUGIndex, - value ); - __SSSLOGSTRING1("[SSS]--> RSSSettings::PreviousCugValue; after setting: value: %d", value); - } - __SSSLOGSTRING("[SSS] <--RSSSettings::ResetPreviousCugValue"); - return error; - } - -// --------------------------------------------------------- -// RSSSettings::HandleRefresh -// --------------------------------------------------------- -// -EXPORT_C TInt RSSSettings::HandleRefresh() - { - __ASSERT_DEBUG( iData, Panic( SSSettingsPanicOpenNotDone ) ); - if ( !iData ) - { - return KErrBadHandle; - } - - return iData->iNotifier->HandleRefresh(); - } - -// --------------------------------------------------------- -// RSSSettings::IsValueValidCugIndex -// --------------------------------------------------------- -// -EXPORT_C TBool RSSSettings::IsValueValidCugIndex( const TInt& aValue ) const - { - __ASSERT_DEBUG( iData, Panic( SSSettingsPanicOpenNotDone ) ); - if ( !iData ) - { - return KErrBadHandle; - } - - TBool validCugIndex = !(( aValue > ESSSettingsCugMax ) || - ( aValue < ESSSettingsCugMin )); - - if ( iData->iCUGDefault != ESSSettingsCugDefault ) - { - validCugIndex = validCugIndex || - aValue == ESSSettingsAltCugMin; - } - return validCugIndex; - } - -// ================= OTHER EXPORTED FUNCTIONS ============== -// Panic -GLREF_C void Panic( TSSSettingsPanic aPanic ) - { - User::Panic( KPanicCat, aPanic ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/tsrc/public/basic/EunitTest/BWINS/MT_SSSettingsu.def --- a/cellular/SSSettings/tsrc/public/basic/EunitTest/BWINS/MT_SSSettingsu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -EXPORTS - ?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * __cdecl CreateTestSuiteL(void) diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/tsrc/public/basic/EunitTest/EABI/MT_SSSettingsu.def --- a/cellular/SSSettings/tsrc/public/basic/EunitTest/EABI/MT_SSSettingsu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - _Z16CreateTestSuiteLv @ 1 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/tsrc/public/basic/EunitTest/Group/MT_SSSettings.mmp --- a/cellular/SSSettings/tsrc/public/basic/EunitTest/Group/MT_SSSettings.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: MT_SSSettings -* -*/ - - -#include - -TARGET MT_SSSettings.dll -TARGETTYPE dll -TARGETPATH /DigiaEUnit/Tests -UID 0x1000af5a 0x01700000 - -CAPABILITY ALL -TCB -VENDORID VID_DEFAULT - -SOURCEPATH ../MT_SSSettings -SOURCE MT_SSSettingsDllMain.cpp -SOURCE MT_SSSettings.cpp - -USERINCLUDE ../MT_SSSettings - -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE ../../../../../inc -SYSTEMINCLUDE /epoc32/include/Digia/EUnit - -LIBRARY CenRepNotifHandler.lib -LIBRARY centralrepository.lib -LIBRARY CommonEngine.lib -LIBRARY CUSTOMAPI.lib -LIBRARY etel.lib -LIBRARY etelmm.lib -LIBRARY EUnit.lib -LIBRARY euser.lib -LIBRARY FeatMgr.lib -LIBRARY flogger.lib -LIBRARY SatClient.lib -LIBRARY SSSettings.lib - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/tsrc/public/basic/EunitTest/Group/MT_SSSettings.pkg --- a/cellular/SSSettings/tsrc/public/basic/EunitTest/Group/MT_SSSettings.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +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: For packing sssettings test compoment. -; -; Supported languages -&en - -; Package header (one name for each supported language) -#{"MT_SSSettings"},(0xA00001F2),1,0,0 - -;Localised Vendor name -%{"Nokia Test EN"} - -;Unique Vendor name -:"Vendor" - -;Key and certificate -*"rd-key.pem","rd.cer" - -; Language independent files that are always installed -"\epoc32\release\armv5\urel\MT_SSSettings.dll"-"C:\DigiaEUnit\Tests\MT_SSSettings.dll" -"\epoc32\release\armv5\urel\MT_SSSettings.dll"-"C:\sys\bin\MT_SSSettings.dll" diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/tsrc/public/basic/EunitTest/Group/MT_SSSettings.sis Binary file cellular/SSSettings/tsrc/public/basic/EunitTest/Group/MT_SSSettings.sis has changed diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/tsrc/public/basic/EunitTest/Group/bld.inf --- a/cellular/SSSettings/tsrc/public/basic/EunitTest/Group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: MT_SSSettings -* -*/ - - -#include - -PRJ_PLATFORMS - DEFAULT - -PRJ_EXPORTS - -// IBY file -//../rom/mt_sssettings.iby CORE_APP_LAYER_IBY_EXPORT_PATH(mt_sssettings.iby) - -PRJ_MMPFILES - -PRJ_TESTMMPFILES -../group/MT_SSSettings.mmp - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/tsrc/public/basic/EunitTest/MT_SSSettings/MT_SSSettings.cpp --- a/cellular/SSSettings/tsrc/public/basic/EunitTest/MT_SSSettings/MT_SSSettings.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,710 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: MT_SSSettings -* -*/ - - -// CLASS HEADER -#include "MT_SSSettings.h" - -// EXTERNAL INCLUDES -#include -#include -#include -#include -#include - -// INTERNAL INCLUDES -#define KSSSettingsTSYName KMmTsyModuleName -// CONSTANTS -const TInt KCPETestWaitTime = 2000000; // Two second -const TInt KSSSettingsMaxETelRetryCount(7); -const TInt KSSSettingsETelRetryCountTimeout(100000); - -////////////////////////////////////////////////////////////////////////////////// -//// MT_SSSettings CLASS -/////////////////////////////////////////////////////////////////////////////////// -// METHODS -// CONSTRUCTION -MT_SSSettings* MT_SSSettings::NewL() - { - MT_SSSettings* self = MT_SSSettings::NewLC(); - CleanupStack::Pop(); - - return self; - } - -MT_SSSettings* MT_SSSettings::NewLC() - { - MT_SSSettings* self = new( ELeave ) MT_SSSettings(); - CleanupStack::PushL( self ); - - self->ConstructL(); - - return self; - } - -// Destructor (virtual by CBase) -MT_SSSettings::~MT_SSSettings() - { - } - -// Default constructor -MT_SSSettings::MT_SSSettings() - { - } - -// Second phase construct -void MT_SSSettings::ConstructL() - { - // The ConstructL from the base class CEUnitTestSuiteClass must be called. - // It generates the test case table. - CEUnitTestSuiteClass::ConstructL(); - - iSettings = new(ELeave) RSSSettings; - } -/////////////////////////////////////////////////////////////////////////////////// -//// MSSSettingsObserver - PhoneSettingChanged -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::PhoneSettingChanged( TSSSettingsSetting /*aSetting*/, - TInt /*aNewValue*/ ) - { - // Do nothing. - } - -/////////////////////////////////////////////////////////////////////////////////// -//// EmptySetupL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::EmptySetupL( ) - { - iCugValue = NULL; - iClirValue = NULL; - iAlsValue = NULL; - iAlsBlockValue = NULL; - iCugDefValue = NULL; - iSettings = new(ELeave) RSSSettings; - } - -/////////////////////////////////////////////////////////////////////////////////// -//// EmptyTeardown -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::EmptyTeardown( ) - { - delete iSettings; - iSettings = NULL; - } - -/////////////////////////////////////////////////////////////////////////////////// -//// SetupL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::SetupL( ) - { - iCugValue = NULL; - iClirValue = NULL; - if ( iAlsValue < NULL ) - { - iAlsValue = NULL; - } - iAlsValue = NULL; - iAlsBlockValue = NULL; - iCugDefValue = NULL; - iSettings = new(ELeave) RSSSettings; - User::LeaveIfError(iSettings->Open()); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// Teardown -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::Teardown( ) - { - iSettings->Close(); - delete iSettings; - iSettings = NULL; - } - -/////////////////////////////////////////////////////////////////////////////////// -//// CSP SetupL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::CSPSetupL( ) - { - iCugValue = NULL; - iClirValue = NULL; - iAlsValue = NULL; - iAlsBlockValue = NULL; - iCugDefValue = NULL; - - iCSP = new (ELeave) RCustomerServiceProfileCache; - User::LeaveIfError(iCSP->Open()); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// CSP Teardown -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::CSPTeardown( ) - { - delete iCSP; - iCSP = NULL; - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_OpenCloseL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RSSSettings_OpenCloseL( ) - { - // Open RSSSettings connection. - iSettings->Open(); - // Close RSSSettings connection. - iSettings->Close(); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_Open_1L -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RSSSettings_Open_1L( ) - { - RTelServer* telServer = new ( ELeave ) RTelServer(); - // Retry ETel connection: - TInt err(KErrNone); - for ( TInt i = 0 ; i < KSSSettingsMaxETelRetryCount ; i++ ) - { - err = telServer->Connect(); - if ( err == KErrNone ) - { - break; - } - User::After( KSSSettingsETelRetryCountTimeout ); - } - User::LeaveIfError( err ); - - // Open phones - TInt error = telServer->LoadPhoneModule( KSSSettingsTSYName ); - if (( error != KErrNone ) && ( error != KErrAlreadyExists )) - { - User::Leave( error ); - } - // Open RSSSettings connection. - User::LeaveIfError(iSettings->Open(telServer)); - // Close RSSSettings connection. - iSettings->Close(); - - // close ETel session - if ( telServer ) - { - if ( telServer->Handle() ) - { - telServer->Close(); - } - delete telServer; - telServer = NULL; - } - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_RegisterL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RSSSettings_RegisterL( ) - { - User::LeaveIfError(iSettings->Register( ESSSettingsCug, *this )); - iSettings->Cancel( ESSSettingsCug, *this ); - - User::LeaveIfError(iSettings->Register( ESSSettingsClir, *this )); - iSettings->Cancel( ESSSettingsClir, *this ); - - User::LeaveIfError(iSettings->Register( ESSSettingsAls, *this )); - iSettings->Cancel( ESSSettingsAls, *this ); - - User::LeaveIfError(iSettings->Register( ESSSettingsAlsBlocking, *this )); - iSettings->Cancel( ESSSettingsAlsBlocking, *this ); - - User::LeaveIfError(iSettings->Register( ESSSettingsDefaultCug, *this )); - iSettings->Cancel( ESSSettingsDefaultCug, *this ); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_RegisterAllL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RSSSettings_RegisterAllL( ) - { - User::LeaveIfError(iSettings->RegisterAll( *this )); - iSettings->CancelAll( *this ); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_CancelAllL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RSSSettings_CancelAllL( ) - { - iSettings->CancelAll( *this ); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_CancelL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RSSSettings_CancelL( ) - { - User::LeaveIfError(iSettings->Register( ESSSettingsCug, *this )); - iSettings->Cancel( ESSSettingsCug, *this ); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_GetL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RSSSettings_GetL( ) - { - User::LeaveIfError(iSettings->Get( ESSSettingsCug, iCugValue )); - User::LeaveIfError(iSettings->Get( ESSSettingsClir, iClirValue )); - User::LeaveIfError(iSettings->Get( ESSSettingsAls, iAlsValue )); - User::LeaveIfError(iSettings->Get( ESSSettingsAlsBlocking, iAlsBlockValue )); - User::LeaveIfError(iSettings->Get( ESSSettingsDefaultCug, iCugDefValue )); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_SetL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RSSSettings_SetL( ) - { - TInt cug(32767); - TInt defCug(0); - - // Set cug value. - User::LeaveIfError(iSettings->Set( ESSSettingsCug, cug )); - - // Set clir value. - if ( iClirValue == ESSSettingsClirExplicitInvoke ) - { - User::LeaveIfError(iSettings->Set( ESSSettingsClir, ESSSettingsClirExplicitSuppress )); - } - else - { - User::LeaveIfError(iSettings->Set( ESSSettingsClir, ESSSettingsClirExplicitInvoke )); - } - // Set als value. - // If timer is not used set als param will cause request count warning or fail - // because SSSettings does several ASync request during als set operation. - if ( iAlsValue == ESSSettingsAlsPrimary ) - { - User::LeaveIfError(iSettings->Set( ESSSettingsAls, ESSSettingsAlsAlternate )); - WaitTimer( KCPETestWaitTime ); - } - else - { - iSettings->Set( ESSSettingsAls, ESSSettingsAlsPrimary ); - WaitTimer( KCPETestWaitTime ); - } - // Set als blcking value. - if ( iAlsBlockValue == ESSSettingsAlsBlockingOff ) - { - User::LeaveIfError(iSettings->Set( ESSSettingsAlsBlocking, ESSSettingsAlsBlockingOn )); - } - else - { - User::LeaveIfError(iSettings->Set( ESSSettingsAlsBlocking, ESSSettingsAlsBlockingOff )); - } - - // Set default cug value. - iSettings->Set( ESSSettingsDefaultCug, defCug ); // returns kerrnotsupported - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_WaitTimer -//// Start CActiveSchedulerWait, this wait last until Stop is called. This allows -//// other parts of software to run. Expires after given delay. -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::WaitTimer( TInt aWaitTime ) - { - CPeriodic* iTimer = CPeriodic::NewL( CActive::EPriorityStandard ); - iTimer->Start( aWaitTime, aWaitTime, TCallBack( DoCallBackL, this ) ); - iWaitTimer.Start(); - - delete iTimer; - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_DoCallBackL -/////////////////////////////////////////////////////////////////////////////////// -TInt MT_SSSettings::DoCallBackL( TAny* aAny ) - { - // can't call iWaitAny.AsyncStop() in static function - REINTERPRET_CAST( MT_SSSettings*, aAny )->Stop(); - return KErrNone; - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_Stop -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::Stop() - { - iWaitTimer.AsyncStop(); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_HandleSIMChangedL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RSSSettings_HandleSIMChangedL( ) - { - User::LeaveIfError(iSettings->HandleSIMChanged()); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_PreviousCugValueL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RSSSettings_PreviousCugValueL( ) - { - TInt previousValue(0); - User::LeaveIfError(iSettings->PreviousCugValue(previousValue)); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_ResetPreviousCugValueL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RSSSettings_ResetPreviousCugValueL( ) - { - User::LeaveIfError(iSettings->ResetPreviousCugValue()); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_HandleRefreshL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RSSSettings_HandleRefreshL( ) - { - // Emulator returns -6/KErrArgument. - TInt error = iSettings->HandleRefresh(); - if ( error != KErrNone && error != KErrArgument ) - { - User::Leave(KErrGeneral); - } - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RSSSettings_IsValueValidCugIndexL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RSSSettings_IsValueValidCugIndexL( ) - { - TBool cugValue(0); - TInt notCugValue(32768); - TInt corCugValue(32767); - cugValue = iSettings->IsValueValidCugIndex( notCugValue ); - if ( cugValue ) - { - User::Leave(KErrGeneral); - } - - cugValue = iSettings->IsValueValidCugIndex( corCugValue ); - if ( !cugValue ) - { - User::Leave(KErrGeneral); - } - } - -// From MSSSettingsRefreshHandler. -void MT_SSSettings::NotifyFileChangeL( - MSSSettingsRefreshObserver& /*aObserver*/, - TSatElementaryFiles /*aObservedFile*/, - TSatRefreshType /*aObservedRefreshType*/) - { - } - -// From MSSSettingsRefreshHandler. -void MT_SSSettings::CancelNotify() - { - // Do nothing - } - -// From MSSSettingsRefreshHandler. -TInt MT_SSSettings::ChangedCspTable( TDes8& /*aChangedCsps*/, - TDes8& /*aNewValues*/ ) - { - return KErrNone; - // Do nothing - } - -// From MSSSettingsRefreshObserver. -TBool MT_SSSettings::AllowRefresh( const TSatRefreshType /*aType*/, - const TSatElementaryFiles /*aFiles*/ ) - { - return KErrNone; - // Do nothing - } - -// From MSSSettingsRefreshObserver. -void MT_SSSettings::Refresh( const TSatRefreshType /*aType*/, - const TSatElementaryFiles /*aFiles*/ ) - { - // Do nothing - } -/////////////////////////////////////////////////////////////////////////////////// -//// MT_CSSSettingsRefreshContainer_NewLL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_CSSSettingsRefreshContainer_NewLL() - { - CSSSettingsRefreshContainer* refreshContainer = CSSSettingsRefreshContainer::NewL(); - MSSSettingsRefreshHandler* refreshHandler = &refreshContainer->RefreshHandler(); - - //NotifyFileChangeL( *this, KCspEf, EFileChangeNotification ); - refreshHandler->NotifyFileChangeL( *this, KCspEf, EFileChangeNotification ); - - refreshHandler = NULL; - delete refreshContainer; - refreshContainer = NULL; - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RCustomerServiceProfileCache_CspCallCompletionL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RCustomerServiceProfileCache_CspCallCompletionL() - { - RMobilePhone::TCspCallCompletion params; - TInt retVal = iCSP->CspCallCompletion(params); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RCustomerServiceProfileCache_CspCallOfferingL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RCustomerServiceProfileCache_CspCallOfferingL() - { - RMobilePhone::TCspCallOffering params; - TInt retVal = iCSP->CspCallOffering(params); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RCustomerServiceProfileCache_CspCallRestrictionL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RCustomerServiceProfileCache_CspCallRestrictionL() - { - RMobilePhone::TCspCallRestriction params; - TInt retVal = iCSP->CspCallRestriction(params); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RCustomerServiceProfileCache_CspCPHSTeleservicesL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RCustomerServiceProfileCache_CspCPHSTeleservicesL() - { - RMobilePhone::TCspCPHSTeleservices params; - TInt retVal = iCSP->CspCPHSTeleservices(params); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RCustomerServiceProfileCache_CspCPHSValueAddedServicesL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RCustomerServiceProfileCache_CspCPHSValueAddedServicesL() - { - RMobilePhone::TCspValueAdded params; - TInt retVal = iCSP->CspCPHSValueAddedServices(params); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RCustomerServiceProfileCache_CspTeleServicesL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RCustomerServiceProfileCache_CspTeleServicesL() - { - RMobilePhone::TCspTeleservices params; - TInt retVal = iCSP->CspTeleServices(params); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RCustomerServiceProfileCache_HandleRefreshL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RCustomerServiceProfileCache_HandleRefreshL() - { - TInt retVal = iCSP->HandleRefresh(); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// MT_RCustomerServiceProfileCache_ChangedCspTableL -/////////////////////////////////////////////////////////////////////////////////// -void MT_SSSettings::MT_RCustomerServiceProfileCache_ChangedCspTableL() - { - RMobilePhone::TMobilePhoneCspFileV1 cspSettings; - RMobilePhone::TMobilePhoneCspFileV1Pckg cspSettingsPckg ( cspSettings ); - RMobilePhone::TMobilePhoneCspFileV1 cspValues; - RMobilePhone::TMobilePhoneCspFileV1Pckg cspValuePckg ( cspValues ); - - iCSP->ChangedCspTable( cspSettingsPckg, cspValuePckg ); - } - -/////////////////////////////////////////////////////////////////////////////////// -//// TEST TABLE -/////////////////////////////////////////////////////////////////////////////////// -EUNIT_BEGIN_TEST_TABLE( - MT_SSSettings, - "Add test suite description here.", - "MODULE" ) - -// RCustomerServiceProfileCache Class test. - -EUNIT_TEST( - "RCSP:CallCompletion", - "RCustomerServiceProfileCache", - "CspCallCompletion", - "FUNCTIONALITY", - CSPSetupL, MT_RCustomerServiceProfileCache_CspCallCompletionL, CSPTeardown) - -EUNIT_TEST( - "RCSP:CspCallOffering", - "RCustomerServiceProfileCache", - "CspCallOffering", - "FUNCTIONALITY", - CSPSetupL, MT_RCustomerServiceProfileCache_CspCallOfferingL, CSPTeardown) - - -EUNIT_TEST( - "RCSP:CspCallRestriction", - "RCustomerServiceProfileCache", - "CspCallRestriction", - "FUNCTIONALITY", - CSPSetupL, MT_RCustomerServiceProfileCache_CspCallRestrictionL, CSPTeardown) - -EUNIT_TEST( - "RCSP:CspCPHSTeleservices", - "RCustomerServiceProfileCache", - "CspCPHSTeleservices", - "FUNCTIONALITY", - CSPSetupL, MT_RCustomerServiceProfileCache_CspCPHSTeleservicesL, CSPTeardown) - -EUNIT_TEST( - "RCSP:CspCPHSValueAddedServices", - "RCustomerServiceProfileCache", - "CspCPHSValueAddedServices", - "FUNCTIONALITY", - CSPSetupL, MT_RCustomerServiceProfileCache_CspCPHSValueAddedServicesL, CSPTeardown) - -EUNIT_TEST( - "RCSP:CspTeleServices", - "RCustomerServiceProfileCache", - "CspTeleServices", - "FUNCTIONALITY", - CSPSetupL, MT_RCustomerServiceProfileCache_CspTeleServicesL, CSPTeardown) - -EUNIT_TEST( - "RCSP:HandleRefresh", - "RCustomerServiceProfileCache", - "HandleRefresh", - "FUNCTIONALITY", - CSPSetupL, MT_RCustomerServiceProfileCache_HandleRefreshL, CSPTeardown) - -EUNIT_TEST( - "RCSP:ChangedCspTable", - "RCustomerServiceProfileCache", - "ChangedCspTable", - "FUNCTIONALITY", - CSPSetupL, MT_RCustomerServiceProfileCache_ChangedCspTableL, CSPTeardown) - -// CSSSettingsRefreshContainer Class test. - -EUNIT_TEST( - "Ref:NewL", - "CSSSettingsRefreshContainer", - "NewL", - "FUNCTIONALITY", - EmptySetupL, MT_CSSSettingsRefreshContainer_NewLL, EmptyTeardown) - -// RSSSettings Class test. - -EUNIT_TEST( - "RSS:Open Close", - "RSSSettings", - "Close", - "FUNCTIONALITY", - EmptySetupL, MT_RSSSettings_OpenCloseL, EmptyTeardown) - -EUNIT_TEST( - "RSS:Open with EtelParam", - "RSSSettings", - "Open", - "FUNCTIONALITY", - EmptySetupL, MT_RSSSettings_Open_1L, EmptyTeardown) - -EUNIT_TEST( - "RSS:RegisterAll", - "RSSSettings", - "RegisterAll", - "FUNCTIONALITY", - SetupL, MT_RSSSettings_RegisterAllL, Teardown) - -EUNIT_TEST( - "RSS:Register", - "RSSSettings", - "Register", - "FUNCTIONALITY", - SetupL, MT_RSSSettings_RegisterL, Teardown) - -EUNIT_TEST( - "RSS:CancelAll", - "RSSSettings", - "CancelAll", - "FUNCTIONALITY", - SetupL, MT_RSSSettings_CancelAllL, Teardown) - -EUNIT_TEST( - "RSS:Cancel", - "RSSSettings", - "Cancel", - "FUNCTIONALITY", - SetupL, MT_RSSSettings_CancelL, Teardown) - -EUNIT_TEST( - "RSS:Get", - "RSSSettings", - "Get", - "FUNCTIONALITY", - SetupL, MT_RSSSettings_GetL, Teardown) - -EUNIT_TEST( - "RSS:Set", - "RSSSettings", - "Set", - "FUNCTIONALITY", - SetupL, MT_RSSSettings_SetL, Teardown) - -EUNIT_TEST( - "RSS:HandleSIMChanged", - "RSSSettings", - "HandleSIMChanged", - "FUNCTIONALITY", - SetupL, MT_RSSSettings_HandleSIMChangedL, Teardown) - -EUNIT_TEST( - "RSS:PreviousCugValue", - "RSSSettings", - "PreviousCugValue", - "FUNCTIONALITY", - SetupL, MT_RSSSettings_PreviousCugValueL, Teardown) - -EUNIT_TEST( - "RSS:ResetPreviousCugValue", - "RSSSettings", - "ResetPreviousCugValue", - "FUNCTIONALITY", - SetupL, MT_RSSSettings_ResetPreviousCugValueL, Teardown) - -EUNIT_TEST( - "RSS:HandleRefresh", - "RSSSettings", - "HandleRefresh", - "FUNCTIONALITY", - SetupL, MT_RSSSettings_HandleRefreshL, Teardown) - -EUNIT_TEST( - "RSS:IsValueValidCugIndex", - "RSSSettings", - "IsValueValidCugIndex", - "FUNCTIONALITY", - SetupL, MT_RSSSettings_IsValueValidCugIndexL, Teardown) - - -EUNIT_END_TEST_TABLE - -// END OF FILE diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/tsrc/public/basic/EunitTest/MT_SSSettings/MT_SSSettings.h --- a/cellular/SSSettings/tsrc/public/basic/EunitTest/MT_SSSettings/MT_SSSettings.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,215 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: MT_SSSettings -* -*/ - - -#ifndef __MT_SSSETTINGS_H__ -#define __MT_SSSETTINGS_H__ - -// EXTERNAL INCLUDES -#include -#include -#include -#include -#include -#include -#include - -// INTERNAL INCLUDES - - -// FORWARD DECLARATIONS -class RCustomerServiceProfileCache; -class RSSSettings; -class CSSSettingsRefreshContainer; - -#include -#ifndef NONSHARABLE_CLASS - #define NONSHARABLE_CLASS(x) class x -#endif - -// CLASS DEFINITION -/** - * - * EUnitWizard generated test class. - * - */ -NONSHARABLE_CLASS( MT_SSSettings ) - : public CEUnitTestSuiteClass, - public MSSSettingsObserver, - public MSSSettingsRefreshObserver, - public MSSSettingsRefreshHandler - { - public: // Constructors and destructors - - /** - * Two phase construction - */ - static MT_SSSettings* NewL(); - static MT_SSSettings* NewLC(); - /** - * Destructor - */ - ~MT_SSSettings(); - - private: // Constructors and destructors - - MT_SSSettings(); - void ConstructL(); - - public: // From observer interface - - // From MSSSettingsObserver. - void PhoneSettingChanged( TSSSettingsSetting /*aSetting*/, - TInt /*aNewValue*/ ); - - // From MSSSettingsRefreshHandler. - void NotifyFileChangeL( - MSSSettingsRefreshObserver& /*aObserver*/, - TSatElementaryFiles /*aObservedFile*/, - TSatRefreshType /*aObservedRefreshType*/); - - // From MSSSettingsRefreshHandler. - void CancelNotify(); - - // From MSSSettingsRefreshHandler. - TInt ChangedCspTable( TDes8& /*aChangedCsps*/, - TDes8& /*aNewValues*/ ); - - // From MSSSettingsRefreshObserver. - TBool AllowRefresh( - const TSatRefreshType /*aType*/, - const TSatElementaryFiles /*aFiles*/ ); - - // From MSSSettingsRefreshObserver. - void Refresh( - const TSatRefreshType /*aType*/, - const TSatElementaryFiles /*aFiles*/ ); - - - private: // New methods - - void EmptySetupL(); - - void EmptyTeardown(); - - void SetupL(); - - void Teardown(); - - void CSPSetupL(); - - void CSPTeardown(); - - void MT_CSSSettingsRefreshContainer_NewLL(); - - - void MT_RCustomerServiceProfileCache_CspCallCompletionL(); - - - void MT_RCustomerServiceProfileCache_CspCallOfferingL(); - - - void MT_RCustomerServiceProfileCache_CspCallRestrictionL(); - - - void MT_RCustomerServiceProfileCache_CspCPHSTeleservicesL(); - - - void MT_RCustomerServiceProfileCache_HandleRefreshL(); - - - void MT_RCustomerServiceProfileCache_CspCPHSValueAddedServicesL(); - - - void MT_RCustomerServiceProfileCache_CspTeleServicesL(); - - - void MT_RCustomerServiceProfileCache_ChangedCspTableL(); - - - void MT_RSSSettings_RSSSettingsL(); - - - void MT_RSSSettings_OpenCloseL(); - - - void MT_RSSSettings_Open_1L(); - - - void MT_RSSSettings_RegisterAllL(); - - - void MT_RSSSettings_RegisterL(); - - - void MT_RSSSettings_CancelAllL(); - - - void MT_RSSSettings_CancelL(); - - - void MT_RSSSettings_GetL(); - - - void MT_RSSSettings_SetL(); - - - void MT_RSSSettings_HandleSIMChangedL(); - - - void MT_RSSSettings_PreviousCugValueL(); - - - void MT_RSSSettings_ResetPreviousCugValueL(); - - - void MT_RSSSettings_HandleRefreshL(); - - - void MT_RSSSettings_IsValueValidCugIndexL(); - - static TInt DoCallBackL( TAny* aAny ); - - void WaitTimer( TInt aWaitTime ); - - void Stop(); - - private: // Data - - //MSSSettingsRefreshHandler* iRefreshHandler; - - CActiveSchedulerWait iWaitTimer; - - RSSSettings* iSettings; - - TInt iCugValue; - TInt iClirValue; - TInt iAlsValue; - TInt iAlsBlockValue; - TInt iCugDefValue; - - RCustomerServiceProfileCache* iCSP; - - - - EUNIT_DECLARE_TEST_TABLE; - - }; - -#endif // __MT_SSSETTINGS_H__ - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/tsrc/public/basic/EunitTest/MT_SSSettings/MT_SSSettingsDllMain.cpp --- a/cellular/SSSettings/tsrc/public/basic/EunitTest/MT_SSSettings/MT_SSSettingsDllMain.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: MT_SSSettings -* -*/ - - -// CLASS HEADER -#include "MT_SSSettings.h" - -// EXTERNAL INCLUDES -#include - -/** - * Test suite factory function. - */ -EXPORT_C MEUnitTest* CreateTestSuiteL() - { - return MT_SSSettings::NewL(); - } - - - -// END OF FILE - - - - - - diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/tsrc/public/basic/EunitTest/rom/mt_sssettings.iby --- a/cellular/SSSettings/tsrc/public/basic/EunitTest/rom/mt_sssettings.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -/* -* Copyright (c) 2005 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: IBY file - * -*/ - - -#ifndef __MTSSSETTINGS_IBY__ -#define __MTSSSETTINGS_IBY__ - -file= ABI_DIR\BUILD_DIR\MT_SSSettings.dll SHARED_LIB_DIR\MT_SSSettings.dll - -#endif // __MTSSSETTINGS_IBY__ diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/tsrc/public/basic/group/bld.inf --- a/cellular/SSSettings/tsrc/public/basic/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +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: Build file for sssettings testing. -* -*/ - -#include "../EunitTest/group/bld.inf" - - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/rom/sssettingswrapper.iby --- a/cellular/SSSettings/xqbindings/sssettingswrapper/rom/sssettingswrapper.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +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: -* -*/ - -#ifndef __SSSETTINGSWRAPPER_IBY__ -#define __SSSETTINGSWRAPPER_IBY__ - -#include - -file=ABI_DIR\BUILD_DIR\sssettingswrapper.dll SHARED_LIB_DIR\sssettingswrapper.dll - -#endif diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/src/logging.h --- a/cellular/SSSettings/xqbindings/sssettingswrapper/src/logging.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +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: - * - */ - -#ifndef LOGGING_H -#define LOGGING_H - -#include - -#define DPRINT qDebug() << __PRETTY_FUNCTION__ - -#endif diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper.cpp --- a/cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +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 -#include -#include "sssettingswrapper_p.h" -#include "logging.h" - -/*! - SsSettingsWrapper::SsSettingsWrapper - */ -SsSettingsWrapper::SsSettingsWrapper(QObject *parent): - QObject(parent), m_Priv(new SsSettingsWrapperPrivate(*this)) -{ - DPRINT << ": IN"; - - // Initialize RSSSettings - m_ssSettings = new RSSSettings; - int err = m_ssSettings->Open(); - DPRINT << "err: " << err; - // Register for notifications - m_ssSettings->RegisterAll( *m_Priv ); - - DPRINT << ": OUT"; -} - -/*! - SsSettingsWrapper::~SsSettingsWrapper - */ -SsSettingsWrapper::~SsSettingsWrapper() -{ - DPRINT << ": IN"; - - if(m_ssSettings){ - m_ssSettings->Close(); - } - delete m_ssSettings; - delete m_Priv; - - DPRINT << ": OUT"; -} - -/*! - SsSettingsWrapper::get - */ -int SsSettingsWrapper::get(SsSettingsWrapperSettings setting, int &value) -{ - DPRINT << ": IN"; - - int err = m_ssSettings->Get(static_cast(setting), value); - - DPRINT << ": err: " << err; - DPRINT << ": setting: " << setting; - DPRINT << ": value: " << value; - DPRINT << ": OUT" ; - return err; -} - -/*! - SsSettingsWrapper::set - */ -int SsSettingsWrapper::set(SsSettingsWrapperSettings setting, int value) -{ - DPRINT << ": IN"; - - int err = m_ssSettings->Set( static_cast(setting), value ); - - DPRINT << ": err: " << err; - DPRINT << ": setting: " << setting; - DPRINT << ": value: " << value; - DPRINT << ": OUT" ; - return err; -} - -// End of File. diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper_p.cpp --- a/cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper_p.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +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 "sssettingswrapper_p.h" -#include "sssettingswrapper.h" -#include "logging.h" -#include - -/*! - SsSettingsWrapperPrivate::SsSettingsWrapperPrivate - */ -SsSettingsWrapperPrivate::SsSettingsWrapperPrivate( SsSettingsWrapper &owner ) : m_Owner(owner) -{ - DPRINT; -} - -/*! - SsSettingsWrapperPrivate::~SsSettingsWrapperPrivate - */ -SsSettingsWrapperPrivate::~SsSettingsWrapperPrivate() -{ - DPRINT; -} - -/*! - SsSettingsWrapperPrivate::PhoneSettingChanged - */ -void SsSettingsWrapperPrivate::PhoneSettingChanged( - TSSSettingsSetting aSetting, - TInt aNewValue ) -{ - DPRINT << ": IN"; - DPRINT << ": aSetting: " << static_cast(aSetting); - DPRINT << ": aNewValue: " << aNewValue; - - emit m_Owner.phoneSettingChanged( - static_cast(aSetting), - static_cast(aNewValue)); - - DPRINT << ": OUT"; -} - -// End of File. diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper_p.h --- a/cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper_p.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +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: - * - */ - -#ifndef SSSETTINGSWRAPPER_P_H -#define SSSETTINGSWRAPPER_P_H - -#include -#include - - -class SsSettingsWrapper; - -class SsSettingsWrapperPrivate: public MSSSettingsObserver -{ -public: - SsSettingsWrapperPrivate( SsSettingsWrapper &owner ); - - ~SsSettingsWrapperPrivate(); - -public: // From MSSSettingsObserver: - void PhoneSettingChanged( - TSSSettingsSetting aSetting, - TInt aNewValue ); - -private: // Data: - - SsSettingsWrapper &m_Owner; - -}; - -#endif // SSSETTINGSWRAPPER_P - diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper_s.cpp --- a/cellular/SSSettings/xqbindings/sssettingswrapper/src/sssettingswrapper_s.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +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 "sssettingswrapper.h" -#include "logging.h" - - -SsSettingsWrapper::SsSettingsWrapper(QObject *parent): - QObject(parent) -{ - DPRINT << "DUMMY WRAPPER"; -} - -SsSettingsWrapper::~SsSettingsWrapper() -{ - DPRINT << "DUMMY WRAPPER"; -} - - -int SsSettingsWrapper::get(SsSettingsWrapperSettings setting, int &value) -{ - DPRINT << "DUMMY WRAPPER"; - return 0; -} - -int SsSettingsWrapper::set(SsSettingsWrapperSettings setting, int value) -{ - DPRINT << "DUMMY WRAPPER"; - return 0; -} - -// End of File. diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/sssettingswrapper.pri --- a/cellular/SSSettings/xqbindings/sssettingswrapper/sssettingswrapper.pri Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +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: -# - -HEADERS += ../../../../phonesrv_plat/ss_settings_api/inc/sssettingswrapper.h \ - ../../../../phonesrv_plat/ss_settings_api/inc/sssettingswrappertypes.h \ - -symbian: { - SOURCES += ./src/sssettingswrapper.cpp \ - ./src/sssettingswrapper_p.cpp -} -else: { - SOURCES = ./src/sssettingswrapper_s.cpp -} - diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/sssettingswrapper.pro --- a/cellular/SSSettings/xqbindings/sssettingswrapper/sssettingswrapper.pro Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +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: -# - -TEMPLATE = lib -TARGET = -MOC_DIR = moc - -INCLUDEPATH += ../../../../phonesrv_plat/ss_settings_api/inc -SOURCEPATH += src - -# Input -include(sssettingswrapper.pri) - -DEFINES += BUILD_SSSETTINGSWRAPPER - -symbian: { - LIBS += -lsssettings - load(data_caging_paths) - INCLUDEPATH += $$MW_LAYER_SYSTEMINCLUDE - - TARGET.EPOCALLOWDLLDATA = 1 - TARGET.CAPABILITY = CAP_GENERAL_DLL - TARGET.UID3 = 0X20029F22 - - defFiles = \ - "$${LITERAL_HASH}ifdef WINS" \ - "DEFFILE bwins/sssettingswrapper.def" \ - "$${LITERAL_HASH}else" \ - "DEFFILE eabi/sssettingswrapper.def" \ - "$${LITERAL_HASH}endif" - MMP_RULES += defFiles - - # For sis file - dllfile.sources = $${TARGET}.dll - dllfile.path = $$SHARED_LIB_DIR - DEPLOYMENT += dllfile - - BLD_INF_RULES.prj_exports += \ - "$${LITERAL_HASH}include " \ - "./rom/sssettingswrapper.iby CORE_MW_LAYER_IBY_EXPORT_PATH(sssettingswrapper.iby)" -} else: { - DESTDIR = c:\hb\lib - DLLDESTDIR = c:\hb\bin -} diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/mocks/mock_rsssettings.cpp --- a/cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/mocks/mock_rsssettings.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,189 +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 -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RSSSettings::RSSSettings -// ----------------------------------------------------------------------------- -// -RSSSettings::RSSSettings( ) - { - - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::Close -// ----------------------------------------------------------------------------- -// -void RSSSettings::Close( ) - { - SMC_MOCK_METHOD0( void ) - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::Open -// ----------------------------------------------------------------------------- -// -TInt RSSSettings::Open( ) - { - SMC_MOCK_METHOD0( TInt ) - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::Open -// ----------------------------------------------------------------------------- -// -TInt RSSSettings::Open( - RTelServer * aTelServer ) - { - SMC_MOCK_METHOD1( TInt, RTelServer *, aTelServer ) - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::RegisterAll -// ----------------------------------------------------------------------------- -// -TInt RSSSettings::RegisterAll( - MSSSettingsObserver & aObserver ) - { - //SMC_MOCK_METHOD1( TInt, MSSSettingsObserver &, aObserver ) - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::Register -// ----------------------------------------------------------------------------- -// -TInt RSSSettings::Register( - TSSSettingsSetting aSetting, - MSSSettingsObserver & aObserver ) - { - //SMC_MOCK_METHOD2( TInt, TSSSettingsSetting, aSetting, - // MSSSettingsObserver &, aObserver ) - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::CancelAll -// ----------------------------------------------------------------------------- -// -void RSSSettings::CancelAll( - MSSSettingsObserver & aObserver ) - { - //SMC_MOCK_METHOD1( void, MSSSettingsObserver &, aObserver ) - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::Cancel -// ----------------------------------------------------------------------------- -// -void RSSSettings::Cancel( - TSSSettingsSetting aSetting, - MSSSettingsObserver & aObserver ) - { - //SMC_MOCK_METHOD2( void, TSSSettingsSetting, aSetting, - // MSSSettingsObserver &, aObserver ) - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::Get -// ----------------------------------------------------------------------------- -// -TInt RSSSettings::Get( - TSSSettingsSetting aSetting, - TInt & aValue ) - { - SMC_MOCK_METHOD2( TInt, TSSSettingsSetting, aSetting, - TInt &, aValue ) - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::Set -// ----------------------------------------------------------------------------- -// -TInt RSSSettings::Set( - TSSSettingsSetting aSetting, - TInt aValue ) - { - SMC_MOCK_METHOD2( TInt, TSSSettingsSetting, aSetting, - TInt, aValue ) - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::HandleSIMChanged -// ----------------------------------------------------------------------------- -// -TInt RSSSettings::HandleSIMChanged( ) - { - SMC_MOCK_METHOD0( TInt ) - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::PreviousCugValue -// ----------------------------------------------------------------------------- -// -TInt RSSSettings::PreviousCugValue( - TInt & aPreviousValue ) - { - SMC_MOCK_METHOD1( TInt, TInt &, aPreviousValue ) - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::ResetPreviousCugValue -// ----------------------------------------------------------------------------- -// -TInt RSSSettings::ResetPreviousCugValue( ) - { - SMC_MOCK_METHOD0( TInt ) - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::HandleRefresh -// ----------------------------------------------------------------------------- -// -TInt RSSSettings::HandleRefresh( ) - { - SMC_MOCK_METHOD0( TInt ) - } - - -// ----------------------------------------------------------------------------- -// RSSSettings::IsValueValidCugIndex -// ----------------------------------------------------------------------------- -// -TBool RSSSettings::IsValueValidCugIndex( - const TInt & aValue ) const - { - SMC_MOCK_METHOD1( TBool, const TInt &, aValue ) - } - - diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/run_auto_tests_qt.bat --- a/cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/run_auto_tests_qt.bat Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,194 +0,0 @@ -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: -rem - -@echo off -setlocal -goto :startup - -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: function DEFAULT -:: -:: Modify this function -:: - TESTED_SRC can be changed to match tested code. -:: Specifies path from testcode group directory to -:: tested code -:: - Add test directories to be runned -:: ie. "call :build ut_projectdirectory" or use -:: "for /f %%a in ('dir /b ut_*') do call :build %%a" -:: which compiles, instruments and runs all test directories -:: starting with "ut_". -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:DEFAULT -set TESTED_SRC=..\..\src\* - -for /f %%a in ('dir /b ut_*') do call :build %%a -if [%DOMODULESTESTS%] EQU [TRUE] ( -for /f %%a in ('dir /b mt_*') do call :build %%a -) - -call :finish -goto :END - -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: function STARTUP -:: -:: Initializing script -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:STARTUP - -set BUILDTESTS=TRUE -set RUNTESTS=TRUE -set INSTRUMENT=TRUE -set REMOVEINSTRUMENT=TRUE -set DOMODULESTESTS=TRUE -set SBS_CALL=sbs --config winscw_udeb --keepgoing BUILD -set PATH_TO_DLL=\epoc32\release\winscw\udeb -set PATH_TO_COVERAGE_DATA=\coverage_data -set PATH_TO_RESULT=\test_result - -if not exist %PATH_TO_COVERAGE_DATA% ( -mkdir %PATH_TO_COVERAGE_DATA% -) - -if not exist %PATH_TO_RESULT% ( -mkdir %PATH_TO_RESULT% -) - -if [%1] EQU [] ( goto default ) - -call :%1 -call :%2 -call :%3 -call :%4 -call :%5 -echo Running tests = %RUNTESTS% -echo Instrumenting tests = %INSTRUMENT% -goto default - -:/NOCLEANUP -set REMOVEINSTRUMENT=FALSE -goto end - -:/NORUN -set RUNTESTS=FALSE -set REMOVEINSTRUMENT=FALSE -goto end - -:/NOINSTRUMENT -set INSTRUMENT=FALSE -goto end - -:/NOBUILD -set BUILDTESTS=FALSE -goto end - -:/ONLYUNITTESTS -set DOMODULESTESTS=FALSE -goto end - -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: function FINISH -:: -:: Finishes run_auto_tests.bat -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:FINISH - -if [%RUNTESTS%] EQU [TRUE] ( -call :runtests -) - -if [%INSTRUMENT%] EQU [TRUE] ( -call :calculatecoverage -) - -if [%REMOVEINSTRUMENT%] EQU [TRUE] ( -call :removecoverage -) -goto end - -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: function BUILD -:: param directory -:: -:: builds test from given directory -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:BUILD -setlocal -if [%BUILDTESTS%] EQU [FALSE] ( goto end ) -echo Building %1 -if not exist %1 ( -echo %1 Not found! -goto end -) - -pushd . -call cd %1 -call qmake -call sbs --config winscw_udeb --keepgoing CLEAN -if [%INSTRUMENT%] EQU [TRUE] ( -call ctcwrap -2comp -n %PATH_TO_COVERAGE_DATA%\%1 -i d -C "EXCLUDE=*" -C "NO_EXCLUDE=%TESTED_SRC%" "%SBS_CALL%" -) else ( -call %SBS_CALL% -) - -popd -endlocal -goto end - - -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: function RUNTESTS -:: -:: NOTE! Function assumes that test binary is named according to test directory. -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:RUNTESTS -echo Running tests -for /f %%a in ('dir /b ut_*') do ( - call %PATH_TO_DLL%\%%a.exe -dtextshell -- - move \epoc32\winscw\c\data\%%a.log %PATH_TO_RESULT%\%%a.log -) -goto end - -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: function CALCULATECOVERAGE -:: -:: Calculates test coverage. Generates html -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:CALCULATECOVERAGE -echo Calculating coverage -ctcpost %PATH_TO_COVERAGE_DATA%\*.sym | ctcmerge -i - -o profile.txt -call ctc2html -t 70 -i profile.txt -o \coverage_result -nsb -goto end - -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: function REMOVECOVERAGE -:: -:: Removes data from coverage directory -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:REMOVECOVERAGE -echo Removing deleting coverage data -call del %PATH_TO_COVERAGE_DATA%\*.sym -call del %PATH_TO_COVERAGE_DATA%\*.dat -call del profile.txt -goto end - -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:: function END -:: -:: Prints done -:::::::::::::::::::::::::::::::::::::::::::::::::::::: -:END -echo Done! \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/ut_sssettingswrapper/qtestmains60.h --- a/cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/ut_sssettingswrapper/qtestmains60.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +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: -* -*/ - -#ifndef QTESTMAINS60 -#define QTESTMAINS60 - -#define QTEST_MAIN_S60(TestObject) \ -int main(int argc, char *argv[]) \ -{ \ -char *new_argv[3]; \ -QCoreApplication app(argc, argv); \ -\ -QString str = "C:\\data\\" + QFileInfo(QCoreApplication::applicationFilePath()).baseName() + ".log"; \ -QByteArray bytes = str.toAscii(); \ -\ -char arg1[] = "-o"; \ -\ -new_argv[0] = argv[0]; \ -new_argv[1] = arg1; \ -new_argv[2] = bytes.data(); \ -\ -TestObject tc; \ -return QTest::qExec(&tc, 3, new_argv); \ -} - -#endif \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/ut_sssettingswrapper/ut_sssettingswrapper.cpp --- a/cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/ut_sssettingswrapper/ut_sssettingswrapper.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,125 +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 "ut_sssettingswrapper.h" -#include "qtestmains60.h" -#define private public -#include "sssettingswrapper.h" -#include "sssettingswrapper_p.h" - -/*! - UT_SsSettingsWrapper::UT_SsSettingsWrapper - */ -UT_SsSettingsWrapper::UT_SsSettingsWrapper() - : mWrapper(NULL) -{ -} - -/*! - UT_SsSettingsWrapper::~UT_SsSettingsWrapper - */ -UT_SsSettingsWrapper::~UT_SsSettingsWrapper() -{ - delete mWrapper; -} - -/*! - UT_SsSettingsWrapper::init - */ -void UT_SsSettingsWrapper::init() -{ - initialize(); - - mWrapper = new SsSettingsWrapper(); -} - -/*! - UT_SsSettingsWrapper::cleanup - */ -void UT_SsSettingsWrapper::cleanup() -{ - reset(); - - delete mWrapper; - mWrapper = NULL; -} - -/*! - UT_SsSettingsWrapper::t_memleak - */ -void UT_SsSettingsWrapper::t_memleak() -{ - -} - -/*! - UT_SsSettingsWrapper::t_get - */ -void UT_SsSettingsWrapper::t_get() -{ - int value = 0; - expect("RSSSettings::Get").with(ESSSettingsCug, 0); - QVERIFY( !mWrapper->get(Cug, value) ); - expect("RSSSettings::Get").with(ESSSettingsClir, 0); - QVERIFY( !mWrapper->get(Clir, value) ); - expect("RSSSettings::Get").with(ESSSettingsAls, 0); - QVERIFY( !mWrapper->get(Als, value) ); - expect("RSSSettings::Get").with(ESSSettingsAlsBlocking, 0); - QVERIFY( !mWrapper->get(AlsBlocking, value) ); - expect("RSSSettings::Get").with(ESSSettingsDefaultCug, 0); - QVERIFY( !mWrapper->get(DefaultCug, value) ); - QVERIFY(true == verify()); -} - -/*! - UT_SsSettingsWrapper::t_set - */ -void UT_SsSettingsWrapper::t_set() -{ - int value = 0; - expect("RSSSettings::Set").with(ESSSettingsCug, 0); - QVERIFY( !mWrapper->set(Cug, value) ); - expect("RSSSettings::Set").with(ESSSettingsClir, 0); - QVERIFY( !mWrapper->set(Clir, value) ); - expect("RSSSettings::Set").with(ESSSettingsAls, 0); - QVERIFY( !mWrapper->set(Als, value) ); - expect("RSSSettings::Set").with(ESSSettingsAlsBlocking, 0); - QVERIFY( !mWrapper->set(AlsBlocking, value) ); - expect("RSSSettings::Set").with(ESSSettingsDefaultCug, 0); - QVERIFY( !mWrapper->set(DefaultCug, value) ); - QVERIFY(true == verify()); -} - -/*! - UT_SsSettingsWrapper::t_PhoneSettingChanged - */ -Q_DECLARE_METATYPE(SsSettingsWrapperSettings) -void UT_SsSettingsWrapper::t_PhoneSettingChanged() -{ - qRegisterMetaType ("SsSettingsWrapperSettings"); - QSignalSpy spy(mWrapper, - SIGNAL(phoneSettingChanged(SsSettingsWrapperSettings, int ))); - - mWrapper->m_Priv->PhoneSettingChanged(ESSSettingsCug, 0); - - QCOMPARE(spy.count(), 1); - const QList &arguments = spy.at(0); - QVERIFY(Cug == arguments.at(0).value()); - QVERIFY(0 == arguments.at(1).value()); -} - -QTEST_MAIN_S60(UT_SsSettingsWrapper) diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/ut_sssettingswrapper/ut_sssettingswrapper.h --- a/cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/ut_sssettingswrapper/ut_sssettingswrapper.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +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: -* -*/ - -#ifndef UT_SSSETTINGWRAPPER_H -#define UT_SSSETTINGWRAPPER_H - -#include -#include - -class SsSettingsWrapper; - -class UT_SsSettingsWrapper : public QObject, MockService -{ - Q_OBJECT - -public: - UT_SsSettingsWrapper(); - ~UT_SsSettingsWrapper(); - -private slots: - - void init(); - void cleanup(); - - void t_memleak(); - void t_get(); - void t_set(); - - void t_PhoneSettingChanged(); - -private: - SsSettingsWrapper *mWrapper; - -}; - -#endif diff -r 35488577e233 -r 2fa1fa551b0b cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/ut_sssettingswrapper/ut_sssettingswrapper.pro --- a/cellular/SSSettings/xqbindings/sssettingswrapper/tsrc/ut_sssettingswrapper/ut_sssettingswrapper.pro Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +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: Project file for building unit test component -# -# - -CONFIG += qtestlib -TEMPLATE = app -TARGET = -DEPENDPATH += . ../../src/ -INCLUDEPATH += . -DEFINES += BUILD_SSSETTINGSWRAPPER - -QT -= gui -QT += testlib - -symbian: { - CONFIG += no_icon - INCLUDEPATH += /epoc32/include/mw/QtTest \ - /epoc32/include/platform/mw \ - /epoc32/include/mw/qt - LIBS += -lmocklib -lsymbianmock -} - -# test code -HEADERS += ut_sssettingswrapper.h -SOURCES += ut_sssettingswrapper.cpp - -# code to be tested -HEADERS += ../../../../../../phonesrv_plat/ss_settings_api/inc/sssettingswrapper.h -SOURCES += ../../src/sssettingswrapper.cpp \ - ../../src/sssettingswrapper_p.cpp - -# mocks needed for testing -SOURCES += ../mocks/mock_rsssettings.cpp diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/BMARM/SERVICEREQUESTU.DEF --- a/cellular/ServiceRequest/BMARM/SERVICEREQUESTU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -EXPORTS - NewL__15CServiceRequestR23MServiceRequestObserver @ 1 NONAME R3UNUSED ; CServiceRequest::NewL(MServiceRequestObserver &) - ShowCompletionNoteL__15CServiceRequestiiQ215CServiceRequest13TSerqNoteTypeRC7TDesC16 @ 2 NONAME ; CServiceRequest::ShowCompletionNoteL(int, int, CServiceRequest::TSerqNoteType, TDesC16 const &) - StartL__15CServiceRequestRC7TDesC16 @ 3 NONAME R3UNUSED ; CServiceRequest::StartL(TDesC16 const &) - "_._15CServiceRequest" @ 4 NONAME R3UNUSED ; CServiceRequest::~CServiceRequest(void) - diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/BWINS/SERVICEREQUESTU.DEF --- a/cellular/ServiceRequest/BWINS/SERVICEREQUESTU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -EXPORTS - ??1CServiceRequest@@UAE@XZ @ 1 NONAME ; public: virtual __thiscall CServiceRequest::~CServiceRequest(void) - ?NewL@CServiceRequest@@SAPAV1@AAVMServiceRequestObserver@@@Z @ 2 NONAME ; public: static class CServiceRequest * __cdecl CServiceRequest::NewL(class MServiceRequestObserver &) - ?ShowCompletionNoteL@CServiceRequest@@QAEXHHW4TSerqNoteType@1@ABVTDesC16@@@Z @ 3 NONAME ; public: void __thiscall CServiceRequest::ShowCompletionNoteL(int,int,enum CServiceRequest::TSerqNoteType,class TDesC16 const &) - ?StartL@CServiceRequest@@QAEXABVTDesC16@@@Z @ 4 NONAME ; public: void __thiscall CServiceRequest::StartL(class TDesC16 const &) - diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/data/ServiceRequest.rss --- a/cellular/ServiceRequest/data/ServiceRequest.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/* -* Copyright (c) 2002 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: Resource file for general Service Request -* -*/ - - - -// RESOURCE IDENTIFIER -NAME SERQ - -// INCLUDES - -#include -#include -#include -#include -#include - -#include -#include "servicerequest.hrh" - -RESOURCE RSS_SIGNATURE { } - - -// ----------------------------------------------------------------------------- -// -// r_serq_requesting_wait_note -// Wait dialog for the servivce request. -// -// ----------------------------------------------------------------------------- -// -RESOURCE DIALOG r_serq_requesting_wait_note - { - flags = EAknWaitNoteFlags | EEikDialogFlagWait; - buttons=R_AVKON_SOFTKEYS_QUIT; - items= - { - DLG_LINE - { - type=EAknCtNote; - id = ESerqRequestingNote; - control= AVKON_NOTE - { - layout = EWaitLayout; - singular_label = text_sending; - animation = R_QGN_GRAF_WAIT_BAR_ANIM; - }; - } - }; - } - -// Used texts in notes: - -RESOURCE TBUF r_text_unconfirmed - { - buf = text_unconfirmed; - } - -RESOURCE TBUF r_text_not_done - { - buf = text_not_done; - } - -RESOURCE TBUF r_text_not_allowed - { - buf = text_not_allowed; - } - -RESOURCE TBUF r_text_result_unknown - { - buf = text_result_unknown; - } - -RESOURCE TBUF r_text_done - { - buf = text_done; - } - -RESOURCE TBUF r_text_no_service - { - buf = text_no_service; - } - -RESOURCE TBUF r_qtn_srvrq_info_confl - { - buf = qtn_srvrq_info_confl; - } - -RESOURCE TBUF r_text_request_rejected - { - buf = text_request_rejected; - } - -RESOURCE TBUF r_password_error_note - { - buf = qtn_mem_card_unlock_error; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/data/servicerequest_stub.SIS Binary file cellular/ServiceRequest/data/servicerequest_stub.SIS has changed diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/data/servicerequest_stub.pkg --- a/cellular/ServiceRequest/data/servicerequest_stub.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +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: -; -; servicerequest_stub.pkg - -; Languages -&EN - -; Header -#{"servicerequest"},(0x10005A3D),1,0,0,TYPE=SA - -;Localised Vendor name -%{"Nokia"} - -;Unique Vendor name -:"Nokia" - -; Target - -""-"z:\sys\bin\servicerequest.dll" -""-"z:\resource\ServiceRequest.rsc" diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/eabi/servicerequestu.def --- a/cellular/ServiceRequest/eabi/servicerequestu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -EXPORTS - _ZN15CServiceRequest19ShowCompletionNoteLEiiNS_13TSerqNoteTypeERK7TDesC16 @ 1 NONAME - _ZN15CServiceRequest4NewLER23MServiceRequestObserver @ 2 NONAME - _ZN15CServiceRequest6StartLERK7TDesC16 @ 3 NONAME - _ZN15CServiceRequestD0Ev @ 4 NONAME - _ZN15CServiceRequestD1Ev @ 5 NONAME - _ZN15CServiceRequestD2Ev @ 6 NONAME - _ZTI15CServiceRequest @ 7 NONAME - _ZTV15CServiceRequest @ 8 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/group/ServiceRequest.mmp --- a/cellular/ServiceRequest/group/ServiceRequest.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: General Service Request module -* -*/ - -#include -#include - -// Capability assignment. -CAPABILITY CAP_GENERAL_DLL - -TARGET servicerequest.dll -TARGETTYPE DLL -UID 0x1000008d 0x10005A3D - -SOURCEPATH ../src -SOURCE cservicerequest.cpp - -// Resource files -START RESOURCE ../data/servicerequest.rss -TARGETPATH RESOURCE_FILES_DIR -HEADER -LANGUAGE_IDS -END - -USERINCLUDE ../inc - -SYSTEMINCLUDE ../../../inc - -MW_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib cone.lib avkon.lib commonengine.lib -LIBRARY aknnotify.lib - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/group/bld.inf --- a/cellular/ServiceRequest/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2002 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: General Service Request module -* -*/ - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -../inc/cservicerequest.h |../../../inc/cservicerequest.h -../inc/mservicerequestobserver.h |../../../inc/mservicerequestobserver.h -../data/servicerequest_stub.sis /epoc32/data/z/system/install/servicerequest_stub.sis -../rom/servicerequest.iby CORE_APP_LAYER_IBY_EXPORT_PATH(servicerequest.iby) -../rom/servicerequestresources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(servicerequestresources.iby) - -PRJ_MMPFILES -../group/servicerequest.mmp - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/inc/CServiceRequest.h --- a/cellular/ServiceRequest/inc/CServiceRequest.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,207 +0,0 @@ -/* -* Copyright (c) 2002 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: Interface for service request -* -*/ - - - -#ifndef CSERVICEREQUEST_H -#define CSERVICEREQUEST_H - -// INCLUDES -#include -#include -#include - -// FORWARD DECLARATIONS -class MServiceRequestObserver; -class CAknWaitDialog; -class RConeResourceLoader; - -// CLASS DECLARATION - -/** -* Interface for service request -* -* -Create instance by calling the static NewL method. User must implement the -* observer interface MServiceRequestObserver. Cancelling the wait note is -* informed through this API. -* -* iServiceRequest = CServiceRequest::NewL( *this ); -* -* -* -The instance can be deleted at any time and all notes are dismissed. -* -* delete iServiceRequest; -* -* -* -The wait note can be launched by calling StartL function: -* -* iServiceRequest->StartL(); -* -* By default the text "Requesting" is used, but the user may give the text -* as a parameter: -* -* iServiceRequest->StartL( _L("Please wait...") ); -* -* Call to the StartL function will delete own notes visible at the call time. -* -* -* -Wait note can deleteted by calling the ShowCompletionNoteL function. This removes -* all own notes. If the user wants to show a completion note for the request, -* the parameter aShowNote must be set to ETrue. Creation of a new note may leave. -* By deafult the Supplementary Service UI specification texts and note types are -* used. The user may override some parameters, like note type and text. By default, -* the error code is converted into note, e.g.: -* KErrNone, Global confirmation note "Done" -* KErrCancel, Local information note "Request not confirmed" -* KErrAccessDenied, Global information note "Not allowed" -* and so on. -* -* -* -* @lib ServiceRequest.lib -* @since 1.2 -*/ -class CServiceRequest : public CActive, public MProgressDialogCallback - { - public: // Constructors and destructor - - // Used note types - enum TSerqNoteType - { - ESerqDefault, - ESerqLocalInformationNote, - ESerqLocalConfirmationNote, - ESerqGlobalInformationNote, - ESerqGlobalErrorNote, - ESerqGlobalConfirmationNote - }; - - - /** - * Two-phased constructor. - * @param aObserver Oberver to inform cancelling. - * @return New CServiceRequest object. - */ - IMPORT_C static CServiceRequest* NewL( MServiceRequestObserver& aObserver ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CServiceRequest(); - - public: // New functions - - /** - * Starts a wait note. - * @since 1.2 - * @param aText "Requesting" text is used, if this descriptor's - * lenght is zero. - */ - IMPORT_C void StartL( const TDesC& aText = KNullDesC() ); - - /** - * Removes wait note and shows new note if wanted. - * If aShowNote = EFalse, this function won't leave! - * Removal of the wait note is guaranteed in leave cases also. - * @since 1.2 - * @param aShowNote ETrue: a note is shown - * EFalse: no additional note is shown - * @param aError Used in default notes. The default note type and used - * text is decided based on this value. These vales are - * overridden if note type or used text is geven as a - * parameter. - * @param aNoteType Type of the note. If EDefault is used, then the - * aError parameter is checked. - * @param aText Given text. If lenght is zero, aError parameter is checked. - */ - IMPORT_C void ShowCompletionNoteL( - TBool aShowNote = ETrue, - TInt aError = KErrNone, - TSerqNoteType aNoteType = ESerqDefault, - const TDesC& aText = KNullDesC() ); - - protected: // From baseclasses - - // From MProgressDialogCallback - void DialogDismissedL( TInt aButtonId ); - - // From CActive - void RunL(); - - // From CActive - void DoCancel(); - - /** - * From CActive - * @param aError - * @return TInt - */ - TInt RunError(TInt aError); - - private: - - /** - * C++ default constructor. - */ - CServiceRequest( MServiceRequestObserver& aObserver ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Zeroes data members - */ - void Reset(); - - /** - * Gets default note implementation for give error value. - */ - static void GetDefaultNote( - const TInt aError , - TSerqNoteType& aNoteType , - TInt& aResourceId ); - - /** - * Launches given note. Text is fetched from iNoteText. - */ - void LaunchNoteL( const TSerqNoteType aNoteType); - - private: // Data - // Service request observer - MServiceRequestObserver& iObserver; - - // Requesting wait note: - CAknWaitDialog* iRequestingNote; - - // Resource loader - RConeResourceLoader* iResourceLoader; - - // Text for note - HBufC* iNoteText; - - // Enables instance deletion in call back. - TBool* iDestroyed; - - // Reserved pointer for future extension - TAny* iReserved; - }; - -#endif // CSERVICEREQUEST_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/inc/MServiceRequestObserver.h --- a/cellular/ServiceRequest/inc/MServiceRequestObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2002 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: Observer interface for service request -* -*/ - - - -#ifndef MSERVICEREQUESTOBSERVER_H -#define MSERVICEREQUESTOBSERVER_H - -// CLASS DECLARATION - -/** -* Observer interface for service request -* -* @lib ServiceRequest.lib -* @since 1.2 -*/ -class MServiceRequestObserver - { - public: // New functions - - /** - * Called when user cancel the service request. - * @since 1.2 - * @param aCancelledWithEscape ETrue: cancalled with esc key. - * EFalse: cancelled with softkey (normal). - */ - virtual void MServiceRequestNoteCancelledL( - TBool aCancelledWithEscape ) = 0; - }; - -#endif // MSERVICEREQUESTOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/inc/ServiceRequest.hrh --- a/cellular/ServiceRequest/inc/ServiceRequest.hrh Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +0,0 @@ -/* -* Copyright (c) 2002 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: Definitions used in Service Request module -* -*/ - - -#ifndef SERVICEREQUEST_HRH -#define SERVICEREQUEST_HRH - - -// DATA TYPES -enum TSerqNotes - { - ESerqRequestingNote = 1 - }; - -#endif - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/rom/servicerequest.iby --- a/cellular/ServiceRequest/rom/servicerequest.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2005 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: -* -*/ - - -#ifndef __SERVICEREQUEST_IBY__ -#define __SERVICEREQUEST_IBY__ - -file=ABI_DIR\BUILD_DIR\servicerequest.dll SHARED_LIB_DIR\servicerequest.dll - -data=ZSYSTEM\install\servicerequest_stub.sis System\Install\servicerequest_stub.sis - -#endif diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/rom/servicerequestResources.iby --- a/cellular/ServiceRequest/rom/servicerequestResources.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -/* -* Copyright (c) 2005 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: -* -*/ - - -#ifndef __SERVICEREQUESTRESOURCES_IBY__ -#define __SERVICEREQUESTRESOURCES_IBY__ - -data=DATAZ_\RESOURCE_FILES_DIR\SERVICEREQUEST.rsc RESOURCE_FILES_DIR\SERVICEREQUEST.rsc - -#endif diff -r 35488577e233 -r 2fa1fa551b0b cellular/ServiceRequest/src/CServiceRequest.cpp --- a/cellular/ServiceRequest/src/CServiceRequest.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,401 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Interface for service request -* -*/ - - - -// INCLUDE FILES -#include "cservicerequest.h" -#include "mservicerequestobserver.h" -#include - -#include -#include -#include -#include - -#include -#include -#include -#include -#include - - -// CONSTANTS -_LIT( KSerqResourcesWithFullPath,"z:\\resource\\ServiceRequest.rsc" ); - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CServiceRequest::CServiceRequest -// C++ default constructor can NOT contain any code that -// might leave. -// ----------------------------------------------------------------------------- -// -CServiceRequest::CServiceRequest( MServiceRequestObserver& aObserver ) -: CActive(EPriorityStandard) , iObserver( aObserver ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CServiceRequest::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CServiceRequest::ConstructL() - { - iResourceLoader = new(ELeave) RConeResourceLoader( *CCoeEnv::Static() ); - TFileName fileName( KSerqResourcesWithFullPath ); - iResourceLoader->OpenL(fileName); - } - -// ----------------------------------------------------------------------------- -// CServiceRequest::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CServiceRequest* CServiceRequest::NewL( MServiceRequestObserver& aObserver ) - { - CServiceRequest* self = new( ELeave ) CServiceRequest( aObserver ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - -// Destructor -EXPORT_C CServiceRequest::~CServiceRequest() - { - Reset(); - - if ( iResourceLoader ) - { - iResourceLoader->Close(); - } - delete iResourceLoader; - iResourceLoader = NULL; - - // If instance is deleted in call back - inform the function. - if ( iDestroyed ) - { - *iDestroyed = ETrue; - } - } - -// ----------------------------------------------------------------------------- -// CServiceRequest::Reset -// Deletes used member data -// ----------------------------------------------------------------------------- -// -void CServiceRequest::Reset() - { - Cancel(); - - delete iRequestingNote; - iRequestingNote = NULL; - - delete iNoteText; - iNoteText = NULL; - } - -// ----------------------------------------------------------------------------- -// CServiceRequest::StartL -// Launches the request note. -// ----------------------------------------------------------------------------- -// -EXPORT_C void CServiceRequest::StartL( const TDesC& aText ) - { - - // delete possible old data: - Reset(); - - // Choose alternative "requesting" text if given - if ( aText.Length() ) - { - iNoteText = aText.AllocL(); - } - - // Create note and launch it. - CAknWaitDialog* requestingNote = new(ELeave) CAknWaitDialog( - (REINTERPRET_CAST(CEikDialog**,&iRequestingNote)) , ETrue ); - iRequestingNote = requestingNote; - requestingNote->PrepareLC( R_SERQ_REQUESTING_WAIT_NOTE ); - if ( iNoteText ) - { - requestingNote->SetTextL( iNoteText->Des() ); - } - requestingNote->SetCallback( this ); - requestingNote->RunLD(); - } - -// ----------------------------------------------------------------------------- -// CServiceRequest::DialogDismissedL -// Called when the note is cancelled. Observer call made asyncronously. -// ----------------------------------------------------------------------------- -// -void CServiceRequest::DialogDismissedL( TInt aButtonId ) - { - Cancel(); - - if ( aButtonId == EAknSoftkeyQuit || aButtonId == EEikBidCancel ) - { - // Activate new request - TRequestStatus* status = &iStatus; - User::RequestComplete( status, aButtonId ); - SetActive(); - } - } - -// ----------------------------------------------------------------------------- -// CServiceRequest::ShowCompletionNoteL -// Removes the wait note and shows another note if needed. -// ----------------------------------------------------------------------------- -// -EXPORT_C void CServiceRequest::ShowCompletionNoteL( - TBool aShowNote, - TInt aError, - TSerqNoteType aNoteType, - const TDesC& aText ) - { - // delete old instances - Reset(); - - // if new notes are not required - if ( !aShowNote ) - { - return; - } - - // Check default note appearance - TInt defaultTextId; - TSerqNoteType defaultNoteType; - GetDefaultNote( aError , defaultNoteType , defaultTextId ); - - // Choose text - if ( aText.Length() ) - { - iNoteText = aText.AllocL(); - } - else - { - // read from resources - iNoteText = StringLoader::LoadL( defaultTextId, CCoeEnv::Static() ); - } - - // Choose note type - TSerqNoteType noteType; - if ( aNoteType != ESerqDefault ) - { - noteType = aNoteType; - } - else - { - noteType = defaultNoteType; - } - - // Start note - LaunchNoteL( noteType ); - } - -// ----------------------------------------------------------------------------- -// CServiceRequest::GetDefaultNote -// Decides note type based on the given error value. -// ----------------------------------------------------------------------------- -// -void CServiceRequest::GetDefaultNote( - const TInt aError, - TSerqNoteType& aNoteType, - TInt& aResourceId ) - { - switch ( aError ) - { - case KErrNone: - aResourceId = R_TEXT_DONE; - aNoteType = ESerqGlobalConfirmationNote; - break; - case KErrCancel: - aResourceId = R_TEXT_UNCONFIRMED; - aNoteType = ESerqLocalInformationNote; - break; - case KErrInUse: - case KErrAccessDenied: - case KErrGsmSSUnknownSubscriber: - case KErrGsmSSAbsentSubscriber: - case KErrGsmSSIllegalOperation: - case KErrGsmSSIllegalSubscriber: - case KErrGsmSSSubscriptionViolation: - case KErrGsmSSIllegalEquipment: - aResourceId = R_TEXT_NOT_ALLOWED; - aNoteType = ESerqGlobalInformationNote; - break; - case KErrGsmSSCallBarred: - case KErrGsmSSIncompatibility: - aResourceId = R_QTN_SRVRQ_INFO_CONFL; - aNoteType = ESerqGlobalInformationNote; - break; - case KErrGsmSSSystemFailure: - aResourceId = R_TEXT_RESULT_UNKNOWN; - aNoteType = ESerqGlobalInformationNote; - break; - case KErrGsmSSErrorStatus: - case KErrGsmSSUnexpectedDataValue: - case KErrGsmSSResourcesUnavailable: - aResourceId = R_TEXT_REQUEST_REJECTED; - aNoteType = ESerqGlobalInformationNote; - break; - case KErrGsmSSPasswordAttemptsViolation: - case KErrGsmSSNegativePasswordCheck: - case KErrGsmSSPasswordRegistrationFailure: - aResourceId = R_PASSWORD_ERROR_NOTE; - aNoteType = ESerqGlobalErrorNote; - break; - case KErrGsmNoService: - aResourceId = R_TEXT_NO_SERVICE; - aNoteType = ESerqGlobalInformationNote; - break; - default: - aResourceId = R_TEXT_NOT_DONE; - aNoteType = ESerqGlobalInformationNote; - break; - } - } - -// ----------------------------------------------------------------------------- -// CServiceRequest::LaunchNoteL -// Launches given note type. Text is got from iNoteText member variable. -// ----------------------------------------------------------------------------- -// -void CServiceRequest::LaunchNoteL( const TSerqNoteType aNoteType) - { - - switch ( aNoteType ) - { - case ESerqLocalInformationNote: - case ESerqLocalConfirmationNote: - { - CAknResourceNoteDialog* dlg = NULL; - if ( aNoteType == ESerqLocalInformationNote ) - { - dlg = new ( ELeave ) CAknInformationNote( ETrue ); - } - else - { - dlg = new ( ELeave ) CAknConfirmationNote( ETrue ); - } - dlg->ExecuteLD( iNoteText->Des() ); - - delete iNoteText; - iNoteText = NULL; - break; - } - case ESerqGlobalInformationNote: - case ESerqGlobalErrorNote: - case ESerqGlobalConfirmationNote: - { - CAknGlobalNote* dlg = CAknGlobalNote::NewLC(); - if ( aNoteType == ESerqGlobalInformationNote ) - { - dlg->ShowNoteL( EAknGlobalInformationNote , iNoteText->Des() ); - } - else if ( aNoteType == ESerqGlobalErrorNote ) - { - dlg->ShowNoteL( EAknGlobalErrorNote , iNoteText->Des() ); - } - else - { - dlg->ShowNoteL( EAknGlobalConfirmationNote , iNoteText->Des() ); - } - CleanupStack::PopAndDestroy( dlg ); - delete iNoteText; - iNoteText = NULL; - break; - } - default: - User::Invariant(); - break; - } - } - -// ----------------------------------------------------------------------------- -// CServiceRequest::RunL -// Calls observer interface to tell that the notes has been dismissed. -// ----------------------------------------------------------------------------- -// -void CServiceRequest::RunL() - { - __ASSERT_ALWAYS( !iDestroyed, User::Invariant() ); - - TBool destr = EFalse; // Destructor changes to ETrue if deleted. - iDestroyed = &destr; - - // Object still exists and the note is cancelled: - TRAPD( error , - iObserver.MServiceRequestNoteCancelledL( iStatus.Int() == EEikBidCancel ) ); - - // All OK - if ( error == KErrNone ) - { - if ( !destr ) - { - iDestroyed = NULL; - } - return; - } - - // We got an error value. - if ( !destr ) - { - iDestroyed = NULL; - User::Leave( error ); - } - else - { - CTextResolver* textResolver = CTextResolver::NewLC(); - HBufC* buffer = textResolver->ResolveErrorString( error ).AllocLC(); - CAknGlobalNote* note = CAknGlobalNote::NewLC(); - note->ShowNoteL( EAknGlobalErrorNote, *buffer ); - CleanupStack::PopAndDestroy( note ); - CleanupStack::PopAndDestroy( buffer ); - CleanupStack::PopAndDestroy( textResolver ); - } - } - -// --------------------------------------------------------- -// CServiceRequest::RunError -// Called when RunL leaves -// (other items were commented in a header). -// --------------------------------------------------------- -// -TInt CServiceRequest::RunError( TInt /*aError*/ ) - { - return KErrNone; - } - - -// ----------------------------------------------------------------------------- -// CServiceRequest::DoCancel -// Does nothing. Must be implemented due inheritance. -// ----------------------------------------------------------------------------- -// -void CServiceRequest::DoCancel() - { - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/psuinotes/inc/psuilogging.h --- a/cellular/psuinotes/inc/psuilogging.h Mon Aug 23 15:50:31 2010 +0300 +++ b/cellular/psuinotes/inc/psuilogging.h Fri Sep 03 13:59:20 2010 +0300 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * Copyright (c) 2010 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" diff -r 35488577e233 -r 2fa1fa551b0b cellular/psuinotes/inc/psuiutils.h --- a/cellular/psuinotes/inc/psuiutils.h Mon Aug 23 15:50:31 2010 +0300 +++ b/cellular/psuinotes/inc/psuiutils.h Fri Sep 03 13:59:20 2010 +0300 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * Copyright (c) 2010 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" @@ -35,7 +35,67 @@ class PSUINOTES_EXPORT PsUiUtils : public QObject { Q_OBJECT - + +public: + enum BasicServiceGroups + { + Unknown = -1, //this is not part of GSM standard + // Phone settings updates this automatically to ETelephony or to EAltTele, + // depending on if ALS is supported, and which line is active. + AllTeleAndBearer = 0, + AllTele = 10, + Telephony = 11, + AllDataTele = 12, + Fax = 13, + Sms = 16, + AllDataExSms = 18, //voice broadcast in gsm 02.30 v. 7.1.0 + AllTeleExcSms = 19, + + AllPlmnTele = 50, + PlmnTele1 = 51, + PlmnTele2 = 52, + PlmnTele3 = 53, + PlmnTele4 = 54, + PlmnTele5 = 55, + PlmnTele6 = 56, + PlmnTele7 = 57, + PlmnTele8 = 58, + PlmnTele9 = 59, + PlmnTeleA = 60, + PlmnTeleB = 61, + PlmnTeleC = 62, + PlmnTeleD = 63, + PlmnTeleE = 64, + PlmnTeleF = 65, + + AllBearer = 20, + AllAsync = 21, + AllSync = 22, + SyncData = 24, + AsyncData = 25, + PacketData = 26, + PadAccess = 27, + AllPlmnBearer = 70, + PlmnBearerServ1 = 71, + PlmnBearerServ2 = 72, + PlmnBearerServ3 = 73, + PlmnBearerServ4 = 74, + PlmnBearerServ5 = 75, + PlmnBearerServ6 = 76, + PlmnBearerServ7 = 77, + PlmnBearerServ8 = 78, + PlmnBearerServ9 = 79, + PlmnBearerServA = 80, + PlmnBearerServB = 81, + PlmnBearerServC = 82, + PlmnBearerServD = 83, + PlmnBearerServE = 84, + PlmnBearerServF = 85, + + AltTele = 89 + // no ui note support + }; + public: /*! Error code text conversion diff -r 35488577e233 -r 2fa1fa551b0b cellular/psuinotes/src/psuidivertnotehandler.cpp --- a/cellular/psuinotes/src/psuidivertnotehandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/cellular/psuinotes/src/psuidivertnotehandler.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * Copyright (c) 2010 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" @@ -134,7 +134,7 @@ } else { if (ongoing) { PsUiNotes::instance()->showGlobalProgressNote( - m_activeProgressNoteId, hbTrId("txt_phone_info_requesting")); + m_activeProgressNoteId, hbTrId("txt_common_info_requesting")); } else { PsUiNotes::instance()->cancelNote(m_activeProgressNoteId); } diff -r 35488577e233 -r 2fa1fa551b0b cellular/psuinotes/src/psuilocalisation.cpp --- a/cellular/psuinotes/src/psuilocalisation.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/cellular/psuinotes/src/psuilocalisation.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * Copyright (c) 2010 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" diff -r 35488577e233 -r 2fa1fa551b0b cellular/psuinotes/src/psuinotes.cpp --- a/cellular/psuinotes/src/psuinotes.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/cellular/psuinotes/src/psuinotes.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * Copyright (c) 2010 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" @@ -414,7 +414,7 @@ const QList &divertingStatusList, QString &text) { - text.append(hbTrId("Active for:") + "\n\n"); //txt_phone_title_active_for + text.append(hbTrId("txt_phone_title_active_for") + "\n\n"); int entries = divertingStatusList.count(); DPRINT << ": entries " << entries; @@ -427,24 +427,23 @@ ((entry->iServiceGroup & ServiceGroupData)) && !dataSet) { if ((entry->iServiceGroup & ServiceGroupVoice) && !voiceSet) { voiceSet = true; - text.append(hbTrId("Voice calls") + "\n"); //txt_phone_info_voice_calls + text.append(hbTrId("txt_phone_info_voice_calls") + "\n"); } else if ((entry->iServiceGroup & ServiceGroupData) && !dataSet) { dataSet = true; - text.append(hbTrId("Video calls") + "\n"); //txt_phone_info_video_calls + text.append(hbTrId("txt_phone_info_video_calls") + "\n"); } QString phoneNumber = formatPhoneNumber(divertingStatusList.at(i)->iNumber); - text.append(hbTrId("To number:\n%L1").arg(phoneNumber) +"\n"); //txt_phone_info_to_numbernl1 + text.append(hbTrId("txt_phone_info_to_numbernl1").arg(phoneNumber) +"\n"); if (0 < entry->iTimeout) { - text.append(hbTrId("Delay time:\n%L1 seconds"). - arg(entry->iTimeout) +"\n\n"); // txt_phone_info_delay_timenln_seconds + text.append(hbTrId("txt_phone_info_delay_timenln_seconds", + entry->iTimeout) + "\n\n"); } else { text.append("\n"); } - } } // Convert plain text to html @@ -457,7 +456,8 @@ void PsUiNotes::activeNoteAboutToClose() { DPRINT << ": IN"; - + + if (m_isNoteShowingOngoing) { m_isNoteShowingOngoing = false; QObject* note(NULL); @@ -473,7 +473,7 @@ note->deleteLater(); } } - + DPRINT << ": OUT"; } @@ -483,9 +483,9 @@ void PsUiNotes::handleProgressNoteCanceled() { DPRINT << ": IN"; - + emit progressNoteCanceled(); - + DPRINT << ": OUT"; } @@ -496,7 +496,7 @@ { DPRINT << ": IN"; Q_ASSERT(m_passwordDialog && m_passwordValidator); - + HbLineEdit *hbLineEdit = m_passwordDialog->lineEdit(); int position = 0; QString password = hbLineEdit->text(); @@ -504,7 +504,7 @@ (QValidator::Acceptable == m_passwordValidator->validate( password, position)); m_passwordDialog->actions().at(0)->setEnabled(isPasswordValid); - + DPRINT << ": OUT"; } @@ -515,12 +515,12 @@ void PsUiNotes::showNotificationDialog(const QString& text) { DPRINT << ": IN"; - + HbNotificationDialog *notifDialog = new HbNotificationDialog(); notifDialog->setDismissPolicy(HbPopup::TapAnywhere); notifDialog->setAttribute(Qt::WA_DeleteOnClose, true); - notifDialog->setText(text); + notifDialog->setTitle(text); notifDialog->show(); DPRINT << ": OUT"; @@ -534,10 +534,10 @@ DPRINT << ": IN"; HbDeviceNotificationDialog notifDialog; - - notifDialog.setText(text); + + notifDialog.setTitle(text); notifDialog.show(); - + DPRINT << ": OUT"; } diff -r 35488577e233 -r 2fa1fa551b0b cellular/psuinotes/src/psuiwaitingnotehandler.cpp --- a/cellular/psuinotes/src/psuiwaitingnotehandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/cellular/psuinotes/src/psuiwaitingnotehandler.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). + * Copyright (c) 2010 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" @@ -29,9 +29,9 @@ m_callWaitingWrapper(callWaitingWrapper) { DPRINT << ": IN"; - + m_settingsWrapper = new PsUiSettingsWrapper(); - + QObject::connect( &m_callWaitingWrapper, SIGNAL(handleCallWaitingGetStatus( @@ -81,21 +81,28 @@ PsUiNotes::instance()->cancelNote(m_activeNoteId); + bool alsCaseOnly = false; + if (1 == basicServiceGroupIds.count() && + PsUiUtils::AltTele == static_cast(basicServiceGroupIds.at(0))) { + DPRINT << "Status is only for als"; + alsCaseOnly = true; + } + if (PSetCallWaitingWrapper::StatusNotProvisioned == status && m_settingsWrapper->isFeatureCallWaitingDistiquishNotProvisionedEnabled()) { DPRINT << ": not provisioned"; - PsUiNotes::instance()->showGlobalNotificationDialog(hbTrId("txt_phone_info_request_not_completed")); - } - - else if (PSetCallWaitingWrapper::StatusActive == status) { + PsUiNotes::instance()-> + showGlobalNotificationDialog(hbTrId("txt_phone_info_request_not_completed")); + } + else if (PSetCallWaitingWrapper::StatusActive == status && !alsCaseOnly ) { DPRINT << ": status active"; PsUiNotes::instance()->showGlobalNotificationDialog( - hbTrId("Call waiting active")); //txt_phone_dpopinfo_call_waiting_active + hbTrId("txt_phone_dpopinfo_call_waiting_active")); } else { DPRINT << ": status not active"; PsUiNotes::instance()->showGlobalNotificationDialog( - hbTrId("Call waiting not active")); //txt_phone_dpopinfo_call_waiting_not_active + hbTrId("txt_phone_dpopinfo_call_waiting_not_active")); } DPRINT << ": OUT"; @@ -130,7 +137,7 @@ break; } } - + DPRINT << ": OUT"; } @@ -141,16 +148,16 @@ { DPRINT << ": IN"; DPRINT << "ongoing:" << ongoing << ", interrupted:" << interrupted; - + if (ongoing) { - PsUiNotes::instance()->showGlobalProgressNote(m_activeNoteId, hbTrId("txt_common_info_requesting")); + PsUiNotes::instance()->showGlobalProgressNote(m_activeNoteId, + hbTrId("txt_common_info_requesting")); } - + if (interrupted) { PsUiNotes::instance()->cancelNote(m_activeNoteId); } - - + DPRINT << ": OUT"; } @@ -161,7 +168,7 @@ { DPRINT << ": IN"; DPRINT << "errorCode:" << error; - PsUiNotes::instance()->cancelNote(m_activeNoteId); + PsUiNotes::instance()->cancelNote(m_activeNoteId); PsUiNotes::instance()->showGlobalErrorNote(m_activeNoteId, error); DPRINT << ": OUT"; diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/Logger/PhoneSettingsLogger.h --- a/cellular/telephonysettings/Logger/PhoneSettingsLogger.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* Copyright (c) 2005 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: -* Macro definition file for logging. -* -* -*/ - - - -#ifndef PHONESETTINGSLOGGER_H -#define PHONESETTINGSLOGGER_H - -#include "phonesettingsloggingconf.h" -#include -#include -#include - -_LIT( KLogsDir, "PHS"); -_LIT( KLogFileName, "PHS.log"); - -/* - We have 3 possible logging methods: - - set PHS_LOGGING_METHOD to 0 to get no logging at all - set PHS_LOGGING_METHOD to 1 to get logging via RDebug::Print - set PHS_LOGGING_METHOD to 2 to get logging to log file - - Switching on/off is done in the Configuration file (PhoneSettingsLoggingConf.h) - */ - -#if ( defined (_PHSLOGGING) ) - #if ( defined (_PHS_LOGGING_TO_FILE)) - #define PHS_LOGGING_METHOD 2 - #else - #define PHS_LOGGING_METHOD 1 - #endif -#else - #define PHS_LOGGING_METHOD 0 -#endif - - -#if (PHS_LOGGING_METHOD==0) - #define __PHSLOGSTRING(C) - #define __PHSLOGSTRING1(C, X) - #define __PHSLOGSTRING2(C, X, Y) - #define __PHSLOGSTRING3(C, X, Y, Z) -#endif -#if (PHS_LOGGING_METHOD==1) - #define __PHSLOGSTRING(C) RDebug::Print(_L(C)); - #define __PHSLOGSTRING1(C, X) RDebug::Print(_L(C),X); - #define __PHSLOGSTRING2(C, X, Y) RDebug::Print(_L(C),X, Y); - #define __PHSLOGSTRING3(C, X, Y, Z) RDebug::Print(_L(C),X, Y, Z); -#endif -#if (PHS_LOGGING_METHOD==2) - #define __PHSLOGSTRING(C) {_LIT(tempLogDes,C);RFileLogger::WriteFormat(KLogsDir(),KLogFileName(), EFileLoggingModeAppend, tempLogDes());} - #define __PHSLOGSTRING1(C, X) {_LIT(tempLogDes,C);RFileLogger::WriteFormat(KLogsDir(),KLogFileName(), EFileLoggingModeAppend, TRefByValue(tempLogDes()),X);} - #define __PHSLOGSTRING2(C, X, Y) {_LIT(tempLogDes,C);RFileLogger::WriteFormat(KLogsDir(),KLogFileName(), EFileLoggingModeAppend, TRefByValue(tempLogDes()),X,Y);} - #define __PHSLOGSTRING3(C, X, Y, Z) {_LIT(tempLogDes,C);RFileLogger::WriteFormat(KLogsDir(),KLogFileName(), EFileLoggingModeAppend, TRefByValue(tempLogDes()),X,Y,Z);} -#endif - -#endif // PHONESETTINGSLOGGER_H diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/Logger/PhoneSettingsLoggingConf.h --- a/cellular/telephonysettings/Logger/PhoneSettingsLoggingConf.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* -* Copyright (c) 2005 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: -* Macro definition file for logging configuration. -* (Note:This file has to be separate from the logging header file -* to be able to include it in mmp file. If not we will get warning about not used -* flogger.lib in other logging cases where flogger.lib is not used.) -* -*/ - - - -#ifndef PHONESCONFIGURATION_H -#define PHONESCONFIGURATION_H - - -#ifdef _DEBUG // logging to file in debug only - -/** -* - Have this line active if you want to have logging for this component -* - Comment this line out if you don't want any logging for this component -*/ -#define _PHSLOGGING - -/** -* - Have this line active if you want to have logging to file -* - Comment this line out if you want to have logging via RDebug::Print -*/ -#define _PHS_LOGGING_TO_FILE - -#endif // _DEBUG - -#endif // PHONESCONFIGURATION_H diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/bwins/PHONESETTINGSU.DEF --- a/cellular/telephonysettings/bwins/PHONESETTINGSU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -EXPORTS - ??1CPsetCallBarring@@UAE@XZ @ 1 NONAME ; CPsetCallBarring::~CPsetCallBarring(void) - ??1CPsetCallDiverting@@UAE@XZ @ 2 NONAME ; CPsetCallDiverting::~CPsetCallDiverting(void) - ??1CPsetCallWaiting@@UAE@XZ @ 3 NONAME ; CPsetCallWaiting::~CPsetCallWaiting(void) - ??1CPsetCli@@UAE@XZ @ 4 NONAME ; CPsetCli::~CPsetCli(void) - ??1CPsetContainer@@UAE@XZ @ 5 NONAME ; CPsetContainer::~CPsetContainer(void) - ??1CPsetCustomerServiceProfile@@UAE@XZ @ 6 NONAME ; CPsetCustomerServiceProfile::~CPsetCustomerServiceProfile(void) - ??1CPsetNetwork@@UAE@XZ @ 7 NONAME ; CPsetNetwork::~CPsetNetwork(void) - ??1CPsetSAObserver@@UAE@XZ @ 8 NONAME ; CPsetSAObserver::~CPsetSAObserver(void) - ?CancelAll@CPsetCli@@UAEXXZ @ 9 NONAME ; void CPsetCli::CancelAll(void) - ?CancelCurrentRequest@CPsetCallBarring@@UAEHXZ @ 10 NONAME ; int CPsetCallBarring::CancelCurrentRequest(void) - ?CancelCurrentRequest@CPsetCallDiverting@@UAEHXZ @ 11 NONAME ; int CPsetCallDiverting::CancelCurrentRequest(void) - ?CancelProcess@CPsetCallWaiting@@UAEHXZ @ 12 NONAME ; int CPsetCallWaiting::CancelProcess(void) - ?CancelProcess@CPsetNetwork@@UAEXXZ @ 13 NONAME ; void CPsetNetwork::CancelProcess(void) - ?ChangePasswordL@CPsetCallBarring@@QAEXAAVTMobilePhonePasswordChangeV2@RMobilePhone@@@Z @ 14 NONAME ; void CPsetCallBarring::ChangePasswordL(class RMobilePhone::TMobilePhonePasswordChangeV2 &) - ?ChangePasswordL@CPsetCallBarring@@QAEXAAVTMobilePhonePasswordChangeV2@RMobilePhone@@H@Z @ 15 NONAME ; void CPsetCallBarring::ChangePasswordL(class RMobilePhone::TMobilePhonePasswordChangeV2 &, int) - ?CreateCBObjectL@CPsetContainer@@QAEPAVCPsetCallBarring@@AAVMPsetBarringObserver@@@Z @ 16 NONAME ; class CPsetCallBarring * CPsetContainer::CreateCBObjectL(class MPsetBarringObserver &) - ?CreateCFObjectL@CPsetContainer@@QAEPAVCPsetCallDiverting@@AAVMPsetDivertObserver@@@Z @ 17 NONAME ; class CPsetCallDiverting * CPsetContainer::CreateCFObjectL(class MPsetDivertObserver &) - ?CreateCWObjectL@CPsetContainer@@QAEPAVCPsetCallWaiting@@AAVMPsetCallWaitingObserver@@@Z @ 18 NONAME ; class CPsetCallWaiting * CPsetContainer::CreateCWObjectL(class MPsetCallWaitingObserver &) - ?CreateCliObjectL@CPsetContainer@@QAEPAVCPsetCli@@AAVMPsetCliObserver@@@Z @ 19 NONAME ; class CPsetCli * CPsetContainer::CreateCliObjectL(class MPsetCliObserver &) - ?CreateNetworkModeObjectL@CPsetContainer@@QAEPAVCPsetNetwork@@AAVMPsetNetworkModeObserver@@@Z @ 20 NONAME ; class CPsetNetwork * CPsetContainer::CreateNetworkModeObjectL(class MPsetNetworkModeObserver &) - ?CreateNetworkObjectL@CPsetContainer@@QAEPAVCPsetNetwork@@AAVMPsetNetworkInfoObserver@@@Z @ 21 NONAME ; class CPsetNetwork * CPsetContainer::CreateNetworkObjectL(class MPsetNetworkInfoObserver &) - ?CreateRefreshHandlerL@CPsetContainer@@QAEPAVCPSetRefreshHandler@@XZ @ 22 NONAME ; class CPSetRefreshHandler * CPsetContainer::CreateRefreshHandlerL(void) - ?GetAvailableNetworksL@CPsetNetwork@@UAEXXZ @ 23 NONAME ; void CPsetNetwork::GetAvailableNetworksL(void) - ?GetBarringStatusL@CPsetCallBarring@@UAEXW4TServiceGroup@@W4TBarringProgram@@@Z @ 24 NONAME ; void CPsetCallBarring::GetBarringStatusL(enum TServiceGroup, enum TBarringProgram) - ?GetCallWaitingStatusL@CPsetCallWaiting@@UAEXXZ @ 25 NONAME ; void CPsetCallWaiting::GetCallWaitingStatusL(void) - ?GetClipModeL@CPsetCli@@UAEXXZ @ 26 NONAME ; void CPsetCli::GetClipModeL(void) - ?GetClirModeL@CPsetCli@@UAEXXZ @ 27 NONAME ; void CPsetCli::GetClirModeL(void) - ?GetCnapL@CPsetCli@@UAEXXZ @ 28 NONAME ; void CPsetCli::GetCnapL(void) - ?GetColpModeL@CPsetCli@@UAEXXZ @ 29 NONAME ; void CPsetCli::GetColpModeL(void) - ?GetColrModeL@CPsetCli@@UAEXXZ @ 30 NONAME ; void CPsetCli::GetColrModeL(void) - ?GetCurrentDivertStatus@CPsetSAObserver@@QAEHAAW4TUnconditionalCFStatus@@@Z @ 31 NONAME ; int CPsetSAObserver::GetCurrentDivertStatus(enum TUnconditionalCFStatus &) - ?GetCurrentNetworkInfo@CPsetNetwork@@UAEHAAUTCurrentNetworkInfo@MPsetNetworkSelect@@@Z @ 32 NONAME ; int CPsetNetwork::GetCurrentNetworkInfo(struct MPsetNetworkSelect::TCurrentNetworkInfo &) - ?GetCurrentNetworkModeSelectionL@CPsetNetwork@@UAEXXZ @ 33 NONAME ; void CPsetNetwork::GetCurrentNetworkModeSelectionL(void) - ?GetDefaultNumbersL@CPsetCallDiverting@@QAEHAAVCDesC16ArrayFlat@@@Z @ 34 NONAME ; int CPsetCallDiverting::GetDefaultNumbersL(class CDesC16ArrayFlat &) - ?GetDivertingStatusL@CPsetCallDiverting@@UAEXW4TServiceGroup@@W4TCallDivertingCondition@@W4TBasicServiceGroups@@@Z @ 35 NONAME ; void CPsetCallDiverting::GetDivertingStatusL(enum TServiceGroup, enum TCallDivertingCondition, enum TBasicServiceGroups) - ?GetNetworkSelectMode@CPsetNetwork@@UAEHAAW4TSelectMode@MPsetNetworkSelect@@@Z @ 36 NONAME ; int CPsetNetwork::GetNetworkSelectMode(enum MPsetNetworkSelect::TSelectMode &) - ?GetTimerValueL@CPsetCallDiverting@@QAEHXZ @ 37 NONAME ; int CPsetCallDiverting::GetTimerValueL(void) - ?GetUsedDataNumberLC@CPsetCallDiverting@@QAEPAVHBufC16@@XZ @ 38 NONAME ; class HBufC16 * CPsetCallDiverting::GetUsedDataNumberLC(void) - ?GetUsedFaxNumberLC@CPsetCallDiverting@@QAEPAVHBufC16@@XZ @ 39 NONAME ; class HBufC16 * CPsetCallDiverting::GetUsedFaxNumberLC(void) - ?IsALSSupported@CPsetCustomerServiceProfile@@QAEHAAH@Z @ 40 NONAME ; int CPsetCustomerServiceProfile::IsALSSupported(int &) - ?IsCBSupported@CPsetCustomerServiceProfile@@QAEHAAH@Z @ 41 NONAME ; int CPsetCustomerServiceProfile::IsCBSupported(int &) - ?IsCFSupported@CPsetCustomerServiceProfile@@QAEHAAH@Z @ 42 NONAME ; int CPsetCustomerServiceProfile::IsCFSupported(int &) - ?IsCWSupported@CPsetCustomerServiceProfile@@QAEHAAH@Z @ 43 NONAME ; int CPsetCustomerServiceProfile::IsCWSupported(int &) - ?IsCallActive@CPsetNetwork@@QAEHXZ @ 44 NONAME ; int CPsetNetwork::IsCallActive(void) - ?IsCallActive@CPsetSAObserver@@QAEHXZ @ 45 NONAME ; int CPsetSAObserver::IsCallActive(void) - ?IsGPRSConnected@CPsetNetwork@@QAEHXZ @ 46 NONAME ; int CPsetNetwork::IsGPRSConnected(void) - ?IsGPRSConnected@CPsetSAObserver@@QAEHXZ @ 47 NONAME ; int CPsetSAObserver::IsGPRSConnected(void) - ?IsNetworkSelectionSupported@CPsetCustomerServiceProfile@@QAEHAAH@Z @ 48 NONAME ; int CPsetCustomerServiceProfile::IsNetworkSelectionSupported(int &) - ?NewL@CPsetCallDiverting@@SAPAV1@AAVMPsetDivertObserver@@AAVRMobilePhone@@@Z @ 49 NONAME ; class CPsetCallDiverting * CPsetCallDiverting::NewL(class MPsetDivertObserver &, class RMobilePhone &) - ?NewL@CPsetCallWaiting@@SAPAV1@AAVRMobilePhone@@AAVMPsetCallWaitingObserver@@@Z @ 50 NONAME ; class CPsetCallWaiting * CPsetCallWaiting::NewL(class RMobilePhone &, class MPsetCallWaitingObserver &) - ?NewL@CPsetCli@@SAPAV1@AAVRMobilePhone@@AAVMPsetCliObserver@@@Z @ 51 NONAME ; class CPsetCli * CPsetCli::NewL(class RMobilePhone &, class MPsetCliObserver &) - ?NewL@CPsetContainer@@SAPAV1@XZ @ 52 NONAME ; class CPsetContainer * CPsetContainer::NewL(void) - ?NewL@CPsetCustomerServiceProfile@@SAPAV1@XZ @ 53 NONAME ; class CPsetCustomerServiceProfile * CPsetCustomerServiceProfile::NewL(void) - ?NewL@CPsetNetwork@@SAPAV1@AAVRMobilePhone@@AAVMPsetNetworkInfoObserver@@@Z @ 54 NONAME ; class CPsetNetwork * CPsetNetwork::NewL(class RMobilePhone &, class MPsetNetworkInfoObserver &) - ?NewL@CPsetNetwork@@SAPAV1@AAVRMobilePhone@@AAVMPsetNetworkModeObserver@@@Z @ 55 NONAME ; class CPsetNetwork * CPsetNetwork::NewL(class RMobilePhone &, class MPsetNetworkModeObserver &) - ?NewL@CPsetSAObserver@@SAPAV1@XZ @ 56 NONAME ; class CPsetSAObserver * CPsetSAObserver::NewL(void) - ?NotifyDivertChange@CPsetSAObserver@@QAEXW4TSelectedLine@@AAVTCallDivertNotifySetting@@ABH@Z @ 57 NONAME ; void CPsetSAObserver::NotifyDivertChange(enum TSelectedLine, class TCallDivertNotifySetting &, int const &) - ?OpenCSProfileL@CPsetCustomerServiceProfile@@QAEHXZ @ 58 NONAME ; int CPsetCustomerServiceProfile::OpenCSProfileL(void) - ?ResetNetworkSearch@CPsetNetwork@@QAEHXZ @ 59 NONAME ; int CPsetNetwork::ResetNetworkSearch(void) - ?SelectNetworkL@CPsetNetwork@@UAEXABUTNetworkInfo@MPsetNetworkSelect@@@Z @ 60 NONAME ; void CPsetNetwork::SelectNetworkL(struct MPsetNetworkSelect::TNetworkInfo const &) - ?SetBarringL@CPsetCallBarring@@UAEXABVTCallBarringSetting@@W4TBasicServiceGroups@@@Z @ 61 NONAME ; void CPsetCallBarring::SetBarringL(class TCallBarringSetting const &, enum TBasicServiceGroups) - ?SetCallWaitingL@CPsetCallWaiting@@UAEXW4TSetCallWaiting@MPsetCallWaiting@@W4TBasicServiceGroups@@@Z @ 62 NONAME ; void CPsetCallWaiting::SetCallWaitingL(enum MPsetCallWaiting::TSetCallWaiting, enum TBasicServiceGroups) - ?SetDivertingL@CPsetCallDiverting@@UAEXABVTCallDivertSetting@@W4TBasicServiceGroups@@H@Z @ 63 NONAME ; void CPsetCallDiverting::SetDivertingL(class TCallDivertSetting const &, enum TBasicServiceGroups, int) - ?SetNetObserver@CPsetSAObserver@@QAEXAAVMPsetNetworkInfoObserver@@@Z @ 64 NONAME ; void CPsetSAObserver::SetNetObserver(class MPsetNetworkInfoObserver &) - ?SetNetSAObserver@CPsetNetwork@@QAEXAAVMPsetNetworkInfoObserver@@@Z @ 65 NONAME ; void CPsetNetwork::SetNetSAObserver(class MPsetNetworkInfoObserver &) - ?SetNetworkModeObserver@CPsetNetwork@@QAEXAAVMPsetNetworkModeObserver@@@Z @ 66 NONAME ; void CPsetNetwork::SetNetworkModeObserver(class MPsetNetworkModeObserver &) - ?SetNetworkModeSelectionL@CPsetNetwork@@UAEXAAK@Z @ 67 NONAME ; void CPsetNetwork::SetNetworkModeSelectionL(unsigned long &) - ?SetNewDefaultNumberL@CPsetCallDiverting@@QAEHAAVTDes16@@@Z @ 68 NONAME ; int CPsetCallDiverting::SetNewDefaultNumberL(class TDes16 &) - ?SetRequestObserver@CPsetCallBarring@@QAEXPAVMPsetRequestObserver@@@Z @ 69 NONAME ; void CPsetCallBarring::SetRequestObserver(class MPsetRequestObserver *) - ?SetRequestObserver@CPsetCallDiverting@@QAEXPAVMPsetRequestObserver@@@Z @ 70 NONAME ; void CPsetCallDiverting::SetRequestObserver(class MPsetRequestObserver *) - ?SetRequestObserver@CPsetCallWaiting@@QAEXPAVMPsetRequestObserver@@@Z @ 71 NONAME ; void CPsetCallWaiting::SetRequestObserver(class MPsetRequestObserver *) - ?SetRequestObserver@CPsetCli@@QAEXPAVMPsetRequestObserver@@@Z @ 72 NONAME ; void CPsetCli::SetRequestObserver(class MPsetRequestObserver *) - ?SetTimerValueL@CPsetCallDiverting@@QAEHABH@Z @ 73 NONAME ; int CPsetCallDiverting::SetTimerValueL(int const &) - ?SetUsedDataNumberL@CPsetCallDiverting@@QAEHAAV?$TBuf@$0GE@@@@Z @ 74 NONAME ; int CPsetCallDiverting::SetUsedDataNumberL(class TBuf<100> &) - ?SetUsedFaxNumberL@CPsetCallDiverting@@QAEHAAV?$TBuf@$0GE@@@@Z @ 75 NONAME ; int CPsetCallDiverting::SetUsedFaxNumberL(class TBuf<100> &) - ?SwapDefaultNumberL@CPsetCallDiverting@@QAEXABH@Z @ 76 NONAME ; void CPsetCallDiverting::SwapDefaultNumberL(int const &) - ?VideoMailQueryL@CPsetCallDiverting@@QAEXAAVTDes16@@@Z @ 77 NONAME ; void CPsetCallDiverting::VideoMailQueryL(class TDes16 &) - ?VoiceMailQueryL@CPsetCallDiverting@@QAEXAAVTDes16@@@Z @ 78 NONAME ; void CPsetCallDiverting::VoiceMailQueryL(class TDes16 &) - diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/group/phonesettings.mmp --- a/cellular/telephonysettings/group/phonesettings.mmp Mon Aug 23 15:50:31 2010 +0300 +++ b/cellular/telephonysettings/group/phonesettings.mmp Fri Sep 03 13:59:20 2010 +0300 @@ -1,5 +1,5 @@ /* -* Copyright (c) 2002-2005 Nokia Corporation and/or its subsidiary(-ies). +* Copyright (c) 2002-2005 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" @@ -12,12 +12,12 @@ * Contributors: * * Description: This is project specification file for the Phone Settings. -* +* * */ #include -#include "../logger/phonesettingsloggingconf.h" +#include "../logger/phonesettingsloggingconf.h" // Capability assignment. CAPABILITY CAP_GENERAL_DLL @@ -28,41 +28,36 @@ UID 0x1000008d 0x100058e3 SOURCEPATH ../src -SOURCE psetcallwaiting.cpp -SOURCE psetcontainer.cpp -SOURCE psetcallbarring.cpp -SOURCE psetcalldiverting.cpp -SOURCE psettelephony.cpp -SOURCE psetcli.cpp -SOURCE psetvariationproxy.cpp -SOURCE psetnetwork.cpp -SOURCE psetsaobserver.cpp -SOURCE psetcsp.cpp -SOURCE psetutility.cpp -SOURCE psetrefreshhandlerimpl.cpp -SOURCE psetcalldivertingbase.cpp -SOURCE psetsubscriberidcheck.cpp -SOURCE psetcalldivertingbasicimpl.cpp -SOURCE psetcalldivertingcreator.cpp -SOURCE psetcalldivertingdualaffectimpl.cpp +SOURCE psetcallwaiting.cpp +SOURCE psetcontainer.cpp +SOURCE psetcallbarring.cpp +SOURCE psetcalldiverting.cpp +SOURCE psettelephony.cpp +SOURCE psetcli.cpp +SOURCE psetvariationproxy.cpp +SOURCE psetnetwork.cpp +SOURCE psetsaobserver.cpp +SOURCE psetcsp.cpp +SOURCE psetutility.cpp +SOURCE psetrefreshhandlerimpl.cpp +SOURCE psetcalldivertingbase.cpp +SOURCE psetsubscriberidcheck.cpp +SOURCE psetcalldivertingbasicimpl.cpp +SOURCE psetcalldivertingcreator.cpp +SOURCE psetcalldivertingdualaffectimpl.cpp USERINCLUDE ../inc -USERINCLUDE ../logger +USERINCLUDE ../logger SYSTEMINCLUDE ../../../inc -// APP include needed because telephonysettings -// uses vmbx headers from APP layer. -// <-- QT PHONE START --> + MW_LAYER_SYSTEMINCLUDE -// <-- QT PHONE END --> + LIBRARY euser.lib LIBRARY etel.lib LIBRARY etelmm.lib LIBRARY customapi.lib -LIBRARY bafl.lib +LIBRARY bafl.lib LIBRARY sssettings.lib -// <-- QT PHONE START --> -//LIBRARY vmbx.lib -// <-- QT PHONE END --> LIBRARY featmgr.lib LIBRARY centralrepository.lib diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/group/phonesettings_stub.SIS Binary file cellular/telephonysettings/group/phonesettings_stub.SIS has changed diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/inc/MCallDiverting.h --- a/cellular/telephonysettings/inc/MCallDiverting.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Declaration of MCallDiverting interface class. -* -*/ - - -#ifndef MCALLDIVERTING_H -#define MCALLDIVERTING_H - -/** - * MCallDiverting class is virtual interface class for divert - * functionality. - * - * @lib phonesettings - * @since S60 v5.1 - */ -class MCallDiverting - { - public: - /** - * Sets observer which informs when request is completed - */ - virtual void SetRequestObserver( MPsetRequestObserver* aObs ) = 0; - - /** - * Sets diverting to the network. - * - * @param aDivert New divert settings. - * @param aBsc List of basic service groups . - */ - virtual void SetDivertingL( const TCallDivertSetting& aDivert, - TBasicServiceGroups aBsc ) = 0; - /** - * Checks the diverting status from network. - * - * @param aServiceGroup Service group indication. - * @param aCondition Diverting conditions. - * @param aBsc List of basic service groups. - */ - virtual void GetDivertingStatusL( - const TServiceGroup aServiceGroup, - const TCallDivertingCondition aCondition, - TBasicServiceGroups aBsc ) = 0; - /** - * Cancels current request. - * - * @return Returns error code. - */ - virtual TInt CancelCurrentRequest() = 0; - - /** - * Reads used divert numbers (0-3) from central repository - * and fills array with them. - * - * @param aType used line. - * @param aArray array of divert number. - * @return amount of numbers. - */ - virtual TInt GetNumbersFromSharedDataL( - TInt aType, - CDesC16ArrayFlat& aArray ) = 0; - /** - * Sets new default number the the default numbers list, - * erases the oldest one. - * - * @param aNumber phone number. - * @return Returns error code. - */ - virtual TInt SetNewDefaultNumberL( TDes& aNumber ) = 0; - - /** - * Gets the default time for CF No Reply. - * No error checking for return values which should be - * 5-30, in steps of 5. - * - * @return Returns the current timer value. - */ - virtual TInt GetTimerValueL() = 0; - - /* - * Sets the default time for CF No Reply. - * No error checking to parameters, which should be on range 5-30, - * using steps of 5. - * - * @param aIndex New value for timer. - * @return Returns error code. - */ - virtual TInt SetTimerValueL( const TInt& aValue ) = 0; - - /** - * Swaps the most recently used number to first in shared data file. - * - * @param aLocation Used number's location (1-3) in shared data. - */ - virtual void SwapDefaultNumberL( const TInt& aLocation ) = 0; - - /** - * Saves a single value to central repository. Make sure that repository - * is open before calling this function. - */ - virtual TInt SaveKey( TUint32 aKeyId, const TDesC& aKeyValue ) = 0; - - /* - * Virtual destructor. - */ - virtual ~MCallDiverting() {}; - }; - -#endif // MPCALLDIVERTING_H diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/inc/MNetworkInfoObs.h --- a/cellular/telephonysettings/inc/MNetworkInfoObs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2002 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: Observes completions of network info and change requests. -* -* -*/ - - -#ifndef __MNETWORKINFOOBS_H -#define __MNETWORKINFOOBS_H - -// INCLUDES -#ifndef __E32DEF_H__ -#include -#endif - -#ifndef __MNETWORKSELECT_H -#include "mnetworkselect.h" -#endif - -// DATA TYPES -typedef CArrayFixFlat CNetworkInfoArray; - -// CLASS DEFINITIONS - -class MNetworkInfoObserver - { - public: - virtual void HandleNetworkInfoReceivedL( const CNetworkInfoArray* aInfoArray, const TInt aResult)=0; - virtual void HandleCurrentNetworkInfoL( const MNetworkSelect::TCurrentNetworkInfo& aCurrentInfo, const TInt aResult)=0; - virtual void HandleNetworkChangedL( const MNetworkSelect::TNetworkInfo& aCurrentInfo, const MNetworkSelect::TCurrentNetworkStatus aStatus, const TInt aResult)=0; - }; - -#endif // __MNETWORKINFOOBS_H - -// end of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/inc/PSetCallDivertingBase.h --- a/cellular/telephonysettings/inc/PSetCallDivertingBase.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,324 +0,0 @@ -/* -* Copyright (c) 2008-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: Divert base class. -* -*/ - - -#ifndef CPSETCALLDIVERTINGBASE_H -#define CPSETCALLDIVERTINGBASE_H - -// INCLUDES -#include -#include -#include -#include -#include "mcalldiverting.h" -#include "msssettingsobserver.h" -#include "nwdefs.h" -#include "psetconstants.h" - -// CLASS DECLARATION -class MPsetDivertObserver; - -/** - * CPSetCallDivertingBase is base class for different type of - * call divert implementations - * - * @lib phonesettings - * @since S60 v5.1 - */ -NONSHARABLE_CLASS( CPSetCallDivertingBase ) : public CActive, - public MSSSettingsObserver, - public MCallDiverting - { - public: // Constructors and destructors. - - /** - * Two-phased constructor. - * - * @return new instance of the class. - * @param aObserver Call divert observer. - * @param aPhone Provides client access to - * mobile phone functionality provided by TSY. - * @param aDivert provides access to CPsetCallDiverting. - * @return Created CPSetCallDivertingBase object. - */ - static CPSetCallDivertingBase* NewL( - MPsetDivertObserver& aObserver, - RMobilePhone& aPhone, - CPsetCallDiverting* aDivert ); - - /** - * Destructor. - */ - ~CPSetCallDivertingBase(); - - public: // From base class. - /** - * @see MCallDiverting. - */ - void SetRequestObserver( MPsetRequestObserver* aObs ); - - /** - * @see MCallDiverting. - */ - void SetDivertingL( const TCallDivertSetting& aDivert, - TBasicServiceGroups aBsc ); - - /** - * @see MCallDiverting. - */ - void GetDivertingStatusL( const TServiceGroup aServiceGroup, - const TCallDivertingCondition aCondition, - TBasicServiceGroups aBsc ); - /** - * @see MCallDiverting. - */ - TInt CancelCurrentRequest(); - - /** - * @see MCallDiverting. - */ - TInt SetNewDefaultNumberL( TDes& aNumber ); - - /** - * @see MCallDiverting. - */ - TInt GetTimerValueL(); - - /** - * @see MCallDiverting. - */ - TInt SetTimerValueL( const TInt& aValue ); - - /** - * @see MCallDiverting. - */ - void SwapDefaultNumberL( const TInt& aLocation ); - - /** - * @see MCallDiverting. - */ - TInt SaveKey( TUint32 aKeyId, const TDesC& aKeyValue ); - - /** - * @see MCallDiverting. - */ - TInt GetNumbersFromSharedDataL( TInt aType, - CDesC16ArrayFlat& aArray ); - protected: - - /** - * Gets Als status. - * - * @return used ALS line. - */ - TSelectedLine GetSAAls(); - - /** - * Creates param list for NotifySADivertChange method. - */ - TCallDivertNotifySetting CreateDivertNotifySetting( - TUnconditionalCFStatus aCurrentDivert, - TBool aDivertChanged, - TBool aVoiceMbxDivert, - TInt aBasic ); - - /** - * If unconditional voice divert is activated/cancelled, notifies observer, - * so that it can set on/off indicators. - * - * @param aVmbxDivert vmbx number. - * @param TDivertingStatus call forwarding status. - */ - void HandleSANotificationL( TBool aVmbxDivert, TDivertingStatus& aCfStatus ); - - /** - * Verifies whether the divert-to number is to voice mail box. - * - * @param aTelNumber divert number. - * @return ETrue if used number is vmbx number - * otherwise EFalse. - */ - TBool IsVMBXDivertL( TDesC& aTelNumber ); - - /** - * If divert activation/cancellation/etc. affects more than one bsc, - * inform PSUI about it. - * - * @param aDivert contains forwarding information. - * @param aBsc used basic service. - * @return ETrue if divert is multiaffecting - * otherwise EFalse. - */ - TBool IsMultiAffectingDivert( - const TCallDivertSetting& aDivert, - TBasicServiceGroups aBsc ); - - /** - * Validates used bsc, if EUnknown, updates to real value. - * - * @param aBsc used basic service. - */ - void ValidateBsc( TBasicServiceGroups& aBsc ); - - /** - * Currently active request that is handled by this class. - */ - enum TPSetDivertRequest - { - EPSetNone, - EPSetChangeDivert, - EPSetGetDivertStatus - }; - - /** - * Starts new request. - * - * @param aRequest defines request type. - */ - void StartRequestingL( const TInt& aRequest ); - - /** - * Inform request observer that request status has changed. - * - * @param aStatus request type. - */ - void SetRequestStatus( TPSetDivertRequest aStatus ); - - /** - * Inform the request observer that request has been completed. - * - * @param aError request status. - */ - void RequestCompleted( const TInt& aError ); - - private: - - /** - * Push object into cleanupstack to catch leaving. - */ - void CleanupLeavePushL(); - - /** - * Object has caused a leave. - */ - static void DoHandleLeave( TAny* aAny ); - - /** - * Handles leave. - */ - void HandleLeave(); - - /** - * Verifies that delay time is divisible by five. - */ - TBool VerifyDelayTime( const TInt& aDelayTime ); - - protected: - - /** - * C++ constructor. - */ - CPSetCallDivertingBase( RMobilePhone& aPhone, CPsetCallDiverting* aDivert ); - /** - * Symbian OS constructor. - */ - void ConstructL( MPsetDivertObserver& aObserver ); - - private: //from base clases. - - /** - * @see CActive::RunL(). - */ - void RunL(); - - /** - * @see CActive::DoCancel(). - */ - void DoCancel(); - - /** - * @see MSSSettingsObserver::PhoneSettingChanged(). - */ - void PhoneSettingChanged( TSSSettingsSetting aSetting, TInt aNewValue ); - - protected: - - // Provides client access to mobile phone functionality provided by TSY. - RMobilePhone& iPhone; - - // Provides client access to mobile line functionality provided by TSY. - RMobileLine* iLine; - - // Observer for Call divert requests - MPsetDivertObserver* iObserver; - - // Call divert instance. - CPsetCallDiverting* iDivert; - - // Current, active request - TPSetDivertRequest iCurrentReq; - - // Value of Alternative Line Selection setting - TSSSettingsAlsValue iAls; - - // SsSettings pointer, accesses supplementary services on SIM - RSSSettings* iSsSettings; - - // Plural notes are shown when operations affect several groups. - TBool iPluralNotes; - - // Request observer - MPsetRequestObserver* iReqObserver; - - // Call forwarding reason. - RMobilePhone::TMobilePhoneCFCondition iReason; - - // Divert condition - RMobilePhone::TMobilePhoneCFInfoEntryV1 iDivertInfo; - - // Call divert settings - RMobilePhone::TMobilePhoneCFChangeV1 iChangeInfo; - - // Retrieves the Call Forwarding status list from the phone. - CRetrieveMobilePhoneCFList* iCfInterrogator; - - // Central repository. - CRepository* iRepository; - - // Status check. - TBool iCFStatusCheck; - - // Basic service code. - TInt iBsc; - - // Call forwarding settings. - TCallDivertSetting iDivertStatus; - - // Is request connected to video diverts. - TBool iVideoDivert; - - // Is request connected to voice diverts. - TBool iVoiceDivert; - - // Is feature manager intialized. - TBool iFeatureManagerInitialized; - }; - - -#endif // CPSETCALLDIVERTINGBASE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/inc/PSetCallDivertingBasicImpl.h --- a/cellular/telephonysettings/inc/PSetCallDivertingBasicImpl.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,112 +0,0 @@ -/* -* Copyright (c) 2008-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: Divert basic implementation. -* -*/ - - -#ifndef CPSETCALLDIVERTINGBASICIMPL_H -#define CPSETCALLDIVERTINGBASICIMPL_H - -// INCLUDES -#include -#include -#include -#include -#include "msssettingsobserver.h" -#include "nwdefs.h" -#include "psetconstants.h" -#include "psetcalldivertingbase.h" - -// CLASS DECLARATION -class CPsetSAObserver; -class CDesC16ArrayFlat; -class RSSSettings; -class MPsetDivertObserver; -class MPsetRequestObserver; -class RVmbxNumber; -class CRepository; -class TCallDivertNotifySetting; - -/** - * CPSetCallDivertingBasicImpl implements basic divert funcationality. - * - * @lib phonesettings - * @since S60 v5.1 - */ -NONSHARABLE_CLASS(CPSetCallDivertingBasicImpl) : public CPSetCallDivertingBase - { - public: // Constructors and destructors. - - /** - * Two-phased constructor. - * - * @return new instance of the class. - */ - static CPSetCallDivertingBasicImpl* NewL( - MPsetDivertObserver& aObserver, - RMobilePhone& aPhone, - CPsetCallDiverting* aDivert ); - - /** - * Destructor. - */ - ~CPSetCallDivertingBasicImpl(); - - public: // From base class. - - /** - * @see MCallDiverting. - */ - void SetDivertingL( const TCallDivertSetting& aDivert, - TBasicServiceGroups aBsc ); - - public: //from base class CActive - - void RunL(); - - void DoCancel(); - - TInt RunError( TInt aError ); - - protected: - - /** - * C++ constructor. - */ - CPSetCallDivertingBasicImpl( RMobilePhone& aPhone, CPsetCallDiverting* aDivert ); - - /** - * Symbian OS constructor. - */ - void ConstructL( MPsetDivertObserver& aObserver ); - - private: - - void HandleSANotificationL( - TBool aVmbxDivert, TDivertingStatus& aCfStatus ); - - TBool SetVoiceDivert( const TCallDivertSetting& aDivert, - const TBasicServiceGroups aBsc ); - - TSelectedLine GetSAAls(); - - private: - // Memorize requested service group - TServiceGroup iRequestedServiceGroup; - }; - -#endif // CPSETCALLDIVERTINGBASICIMPL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/inc/PSetCallDivertingCreator.h --- a/cellular/telephonysettings/inc/PSetCallDivertingCreator.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2008-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: Factory for creating divert specific components. -* -*/ - - -#ifndef CSETCALLDIVERTINGCREATOR_H -#define CSETCALLDIVERTINGCREATOR_H - -// INCLUDES -#include -#include -#include -#include -#include "mpsetdivertobs.h" -#include "mcalldiverting.h" - -/** -* Factory class for creating divert related classes. -* -* @lib PhoneSettings -* @since 5.1 -*/ -NONSHARABLE_CLASS( CPSetCallDivertingCreator ): public CBase - { - public: - static MCallDiverting* CreateCallDivertingL( - MPsetDivertObserver& aObserver, - RMobilePhone& aPhone, - CPsetCallDiverting* aDivert ); - private: - - /** - * Check if KTelephonyLVFlagDualActivation is active. - */ - static TBool IsDivertDualAffectFeatureEnabledL(); - }; - -#endif // CSETCALLDIVERTINGCREATOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/inc/PSetCallDivertingDualAffectImpl.h --- a/cellular/telephonysettings/inc/PSetCallDivertingDualAffectImpl.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,122 +0,0 @@ -/* -* Copyright (c) 2008-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: Divert dual activation. -* -*/ - - -#ifndef CPSETCALLDIVERTINGDUALAFFECTIMPL_H -#define CPSETCALLDIVERTINGDUALAFFECTIMPL_H - -// INCLUDES -#include -#include -#include -#include -#include "msssettingsobserver.h" -#include "nwdefs.h" -#include "psetconstants.h" -#include "psetcalldivertingbase.h" - -// CLASS DECLARATION -class CPsetSAObserver; -class CDesC16ArrayFlat; -class RSSSettings; -class MPsetDivertObserver; -class MPsetRequestObserver; -class RVmbxNumber; -class CRepository; -class TCallDivertNotifySetting; -class MCallDiverting; -class CPSetSubscriberIdCheck; - -/** - * CPSetCallDivertingDualAffectImpl implements divert functionality which assumes - * that network makes always dual activation if device gives param EAllTeleAndBearer - * and used SIM supports feature. - * - * @lib phonesettings - * @since S60 v5.1 - */ -NONSHARABLE_CLASS(CPSetCallDivertingDualAffectImpl) : public CPSetCallDivertingBase - { - public: // Constructors and destructors. - - /** - * Two-phased constructor. - * - * @return new instance of the class. - */ - static CPSetCallDivertingDualAffectImpl* NewL( - MPsetDivertObserver& aObserver, - RMobilePhone& aPhone, - CPsetCallDiverting* aDivert ); - - /** - * Destructor. - */ - ~CPSetCallDivertingDualAffectImpl(); - - public: // From base class. - - /** - * @see MCallDiverting. - */ - void SetDivertingL( const TCallDivertSetting& aDivert, - TBasicServiceGroups aBsc ); - - public: //from base class CActive - - void RunL(); - - void DoCancel(); - - TInt RunError( TInt aError ); - - protected: - - /** - * C++ constructor. - */ - CPSetCallDivertingDualAffectImpl( RMobilePhone& aPhone, CPsetCallDiverting* aDivert ); - - /** - * Symbian OS constructor. - */ - void ConstructL( MPsetDivertObserver& aObserver ); - - private: - - void HandleSANotificationL( - TBool aVmbxDivert, - TDivertingStatus& aCfStatus ); - - void SetCurrentDivertInformation( - TUnconditionalCFStatus& aStatus, - const TBool aDivertChanged ); - - TBool SetVoiceDivert( - const TCallDivertSetting& aDivert, - const TBasicServiceGroups /*aBsc*/ ); - - TSelectedLine GetSAAls(); - - private: - - CPSetSubscriberIdCheck* iIdCheck; - }; - -#endif // CPSETCALLDIVERTINGDUALAFFECTIMPL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/inc/PSetPanic.h --- a/cellular/telephonysettings/inc/PSetPanic.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* -* Copyright (c) 2002 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: Panic function for Phone Settings -* -* -*/ - - -//Different panic causes. -enum TPSetPanic { - ECBPanicNoBscSet, - ECBBasicServiceNotReturned, - ECBUnknownRequest, - ECBUnknownBarringSetting, - ECBNoObserver, - - ECDNewDefaultNumberNull, - ECDPanicNoBscSet, - ECDRequestPanicNoObserver, - ECDRequestPanicIncorrectRequest, - - ECWPanicNoObserver, - ECWPanicNoPhone, - ECWBasicServiceNotReturned, - ECWPanicInvalidRequestMode, - ECWPanicNoBscSet, - - ECliParameter, - ECliGeneral, - ECliNoObserver, - ECliOperationFailed, - - ENetSelectPanicNullPointer, - ENetNoObserver, - ENetUnknownRequest, - ENetError, - ENetMemberVariableAlreadyCreated, - ENetNoNetworkObserver - }; - -// Local Function Prototypes -static void Panic( const TDesC& aClassName, TPSetPanic aPanic ); - -// LOCAL FUNCTIONS -static void Panic( const TDesC& aClassName, TPSetPanic aPanic ) - { - User::Panic( aClassName, aPanic ); - } -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/inc/PSetRefreshHandlerImpl.h --- a/cellular/telephonysettings/inc/PSetRefreshHandlerImpl.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* -* Copyright (c) 2004 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: The Refresh handler to inform refresses. -* -*/ - - - -#ifndef CPSETREFRESHHANDLERIMPL_H -#define CPSETREFRESHHANDLERIMPL_H - - -// INCLUDES -#include -#include - - -// FORWARD DECLARATIONS -class CPsetCustomerServiceProfile; -class CSSSettingsRefreshContainer; -class MSSSettingsRefreshHandler; - - -// CLASS DECLARATION - -/** -* The Refresh handler to inform refresses. -* -* @lib PhoneSettings.lib -* @since 2.8 -*/ -class CPSetRefreshHandlerImpl : - public CPSetRefreshHandler, - public MSSSettingsRefreshObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPSetRefreshHandlerImpl* NewL(); - - /** - * Destructor. - */ - virtual ~CPSetRefreshHandlerImpl(); - - - public: // Functions from base classes - - /** - * @see CPSetRefreshHandler::NotifyFileChangeL. - */ - void NotifyFileChangeL( - MSSSettingsRefreshObserver& aObserver, - TSatElementaryFiles aObservedFiles, - TSatRefreshType aObservedRefreshType ); - - /** - * @see CPSetRefreshHandler::CancelNotify. - */ - void CancelNotify(); - - /** - * @see CPSetRefreshHandler::ChangedCspSettings. - */ - TInt ChangedCspSettings( - TPSetChangedCspSetting& aChangedCspSettings, - TPSetChangedCspSetting& aNewValues ); - - - public: // Functions from base classes - - /** - * @see MSSSettingsRefreshObserver::AllowRefresh - */ - TBool AllowRefresh( - const TSatRefreshType aType, - const TSatElementaryFiles aFiles ); - - /** - * @see MSSSettingsRefreshObserver::Refresh - */ - void Refresh( - const TSatRefreshType aType, - const TSatElementaryFiles aFiles ); - - - private: - - /** - * C++ default constructor. - */ - CPSetRefreshHandlerImpl(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - - private: // Data - - // The Csp handler. - CPsetCustomerServiceProfile* iCsp; - - // The SSSettings refresh handler container. - CSSSettingsRefreshContainer* iSSSetRefContainer; - - // The SSSettings refresh handler. - MSSSettingsRefreshHandler* iSSSetRefHandler; - - // The observer for refresses - MSSSettingsRefreshObserver* iObserver; - - }; - -#endif // CPSETREFRESHHANDLERIMPL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/inc/PSetSubscriberIdCheck.h --- a/cellular/telephonysettings/inc/PSetSubscriberIdCheck.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Declaration of CPSetSubscriberIdCheck class. -* -*/ - - -#ifndef CPSETSIMCHECK_H -#define CPSETSIMCHECK_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** - * Class is used for checking SIM imsi. - * - * @lib phonesettings - * @since S60 v5.1 - */ -NONSHARABLE_CLASS( CPSetSubscriberIdCheck ): public CBase - { - public: - - /** - * Symbian OS 2-phase Constructor. - * @return Created CPSetSIMCheck object. - */ - static CPSetSubscriberIdCheck* NewL(); - - /* - * Destructor. - */ - ~CPSetSubscriberIdCheck(); - - public: - - TBool DoesSIMSupportDualActivation(); - - private: // constructors - - /** - * Default constructor - */ - CPSetSubscriberIdCheck(); - - private: - - RMobilePhone::TMobilePhoneSubscriberId iImsi; - }; - -#endif // CPSETSIMCHECK_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/inc/PSetUtility.h --- a/cellular/telephonysettings/inc/PSetUtility.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -/* -* Copyright (c) 2002 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: Utility tool class to change between ETEL and GSM codes. -* -*/ - - -#ifndef PSETUTILITY_H -#define PSETUTILITY_H - -// INCLUDES -#include -#include -#include - -// CLASS DECLARATION -/** -* Class is used to translate between ETEL internal basic service codes and -* basic service codes defined in the GSM standard. Class is also used to -* convert multimode Etel parameters to existing parameter types. -* -* @lib phonesettings.dll -* @since 2.0 -*/ -class PSetUtility - { - public: // New functions - - /** - * ChangeToEtelInternal maps GSM bsc codes to ETEL equivalents. - * @param aBsc Basic service code as in GSM standard. - * @return Basic service code as defined inside Etel. - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - static RMobilePhone::TMobileService ChangeToEtelInternal( - const TBasicServiceGroups& aBsc ); - - /** - * ChangeToGSM maps ETEL bsc codes to GSM equivalents. - * @param aBsc Basic service code as defined inside Etel. - * @return Basic service code as in GSM standard. - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - static TBasicServiceGroups ChangeToGSM( - const RMobilePhone::TMobileService& aBsc ); - /** - * GetChangeInfoStatus maps multimode ETel parameter to - * PhoneSettings internal parameter type. This is to ensure - * binary compatibility of dependent modules. - * @param aAction divert action type. - * @return TDivertingStatus divert action type - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - static TDivertingStatus GetChangeInfoStatus( - RMobilePhone::TMobilePhoneServiceAction& aAction ); - - /** - * GetDivertReason maps multimode ETel parameter to - * PhoneSettings internal parameter type. This is to ensure - * binary compatibility of dependent modules. - * @param aCondition divert condition. - * @return TCallDivertingCondition divert condition - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - static RMobilePhone::TMobilePhoneCFCondition - GetDivertReason( TCallDivertingCondition aCondition ); - - static TCallDivertingCondition - GetDivertReason( RMobilePhone::TMobilePhoneCFCondition aCondition ); - - static RMobilePhone::TMobileService VerifyAltLineUseL(); - }; - -#endif // PSETUTILITY_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/inc/PsetTelephony.h --- a/cellular/telephonysettings/inc/PsetTelephony.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ -/* -* Copyright (c) 2002 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: Connection to ETEL. -* -* -*/ - - -#ifndef PSETTELEPHONY_H -#define PSETTELEPHONY_H - -// INCLUDES -#include -#include "nwdefs.h" - -// CONSTANTS -const TInt KPsetMaxNameLength = 50; - -// FORWARD DECLARATIONS -class RTelServer; -class RMobilePhone; -class RMobileLine; - -// CLASS DEFINITIONS -/** -* CPsetTelephony class is used to connect phone settings to ETEL. -* @lib phonesettings.lib -* @since 1.0 -*/ -class CPsetTelephony : public CBase - { - - public: - - /** - * Symbian OS 2-phase constructor. - * - * @param aPhone Phone object. - * @param aTsyName TSY module name. - * @return Created CPsetTelephony object. - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - static CPsetTelephony* NewL( RMobilePhone& aPhone, - const TDesC* aTsyName = NULL ); - - /* Destructor */ - ~CPsetTelephony(); - - public: // new functions - - /** - * Checks that correct line for diverting is open. If not, lines - * are gone through and when one with correct capabilities is found, - * it is opened. - * - * @param aServiceGroup Service group for which line is checked. - * @param aPhone Phone object. - * @param aLine Line to check. - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - static void CheckLineModeL( const TServiceGroup aServiceGroup, - RMobilePhone* aPhone, RMobileLine* aLine ); - - private: // constructors - - //2nd phase constructor. - void ConstructL( const TDesC* aTsyName ); - - //C++ constructor. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - CPsetTelephony ( RMobilePhone& aPhone ); - - private: // new - - //Makes a ETEL connection. - TInt ConnectToEtelL( const TDesC* aTsyName ); - - //Sets caps. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - static TUint32 SetCapFlagsL( const TServiceGroup aServiceGroup, TBool& aMode, - RLine::TCaps& aCaps ); - - private: //member data - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - // ETEL server - RTelServer* iTelServer; - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - // TSY Phone - RMobilePhone* iPhone; - // Connection to ETEL has been made by this module. - TBool iOwnConnection; - // Name of the TSY module - TBuf iTsyName; - }; -#endif //PSETTELEPHONY_H -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/inc/PsetVariationProxy.h --- a/cellular/telephonysettings/inc/PsetVariationProxy.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* -* Copyright (c) 2006 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: -* CPsetVariationProxy class is proxy class for -* central repository variation -* (Call waiting/distinguish between not provisioned and not activated). -* -* -*/ - - -#ifndef PSETVARIATIONPROXY_H -#define PSETVARIATIONPROXY_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class CRepository; - -// CONSTANTS -const TUint KCallWaitingDistiquishNotProvisioned = 0x00000001; - -// CLASS DECLARATION -/** -* CPsetVariationProxy class is proxy class for central repository variation -* @lib phonesettings.lib -* @since 1.0 -*/ -NONSHARABLE_CLASS (CPSetVariationProxy): public CBase - { - public: //constructor & destructor - - /* - * Symbian OS 2-phase Constructor. - * - * @param aUid identifing the central repository UID. - * @param aId central repository ID. - * @return the created instance. - */ - static CPSetVariationProxy* NewL( const TUid& aUid, - const TUint aId ); - - /* Destructor */ - ~CPSetVariationProxy(); - - public: - - /** - * Check from member variable 'iFeature' is the requested feature active. - * - * @param aFeature is uid for used central repository variable. - * @return returns TBool type ETrue/EFalse is current feature enabled or not - */ - TBool IsFeatureEnabled( TUint aFeature ) const; - - private: - - /** - * Constructor - * - * Open CenRep, read data into 'iFeatures' and close CenRep - */ - void ConstructL( const TUid& aUid, const TUint aId ); - - private: - - /* Default constructor */ - CPSetVariationProxy(); - - private: - - // Saves cen rep data readed in ConstructL() - TInt iFeature; - }; - -#endif // PSETVARIATIONPROXY_H - \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/rom/PhoneSettings.iby --- a/cellular/telephonysettings/rom/PhoneSettings.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2005 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: IBY file - * -*/ - -#ifndef __PHONESETTINGS_IBY__ -#define __PHONESETTINGS_IBY__ - -// Network Settings Engine Library -file=ABI_DIR\BUILD_DIR\phonesettings.dll SHARED_LIB_DIR\phonesettings.dll - -data=ZSYSTEM\install\phonesettings_stub.sis System\Install\phonesettings_stub.sis - -#endif diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PSetCallDivertingBase.cpp --- a/cellular/telephonysettings/src/PSetCallDivertingBase.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,843 +0,0 @@ -/* -* Copyright (c) 2008-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: Implementation of CPSetCallDivertingBase class. -* -*/ - - -// INCLUDE FILES -#include "psetcalldivertingbasicimpl.h" - -#include -#include -#include -#include -#include -#include -#include - -#include "psetcalldiverting.h" -#include "psetcontainer.h" -#include "mpsetdivertobs.h" -#include "psettelephony.h" -#include "psetpanic.h" -#include "mpsetrequestobs.h" -#include "psetutility.h" -#include "phonesettingslogger.h" -#include "psetsaobserver.h" -#include "psetcalldivertingbase.h" - -// LOCAL CONSTANTS AND MACROS - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPSetCallDivertingBase::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPSetCallDivertingBase* CPSetCallDivertingBase::NewL( - MPsetDivertObserver& aObserver, - RMobilePhone& aPhone, - CPsetCallDiverting* aDivert ) - { - CPSetCallDivertingBase* self = new ( ELeave ) CPSetCallDivertingBase( aPhone, aDivert ); - CleanupStack::PushL( self ); - self->ConstructL( aObserver ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CPSetCallDivertingBase::~CPSetCallDivertingBase -// --------------------------------------------------------------------------- -// -CPSetCallDivertingBase::~CPSetCallDivertingBase() - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::~CPSetCallDivertingBase"); - Cancel(); - - if ( iLine ) - { - iLine->Close(); - } - delete iLine; - - if ( iSsSettings ) - { - iSsSettings->Cancel( ESSSettingsAls, *this ); - iSsSettings->Close(); - } - delete iSsSettings; - delete iCfInterrogator; - - iReqObserver = NULL; - - delete iRepository; - - if ( iFeatureManagerInitialized ) - { - FeatureManager::UnInitializeLib(); - } - - __PHSLOGSTRING("[PHS]<-- CPSetCallDivertingBase::~CPSetCallDivertingBase"); - } - -// ----------------------------------------------------------------------------- -// CPSetCallDivertingBase::CPSetCallDivertingBase -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPSetCallDivertingBase::CPSetCallDivertingBase( RMobilePhone& aPhone, CPsetCallDiverting* aDivert ) : - CActive ( EPriorityStandard ), - iPhone ( aPhone ), - iDivert( aDivert ) - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::CPSetCallDivertingBase"); - iFeatureManagerInitialized = EFalse; - __PHSLOGSTRING("[PHS]<-- CPSetCallDivertingBase::CPSetCallDivertingBase"); - } - -// ----------------------------------------------------------------------------- -// CPSetCallDivertingBase::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPSetCallDivertingBase::ConstructL( MPsetDivertObserver& aObserver ) - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::ConstructL" ); - iLine = new ( ELeave ) RMobileLine; - - //Copy received information to member variable. - iObserver = &aObserver; - - CActiveScheduler::Add( this ); - - //Check which line is used, or if ALS is not active. - TInt usedLine = ESSSettingsAlsNotSupported; - - iSsSettings = new (ELeave) RSSSettings; - User::LeaveIfError( iSsSettings->Open() ); - TRAPD( err, iSsSettings->Register( ESSSettingsAls, *this ) ); - if ( err == KErrNone ) - { - iSsSettings->Get( ESSSettingsAls, usedLine ); - } - - iAls = static_cast ( usedLine ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::ConstructL: usedLine: %d", usedLine ); - - iRepository = CRepository::NewL( KCRUidCallForwarding ); - - // Sets up TLS, must be done before FeatureManager is used. - FeatureManager::InitializeLibL(); - iFeatureManagerInitialized = ETrue; - - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::ConstructL" ); - } - -// --------------------------------------------------------------------------- -// RunL -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBase::RunL() - { - // Empty implementation. - } - -// --------------------------------------------------------------------------- -// DoCancel -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBase::DoCancel() - { - // Empty implementation. - } - -// --------------------------------------------------------------------------- -// SetRequestObserver -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBase::SetRequestObserver( MPsetRequestObserver* aObs ) - { - iReqObserver = aObs; - } - -// --------------------------------------------------------------------------- -// SetDivertingL -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBase::SetDivertingL( const TCallDivertSetting& /*aDivert*/, - TBasicServiceGroups /*aBsc*/ ) - { - //Empty implementation. - } - -// --------------------------------------------------------------------------- -// CancelCurrentRequest -// --------------------------------------------------------------------------- -// -TInt CPSetCallDivertingBase::CancelCurrentRequest() - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::CancelCurrentRequest" ); - // Set PSUI so that correct observer is used and hide requesting note. - // When interrupting a note, does not leave. - // This needs to be done first, since notes must be cleared from screen - // even though request is not active. - iObserver->SetEngineContact( iDivert ); - // Does not leave - TRAPD( err, iObserver->HandleCFRequestingL( EFalse, ETrue ) ); - - if ( !IsActive() || err != KErrNone ) - { - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::CancelCurrentRequest: KErrGeneral" ); - return KErrGeneral; - } - - if ( iCFStatusCheck ) - { - iCFStatusCheck = EFalse; - Cancel(); - } - - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::CancelCurrentRequest: KErrNone" ); - return KErrNone; - } - -// --------------------------------------------------------------------------- -// Sets new default number the the default numbers list, erases the oldest one. -// --------------------------------------------------------------------------- -// -TInt CPSetCallDivertingBase::SetNewDefaultNumberL( TDes& aNumber ) - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::SetNewDefaultNumberL" ); - TTelNumber oldFirst; - TTelNumber oldSecond; - - CDesC16ArrayFlat* defNumberArray = - new ( ELeave ) CDesC16ArrayFlat( KPSetDefaultNumberMax ); - CleanupStack::PushL( defNumberArray ); - - TInt defNumbers = GetNumbersFromSharedDataL( iAls, *defNumberArray ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::SetNewDefaultNumberL: defNumbers: %d", defNumbers); - - if ( defNumbers > 0 ) //at least one number was fetched - { - //save latest divert no. - oldFirst = defNumberArray->MdcaPoint( 0 ); - } - if ( defNumbers > 1 ) //at least two numbers were fetched - { - //save second latest divert no. - oldSecond = defNumberArray->MdcaPoint( 1 ); - } - CleanupStack::PopAndDestroy( defNumberArray ); - - if ( iAls != ESSSettingsAlsAlternate ) - { - __PHSLOGSTRING("[PHS] CPSetCallDivertingBase::SetNewDefaultNumberL: !ESSSettingsAlsAlternate" ); - switch ( defNumbers ) // cases flow through - { - case 3: - case 2://two default numbers - User::LeaveIfError( - SaveKey( KSettingsCFDefaultNumber3, oldSecond ) ); - case 1://one default number - User::LeaveIfError( - SaveKey( KSettingsCFDefaultNumber2, oldFirst ) ); - case 0://no default numbers - User::LeaveIfError( - SaveKey( KSettingsCFDefaultNumber1, aNumber ) ); - break; - } - } - else//aux line - { - __PHSLOGSTRING("[PHS] CPSetCallDivertingBase::SetNewDefaultNumberL: Aux line" ); - switch ( defNumbers ) // cases flow through - { - case 3: - case 2://two default numbers - User::LeaveIfError( - SaveKey( KSettingsCFDefaultNumberAls3, oldSecond ) ); - case 1://one default number - User::LeaveIfError( - SaveKey( KSettingsCFDefaultNumberAls2, oldFirst ) ); - case 0://no default numbers - User::LeaveIfError( - SaveKey( KSettingsCFDefaultNumberAls1, aNumber ) ); - break; - default: - User::Leave( KErrArgument ); - break; - } - } - - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::SetNewDefaultNumberL" ); - return KErrNone; //return value is not used - } - -// --------------------------------------------------------------------------- -// Saves a single value to central repository. Make sure that repository -// is open before calling this function. -// --------------------------------------------------------------------------- -// -TInt CPSetCallDivertingBase::SaveKey( - TUint32 aKeyId, - const TDesC& aKeyValue ) - { - TInt error = KErrUnknown; - - error = iRepository->Set( aKeyId, aKeyValue ); - - return error; - } - -// --------------------------------------------------------------------------- -// Reads used divert numbers (0-3) from shared data and fills array with them. -// --------------------------------------------------------------------------- -// -TInt CPSetCallDivertingBase::GetNumbersFromSharedDataL( TInt aType, - CDesC16ArrayFlat& aArray ) - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::GetNumbersFromSharedDataL" ); - - TInt amount = 0; - TTelNumber readValue; - aType = iAls; - - RArray keyArray( KPSetDefaultNumberMax ); - CleanupClosePushL( keyArray ); - //to simplify reading, append needed values to an array - if ( aType != ESSSettingsAlsAlternate ) - { - keyArray.AppendL( KSettingsCFDefaultNumber1 ); - keyArray.AppendL( KSettingsCFDefaultNumber2 ); - keyArray.AppendL( KSettingsCFDefaultNumber3 ); - } - else //auxiliary line - { - keyArray.AppendL( KSettingsCFDefaultNumberAls1 ); - keyArray.AppendL( KSettingsCFDefaultNumberAls2 ); - keyArray.AppendL( KSettingsCFDefaultNumberAls3 ); - } - - TInt i = KErrNone; - TInt loc = KErrNone; - while ( i == KErrNone && loc < KPSetDefaultNumberMax ) - { - i = iRepository->Get( keyArray.operator[]( loc ), readValue ); - if ( i == KErrNone ) - { - HBufC16* string = static_cast ( readValue.AllocLC() ); - if ( string->Length() > 0 ) - { - aArray.AppendL( *string ); - amount++; - } - CleanupStack::PopAndDestroy( string ); - } - loc++; - } - CleanupStack::PopAndDestroy(); // keyArray. - - __PHSLOGSTRING1("[PHS] <--CPSetCallDivertingBase::GetNumbersFromSharedDataL: amount: %d", amount ); - return amount; - } - -// --------------------------------------------------------------------------- -// Gets the timer value index related to "cfnry" from shared data -// In error cases, return default value (30). -// --------------------------------------------------------------------------- -// -TInt CPSetCallDivertingBase::GetTimerValueL() - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::GetTimerValueL" ); - - TInt timerValue = 0; - TInt error = KErrNone; - - if ( iAls == ESSSettingsAlsAlternate ) - { - error = iRepository->Get( KSettingsCFTimerValueAls, timerValue ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::GetTimerValueL: KSettingsCFTimerValueAls: %d", timerValue ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::GetTimerValueL: error: %d", error ); - } - else - { - error = iRepository->Get( KSettingsCFTimerValue, timerValue ); - - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::GetTimerValueL: KPsetCFTimerValue: %d", timerValue ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::GetTimerValueL: error: %d", error ); - } - - if ( error != KErrNone || !VerifyDelayTime( timerValue ) ) - { - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::GetTimerValueL: KPsetDefaultTimerValue" ); - return KPsetDefaultTimerValue; - } - else - { - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::GetTimerValueL: timerValue" ); - return timerValue; - } - } - -// --------------------------------------------------------------------------- -// Sets the default time for "divert when not answered" to .ini file -// --------------------------------------------------------------------------- -TInt CPSetCallDivertingBase::SetTimerValueL( const TInt& aValue ) - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::SetTimerValueL" ); - - TInt retValue = KErrNone; - - // If delay time is not divisable by five, return. - if ( !VerifyDelayTime( aValue ) ) - { - return KErrArgument; - } - - if ( iAls != ESSSettingsAlsAlternate ) - { - retValue = iRepository->Set( KSettingsCFTimerValue, aValue ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::SetTimerValueL: KPsetCFTimerValue: %d", aValue ); - } - else - { - retValue = iRepository->Set( KSettingsCFTimerValueAls, aValue ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::SetTimerValueL: KPsetCFTimerValueAls: %d", aValue ); - } - - __PHSLOGSTRING1("[PHS] <--CPSetCallDivertingBase::SetTimerValueL: retValue: %d", retValue ); - return retValue; - } - -// --------------------------------------------------------------------------- -// Verifies that delay time is divisible by five. -// --------------------------------------------------------------------------- -// -TBool CPSetCallDivertingBase::VerifyDelayTime( const TInt& aDelayTime ) - { - TReal res = 0; - Math::Mod( res, aDelayTime, KPsetDelayTimeDivider ); - return res == 0; - } - -// --------------------------------------------------------------------------- -// Swaps the most recently used number to first in the shared data file. -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBase::SwapDefaultNumberL( const TInt& aLocation ) - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::SwapDefaultNumberL" ); - - if ( aLocation == KPSetFirstDefNumber ) - { - return; //no need to reorganize, number is already first - } - else if ( - !( aLocation == KPSetSecondDefNumber || - aLocation == KPSetThirdDefNumber ) ) - { - User::Leave( KErrArgument ); - } - - CDesC16ArrayFlat* defNumbers = - new ( ELeave ) CDesC16ArrayFlat( KPSetDefaultNumberMax ); - CleanupStack::PushL( defNumbers ); - - GetNumbersFromSharedDataL( iAls, *defNumbers ); - - if ( iAls != ESSSettingsAlsAlternate ) - //EGetAlsLinePrimary or Not supported or Unknown - { - __PHSLOGSTRING("[PHS] CPSetCallDivertingBase::SwapDefaultNumberL: !ESSSettingsAlsAlternate" ); - switch( aLocation ) - { - case KPSetSecondDefNumber: - User::LeaveIfError( - SaveKey( - KSettingsCFDefaultNumber2, - defNumbers->MdcaPoint(0) ) ); - User::LeaveIfError( - SaveKey( - KSettingsCFDefaultNumber1, - defNumbers->MdcaPoint(1) ) ); - break; - case KPSetThirdDefNumber: - User::LeaveIfError( - SaveKey( - KSettingsCFDefaultNumber2, - defNumbers->MdcaPoint(0) ) ); - User::LeaveIfError( - SaveKey( - KSettingsCFDefaultNumber3, - defNumbers->MdcaPoint(1) ) ); - User::LeaveIfError( - SaveKey( - KSettingsCFDefaultNumber1, - defNumbers->MdcaPoint(2) ) ); - break; - default: - break; - } - } - else //alternate line - { - __PHSLOGSTRING("[PHS] CPSetCallDivertingBase::SwapDefaultNumberL: ESSSettingsAlsAlternate" ); - switch( aLocation ) - { - case KPSetSecondDefNumber: - User::LeaveIfError( - SaveKey( - KSettingsCFDefaultNumberAls1, - defNumbers->MdcaPoint(0) ) ); - User::LeaveIfError( - SaveKey( - KSettingsCFDefaultNumberAls2, - defNumbers->MdcaPoint(1) ) ); - break; - case KPSetThirdDefNumber: - User::LeaveIfError( - SaveKey( - KSettingsCFDefaultNumberAls2, - defNumbers->MdcaPoint(0) ) ); - User::LeaveIfError( - SaveKey( - KSettingsCFDefaultNumberAls3, - defNumbers->MdcaPoint(1) ) ); - User::LeaveIfError( - SaveKey( - KSettingsCFDefaultNumberAls1, - defNumbers->MdcaPoint(2) ) ); - break; - default: - break; - } - } - CleanupStack::PopAndDestroy( defNumbers ); - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::SwapDefaultNumberL" ); - } - -// --------------------------------------------------------------------------- -// Request diverting status from network asynhronously. -// --------------------------------------------------------------------------- -void CPSetCallDivertingBase::GetDivertingStatusL( - const TServiceGroup aServiceGroup, - const TCallDivertingCondition aCondition, - TBasicServiceGroups aBsc ) - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::GetDivertingStatusL" ); - - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::GetDivertingStatusL: aServiceGroup: %d", aServiceGroup ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::GetDivertingStatusL: aCondition: %d", aCondition ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::GetDivertingStatusL: aBsc: %d", aBsc ); - - iCFStatusCheck = ETrue; - - CPsetTelephony::CheckLineModeL( aServiceGroup, &iPhone, iLine ); - if ( !iLine->SubSessionHandle() ) - { - User::Leave( KErrBadHandle ); - } - - // in these cases basic service group will not be set - if ( !( aCondition == EDivertConditionAllCalls || - aCondition == EDivertConditionAllConditionalCases ) ) - { - __PHSLOGSTRING("[PHS] CPSetCallDivertingBase::GetDivertingStatusL: CancelAll should not come here" ); - ValidateBsc( aBsc ); - } - - iReason = PSetUtility::GetDivertReason( aCondition ); - - // Start to request for status. - if (iCfInterrogator) - { - delete iCfInterrogator; - iCfInterrogator = NULL; - } - iCfInterrogator = CRetrieveMobilePhoneCFList::NewL( iPhone ); - iCfInterrogator->Start( - iStatus, - iReason, - PSetUtility::ChangeToEtelInternal( aBsc ) ); - - StartRequestingL( EPSetGetDivertStatus ); - - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::GetDivertingStatusL" ); - } - -// --------------------------------------------------------------------------- -// Creates param list for NotifyDivertChange method. -// --------------------------------------------------------------------------- -// -TCallDivertNotifySetting CPSetCallDivertingBase::CreateDivertNotifySetting( - TUnconditionalCFStatus aCurrentDivert, TBool aDivertChanged, - TBool aVoiceMbxDivert, TInt aBasic ) - { - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase iVideoDivert = %d", iVideoDivert ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase iVoiceDivert = %d", iVoiceDivert ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase aVoiceMbxDivert = %d", aVoiceMbxDivert ); - - TCallDivertNotifySetting divertNotify; - divertNotify.Initialize(); - - divertNotify.iPreviousCfStatus = aCurrentDivert; - divertNotify.iCfActivated = aDivertChanged; - - divertNotify.iBasicServiceCode = aBasic; - - if ( aVoiceMbxDivert ) - { - divertNotify.iVmbxDivert = ETrue; - } - - return divertNotify; - } - -// --------------------------------------------------------------------------- -// Gets Als information -// --------------------------------------------------------------------------- -// -TSelectedLine CPSetCallDivertingBase::GetSAAls() - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::GetSAAls" ); - __PHSLOGSTRING2("[PHS] iAls: %d iBsc: %d", iAls, iBsc ); - TSelectedLine alsValue = ENotSupportedLine; - switch ( iAls ) - { - case ESSSettingsAlsNotSupported: - alsValue = ENotSupportedLine; - break; - case ESSSettingsAlsPrimary: - iChangeInfo.iServiceGroup == RMobilePhone::EAuxVoiceService - ? ( alsValue = EAuxiliaryLine ) - : ( alsValue = EPrimaryLine ); - break; - case ESSSettingsAlsAlternate: - alsValue = EAuxiliaryLine; - break; - default: - alsValue = ENotSupportedLine; - break; - } - - // If user checks/activates divert to line which is not selected currently than we have - // to change returned alsvalue accordinly, if this is not done divert icon status is updated to wrong status. - // Example case: Line 2 active user activates divert to line 1: **21*phonenumber*11#. - if ( iBsc == EAltTele && iAls == ESSSettingsAlsPrimary ) - { - __PHSLOGSTRING("[PHS] CPSetCallDivertingBase::GetSAAls - Line 2 divert activation/check from Line 1" ); - alsValue = EAuxiliaryLine; - } - else if ( iBsc == ETelephony && iAls == ESSSettingsAlsAlternate ) - { - __PHSLOGSTRING("[PHS] CPSetCallDivertingBase::GetSAAls - Line 1 divert activation/check from Line 2" ); - alsValue = EPrimaryLine; - } - - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::GetSAAls: alsValue: %d", alsValue ); - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::GetSAAls" ); - return alsValue; - } - -// --------------------------------------------------------------------------- -// Validates used bsc, if EUnknown, updates to real value -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBase::ValidateBsc( TBasicServiceGroups& aBsc ) - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::ValidateBsc" ); - if ( aBsc == EUnknown ) - // if bsc is unknown, update it - { - if ( iAls == ESSSettingsAlsAlternate ) - { - aBsc = EAltTele; - } - else - { - aBsc = ETelephony; - } - } - else - // If no specific line is indicated - { - if ( aBsc == EAllTeleAndBearer || - aBsc == EAllTele ) - { - // if ALS is used, use 89 bsc - if ( iAls == ESSSettingsAlsAlternate ) - { - aBsc = EAltTele; - } - } - } - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::ValidateBsc" ); - } - -// --------------------------------------------------------------------------- -// Starts requesting -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBase::StartRequestingL( const TInt& aRequest ) - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::StartRequestingL" ); - if ( aRequest != KPsetRequestAlreadySet ) - { - SetRequestStatus( static_cast ( aRequest ) ); - } - - SetActive(); - - iObserver->SetEngineContact( iDivert ); - - CleanupLeavePushL(); - iObserver->HandleCFRequestingL( ETrue, EFalse ); - CleanupStack::Pop(); // CleanupCancelPushL - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::StartRequestingL" ); - } - -// --------------------------------------------------------------------------- -// Inform request observer that request status has changed. -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBase::SetRequestStatus( TPSetDivertRequest aStatus ) - { - iCurrentReq = aStatus; - if ( iReqObserver ) - { - iReqObserver->RequestStatusChanged( aStatus ); - } - } - -// --------------------------------------------------------------------------- -// If divert activation/cancellation/etc. affects more than one bsc, -// inform PSUI about it. -// --------------------------------------------------------------------------- -TBool CPSetCallDivertingBase::IsMultiAffectingDivert( - const TCallDivertSetting& aDivert, TBasicServiceGroups aBsc ) - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::IsMultiAffectingDivert" ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::IsMultiAffectingDivert: aBsc = %d", aBsc ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::IsMultiAffectingDivert: aDivert.iCondition = %d", aDivert.iCondition ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::IsMultiAffectingDivert: aDivert.iStatus = %d", aDivert.iStatus ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBase::IsMultiAffectingDivert: aDivert.iServiceGroup = %d", aDivert.iServiceGroup ); - - if ( iReason == RMobilePhone::ECallForwardingAllCases || - iReason == RMobilePhone::ECallForwardingAllConditionalCases || - iReason == RMobilePhone::ECallForwardingNotReachable ) - { - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::IsMultiAffectingDivert1" ); - return ETrue; - } - if ( iReason == RMobilePhone::ECallForwardingUnconditional ) - { - //it is a MMI string - if ( ( aBsc != EUnknown && aBsc != ETelephony ) && aDivert.iServiceGroup == EServiceGroupVoice ) - { - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::IsMultiAffectingDivert2" ); - return ETrue; - } - } - - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::IsMultiAffectingDivert3" ); - return EFalse; - } - -// --------------------------------------------------------------------------- -// Push object into cleanupstack to catch leaving. -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBase::CleanupLeavePushL() - { - CleanupStack::PushL( TCleanupItem( DoHandleLeave, this ) ); - } - -// --------------------------------------------------------------------------- -// Object has caused a leave. -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBase::DoHandleLeave( TAny* aAny ) - { - REINTERPRET_CAST( CPSetCallDivertingBasicImpl*, aAny )->HandleLeave(); - } - -// --------------------------------------------------------------------------- -// Things to do when leave occurs. -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBase::HandleLeave() - { - CancelCurrentRequest(); - } - -// --------------------------------------------------------------------------- -// Inform the request observer that request has been completed. -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBase::RequestCompleted( const TInt& aError ) - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::RequestCompleted" ); - if ( aError != KErrNone ) - { - SetRequestStatus( static_cast (aError) ); - } - SetRequestStatus( EPSetNone ); - iVoiceDivert = EFalse; - - if ( iReqObserver ) - { - iReqObserver->RequestComplete(); - } - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::RequestCompleted" ); - } - -// --------------------------------------------------------------------------- -// Verifies whether the divert-to number is to voice mail box. -// --------------------------------------------------------------------------- -// -TBool CPSetCallDivertingBase::IsVMBXDivertL( TDesC& /*aTelNumber*/ ) - { - - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBase::IsVMBXDivertL" ); - - TBool result = EFalse; - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBase::IsVMBXDivertL" ); - return result; - } - -// --------------------------------------------------------------------------- -// If SsSettings notifies of settings change, copy new value to member variable. -// --------------------------------------------------------------------------- -void CPSetCallDivertingBase::PhoneSettingChanged( - TSSSettingsSetting aSetting, TInt aNewValue ) - { - __PHSLOGSTRING2("[PHS]--> CPSetCallDivertingBase::PhoneSettingChanged ESSSettingsAls: %d, aNewValue: %d", aSetting, aNewValue ); - if ( aSetting == ESSSettingsAls ) - { - iAls = static_cast (aNewValue); - } - __PHSLOGSTRING("[PHS]<-- CPSetCallDivertingBase::PhoneSettingChanged" ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PSetCallDivertingBasicImpl.cpp --- a/cellular/telephonysettings/src/PSetCallDivertingBasicImpl.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,488 +0,0 @@ -/* -* Copyright (c) 2008-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: Implementation of CPSetCallDivertingBasicImpl class. -* -*/ - - -// INCLUDE FILES -#include "psetcalldivertingbasicimpl.h" - -#include -#include -#include -#include -#include -#include -#include - -#include "psetcalldiverting.h" -#include "psetcontainer.h" -#include "mpsetdivertobs.h" -#include "psettelephony.h" -#include "psetpanic.h" -#include "mpsetrequestobs.h" -#include "psetutility.h" -#include "phonesettingslogger.h" -#include "psetsaobserver.h" - -// LOCAL CONSTANTS AND MACROS -_LIT( KPSetIntNbr, "+" ); -_LIT( KPSNameOfClass, "CPSetCallDivertingBasicImpl" ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPSetCallDivertingBasicImpl::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPSetCallDivertingBasicImpl* CPSetCallDivertingBasicImpl::NewL( - MPsetDivertObserver& aObserver, - RMobilePhone& aPhone, - CPsetCallDiverting* aDivert ) - { - CPSetCallDivertingBasicImpl* self = new ( ELeave ) CPSetCallDivertingBasicImpl( aPhone, aDivert ); - CleanupStack::PushL( self ); - self->ConstructL( aObserver ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CPSetCallDivertingBasicImpl::~CPSetCallDivertingBasicImpl -// --------------------------------------------------------------------------- -// -CPSetCallDivertingBasicImpl::~CPSetCallDivertingBasicImpl() - { - } - -// ----------------------------------------------------------------------------- -// CPSetCallDivertingBasicImpl::CPSetCallDivertingBasicImpl -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPSetCallDivertingBasicImpl::CPSetCallDivertingBasicImpl( - RMobilePhone& aPhone, CPsetCallDiverting* aDivert ) : - CPSetCallDivertingBase( aPhone, aDivert ) - { - } - -// ----------------------------------------------------------------------------- -// CPSetCallDivertingBasicImpl::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPSetCallDivertingBasicImpl::ConstructL( MPsetDivertObserver& aObserver ) - { - CPSetCallDivertingBase::ConstructL( aObserver ); - } - -// ----------------------------------------------------------------------------- -// CPSetCallDivertingBasicImpl::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPSetCallDivertingBasicImpl::SetDivertingL( const TCallDivertSetting& aDivert, TBasicServiceGroups aBsc ) - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBasicImpl::SetDivertingL"); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBasicImpl::SetDivertingL: aBsc: %d", aBsc ); - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - iBsc = aBsc; - iRequestedServiceGroup = aDivert.iServiceGroup; - - CPsetTelephony::CheckLineModeL( aDivert.iServiceGroup, &iPhone, iLine ); - if ( !iLine->SubSessionHandle() ) - { - User::Leave( KErrBadHandle ); - } - - SetRequestStatus( EPSetChangeDivert ); - iReason = PSetUtility::GetDivertReason ( aDivert.iCondition ); - iVoiceDivert = SetVoiceDivert( aDivert, aBsc ); - - ValidateBsc( aBsc ); - iPluralNotes = IsMultiAffectingDivert( aDivert, aBsc ); - - //Copy data to member variable - iChangeInfo.iNumber.iTelNumber.Copy( aDivert.iNumber ); - iChangeInfo.iTimeout = KPSetDefaultDelayTimeValue; - if ( aBsc == EAltTele ) - { - iChangeInfo.iServiceGroup = PSetUtility::VerifyAltLineUseL(); - } - iChangeInfo.iServiceGroup = PSetUtility::ChangeToEtelInternal( aBsc ); - iChangeInfo.iNumber.iNumberPlan = RMobilePhone::EIsdnNumberPlan; - iChangeInfo.iNumber.iTypeOfNumber = RMobilePhone::EUnknownNumber; - if ( iChangeInfo.iNumber.iTelNumber.Length() > 0 ) - { - if ( iChangeInfo.iNumber.iTelNumber.Left(1) == KPSetIntNbr ) - { - iChangeInfo.iNumber.iTypeOfNumber = - RMobilePhone::EInternationalNumber; - } - } - - switch ( aDivert.iSetting ) - { - case ERegisterDiverting: - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - iChangeInfo.iAction = RMobilePhone::EServiceActionRegister; - iChangeInfo.iTimeout = aDivert.iNoReplyTimer; - __PHSLOGSTRING("[PHS] CPSetCallDivertingBasicImpl::SetDivertingL: ERegisterDiverting" ); - break; - case EEraseDiverting: - iChangeInfo.iAction = RMobilePhone::EServiceActionErase; - __PHSLOGSTRING("[PHS] CPSetCallDivertingBasicImpl::SetDivertingL: EEraseDiverting" ); - break; - case EActivateDiverting: - iChangeInfo.iAction = RMobilePhone::EServiceActionActivate; - iChangeInfo.iTimeout = aDivert.iNoReplyTimer; - __PHSLOGSTRING("[PHS] CPSetCallDivertingBasicImpl::SetDivertingL: EActivateDiverting" ); - break; - case ECancelDiverting: - iChangeInfo.iAction = RMobilePhone::EServiceActionDeactivate; - __PHSLOGSTRING("[PHS] CPSetCallDivertingBasicImpl::SetDivertingL: ECancelDiverting" ); - break; - default: - User::Leave( KErrArgument ); - break; - } - - //Start requesting for setting Divert. - iPhone.SetCallForwardingStatus( iStatus, iReason, iChangeInfo ); - StartRequestingL( KPsetRequestAlreadySet ); - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBasicImpl::SetDivertingL" ); - } - -// --------------------------------------------------------------------------- -// RunL -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBasicImpl::RunL() - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBasicImpl::RunL" ); - __ASSERT_ALWAYS( - iObserver != NULL, Panic( KPSNameOfClass, ECDRequestPanicNoObserver ) ); - - //Hide requesting note - does not leave when deleting a note. - iObserver->SetEngineContact( iDivert ); - iObserver->HandleCFRequestingL( EFalse, EFalse ); - - //Handle error case. - if ( iStatus != KErrNone ) - { - iObserver->HandleDivertingErrorL( iStatus.Int() ); - RequestCompleted( iStatus.Int() ); - return; - } - - iDivertStatus.Initialize(); - switch ( iCurrentReq ) - { - case EPSetChangeDivert: - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBasicImpl::RunL: EPSetChangeDivert" ); - //Notify Observer - iDivertStatus.iStatus = PSetUtility::GetChangeInfoStatus( iChangeInfo.iAction ); - iDivertStatus.iNumber = iChangeInfo.iNumber.iTelNumber; - iDivertStatus.iCondition = PSetUtility::GetDivertReason(iReason); - iDivertStatus.iNoReplyTimer = iChangeInfo.iTimeout; - iDivertStatus.iServiceGroup = iRequestedServiceGroup; - - // Check is done because of VOIP notification functionality(PSetNotesUI). - if ( iVoiceDivert && !iVideoDivert ) - { - iDivertStatus.iServiceGroup = EServiceGroupVoice; - } - - iObserver->HandleDivertingChangedL( iDivertStatus, iPluralNotes ); - - //Notify observer. - HandleSANotificationL( - IsVMBXDivertL( iChangeInfo.iNumber.iTelNumber ), - iDivertStatus.iStatus ); - break; - } - case EPSetGetDivertStatus: - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBasicImpl::RunL: EPSetGetDivertStatus" ); - - CMobilePhoneCFList* cfList = iCfInterrogator->RetrieveListL(); - CleanupStack::PushL( cfList ); - CMobilePhoneCFList* cleanedList = CMobilePhoneCFList::NewL(); - CleanupStack::PushL( cleanedList ); - - TInt numOfItems = cfList->Enumerate(); - TInt index = 0; - RMobilePhone::TMobilePhoneCFInfoEntryV1 cfEntry; - RMobilePhone::TMobilePhoneCFInfoEntryV1 copy; - iDivertStatus.iStatus = EDivertingStatusNotRegistered; - while( index < numOfItems ) - { - cfEntry = cfList->GetEntryL( index ); - iBsc = PSetUtility::ChangeToGSM( cfEntry.iServiceGroup ); - - if ( cfEntry.iStatus == RMobilePhone::ECallForwardingStatusActive ) - { - copy.iServiceGroup = cfEntry.iServiceGroup; - copy.iCondition = cfEntry.iCondition; - copy.iStatus = cfEntry.iStatus; - copy.iNumber = cfEntry.iNumber; - copy.iTimeout = cfEntry.iTimeout; - cleanedList->AddEntryL( copy ); - } - - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBasicImpl::RunL: EPSetGetDivertStatus iBsc: %d", iBsc ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBasicImpl::RunL: EPSetGetDivertStatus iStatus: %d", cfEntry.iStatus ); - if ( iBsc == EAllTeleAndBearer || iBsc == EAllTele || iBsc == ETelephony || iBsc == EAltTele || - iBsc == EAllBearer || iBsc == EAllSync || iBsc == ESyncData ) - { - // iVoiceDivert is set to true to ensure that the icons are updated in every case. - iVoiceDivert = ETrue; - if ( ( cfEntry.iStatus != RMobilePhone::ECallForwardingStatusNotRegistered ) - && ( cfEntry.iStatus != RMobilePhone::ECallForwardingStatusNotActive ) - && ( cfEntry.iStatus != RMobilePhone::ECallForwardingStatusNotProvisioned ) ) - { - iDivertStatus.iStatus = EDivertingStatusActive; - } - else - { - iDivertStatus.iStatus = EDivertingStatusNotRegistered; - } - - HandleSANotificationL( - IsVMBXDivertL( cfEntry.iNumber.iTelNumber ), - iDivertStatus.iStatus ); - } - index++; - } - if ( cleanedList->Enumerate() == 0 ) - { - iObserver->HandleDivertingStatusL( *cfList, iPluralNotes ); - } - else - { - iObserver->HandleDivertingStatusL( *cleanedList, iPluralNotes ); - } - CleanupStack::PopAndDestroy( 2 ); //cleanedList, cfList - cfList = NULL; - cleanedList = NULL; - iCFStatusCheck = EFalse; - break; - } - default: - Panic( KPSNameOfClass, ECDRequestPanicIncorrectRequest ); - break; - } - RequestCompleted( KErrNone ); - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBasicImpl::RunL" ); - } - -// --------------------------------------------------------------------------- -// DoCancel -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBasicImpl::DoCancel() - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBasicImpl::DoCancel" ); - //Decide which request to cancel. - switch( iCurrentReq ) - { - case EPSetChangeDivert: - __PHSLOGSTRING("[PHS] DoCancel - EPSetChangeDivert" ); - iPhone.CancelAsyncRequest( EMobilePhoneSetCallForwardingStatus ); - break; - case EPSetGetDivertStatus: - __PHSLOGSTRING("[PHS] DoCancel - EPSetGetDivertStatus" ); - iCfInterrogator->Cancel(); - delete iCfInterrogator; - iCfInterrogator = NULL; - break; - default: - break; - } - - //Set current request to none. - iCurrentReq = EPSetNone; - iVoiceDivert = EFalse; - iVideoDivert = EFalse; - __PHSLOGSTRING("[PHS]<-- CPSetCallDivertingBasicImpl::DoCancel" ); - } - -// --------------------------------------------------------------------------- -// RunError -// --------------------------------------------------------------------------- -// -TInt CPSetCallDivertingBasicImpl::RunError( TInt aError ) - { - __PHSLOGSTRING1("[PHS]--> CPSetCallDivertingBasicImpl::RunError aError: %d", aError ); - if ( ( iCurrentReq == EPSetGetDivertStatus || iCurrentReq == EPSetChangeDivert) - && iVoiceDivert ) - { - __PHSLOGSTRING("[PHS] RunError - HandleSANotificationL" ); - TRAP_IGNORE( HandleSANotificationL( EFalse, iDivertStatus.iStatus ) ); - } - - if ( iCurrentReq == EPSetGetDivertStatus ) - { - iCFStatusCheck = EFalse; - } - aError = KErrNone; - - //Set current request to none. - iCurrentReq = EPSetNone; - iVoiceDivert = EFalse; - iVideoDivert = EFalse; - __PHSLOGSTRING("[PHS]<-- CPSetCallDivertingBasicImpl::RunError" ); - return aError; - } - -// --------------------------------------------------------------------------- -// If unconditional voice divert is activated/cancelled, notifies observer, -// so that it can set on/off indicators. -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingBasicImpl::HandleSANotificationL( - TBool aVmbxDivert, TDivertingStatus& aCfStatus ) - { - __PHSLOGSTRING2("[PHS]--> CPSetCallDivertingBasicImpl::HandleSANotificationL aVmbxDivert: %d, aCfStatus: %d", aVmbxDivert, aCfStatus ); - TBool divertChanged = EFalse; - - //If divert is not with voice, do not touch indicators. - if ( !iVoiceDivert ) - { - return; - } - - //Unconditional divert and all diverts - if ( iReason == RMobilePhone::ECallForwardingUnconditional || - iReason == RMobilePhone::ECallForwardingAllCases ) - { - if ( iCurrentReq == EPSetChangeDivert ) - { - //show indicator if, activation/registration, else hide it - //these are probably incorrect.... - divertChanged = - ( iChangeInfo.iAction == RMobilePhone::EServiceActionRegister || - iChangeInfo.iAction == RMobilePhone::EServiceActionActivate); - } - else - { - //show indicator if status is activated, hide for cancelled. - divertChanged = ( aCfStatus == EDivertingStatusActive ); - } - } - else - { - //if not unconditional, do not touch indicators. - return; - } - - CPsetSAObserver* systemObserver = CPsetSAObserver::NewL(); - CleanupStack::PushL( systemObserver ); - - TUnconditionalCFStatus status(KCFIndicatorUnknown); - - User::LeaveIfError( systemObserver->GetCurrentDivertStatus( status ) ); - - TCallDivertNotifySetting setting = CreateDivertNotifySetting( - status, divertChanged, aVmbxDivert, iBsc ); - - // Notify observer that Diverts have changed. - systemObserver->NotifyDivertChange( GetSAAls(), - setting, - -1 ); - - CleanupStack::PopAndDestroy( systemObserver ); - - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBasicImpl::HandleSANotificationL" ); - } - -// --------------------------------------------------------------------------- -// Returns ETrue if divert operation is to voice or to all operations. -// --------------------------------------------------------------------------- -// -TBool CPSetCallDivertingBasicImpl::SetVoiceDivert( const TCallDivertSetting& aDivert, - const TBasicServiceGroups aBsc ) - { - iVideoDivert = EFalse; - if ( aDivert.iServiceGroup == EServiceGroupVoice || - aDivert.iServiceGroup == EServiceGroupAllTeleservices) - { - return ETrue; - } - else if ( ( aDivert.iServiceGroup == EServiceGroupData && ( aBsc == EAllBearer || - aBsc == EAllSync || aBsc == ESyncData ) ) ) - { - iVideoDivert = ETrue; - return ETrue; - } - return EFalse; - } - -// --------------------------------------------------------------------------- -// Gets Als information. -// --------------------------------------------------------------------------- -// -TSelectedLine CPSetCallDivertingBasicImpl::GetSAAls() - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingBasicImpl::GetSAAls" ); - __PHSLOGSTRING2("[PHS] iAls: %d iBsc: %d", iAls, iBsc ); - TSelectedLine alsValue = ENotSupportedLine; - switch ( iAls ) - { - case ESSSettingsAlsNotSupported: - alsValue = ENotSupportedLine; - break; - case ESSSettingsAlsPrimary: - iChangeInfo.iServiceGroup == RMobilePhone::EAuxVoiceService - ? ( alsValue = EAuxiliaryLine ) - : ( alsValue = EPrimaryLine ); - break; - case ESSSettingsAlsAlternate: - alsValue = EAuxiliaryLine; - break; - default: - alsValue = ENotSupportedLine; - break; - } - - // If user checks/activates divert to line which is not selected currently than we have - // to change returned alsvalue accordinly, if this is not done divert icon status is updated to wrong status. - // Example case: Line 2 active user activates divert to line 1: **21*phonenumber*11#. - if ( iBsc == EAltTele && iAls == ESSSettingsAlsPrimary ) - { - __PHSLOGSTRING("[PHS] CPSetCallDivertingBasicImpl::GetSAAls - Line 2 divert activation/check from Line 1" ); - alsValue = EAuxiliaryLine; - } - else if ( iBsc == ETelephony && iAls == ESSSettingsAlsAlternate ) - { - __PHSLOGSTRING("[PHS] CPSetCallDivertingBasicImpl::GetSAAls - Line 1 divert activation/check from Line 2" ); - alsValue = EPrimaryLine; - } - - __PHSLOGSTRING1("[PHS] CPSetCallDivertingBasicImpl::GetSAAls: alsValue: %d", alsValue ); - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingBasicImpl::GetSAAls" ); - return alsValue; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PSetCallDivertingCreator.cpp --- a/cellular/telephonysettings/src/PSetCallDivertingCreator.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* -* Copyright (c) 2008-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: Implementation of CPSetCallDivertingCreator class. -* -*/ - - - -// INCLUDE FILES -#include "psetcalldivertingbasicimpl.h" -#include "psetcalldivertingdualaffectimpl.h" -#include "psetcalldivertingcreator.h" -#include "psetvariationproxy.h" - -#include -#include -#include // telephony service local variation keys. -#include - - -// ============================ MEMBER FUNCTIONS =============================== - -// --------------------------------------------------------------------------- -// CreateCallDivertingL -// --------------------------------------------------------------------------- -// -MCallDiverting* CPSetCallDivertingCreator::CreateCallDivertingL( - MPsetDivertObserver& aObserver, - RMobilePhone& aPhone, - CPsetCallDiverting* aDivert ) - { - if( IsDivertDualAffectFeatureEnabledL() ) - { - return CPSetCallDivertingDualAffectImpl::NewL( aObserver, aPhone, aDivert ); - } - else - { - return CPSetCallDivertingBasicImpl::NewL( aObserver, aPhone, aDivert ); - } - } - -// --------------------------------------------------------------------------- -// IsDivertDualAffectFeatureEnabledL -// --------------------------------------------------------------------------- -// -TBool CPSetCallDivertingCreator::IsDivertDualAffectFeatureEnabledL() - { - TBool retValue(EFalse); - CPSetVariationProxy* variationProxy = - CPSetVariationProxy::NewL( KCRUidTelSrvVariation, KTelSrvVariationFlags ); - CleanupStack::PushL( variationProxy ); - retValue = variationProxy->IsFeatureEnabled( KTelephonyLVFlagDivertDualAffect ); - CleanupStack::PopAndDestroy( variationProxy ); - return retValue; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PSetCallDivertingDualAffectImpl.cpp --- a/cellular/telephonysettings/src/PSetCallDivertingDualAffectImpl.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,574 +0,0 @@ -/* -* Copyright (c) 2008-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: Implementation of CPSetCallDivertingDualAffectImpl class. -* -*/ - - -// INCLUDE FILES -#include "psetcalldivertingdualaffectimpl.h" -#include "psetsubscriberidcheck.h" - -#include -#include -#include -#include -#include -#include -#include - -#include "psetcalldiverting.h" -#include "psetcontainer.h" -#include "mpsetdivertobs.h" -#include "psettelephony.h" -#include "psetpanic.h" -#include "mpsetrequestobs.h" -#include "psetutility.h" -#include "phonesettingslogger.h" -#include "psetsaobserver.h" - -// LOCAL CONSTANTS AND MACROS -_LIT( KPSetIntNbr, "+" ); -_LIT( KPSNameOfClass, "CPsetCallDiverting" ); -_LIT( KPhone, "Telephone" ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPSetCallDivertingDualAffectImpl::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPSetCallDivertingDualAffectImpl* CPSetCallDivertingDualAffectImpl::NewL( - MPsetDivertObserver& aObserver, - RMobilePhone& aPhone, - CPsetCallDiverting* aDivert ) - { - CPSetCallDivertingDualAffectImpl* self = new ( ELeave ) CPSetCallDivertingDualAffectImpl( aPhone, aDivert ); - CleanupStack::PushL( self ); - self->ConstructL( aObserver ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// CPSetCallDivertingDualAffectImpl::~CPSetCallDivertingDualAffectImpl -// --------------------------------------------------------------------------- -// -CPSetCallDivertingDualAffectImpl::~CPSetCallDivertingDualAffectImpl() - { - delete iIdCheck; - } - -// ----------------------------------------------------------------------------- -// CPSetCallDivertingDualAffectImpl::CPSetCallDivertingDualAffectImpl -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPSetCallDivertingDualAffectImpl::CPSetCallDivertingDualAffectImpl( - RMobilePhone& aPhone, CPsetCallDiverting* aDivert ) : - CPSetCallDivertingBase( aPhone, aDivert ) - { - } - -// ----------------------------------------------------------------------------- -// CPSetCallDivertingDualAffectImpl::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPSetCallDivertingDualAffectImpl::ConstructL( MPsetDivertObserver& aObserver ) - { - CPSetCallDivertingBase::ConstructL( aObserver ); - - iIdCheck = CPSetSubscriberIdCheck::NewL(); - } - -// ----------------------------------------------------------------------------- -// CPSetCallDivertingDualAffectImpl::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPSetCallDivertingDualAffectImpl::SetDivertingL( const TCallDivertSetting& aDivert, TBasicServiceGroups aBsc ) - { __PHSLOGSTRING("[PHS]--> CPSetCallDivertingDualAffectImpl::SetDivertingL"); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingDualAffectImpl::SetDivertingL: aBsc: %d", aBsc ); - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - CPsetTelephony::CheckLineModeL( aDivert.iServiceGroup, &iPhone, iLine ); - if ( !iLine->SubSessionHandle() ) - { - User::Leave( KErrBadHandle ); - } - - SetRequestStatus( EPSetChangeDivert ); - iReason = PSetUtility::GetDivertReason ( aDivert.iCondition ); - iVoiceDivert = SetVoiceDivert( aDivert, aBsc ); - - /* In case of SIM support dual activation and * -command has been issued from ALS - * line 2 we need to change the SS service - * code from SS_GSM_AUX_TELEPHONY to the SS_ALL_TELE_AND_BEARER - * at SS_SERVICE_REQ -message. - */ - if ( ( aBsc == EAllTeleAndBearer ) && // Command affects to both lines - ( iAls == ESSSettingsAlsAlternate ) && // Command given at ALS line 2 - ( (RThread().Name()).Compare( KPhone ) == 0 ) && // *# -commands are given only from Phone thread - ( aDivert.iSetting != ECheckStatus ) && // Not interrogating - ( iIdCheck->DoesSIMSupportDualActivation() ) ) // Check SIM/IMSI - { - // Set iBsc to same value as aBsc so that correct alsValue - // can be determined in GetSAAls() method. - iBsc = aBsc; - } - else - { - // Set iBsc to same value as aBsc so that correct alsValue - // can be determined in GetSAAls() method. - iBsc = aBsc; - ValidateBsc( aBsc ); - } - - iPluralNotes = IsMultiAffectingDivert( aDivert, aBsc ); - - //Copy data to member variable - iChangeInfo.iNumber.iTelNumber.Copy( aDivert.iNumber ); - iChangeInfo.iTimeout = KPSetDefaultDelayTimeValue; - if ( aBsc == EAltTele ) - { - iChangeInfo.iServiceGroup = PSetUtility::VerifyAltLineUseL(); - } - iChangeInfo.iServiceGroup = PSetUtility::ChangeToEtelInternal( aBsc ); - iChangeInfo.iNumber.iNumberPlan = RMobilePhone::EIsdnNumberPlan; - iChangeInfo.iNumber.iTypeOfNumber = RMobilePhone::EUnknownNumber; - if ( iChangeInfo.iNumber.iTelNumber.Length() > 0 ) - { - if ( iChangeInfo.iNumber.iTelNumber.Left(1) == KPSetIntNbr ) - { - iChangeInfo.iNumber.iTypeOfNumber = - RMobilePhone::EInternationalNumber; - } - } - - switch ( aDivert.iSetting ) - { - case ERegisterDiverting: - iChangeInfo.iAction = RMobilePhone::EServiceActionRegister; - iChangeInfo.iTimeout = aDivert.iNoReplyTimer; - __PHSLOGSTRING("[PHS] CPSetCallDivertingDualAffectImpl::SetDivertingL: ERegisterDiverting" ); - break; - case EEraseDiverting: - iChangeInfo.iAction = RMobilePhone::EServiceActionErase; - __PHSLOGSTRING("[PHS] CPSetCallDivertingDualAffectImpl::SetDivertingL: EEraseDiverting" ); - break; - case EActivateDiverting: - iChangeInfo.iAction = RMobilePhone::EServiceActionActivate; - iChangeInfo.iTimeout = aDivert.iNoReplyTimer; - __PHSLOGSTRING("[PHS] CPSetCallDivertingDualAffectImpl::SetDivertingL: EActivateDiverting" ); - break; - case ECancelDiverting: - iChangeInfo.iAction = RMobilePhone::EServiceActionDeactivate; - __PHSLOGSTRING("[PHS] CPSetCallDivertingDualAffectImpl::SetDivertingL: ECancelDiverting" ); - break; - default: - User::Leave( KErrArgument ); - break; - } - - //Start requesting for setting Divert. - iPhone.SetCallForwardingStatus( iStatus, iReason, iChangeInfo ); - StartRequestingL( KPsetRequestAlreadySet ); - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingDualAffectImpl::SetDivertingL" ); - } - -// --------------------------------------------------------------------------- -// RunL -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingDualAffectImpl::RunL() - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingDualAffectImpl::RunL" ); - - __ASSERT_ALWAYS( - iObserver != NULL, Panic( KPSNameOfClass, ECDRequestPanicNoObserver ) ); - - //Hide requesting note - does not leave when deleting a note. - iObserver->SetEngineContact( iDivert ); - iObserver->HandleCFRequestingL( EFalse, EFalse ); - - //Handle error case. - if ( iStatus != KErrNone ) - { - iObserver->HandleDivertingErrorL( iStatus.Int() ); - RequestCompleted( iStatus.Int() ); - return; - } - - iDivertStatus.Initialize(); - switch ( iCurrentReq ) - { - case EPSetChangeDivert: - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingDualAffectImpl::RunL: EPSetChangeDivert" ); - //Notify Observer - iDivertStatus.iStatus = PSetUtility::GetChangeInfoStatus( iChangeInfo.iAction ); - - // Check is done because of VOIP notification functionality(PSetNotesUI). - if ( iVoiceDivert ) - { - iDivertStatus.iServiceGroup = EServiceGroupVoice; - } - - iObserver->HandleDivertingChangedL( iDivertStatus, iPluralNotes ); - - //Notify observer. - HandleSANotificationL( - IsVMBXDivertL( iChangeInfo.iNumber.iTelNumber ), - iDivertStatus.iStatus ); - break; - } - case EPSetGetDivertStatus: - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingDualAffectImpl::RunL: EPSetGetDivertStatus" ); - - CMobilePhoneCFList* cfList = iCfInterrogator->RetrieveListL(); - CleanupStack::PushL( cfList ); - CMobilePhoneCFList* cleanedList = CMobilePhoneCFList::NewL(); - CleanupStack::PushL( cleanedList ); - - TInt numOfItems = cfList->Enumerate(); - TInt index = 0; - RMobilePhone::TMobilePhoneCFInfoEntryV1 cfEntry; - RMobilePhone::TMobilePhoneCFInfoEntryV1 copy; - iDivertStatus.iStatus = EDivertingStatusNotRegistered; - while( index < numOfItems ) - { - cfEntry = cfList->GetEntryL( index ); - iBsc = PSetUtility::ChangeToGSM( cfEntry.iServiceGroup ); - - if ( cfEntry.iStatus == RMobilePhone::ECallForwardingStatusActive ) - { - copy.iServiceGroup = cfEntry.iServiceGroup; - copy.iCondition = cfEntry.iCondition; - copy.iStatus = cfEntry.iStatus; - copy.iNumber = cfEntry.iNumber; - copy.iTimeout = cfEntry.iTimeout; - cleanedList->AddEntryL( copy ); - } - __PHSLOGSTRING1("[PHS] CPSetCallDivertingDualAffectImpl::RunL: EPSetGetDivertStatus iBsc: %d", iBsc ); - __PHSLOGSTRING1("[PHS] CPSetCallDivertingDualAffectImpl::RunL: EPSetGetDivertStatus iStatus: %d", cfEntry.iStatus ); - - /* Basic Service Codes above were removed from "if" statement below because they would - * cause divert indicator to appear with Data services. Dual activation SIM doesnt want to show - * Divert indication for video service.*/ - if ( iBsc == EAllTeleAndBearer || iBsc == EAllTele || iBsc == ETelephony || iBsc == EAltTele ) - { - // iVoiceDivert is set to true to ensure that the icons are updated in every case. - iVoiceDivert = ETrue; - if ( ( cfEntry.iStatus != RMobilePhone::ECallForwardingStatusNotRegistered ) - && ( cfEntry.iStatus != RMobilePhone::ECallForwardingStatusNotActive ) - && ( cfEntry.iStatus != RMobilePhone::ECallForwardingStatusNotProvisioned ) ) - { - iDivertStatus.iStatus = EDivertingStatusActive; - } - else - { - iDivertStatus.iStatus = EDivertingStatusNotRegistered; - } - - HandleSANotificationL( - IsVMBXDivertL( cfEntry.iNumber.iTelNumber ), - iDivertStatus.iStatus ); - } - index++; - } - if ( cleanedList->Enumerate() == 0 ) - { - iObserver->HandleDivertingStatusL( *cfList, iPluralNotes ); - } - else - { - iObserver->HandleDivertingStatusL( *cleanedList, iPluralNotes ); - } - CleanupStack::PopAndDestroy( 2 ); //cleanedList, cfList - cfList = NULL; - cleanedList = NULL; - iCFStatusCheck = EFalse; - break; - } - default: - Panic( KPSNameOfClass, ECDRequestPanicIncorrectRequest ); - break; - } - RequestCompleted( KErrNone ); - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingDualAffectImpl::RunL" ); - } - -// --------------------------------------------------------------------------- -// DoCancel -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingDualAffectImpl::DoCancel() - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingDualAffectImpl::DoCancel" ); - //Decide which request to cancel. - switch( iCurrentReq ) - { - case EPSetChangeDivert: - __PHSLOGSTRING("[PHS] DoCancel - EPSetChangeDivert" ); - iPhone.CancelAsyncRequest( EMobilePhoneSetCallForwardingStatus ); - break; - case EPSetGetDivertStatus: - __PHSLOGSTRING("[PHS] DoCancel - EPSetGetDivertStatus" ); - iCfInterrogator->Cancel(); - delete iCfInterrogator; - iCfInterrogator = NULL; - break; - default: - break; - } - - //Set current request to none. - iCurrentReq = EPSetNone; - iVoiceDivert = EFalse; - __PHSLOGSTRING("[PHS]<-- CPSetCallDivertingDualAffectImpl::DoCancel" ); - } - -// ----------------------------------------------------------------------------- -// Called if RunL Leaves -// ----------------------------------------------------------------------------- -// -TInt CPSetCallDivertingDualAffectImpl::RunError( TInt aError ) - { - __PHSLOGSTRING1("[PHS]--> CPSetCallDivertingDualAffectImpl::RunError aError: %d", aError ); - if ( ( iCurrentReq == EPSetGetDivertStatus || iCurrentReq == EPSetChangeDivert) - && iVoiceDivert ) - { - __PHSLOGSTRING("[PHS] RunError - HandleSANotificationL" ); - TRAP_IGNORE( HandleSANotificationL( EFalse, iDivertStatus.iStatus ) ); - } - - if ( iCurrentReq == EPSetGetDivertStatus ) - { - iCFStatusCheck = EFalse; - } - aError = KErrNone; - - //Set current request to none. - iCurrentReq = EPSetNone; - iVoiceDivert = EFalse; - __PHSLOGSTRING("[PHS]<-- CPSetCallDivertingDualAffectImpl::RunError" ); - return aError; - } - -// --------------------------------------------------------------------------- -// If unconditional voice divert is activated/cancelled, notifies observer, -// so that it can set on/off indicators. -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingDualAffectImpl::HandleSANotificationL( - TBool aVmbxDivert, TDivertingStatus& aCfStatus ) - { - __PHSLOGSTRING2("[PHS]--> CPSetCallDivertingDualAffectImpl::HandleSANotificationL aVmbxDivert: %d, aCfStatus: %d", aVmbxDivert, aCfStatus ); - TBool divertChanged = EFalse; - //If divert is not with voice, do not touch indicators. - if ( !iVoiceDivert ) - { - return; - } - - //Unconditional divert and all diverts - if ( iReason == RMobilePhone::ECallForwardingUnconditional || - iReason == RMobilePhone::ECallForwardingAllCases ) - { - if ( iCurrentReq == EPSetChangeDivert ) - { - //show indicator if, activation/registration, else hide it - //these are probably incorrect.... - divertChanged = - ( iChangeInfo.iAction == RMobilePhone::EServiceActionRegister || - iChangeInfo.iAction == RMobilePhone::EServiceActionActivate); - } - else - { - //show indicator if status is activated, hide for cancelled. - divertChanged = ( aCfStatus == EDivertingStatusActive ); - } - } - else - { - //if not unconditional, do not touch indicators. - return; - } - - CPsetSAObserver* systemObserver = CPsetSAObserver::NewL(); - CleanupStack::PushL( systemObserver ); - - TUnconditionalCFStatus status(KCFIndicatorUnknown); - - User::LeaveIfError( systemObserver->GetCurrentDivertStatus( status ) ); - - // If used SIM support dual activation and ALS is supported then do the check for - // current divert information. - if ( ( iIdCheck->DoesSIMSupportDualActivation() ) && - ( iAls != ( ENotSupportedLine ) ) ) - { - SetCurrentDivertInformation( status, divertChanged ); - } - - TCallDivertNotifySetting setting = CreateDivertNotifySetting( - status, divertChanged, aVmbxDivert, iBsc ); - - // Notify observer that Diverts have changed. - systemObserver->NotifyDivertChange( GetSAAls(), - setting, - -1 ); - - CleanupStack::PopAndDestroy( systemObserver ); - - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingDualAffectImpl::HandleSANotificationL" ); - } - -// --------------------------------------------------------------------------- -// Sets current divert information if used used SIM supports dual activation. -// --------------------------------------------------------------------------- -// -void CPSetCallDivertingDualAffectImpl::SetCurrentDivertInformation( - TUnconditionalCFStatus& aStatus, - const TBool aDivertChanged ) - { - TUnconditionalCFStatus previousDivertStatus = aStatus; - TSelectedLine alsLine = GetSAAls(); - - if (( iChangeInfo.iServiceGroup == RMobilePhone::EAllServices) && // - Service Code is All tele and bearer. - ( iCurrentReq == EPSetChangeDivert) && ( // - Change divert command issued. - ( iReason == RMobilePhone::ECallForwardingUnconditional ) || // - CallForwardingCondition is: CFU or - ( iReason == RMobilePhone::ECallForwardingAllCases ) ) ) // CFA. - { - switch ( alsLine ) - { - case EPrimaryLine: - { - if( aDivertChanged ) // ON - { - if(( previousDivertStatus == KCFNoCallsForwarded ) || // None/Line1 -> Line2 -> Both - ( previousDivertStatus == ( KCFVoiceForwarded | KCFForwardedOnLine1 ) )) - { - aStatus = KCFForwardedOnLine2; - } - } - else // OFF - { - if(( previousDivertStatus == ( KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ) ) || // Both/Line2 -> Line1 -> None - ( previousDivertStatus == KCFForwardedOnLine2 )) - { - aStatus = static_cast( KCFVoiceForwarded | KCFForwardedOnLine1 ); - } - } - break; - } - - case EAuxiliaryLine: - { - if( aDivertChanged ) // ON - { - if(( previousDivertStatus == KCFNoCallsForwarded ) || // None/Line2 -> Line 1 -> Both - ( previousDivertStatus == KCFForwardedOnLine2 )) - { - aStatus = static_cast( KCFVoiceForwarded | KCFForwardedOnLine1 ); - } - } - else // OFF - { - if(( previousDivertStatus == ( KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ) ) || // Both/Line1 -> Line 2 -> None - ( previousDivertStatus == ( KCFVoiceForwarded | KCFForwardedOnLine1 ) )) - { - aStatus = KCFForwardedOnLine2; - } - } - break; - } - - default: - break; - } - } - } - -// --------------------------------------------------------------------------- -// Returns ETrue if divert operation is to voice or to all operations. -// --------------------------------------------------------------------------- -// -TBool CPSetCallDivertingDualAffectImpl::SetVoiceDivert( - const TCallDivertSetting& aDivert, - const TBasicServiceGroups /*aBsc*/ ) - { - TBool retValue(EFalse); - if ( aDivert.iServiceGroup == EServiceGroupVoice || - aDivert.iServiceGroup == EServiceGroupAllTeleservices) - { - retValue = ETrue; - } - return retValue; - } - -// --------------------------------------------------------------------------- -// Gets Als information. -// --------------------------------------------------------------------------- -// -TSelectedLine CPSetCallDivertingDualAffectImpl::GetSAAls() - { - __PHSLOGSTRING("[PHS]--> CPSetCallDivertingDualAffectImpl::GetSAAls" ); - __PHSLOGSTRING2("[PHS] iAls: %d iBsc: %d", iAls, iBsc ); - TSelectedLine alsValue = ENotSupportedLine; - switch ( iAls ) - { - case ESSSettingsAlsNotSupported: - alsValue = ENotSupportedLine; - break; - case ESSSettingsAlsPrimary: - iChangeInfo.iServiceGroup == RMobilePhone::EAuxVoiceService - ? ( alsValue = EAuxiliaryLine ) - : ( alsValue = EPrimaryLine ); - break; - case ESSSettingsAlsAlternate: - iChangeInfo.iServiceGroup == RMobilePhone::EAuxVoiceService - ? ( alsValue = EAuxiliaryLine ) - : ( alsValue = EPrimaryLine ); - break; - default: - alsValue = ENotSupportedLine; - break; - } - - // If user checks/activates divert to line which is not selected currently than we have - // to change returned alsvalue accordinly, if this is not done divert icon status is updated to wrong status. - // Example case: Line 2 active user activates divert to line 1: **21*phonenumber*11#. - if ( iBsc == EAltTele && iAls == ESSSettingsAlsPrimary ) - { - __PHSLOGSTRING("[PHS] CPSetCallDivertingDualAffectImpl::GetSAAls - Line 2 divert activation/check from Line 1" ); - alsValue = EAuxiliaryLine; - } - else if ( iBsc == ETelephony && iAls == ESSSettingsAlsAlternate ) - { - __PHSLOGSTRING("[PHS] CPSetCallDivertingDualAffectImpl::GetSAAls - Line 1 divert activation/check from Line 2" ); - alsValue = EPrimaryLine; - } - - __PHSLOGSTRING1("[PHS] CPSetCallDivertingDualAffectImpl::GetSAAls: alsValue: %d", alsValue ); - __PHSLOGSTRING("[PHS] <--CPSetCallDivertingDualAffectImpl::GetSAAls" ); - return alsValue; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PSetRefreshHandlerImpl.cpp --- a/cellular/telephonysettings/src/PSetRefreshHandlerImpl.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,284 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: The Refresh handler to inform refresses. -* -*/ - - - -// INCLUDE FILES -#include "psetrefreshhandlerimpl.h" -#include -#include -#include -#include -#include "phonesettingslogger.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPSetRefreshHandlerImpl::CPSetRefreshHandlerImpl -// -// C++ constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -CPSetRefreshHandlerImpl::CPSetRefreshHandlerImpl() - { - } - - -// ----------------------------------------------------------------------------- -// CPSetRefreshHandlerImpl::ConstructL -// -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPSetRefreshHandlerImpl::ConstructL() - { - __PHSLOGSTRING("[PHS]--> CPSetRefreshHandlerImpl::ConstructL"); - iCsp = CPsetCustomerServiceProfile::NewL(); - - iSSSetRefContainer = CSSSettingsRefreshContainer::NewL(); - iSSSetRefHandler = &iSSSetRefContainer->RefreshHandler(); - __PHSLOGSTRING("[PHS] <--CPSetRefreshHandlerImpl::ConstructL"); - } - - -// ----------------------------------------------------------------------------- -// CPSetRefreshHandlerImpl::NewL -// -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPSetRefreshHandlerImpl* CPSetRefreshHandlerImpl::NewL() - { - CPSetRefreshHandlerImpl* self = new( ELeave ) CPSetRefreshHandlerImpl; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - - -// ----------------------------------------------------------------------------- -// CPSetRefreshHandlerImpl::~CPSetRefreshHandlerImpl -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPSetRefreshHandlerImpl::~CPSetRefreshHandlerImpl() - { - iObserver = NULL; - - iSSSetRefHandler = NULL; - delete iSSSetRefContainer; - iSSSetRefContainer = NULL; - - delete iCsp; - iCsp = NULL; - } - - -// ----------------------------------------------------------------------------- -// CPSetRefreshHandlerImpl::NotifyFileChangeL -// -// -// ----------------------------------------------------------------------------- -// -void CPSetRefreshHandlerImpl::NotifyFileChangeL( - MSSSettingsRefreshObserver& aObserver, - TSatElementaryFiles aObservedFiles, - TSatRefreshType aObservedRefreshType ) - { - __PHSLOGSTRING("[PHS]--> CPSetRefreshHandlerImpl::NotifyFileChangeL"); - iObserver = &aObserver; - - iSSSetRefHandler->NotifyFileChangeL( - *this, - aObservedFiles, - aObservedRefreshType ); - __PHSLOGSTRING("[PHS] <--CPSetRefreshHandlerImpl::NotifyFileChangeL"); - } - - -// ----------------------------------------------------------------------------- -// CPSetRefreshHandlerImpl::CancelNotify -// -// -// ----------------------------------------------------------------------------- -// -void CPSetRefreshHandlerImpl::CancelNotify() - { - iObserver = NULL; - - iSSSetRefHandler->CancelNotify(); - } - - -// ----------------------------------------------------------------------------- -// CPSetRefreshHandlerImpl::ChangedCspSettings -// -// -// ----------------------------------------------------------------------------- -// -TInt CPSetRefreshHandlerImpl::ChangedCspSettings( - TPSetChangedCspSetting& aChangedCspSettings, - TPSetChangedCspSetting& aNewValues ) - { - __PHSLOGSTRING("[PHS]--> CPSetRefreshHandlerImpl::ChangedCspSettings"); - RMobilePhone::TMobilePhoneCspFileV1 cspSettings; - RMobilePhone::TMobilePhoneCspFileV1Pckg cspSettingsPckg ( cspSettings ); - RMobilePhone::TMobilePhoneCspFileV1 cspValues; - RMobilePhone::TMobilePhoneCspFileV1Pckg cspValuePckg ( cspValues ); - - TInt err = iSSSetRefHandler->ChangedCspTable( - cspSettingsPckg, - cspValuePckg ); - - if ( err == KErrNone ) - { - // First reset the parameters to contain nothing. - TInt changedSettings = EPSetNoChangedSetting; - TInt newValues = EPSetNoChangedSetting; - - - // Call waiting support. - if ( iCsp->CheckIfCWSupported( ( RMobilePhone::TCspCallCompletion ) - cspSettings.iCallCompletionServices ) ) - { - // Call waiting settings have changed. - changedSettings += EPSetCW; - // Find the new value. - if ( iCsp-> CheckIfCWSupported( ( RMobilePhone::TCspCallCompletion ) - cspValues.iCallCompletionServices ) ) - { - newValues += EPSetCW; - } - } - - // Call barring support. - if ( iCsp->CheckIfCBSupported( ( RMobilePhone::TCspCallRestriction ) - cspSettings.iCallRestrictionServices ) ) - { - // Call barring settings have changed. - changedSettings += EPSetCB; - - // Find the new value. - if ( iCsp->CheckIfCBSupported( ( RMobilePhone::TCspCallRestriction ) - cspValues.iCallRestrictionServices ) ) - { - newValues += EPSetCB; - } - } - - // Call forwarding support. - if ( iCsp->CheckIfCFSupported( ( RMobilePhone::TCspCallOffering ) - cspSettings.iCallOfferingServices ) ) - { - // Call forwarding settings have changed. - changedSettings += EPSetCF; - - // Find the new value. - if ( iCsp->CheckIfCFSupported( ( RMobilePhone::TCspCallOffering ) - cspValues.iCallOfferingServices ) ) - { - newValues += EPSetCF; - } - } - - // ALS support. - if ( iCsp->CheckIfAlsSupported( ( RMobilePhone::TCspCPHSTeleservices ) - cspSettings.iCphsTeleservices ) ) - { - // ALS settings have changed. - changedSettings += EPSetALS; - - // Find the new value. - if ( iCsp->CheckIfAlsSupported( ( RMobilePhone::TCspCPHSTeleservices ) - cspValues.iCphsTeleservices ) ) - { - newValues += EPSetALS; - } - } - - // Network selection support. - if ( iCsp->CheckIfNetworkSelectionSupported( ( - RMobilePhone::TCspValueAdded ) cspSettings.iValueAddedServices ) ) - { - // Network selection support settings have changed. - changedSettings += EPSetNetSelSup; - - // Find the new value. - if ( iCsp->CheckIfNetworkSelectionSupported( ( - RMobilePhone::TCspValueAdded ) cspValues.iValueAddedServices ) ) - { - newValues += EPSetNetSelSup; - } - } - - // Set the changed values to user parameter. - aChangedCspSettings = ( TPSetChangedCspSetting ) changedSettings; - aNewValues = ( TPSetChangedCspSetting ) newValues; - } - - __PHSLOGSTRING1("[PHS] CPSetRefreshHandlerImpl::ChangedCspSettings: err: %d", err); - __PHSLOGSTRING("[PHS] <--CPSetRefreshHandlerImpl::ChangedCspSettings"); - return err; - } - -// ----------------------------------------------------------------------------- -// CPSetRefreshHandlerImpl::AllowRefresh -// -// -// ----------------------------------------------------------------------------- -// -TBool CPSetRefreshHandlerImpl::AllowRefresh( - const TSatRefreshType aType, - const TSatElementaryFiles aFiles ) - { - TBool allow = ETrue; - - if ( iObserver ) - { - allow = iObserver->AllowRefresh( - aType, - aFiles ); - } - - return allow; - } - -// ----------------------------------------------------------------------------- -// CPSetRefreshHandlerImpl::Refresh -// -// -// ----------------------------------------------------------------------------- -// -void CPSetRefreshHandlerImpl::Refresh( - const TSatRefreshType aType, - const TSatElementaryFiles aFiles ) - { - if ( iObserver ) - { - iObserver->Refresh( - aType, - aFiles ); - } - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PSetSubscriberIdCheck.cpp --- a/cellular/telephonysettings/src/PSetSubscriberIdCheck.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Implementation of CPSetSubscriberIdCheck class. -* -*/ - - -// INCLUDE FILES -#include "psetsubscriberidcheck.h" - -_LIT( KRogersImsi, "30272" ); -const TInt KMinImsiLength = 5; - -// ============================ MEMBER FUNCTIONS =============================== - -// --------------------------------------------------------------------------- -// First phase constructor -// --------------------------------------------------------------------------- -// -CPSetSubscriberIdCheck* CPSetSubscriberIdCheck::NewL( ) - { - CPSetSubscriberIdCheck* self = new ( ELeave ) CPSetSubscriberIdCheck( ); - return self; - } - -// ----------------------------------------------------------------------------- -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPSetSubscriberIdCheck::CPSetSubscriberIdCheck() - { - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -CPSetSubscriberIdCheck::~CPSetSubscriberIdCheck() - { - } - -// --------------------------------------------------------------------------- -// Check if used SIM support dual activation. -// --------------------------------------------------------------------------- -// -TBool CPSetSubscriberIdCheck::DoesSIMSupportDualActivation() - { - TBool result = EFalse; - TInt error = KErrNone; - - if( iImsi.Length() == 0 ) - { - RTelServer rTelServer; - RTelServer::TPhoneInfo info; - RMobilePhone rMobilePhone; - TRequestStatus tRequestStatus; - - error = rTelServer.Connect(); - if( error == KErrNone ) - { - error = rTelServer.GetPhoneInfo( 0, info ); - if( error == KErrNone ) - { - error = rMobilePhone.Open( rTelServer, info.iName ); - if( error == KErrNone ) - { - rMobilePhone.GetSubscriberId( tRequestStatus, iImsi ); - User::WaitForRequest( tRequestStatus ); - error = tRequestStatus.Int(); - rMobilePhone.Close(); - } - } - rTelServer.Close(); - } - } - - if(( iImsi.Length() >= KMinImsiLength ) && ( error == KErrNone )) - { - if( iImsi.Left( KMinImsiLength ).Compare( KRogersImsi ) == 0 ) - { - result = ETrue; - } - } - - return result; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PSetUtility.cpp --- a/cellular/telephonysettings/src/PSetUtility.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,374 +0,0 @@ -/* -* Copyright (c) 2003 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: Utility class to switch between ETEL internal enumerations and -* codes defined in the GSM standard. -* -*/ - - -// INCLUDE FILES -#include "psetutility.h" -#include -#include "phonesettingslogger.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// --------------------------------------------------------------------------- -// -// Translates given basic service code from code used in GSM standards to -// ETEL internal code. -// --------------------------------------------------------------------------- -// -RMobilePhone::TMobileService PSetUtility::ChangeToEtelInternal( const TBasicServiceGroups& aBsc ) - { - switch ( aBsc ) - { - case EAllTeleAndBearer: - return RMobilePhone::EAllServices; - case EAllTele: - return RMobilePhone::EAllTele; - case ETelephony: - return RMobilePhone::ETelephony; - case EAllDataTele: - return RMobilePhone::EAllDataTele; - case EFax: - return RMobilePhone::EFaxService; - case ESms: - return RMobilePhone::EShortMessageService; - case EAllDataExSms: - return RMobilePhone::EAllDataExSms; - case EAllTeleExcSms: - return RMobilePhone::EAllTeleExcSms; - case EAllPlmnTele: - return RMobilePhone::EAllPlmnTele; - case EPlmnTele1: - return RMobilePhone::EPlmnTele1; - case EPlmnTele2: - return RMobilePhone::EPlmnTele2; - case EPlmnTele3: - return RMobilePhone::EPlmnTele3; - case EPlmnTele4: - return RMobilePhone::EPlmnTele4; - case EPlmnTele5: - return RMobilePhone::EPlmnTele5; - case EPlmnTele6: - return RMobilePhone::EPlmnTele6; - case EPlmnTele7: - return RMobilePhone::EPlmnTele7; - case EPlmnTele8: - return RMobilePhone::EPlmnTele8; - case EPlmnTele9: - return RMobilePhone::EPlmnTele9; - case EPlmnTeleA: - return RMobilePhone::EPlmnTeleA; - case EPlmnTeleB: - return RMobilePhone::EPlmnTeleB; - case EPlmnTeleC: - return RMobilePhone::EPlmnTeleC; - case EPlmnTeleD: - return RMobilePhone::EPlmnTeleD; - case EPlmnTeleE: - return RMobilePhone::EPlmnTeleE; - case EPlmnTeleF: - return RMobilePhone::EPlmnTeleF; - case EAllBearer: - return RMobilePhone::EAllBearer; - case EAllAsync: - return RMobilePhone::EAllAsync; - case EAllSync: - return RMobilePhone::EAllSync; - case ESyncData: - return RMobilePhone::ESyncData; - case EAsyncData: - return RMobilePhone::EAsyncData; - case EPacketData: - return RMobilePhone::EPacketDataService; - case EPadAccess: - return RMobilePhone::EPadAccess; - case EAllPlmnBearer: - return RMobilePhone::EAllPlmnBearer; - case EPlmnBearerServ1: - return RMobilePhone::EPlmnBearerServ1; - case EPlmnBearerServ2: - return RMobilePhone::EPlmnBearerServ2; - case EPlmnBearerServ3: - return RMobilePhone::EPlmnBearerServ3; - case EPlmnBearerServ4: - return RMobilePhone::EPlmnBearerServ4; - case EPlmnBearerServ5: - return RMobilePhone::EPlmnBearerServ5; - case EPlmnBearerServ6: - return RMobilePhone::EPlmnBearerServ6; - case EPlmnBearerServ7: - return RMobilePhone::EPlmnBearerServ7; - case EPlmnBearerServ8: - return RMobilePhone::EPlmnBearerServ8; - case EPlmnBearerServ9: - return RMobilePhone::EPlmnBearerServ9; - case EPlmnBearerServA: - return RMobilePhone::EPlmnBearerServA; - case EPlmnBearerServB: - return RMobilePhone::EPlmnBearerServB; - case EPlmnBearerServC: - return RMobilePhone::EPlmnBearerServC; - case EPlmnBearerServD: - return RMobilePhone::EPlmnBearerServD; - case EPlmnBearerServE: - return RMobilePhone::EPlmnBearerServE; - case EPlmnBearerServF: - return RMobilePhone::EPlmnBearerServF; - case EAltTele: - return RMobilePhone::EAuxVoiceService; - case EUnknown: - default: - return RMobilePhone::EServiceUnspecified; - } - } - -// --------------------------------------------------------------------------- -// -// Translates given basic service code from ETEL internal code to -// the ones used in GSM standards. -// --------------------------------------------------------------------------- -// -TBasicServiceGroups PSetUtility::ChangeToGSM( const RMobilePhone::TMobileService& aBsc ) - { - switch ( aBsc ) - { - case RMobilePhone::EAllServices: - return EAllTeleAndBearer; - case RMobilePhone::EAllTele: - return EAllTele; - case RMobilePhone::EVoiceService: - case RMobilePhone::ETelephony: - return ETelephony; - case RMobilePhone::EAllDataTele: - return EAllDataTele; - case RMobilePhone::EFaxService: - return EFax; - case RMobilePhone::EShortMessageService: - return ESms; - case RMobilePhone::EAllDataExSms: - return EAllDataExSms; - case RMobilePhone::EAllTeleExcSms: - return EAllTeleExcSms; - case RMobilePhone::EAllPlmnTele: - return EAllPlmnTele; - case RMobilePhone::EPlmnTele1: - return EPlmnTele1; - case RMobilePhone::EPlmnTele2: - return EPlmnTele2; - case RMobilePhone::EPlmnTele3: - return EPlmnTele3; - case RMobilePhone::EPlmnTele4: - return EPlmnTele4; - case RMobilePhone::EPlmnTele5: - return EPlmnTele5; - case RMobilePhone::EPlmnTele6: - return EPlmnTele6; - case RMobilePhone::EPlmnTele7: - return EPlmnTele7; - case RMobilePhone::EPlmnTele8: - return EPlmnTele8; - case RMobilePhone::EPlmnTele9: - return EPlmnTele9; - case RMobilePhone::EPlmnTeleA: - return EPlmnTeleA; - case RMobilePhone::EPlmnTeleB: - return EPlmnTeleB; - case RMobilePhone::EPlmnTeleC: - return EPlmnTeleC; - case RMobilePhone::EPlmnTeleD: - return EPlmnTeleD; - case RMobilePhone::EPlmnTeleE: - return EPlmnTeleE; - case RMobilePhone::EPlmnTeleF: - return EPlmnTeleF; - case RMobilePhone::EAllBearer: - return EAllBearer; - case RMobilePhone::ECircuitDataService: - case RMobilePhone::EAllAsync: - return EAllAsync; - case RMobilePhone::EAllSync: - return EAllSync; - case RMobilePhone::ESyncData: - return ESyncData; - case RMobilePhone::EAsyncData: - return EAsyncData; - case RMobilePhone::EPacketDataService: - case RMobilePhone::EPacketData: - return EPacketData; - case RMobilePhone::EPadAccess: - return EPadAccess; - case RMobilePhone::EAllPlmnBearer: - return EAllPlmnBearer; - case RMobilePhone::EPlmnBearerServ1: - return EPlmnBearerServ1; - case RMobilePhone::EPlmnBearerServ2: - return EPlmnBearerServ2; - case RMobilePhone::EPlmnBearerServ3: - return EPlmnBearerServ3; - case RMobilePhone::EPlmnBearerServ4: - return EPlmnBearerServ4; - case RMobilePhone::EPlmnBearerServ5: - return EPlmnBearerServ5; - case RMobilePhone::EPlmnBearerServ6: - return EPlmnBearerServ6; - case RMobilePhone::EPlmnBearerServ7: - return EPlmnBearerServ7; - case RMobilePhone::EPlmnBearerServ8: - return EPlmnBearerServ8; - case RMobilePhone::EPlmnBearerServ9: - return EPlmnBearerServ9; - case RMobilePhone::EPlmnBearerServA: - return EPlmnBearerServA; - case RMobilePhone::EPlmnBearerServB: - return EPlmnBearerServB; - case RMobilePhone::EPlmnBearerServC: - return EPlmnBearerServC; - case RMobilePhone::EPlmnBearerServD: - return EPlmnBearerServD; - case RMobilePhone::EPlmnBearerServE: - return EPlmnBearerServE; - case RMobilePhone::EPlmnBearerServF: - return EPlmnBearerServF; - case RMobilePhone::EAuxVoiceService: - case RMobilePhone::EAltTele: - return EAltTele; - case RMobilePhone::EServiceUnspecified: - default: - return EUnknown; - } - } - -// --------------------------------------------------------------------------- -// Returns change information status, status is provided as TDivertingStatus, -// not as TSY's MAdvGsmLineForwarding enumeration. -// -// --------------------------------------------------------------------------- -// -TDivertingStatus PSetUtility::GetChangeInfoStatus( - RMobilePhone::TMobilePhoneServiceAction& aAction ) - { - switch ( aAction ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - case RMobilePhone::EServiceActionActivate: - case RMobilePhone::EServiceActionRegister: - return EDivertingStatusActive; - case RMobilePhone::EServiceActionDeactivate: - return EDivertingStatusInactive; - case RMobilePhone::EServiceActionErase: - return EDivertingStatusNotRegistered; - default: - return EDivertingStatusUnknown; - } - } - -// --------------------------------------------------------------------------- -// -// Returns divert reason, reason is provided as TSY's TCallForwardingReasonGet. -// -// --------------------------------------------------------------------------- -// -RMobilePhone::TMobilePhoneCFCondition PSetUtility::GetDivertReason( - TCallDivertingCondition aCondition ) - { - switch ( aCondition ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - case EDivertConditionAllConditionalCases: - return RMobilePhone::ECallForwardingAllConditionalCases; - case EDivertConditionAllCalls: - return RMobilePhone::ECallForwardingAllCases; - case EDivertConditionUnconditional: - return RMobilePhone::ECallForwardingUnconditional; - case EDivertConditionBusy: - return RMobilePhone::ECallForwardingBusy; - case EDivertConditionNoReply: - return RMobilePhone::ECallForwardingNoReply; - case EDivertConditionNotReachable: - return RMobilePhone::ECallForwardingNotReachable; - default: - return RMobilePhone::ECallForwardingUnspecified; - } - } - -// --------------------------------------------------------------------------- -// -// Returns divert reason -// -// --------------------------------------------------------------------------- -// -TCallDivertingCondition PSetUtility::GetDivertReason( - RMobilePhone::TMobilePhoneCFCondition aCondition ) - { - switch ( aCondition ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - case RMobilePhone::ECallForwardingAllConditionalCases: - return EDivertConditionAllConditionalCases; - case RMobilePhone::ECallForwardingAllCases: - return EDivertConditionAllCalls; - case RMobilePhone::ECallForwardingUnconditional: - return EDivertConditionUnconditional; - case RMobilePhone::ECallForwardingBusy: - return EDivertConditionBusy; - case RMobilePhone::ECallForwardingNoReply: - return EDivertConditionNoReply; - case RMobilePhone::ECallForwardingNotReachable: - default: - return EDivertConditionNotReachable; - } - } - -// --------------------------------------------------------------------------- -// Verify that ALS is really used. -// --------------------------------------------------------------------------- -// -RMobilePhone::TMobileService PSetUtility::VerifyAltLineUseL() - { - __PHSLOGSTRING("[PHS]--> PSetUtility::VerifyAltLineUseL"); - RSSSettings* ssSettings = new (ELeave) RSSSettings; - CleanupStack::PushL( ssSettings ); - TInt usedLine; - User::LeaveIfError( ssSettings->Open() ); - User::LeaveIfError( ssSettings->Get( ESSSettingsAls, usedLine ) ); - __PHSLOGSTRING1("[PHS] PSetUtility::VerifyAltLineUseL: usedLine: %d", usedLine ); - - if ( usedLine == ESSSettingsAlsNotSupported ) - { - User::Leave( KErrNotSupported ); - } - ssSettings->Close(); - CleanupStack::PopAndDestroy(); - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - __PHSLOGSTRING("[PHS] <--PSetUtility::VerifyAltLineUseL"); - - return RMobilePhone::EAuxVoiceService; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PsetCSP.cpp --- a/cellular/telephonysettings/src/PsetCSP.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,315 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: -* Customer Service Profile wrapper layer for SsSettings. -* PsetCustomerServiceProfile is a class that access CSP through -* SSsettings. It is in Phone Settings to provide easier access -* to CSP values. Whole class should only be used if CSP is supported. -* -* -*/ - - -//INCLUDE FILES -#include "psetcsp.h" -#include -#include "phonesettingslogger.h" - -// MEMBER FUNCTIONS -// --------------------------------------------------------------------------- -// -// Symbian OS 1st phase constructor. -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetCustomerServiceProfile* CPsetCustomerServiceProfile::NewL() - { - CPsetCustomerServiceProfile* self = new ( ELeave ) CPsetCustomerServiceProfile(); - return self; - } - -// --------------------------------------------------------------------------- -// -// Destructor -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetCustomerServiceProfile::~CPsetCustomerServiceProfile() - { - //If GS has failed to create CSP due to low memory, check it. - if ( iCsp ) - { - iCsp->Close(); - } - delete iCsp; - iCsp = NULL; - } - -// --------------------------------------------------------------------------- -// -// Checks if Call Waiting is to be supported. -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetCustomerServiceProfile::IsCWSupported( TBool& aSupport ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - __PHSLOGSTRING("[PHS]--> CPsetCustomerServiceProfile::IsCWSupported"); - RMobilePhone::TCspCallCompletion params; - TInt retVal = iCsp->CspCallCompletion( params ); - aSupport = EFalse; - - //if bit7 is 1, call waiting is not available through CSP - if ( retVal == KErrNone ) - { - aSupport = CheckIfCWSupported( params ); - } - - __PHSLOGSTRING1("[PHS] CPsetCustomerServiceProfile::IsCWSupported: aSupport: %d", aSupport); - __PHSLOGSTRING("[PHS] <--CPsetCustomerServiceProfile::IsCWSupported"); - return retVal; - } - -// --------------------------------------------------------------------------- -// -// Checks if Call Barring is to be supported. -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetCustomerServiceProfile::IsCBSupported( TBool& aSupport ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - __PHSLOGSTRING("[PHS]--> CPsetCustomerServiceProfile::IsCBSupported"); - RMobilePhone::TCspCallRestriction params; - TInt retVal = iCsp->CspCallRestriction( params ); - aSupport = EFalse; - - //if params more than 1, barring is available through CSP - if ( retVal == KErrNone ) - { - aSupport = CheckIfCBSupported( params ); - } - - __PHSLOGSTRING1("[PHS] CPsetCustomerServiceProfile::IsCBSupported: aSupport: %d", aSupport); - __PHSLOGSTRING("[PHS] <--CPsetCustomerServiceProfile::IsCBSupported"); - return retVal; - } - -// --------------------------------------------------------------------------- -// -// Checks if Call Forwarding is to be supported. -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetCustomerServiceProfile::IsCFSupported( TBool& aSupport ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - __PHSLOGSTRING("[PHS]--> CPsetCustomerServiceProfile::IsCFSupported"); - RMobilePhone::TCspCallOffering params; - TInt retVal = iCsp->CspCallOffering( params ); - aSupport = EFalse; - - //if all of first five bits are 1, divert is available through CSP - if ( retVal == KErrNone ) - { - aSupport = CheckIfCFSupported( params ); - } - - __PHSLOGSTRING1("[PHS] CPsetCustomerServiceProfile::IsCFSupported: aSupport: %d", aSupport); - __PHSLOGSTRING("[PHS] <--CPsetCustomerServiceProfile::IsCFSupported"); - return retVal; - } - -// --------------------------------------------------------------------------- -// -// Checks if Alternate Line is to be supported. -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetCustomerServiceProfile::IsALSSupported( TBool& aSupport ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - __PHSLOGSTRING("[PHS]--> CPsetCustomerServiceProfile::IsALSSupported"); - RMobilePhone::TCspCPHSTeleservices params; - TInt retVal = iCsp->CspCPHSTeleservices( params ); - aSupport = EFalse; - - if ( retVal == KErrNone ) - { - aSupport = CheckIfAlsSupported( params ); - } - - __PHSLOGSTRING1("[PHS] CPsetCustomerServiceProfile::IsALSSupported: aSupport: %d", aSupport); - __PHSLOGSTRING("[PHS] <--CPsetCustomerServiceProfile::IsALSSupported"); - return retVal; - } - - -// --------------------------------------------------------------------------- -// -// Open CSP from SIM. -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetCustomerServiceProfile::OpenCSProfileL() - { - __PHSLOGSTRING("[PHS]--> CPsetCustomerServiceProfile::OpenCSProfileL"); - if ( !iCsp ) - { - iCsp = new (ELeave) RCustomerServiceProfileCache; - } - TInt error = iCsp->Open(); - - __PHSLOGSTRING1("[PHS] CPsetCustomerServiceProfile::OpenCSProfileL: error: %d", error); - __PHSLOGSTRING("[PHS] <--CPsetCustomerServiceProfile::OpenCSProfileL"); - return error; - } - -// --------------------------------------------------------------------------- -// -// Checks if Manual Network Selection is to be supported. -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetCustomerServiceProfile::IsNetworkSelectionSupported( - TBool& aSupport ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - __PHSLOGSTRING("[PHS]--> CPsetCustomerServiceProfile::IsNetworkSelectionSupported"); - RMobilePhone::TCspValueAdded params; - TInt retVal = iCsp->CspCPHSValueAddedServices( params ); - aSupport = EFalse; - - if ( retVal == KErrNone ) - { - aSupport = CheckIfNetworkSelectionSupported( params ); - } - - __PHSLOGSTRING1("[PHS] CPsetCustomerServiceProfile::IsNetworkSelectionSupported: aSupport: %d", aSupport); - __PHSLOGSTRING("[PHS] <--CPsetCustomerServiceProfile::IsNetworkSelectionSupported"); - return retVal; - } - - - -// --------------------------------------------------------------------------- -// CPsetCustomerServiceProfile::CheckIfCWSupported -// -// -// --------------------------------------------------------------------------- -// -TBool CPsetCustomerServiceProfile::CheckIfCWSupported( - const RMobilePhone::TCspCallCompletion aContainer ) const - { - return IsSupported( aContainer, RMobilePhone::KCspCW ); - } - -// --------------------------------------------------------------------------- -// CPsetCustomerServiceProfile::CheckIfCBSupported -// -// -// --------------------------------------------------------------------------- -// -TBool CPsetCustomerServiceProfile::CheckIfCBSupported( - const RMobilePhone::TCspCallRestriction aContainer ) const - { - return ( - IsSupported( aContainer, RMobilePhone::KCspBICRoam )|| - IsSupported( aContainer, RMobilePhone::KCspBAIC ) || - IsSupported( aContainer, RMobilePhone::KCspBOICexHC ) || - IsSupported( aContainer, RMobilePhone::KCspBOIC ) || - IsSupported( aContainer, RMobilePhone::KCspBOAC ) ); - } - -// --------------------------------------------------------------------------- -// CPsetCustomerServiceProfile::CheckIfCFSupported -// -// -// --------------------------------------------------------------------------- -// -TBool CPsetCustomerServiceProfile::CheckIfCFSupported( - const RMobilePhone::TCspCallOffering aContainer ) const - { - return ( - IsSupported( aContainer, RMobilePhone::KCspCFU ) || - IsSupported( aContainer, RMobilePhone::KCspCFB ) || - IsSupported( aContainer, RMobilePhone::KCspCFNRc ) || - IsSupported( aContainer, RMobilePhone::KCspCFNRy ) ); - } - -// --------------------------------------------------------------------------- -// CPsetCustomerServiceProfile::CheckIfAlsSupported -// -// -// --------------------------------------------------------------------------- -// -TBool CPsetCustomerServiceProfile::CheckIfAlsSupported( - const RMobilePhone::TCspCPHSTeleservices aContainer ) const - { - return IsSupported( aContainer, RMobilePhone::KCspALS ); - } - -// --------------------------------------------------------------------------- -// CPsetCustomerServiceProfile::CheckIfNetworkSelectionSupported -// -// -// --------------------------------------------------------------------------- -// -TBool CPsetCustomerServiceProfile::CheckIfNetworkSelectionSupported( - const RMobilePhone::TCspValueAdded aContainer ) const - { - return IsSupported( aContainer, RMobilePhone::KCspPLMNMode ); - } - - -// --------------------------------------------------------------------------- -// CPsetCustomerServiceProfile::IsSupported -// -// -// --------------------------------------------------------------------------- -// -TBool CPsetCustomerServiceProfile::IsSupported( - const TInt aContainer, - const TInt aFeature ) const - { - __PHSLOGSTRING("[PHS]--> CPsetCustomerServiceProfile::IsSupported"); - TBool supported = EFalse; - - if ( ( aContainer & aFeature ) != 0 ) - { - supported = ETrue; - } - - __PHSLOGSTRING1("[PHS] CPsetCustomerServiceProfile::IsSupported: supported: %d", supported); - __PHSLOGSTRING("[PHS] <--CPsetCustomerServiceProfile::IsSupported"); - return supported; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PsetCallBarring.cpp --- a/cellular/telephonysettings/src/PsetCallBarring.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,702 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Call barring class. Sets and gets call barring setting. -* -* -*/ - - -// Include Files -#include -#include -#include "mpsetrequestobs.h" -#include "psetcallbarring.h" -#include "psettelephony.h" -#include "psetpanic.h" -#include "psetconstants.h" -#include "psetutility.h" -#include "phonesettingslogger.h" - -// CONSTANTS -_LIT( KPSNameOfClass, "CPsetCallBarring" ); - -// MEMBER FUNCTIONS -//============================================================================= -// --------------------------------------------------------------------------- -// -// 1st phase constructor. -// -// --------------------------------------------------------------------------- -// -CPsetCallBarring* CPsetCallBarring::NewL( MPsetBarringObserver& aObserver, - RMobilePhone& aPhone ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallBarring::NewL"); - CPsetCallBarring* self = new( ELeave ) CPsetCallBarring( aPhone ); - - CleanupStack::PushL( self ); - self->ConstructL( aObserver ); - CleanupStack::Pop(); - - __PHSLOGSTRING("[PHS] <--CPsetCallBarring::NewL"); - return self; - } - -// --------------------------------------------------------------------------- -// -// 2nd phase constructor. -// -// --------------------------------------------------------------------------- -// -void CPsetCallBarring::ConstructL( MPsetBarringObserver& aObserver ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - __PHSLOGSTRING("[PHS]--> CPsetCallBarring::ConstructL"); - iLine = new ( ELeave ) RMobileLine; - this->SetObserver( aObserver ); - CActiveScheduler::Add( this ); - - //Check which line is used, or if ALS is not active. - TInt usedLine = ESSSettingsAlsNotSupported; - - iSsSettings = new (ELeave) RSSSettings; - User::LeaveIfError( iSsSettings->Open() ); - TRAPD( err, iSsSettings->Register( ESSSettingsAls, *this ) ); - if ( err == KErrNone ) - { - iSsSettings->Get( ESSSettingsAls, usedLine ); - } - - iAls = static_cast ( usedLine ); - - __PHSLOGSTRING("[PHS] <--CPsetCallBarring::ConstructL"); - } - -// --------------------------------------------------------------------------- -// Destructor. -// Closes line subsession. -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetCallBarring::~CPsetCallBarring() - { - Cancel(); - if ( iLine ) - { - iLine->Close(); - } - delete iLine; - - if ( iSsSettings ) - { - iSsSettings->Cancel( ESSSettingsAls, *this ); - iSsSettings->Close(); - } - delete iSsSettings; - - iReqObserver = NULL; - - delete iCbStatusInterrogator; - iCbStatusInterrogator = NULL; - } - -// --------------------------------------------------------------------------- -// -// If SsSettings notifies of settings change, copy new value to member variable. -// -// --------------------------------------------------------------------------- -void CPsetCallBarring::PhoneSettingChanged( - TSSSettingsSetting aSetting, TInt aNewValue ) - { - if ( aSetting == ESSSettingsAls ) - { - iAls = static_cast (aNewValue); - } - } - -// --------------------------------------------------------------------------- -// -// Validates used bsc, if EUnknown, updates to real value -// -// --------------------------------------------------------------------------- -// -void CPsetCallBarring::ValidateBsc( TBasicServiceGroups& aBsc ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallBarring::ValidateBsc" ); - if ( aBsc == EUnknown ) - // if bsc is unknown, update it - { - if ( iAls == ESSSettingsAlsAlternate ) - { - aBsc = EAltTele; - } - else - { - aBsc = ETelephony; - } - } - else - // If no specific line is indicated - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele ) - { - // if ALS is used, use 89 bsc - if ( iAls == ESSSettingsAlsAlternate ) - { - aBsc = EAltTele; - } - } - } - __PHSLOGSTRING("[PHS] <--CPsetCallBarring::ValidateBsc" ); - } - -// --------------------------------------------------------------------------- -// -// Sets barring setting on network. -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCallBarring::SetBarringL( - const TCallBarringSetting& aBarring, TBasicServiceGroups aBsc ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallBarring::SetBarringL"); - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - - __PHSLOGSTRING1("[PHS] SetBarringL: Barring Group: %d", aBarring.iServiceGroup); - //Opens the correct basic service group->contradicting custom tsy. - CPsetTelephony::CheckLineModeL( aBarring.iServiceGroup, &iPhone, iLine ); - - // Copy received information to member and local variables. - // Note if alternate line selected then iServiceGroup changes in iBarringParameters - // and iChangeSetting iSericeGroup has old information. - iChangeSetting = aBarring; - - __PHSLOGSTRING1("[PHS] SetBarringL: Password: %S", &aBarring.iPassword); - __PHSLOGSTRING1("[PHS] SetBarringL: Settings: %d", aBarring.iSetting); - - ValidateBsc( aBsc ); - - if ( aBsc == EAltTele ) - { - iBarringParameters.iServiceGroup = PSetUtility::VerifyAltLineUseL(); - } - - iBarringParameters.iPassword = aBarring.iPassword; - iBarringParameters.iAction = SetBarringAction( aBarring.iSetting ); - iBarringParameters.iServiceGroup = PSetUtility::ChangeToEtelInternal( aBsc ); - - __PHSLOGSTRING1("[PHS] SetBarringL: Program: %d", aBarring.iType); - - // Start to request barring change. - iPhone.SetCallBarringStatus( - iStatus, - SetBarringProgram( aBarring.iType ), - iBarringParameters ); - - StartRequestingL( EPSetRequestChangeBarring ); - __PHSLOGSTRING("[PHS] <--CPsetCallBarring::SetBarringL"); - } - -// --------------------------------------------------------------------------- -// -// Gets barring status from network. -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCallBarring::GetBarringStatusL( const TServiceGroup aGroup, - const TBarringProgram aMode ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallBarring::GetBarringStatusL"); - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - - __PHSLOGSTRING1("[PHS] GetBarringStatusL: Barring Group: %d", aGroup); - __PHSLOGSTRING1("[PHS] GetBarringStatusL: Program: %d", aMode); - - CPsetTelephony::CheckLineModeL( aGroup, &iPhone, iLine ); - - // Start to request for barring status. - iCbStatusInterrogator = CRetrieveMobilePhoneCBList::NewL( iPhone ); - iCbStatusInterrogator->Start( iStatus, SetBarringProgram( aMode ) ); - - StartRequestingL( EPSetRequestGetStatus ); - __PHSLOGSTRING("[PHS] <--CPsetCallBarring::GetBarringStatusL"); - } - -// --------------------------------------------------------------------------- -// -// Cancels current request pending on requester. Return Values: TInt error code -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetCallBarring::CancelCurrentRequest() - { - __PHSLOGSTRING("[PHS]--> CPsetCallBarring::CancelCurrentRequest"); - // Set PSUI so that correct observer is used and hide requesting note. - // When interrupting a note, does *not leave*. - // This needs to be done first, since notes must be cleared from screen - // even though request is not active. - iObserver->SetEngineContact( this ); - // Does not leave - TRAPD( err, iObserver->HandleCBRequestingL( EFalse, ETrue ) ); - - if ( !IsActive() || err != KErrNone ) - { - return KErrGeneral; - } - - // Request has been already sent to network before this cancel method - // will be called. Calling DoCancel in this phase causes that e.g. "Barring - // activated" note is not shown to user even barring has been set active. - // Cancel can be done only to EPSetRequestGetStatus. It does not cause - // any harm if status is not shown to user when quit is pressed. - if ( iCurrentReq == EPSetRequestGetStatus ) - { - Cancel(); - } - __PHSLOGSTRING("[PHS] <--CPsetCallBarring::CancelCurrentRequest"); - - return KErrNone; - } - -// --------------------------------------------------------------------------- -// -// C++ constructor. -// -// --------------------------------------------------------------------------- -// -CPsetCallBarring::CPsetCallBarring - ( RMobilePhone& aPhone ) : CActive( EPriorityStandard ), - iPhone ( aPhone ) - { - } - -// --------------------------------------------------------------------------- -// -// Returns correct type of barring program. -// -// --------------------------------------------------------------------------- -// -RMobilePhone::TMobilePhoneCBCondition CPsetCallBarring::SetBarringProgram( - TBarringProgram aMode ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallBarring::SetBarringProgram"); - __PHSLOGSTRING1("[PHS] SetBarringProgram: Program: %d", aMode); - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone::TMobilePhoneCBCondition barringType = - RMobilePhone::EBarUnspecified; - switch ( aMode ) - { - case EBarringTypeAllOutgoingServices: - barringType = RMobilePhone::EBarAllOutgoingServices; - break; - case EBarringTypeAllIncomingServices: - barringType = RMobilePhone::EBarAllIncomingServices; - break; - case EBarringTypeAllServices: - case EBarringTypeAllBarrings: - barringType = RMobilePhone::EBarAllCases; - break; - case EBarringTypeAllOutgoing: - barringType = RMobilePhone::EBarAllOutgoing; - break; - case EBarringTypeOutgoingInternational: - barringType = RMobilePhone::EBarOutgoingInternational; - break; - case EBarringTypeOutgoingInternationalExceptToHomeCountry: - barringType = RMobilePhone::EBarOutgoingInternationalExHC; - break; - case EBarringTypeAllIncoming: - barringType = RMobilePhone::EBarAllIncoming; - break; - case EBarringTypeIncomingWhenRoaming: - barringType = RMobilePhone::EBarIncomingRoaming; - break; - default: - Panic( KPSNameOfClass, ECBUnknownBarringSetting ); - break; - } - - __PHSLOGSTRING("[PHS] <--CPsetCallBarring::SetBarringProgram"); - return barringType; - } - -// --------------------------------------------------------------------------- -// -// Changes both barring and common passwords. -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCallBarring::ChangePasswordL( - RMobilePhone::TMobilePhonePasswordChangeV2& aPwds, TBool aIsBarringPw ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallBarring::ChangePasswordL"); - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - - RMobilePhone::TMobilePhonePasswordChangeV2Pckg pwdPckg ( aPwds ); - - if ( aIsBarringPw ) - { - iPhone.SetSSPassword( iStatus, pwdPckg, KPsetBarringService ); - SetRequestStatus( EPSetRequestChangeBarringPwd ); - } - else - { - iPhone.SetSSPassword( iStatus, pwdPckg, KPsetAllSSServices ); - SetRequestStatus( EPSetRequestChangeCommonPwd ); - } - - StartRequestingL( KPsetRequestAlreadySet ); - __PHSLOGSTRING("[PHS] <--CPsetCallBarring::ChangePasswordL"); - } -// --------------------------------------------------------------------------- -// -// Verify and change barring password. -// DEPRECATED - calls the correct API -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCallBarring::ChangePasswordL( - RMobilePhone::TMobilePhonePasswordChangeV2& aPwds ) - { - ChangePasswordL( aPwds, ETrue ); - } - -// --------------------------------------------------------------------------- -// Sets request observer. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCallBarring::SetRequestObserver( MPsetRequestObserver* aObs ) - { - iReqObserver = aObs; - } - -// --------------------------------------------------------------------------- -// -// Sets observer member variable. -// -// --------------------------------------------------------------------------- -// -void CPsetCallBarring::SetObserver( MPsetBarringObserver& aObserver ) - { - iObserver = &aObserver; - } - -// --------------------------------------------------------------------------- -// -// Starts requesting -// -// --------------------------------------------------------------------------- -// -void CPsetCallBarring::StartRequestingL( const TInt& aRequest ) - { - if ( aRequest != KPsetRequestAlreadySet ) - { - SetRequestStatus( static_cast ( aRequest ) ); - } - - SetActive(); - - iObserver->SetEngineContact( this ); - - CleanupLeavePushL(); - iObserver->HandleCBRequestingL( ETrue, EFalse ); - CleanupStack::Pop(); // CleanupCancelPushL - } - -// --------------------------------------------------------------------------- -// -// Returns ETrue, if plural notes hould be shown. -// -// --------------------------------------------------------------------------- -// -TBool CPsetCallBarring::GetPlurality() - { - if ( iChangeSetting.iSetting == ECancelBarring && - ( iChangeSetting.iType == EBarringTypeAllBarrings || - iChangeSetting.iType == EBarringTypeAllIncomingServices || - iChangeSetting.iType == EBarringTypeAllOutgoingServices || - iChangeSetting.iType == EBarringTypeAllServices ) ) - { - return ETrue; - } - - else - { - return EFalse; - } - } - -// --------------------------------------------------------------------------- -// -// Push object into cleanupstack to catch leaving. -// -// --------------------------------------------------------------------------- -// -void CPsetCallBarring::CleanupLeavePushL() - { - CleanupStack::PushL( TCleanupItem( DoHandleLeave, this ) ); - } - -// --------------------------------------------------------------------------- -// -// Object has caused a leave. -// -// --------------------------------------------------------------------------- -// -void CPsetCallBarring::DoHandleLeave( TAny* aAny ) - { - REINTERPRET_CAST( CPsetCallBarring*, aAny )->HandleLeave(); - } - -// --------------------------------------------------------------------------- -// -// Things to do when leave occurs. -// -// --------------------------------------------------------------------------- -// -void CPsetCallBarring::HandleLeave() - { - CancelCurrentRequest(); - } - -// --------------------------------------------------------------------------- -// Inform the request observer that request has been completed. -// --------------------------------------------------------------------------- -// -void CPsetCallBarring::RequestCompleted( const TInt& aError ) - { - if ( aError != KErrNone ) - { - SetRequestStatus( static_cast (aError) ); - } - ClearParams(); - - if ( iReqObserver ) - { - iReqObserver->RequestComplete(); - } - } - -// --------------------------------------------------------------------------- -// Empties member variables. -// --------------------------------------------------------------------------- -// -void CPsetCallBarring::ClearParams() - { - SetRequestStatus( EPSetRequestNone ); - iBarringParameters.iServiceGroup = RMobilePhone::EServiceUnspecified; - iBarringParameters.iAction = RMobilePhone::EServiceActionUnspecified; - iBarringParameters.iPassword = KNullDesC; - } - -// --------------------------------------------------------------------------- -// Return barring action. -// --------------------------------------------------------------------------- -// -RMobilePhone::TMobilePhoneServiceAction CPsetCallBarring::SetBarringAction( - const TBarringSetting& aSetting ) - { - if ( aSetting == ECancelBarring ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - return RMobilePhone::EServiceActionDeactivate; - } - else - { - return RMobilePhone::EServiceActionActivate; - } - } - -// --------------------------------------------------------------------------- -// Handles inquiry results. -// --------------------------------------------------------------------------- -// -void CPsetCallBarring::HandleInquiryResultL() - { - __PHSLOGSTRING("[PHS]--> CPsetCallBarring::HandleInquiryResultL"); - TUint8 arrayOfBsc[KPSetNumberOfBsc]; - arrayOfBsc[0] = KPSetUnusedValue; - - CMobilePhoneCBList* cbStatusList = iCbStatusInterrogator->RetrieveListL(); - CleanupStack::PushL( cbStatusList ); - TBarringStatus status = EBarringStatusInactive; - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone::TMobilePhoneCBInfoEntryV1 cbInfo; - TInt entries = cbStatusList->Enumerate(); - __PHSLOGSTRING1("[PHS] HandleInquiryResultL: Entry count: %d", entries); - TInt i(0); - TInt cbArray(0); - // If alternate line in use then only als line service information is shown. - if ( iAls == ESSSettingsAlsAlternate ) - { - while ( entries > i ) - { - cbInfo = cbStatusList->GetEntryL( i ); - - if ( cbInfo.iStatus == RMobilePhone::ECallBarringStatusActive && cbInfo.iServiceGroup == RMobilePhone::EAuxVoiceService ) - { - __PHSLOGSTRING1("[PHS] ALS: iServiceGroup: %d", cbInfo.iServiceGroup); - status = EBarringStatusActive; - arrayOfBsc[cbArray] = static_cast - ( PSetUtility::ChangeToGSM( cbInfo.iServiceGroup ) ); - cbArray++; - } - i++; - } - } - else // All other services than alternate line service is allowed to show when primary line is active. - { - while ( entries > i ) - { - cbInfo = cbStatusList->GetEntryL( i ); - - if ( cbInfo.iStatus == RMobilePhone::ECallBarringStatusActive && cbInfo.iServiceGroup != RMobilePhone::EAuxVoiceService ) - { - __PHSLOGSTRING1("[PHS] iServiceGroup: %d", cbInfo.iServiceGroup); - status = EBarringStatusActive; - arrayOfBsc[cbArray] = static_cast - ( PSetUtility::ChangeToGSM( cbInfo.iServiceGroup ) ); - cbArray++; - } - i++; - } - } - - arrayOfBsc[cbArray] = KPSetUnusedValue; - CleanupStack::PopAndDestroy( cbStatusList ); - iObserver->HandleBarringModeStatusL( arrayOfBsc, status ); - __PHSLOGSTRING("[PHS] <--CPsetCallBarring::HandleInquiryResultL"); - } - -// --------------------------------------------------------------------------- -// Update the request status - both internally and to observers. -// --------------------------------------------------------------------------- -// -void CPsetCallBarring::SetRequestStatus( TPSetBarringRequest aStatus ) - { - iCurrentReq = aStatus; - if ( iReqObserver ) - { - iReqObserver->RequestStatusChanged( aStatus ); - } - } - -// --------------------------------------------------------------------------- -// -// Cancels pending request. -// -// --------------------------------------------------------------------------- -// -void CPsetCallBarring::DoCancel() - { - switch ( iCurrentReq ) - { - case EPSetRequestChangeBarring: - iPhone.CancelAsyncRequest( - EMobilePhoneSetCallBarringStatus ); - break; - case EPSetRequestGetStatus: - iCbStatusInterrogator->Cancel(); - delete iCbStatusInterrogator; - iCbStatusInterrogator = NULL; - break; - case EPSetRequestChangeBarringPwd: - case EPSetRequestChangeCommonPwd: - iPhone.CancelAsyncRequest( EMobilePhoneSetSSPassword ); - break; - default: - break; - } - ClearParams(); - } - - -// --------------------------------------------------------------------------- -// -// Handles completed request. If error occured, calls error handling -// function of the observer, otherwise does nothing. -// -// --------------------------------------------------------------------------- -// -void CPsetCallBarring::RunL() - { - __PHSLOGSTRING("[PHS]--> CPsetCallBarring::RunL"); - __ASSERT_ALWAYS( iObserver != NULL, - Panic( KPSNameOfClass, ECBNoObserver ) ); - - //Hide requesting note - does not leave when deleting a note. - iObserver->SetEngineContact( this ); - iObserver->HandleCBRequestingL( EFalse, EFalse ); - - //Error situations - if ( iStatus != KErrNone ) - { - iObserver->HandleBarringErrorL( iStatus.Int() ); - RequestCompleted( iStatus.Int() ); - return; - } - - switch ( iCurrentReq ) - { - case EPSetRequestChangeBarring: - { - __PHSLOGSTRING("[PHS] EPSetRequestChangeBarring"); - TBarringStatus status = ( TBarringStatus ) iChangeSetting.iSetting; - TBool plural = GetPlurality(); - __PHSLOGSTRING1("[PHS] Barring status: %d", status ); - __PHSLOGSTRING1("[PHS] Plurality: %d", plural ); - iObserver->HandleBarringModeChangedL( iChangeSetting.iType, - status, plural ); - break; - } - case EPSetRequestGetStatus: - { - __PHSLOGSTRING("[PHS] EPSetRequestGetStatus"); - HandleInquiryResultL(); - break; - } - case EPSetRequestChangeBarringPwd: - case EPSetRequestChangeCommonPwd: - __PHSLOGSTRING("[PHS] EPSetRequestChange"); - iObserver->CbPasswordChangedL( ETrue ); - break; - default: - Panic ( KPSNameOfClass, ECBUnknownRequest ); - break; - } - RequestCompleted( KErrNone ); - __PHSLOGSTRING("[PHS] <--CPsetCallBarring::RunL"); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PsetCallDiverting.cpp --- a/cellular/telephonysettings/src/PsetCallDiverting.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,296 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Call diverting class. Sets and gets call diverting status. -* -* -*/ - - -// Include Files -#include -#include -#include -#include -#include -#include - -#include "psetcalldiverting.h" -#include "psetcontainer.h" -#include "mpsetdivertobs.h" -#include "psettelephony.h" -#include "psetpanic.h" -#include "phonesettingslogger.h" - -#include "psetcalldivertingcreator.h" -#include "mcalldiverting.h" - -// MEMBER FUNCTIONS -// --------------------------------------------------------------------------- -// First phase constructor -// --------------------------------------------------------------------------- -EXPORT_C CPsetCallDiverting* CPsetCallDiverting::NewL( MPsetDivertObserver& aObserver, - RMobilePhone& aPhone ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::NewL"); - CPsetCallDiverting* self = new ( ELeave ) CPsetCallDiverting( aPhone ); - CleanupStack::PushL( self ); - self->ConstructL( aObserver ); - CleanupStack::Pop( self ); - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::NewL"); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -EXPORT_C CPsetCallDiverting::~CPsetCallDiverting() - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::~CPsetCallDiverting"); - iReqObserver = NULL; - - delete iRepository; - - delete iDivert; - iDivert = NULL; - __PHSLOGSTRING("[PHS]<-- CPsetCallDiverting::~CPsetCallDiverting"); - } - -// --------------------------------------------------------------------------- -// Symbian OS constructor -// --------------------------------------------------------------------------- -void CPsetCallDiverting::ConstructL( MPsetDivertObserver& aObserver ) - { - __PHSLOGSTRING("[PHS] -->CPsetCallDiverting::ConstructL" ); - iDivert= CPSetCallDivertingCreator::CreateCallDivertingL( aObserver, iPhone, this ); - iRepository = CRepository::NewL( KCRUidCallForwarding ); - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::ConstructL" ); - } - -// --------------------------------------------------------------------------- -// C++ constructor -// --------------------------------------------------------------------------- -// -CPsetCallDiverting::CPsetCallDiverting( RMobilePhone& aPhone ) : - iPhone ( aPhone ) - { - } - -// --------------------------------------------------------------------------- -// Sets diverting. -// --------------------------------------------------------------------------- -EXPORT_C void CPsetCallDiverting::SetDivertingL( - const TCallDivertSetting& aDivert, - TBasicServiceGroups aBsc, TBool /*aVmbx*/ ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::SetDivertingL"); - __PHSLOGSTRING1("[PHS] CPsetCallDiverting::SetDivertingL: aDivert.iCondition: %d", aDivert.iCondition ); - __PHSLOGSTRING1("[PHS] CPsetCallDiverting::SetDivertingL: aDivert.iStatus: %d", aDivert.iStatus ); - __PHSLOGSTRING1("[PHS] CPsetCallDiverting::SetDivertingL: aDivert.iServiceGroup: %d", aDivert.iServiceGroup ); - iDivert->SetDivertingL( aDivert, aBsc ); - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::SetDivertingL" ); - } - -// --------------------------------------------------------------------------- -// Request diverting status from network asynhronously. -// --------------------------------------------------------------------------- -EXPORT_C void CPsetCallDiverting::GetDivertingStatusL( - const TServiceGroup aServiceGroup, - const TCallDivertingCondition aCondition, - TBasicServiceGroups aBsc ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::GetDivertingStatusL" ); - __PHSLOGSTRING1("[PHS] CPsetCallDiverting::GetDivertingStatusL: aServiceGroup: %d", aServiceGroup ); - __PHSLOGSTRING1("[PHS] CPsetCallDiverting::GetDivertingStatusL: aCondition: %d", aCondition ); - __PHSLOGSTRING1("[PHS] CPsetCallDiverting::GetDivertingStatusL: aBsc: %d", aBsc ); - iDivert->GetDivertingStatusL( aServiceGroup, aCondition, aBsc ); - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::GetDivertingStatusL" ); - } - -// --------------------------------------------------------------------------- -// Cancels pending request. -// --------------------------------------------------------------------------- -EXPORT_C TInt CPsetCallDiverting::CancelCurrentRequest() - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::CancelCurrentRequest" ); - TInt err(KErrNone); - err = iDivert->CancelCurrentRequest(); - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::CancelCurrentRequest" ); - return err; - } - -// --------------------------------------------------------------------------- -// The default (last forwarded-to) numbers can be retrieved through this method. -// The amount of available numbers is returned. -// Relies on default numbers having right order in shared data. -// --------------------------------------------------------------------------- -EXPORT_C TInt CPsetCallDiverting::GetDefaultNumbersL( - CDesC16ArrayFlat& aDefNumbers ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::GetDefaultNumbersL" ); - return iDivert->GetNumbersFromSharedDataL( NULL, aDefNumbers ); - } - -// --------------------------------------------------------------------------- -// Sets new default number the the default numbers list, erases the oldest one. -// --------------------------------------------------------------------------- -EXPORT_C TInt CPsetCallDiverting::SetNewDefaultNumberL( TDes& aNumber ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::SetNewDefaultNumberL" ); - TInt retValue(KErrNone); - retValue = iDivert->SetNewDefaultNumberL( aNumber ); - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::SetNewDefaultNumberL" ); - return retValue; //return value is not used - } - -// --------------------------------------------------------------------------- -// Gets the timer value index related to "cfnry" from shared data -// In error cases, return default value (30). -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetCallDiverting::GetTimerValueL() - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::GetTimerValueL" ); - TInt timerValue(0); - timerValue = iDivert->GetTimerValueL(); - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::GetTimerValueL" ); - return timerValue; - } - -// --------------------------------------------------------------------------- -// Sets the default time for "divert when not answered" to .ini file -// --------------------------------------------------------------------------- -EXPORT_C TInt CPsetCallDiverting::SetTimerValueL( const TInt& aValue ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::SetTimerValueL" ); - TInt retValue(KErrNone); - retValue = iDivert->SetTimerValueL( aValue ); - __PHSLOGSTRING1("[PHS] <--CPsetCallDiverting::SetTimerValueL: retValue: %d", retValue ); - return retValue; - } - -// --------------------------------------------------------------------------- -// Swaps the most recently used number to first in the shared data file. -// --------------------------------------------------------------------------- -EXPORT_C void CPsetCallDiverting::SwapDefaultNumberL( const TInt& aLocation ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::SwapDefaultNumberL" ); - iDivert->SwapDefaultNumberL( aLocation ); - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::SwapDefaultNumberL" ); - } - -// --------------------------------------------------------------------------- -// Saves fax call diverting number to shareddata. -// --------------------------------------------------------------------------- -EXPORT_C TInt CPsetCallDiverting::SetUsedDataNumberL( TTelNumber& aNumber ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::SetUsedDataNumberL" ); - TInt retValue = KErrNone; - retValue = iDivert->SaveKey( KSettingsCFUsedDataNumber, aNumber ); - __PHSLOGSTRING1("[PHS] CPsetCallDiverting::SetUsedDataNumberL: aNumber: %S", &aNumber ); - __PHSLOGSTRING1("[PHS] CPsetCallDiverting::SetUsedDataNumberL: retValue: %d", retValue ); - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::SetUsedDataNumberL" ); - return retValue; - } - -// --------------------------------------------------------------------------- -// Returns used number for data call forwardings. -// --------------------------------------------------------------------------- -EXPORT_C HBufC* CPsetCallDiverting::GetUsedDataNumberLC( ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::GetUsedDataNumberLC" ); - TTelNumber readNumber; - - iRepository->Get( KSettingsCFUsedDataNumber, readNumber ); - - __PHSLOGSTRING1("[PHS] CPsetCallDiverting::GetUsedDataNumberLC: readNumber: %S", &readNumber ); - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::GetUsedDataNumberLC" ); - - return readNumber.AllocLC(); - } - -// --------------------------------------------------------------------------- -// Saves fax call diverting number to shareddata. -// --------------------------------------------------------------------------- -EXPORT_C TInt CPsetCallDiverting::SetUsedFaxNumberL( TTelNumber& aNumber ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::SetUsedFaxNumberL" ); - TInt retValue = KErrNone; - - retValue = iDivert->SaveKey( KSettingsCFUsedFaxNumber, aNumber ); - - __PHSLOGSTRING1("[PHS] CPsetCallDiverting::SetUsedFaxNumberL: aNumber: %S", &aNumber ); - __PHSLOGSTRING1("[PHS] CPsetCallDiverting::SetUsedFaxNumberL: retValue: %d", retValue ); - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::SetUsedFaxNumberL" ); - - return retValue; - } - -// --------------------------------------------------------------------------- -// Returns used number for fax call forwardings. -// --------------------------------------------------------------------------- -EXPORT_C HBufC* CPsetCallDiverting::GetUsedFaxNumberLC() - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::GetUsedFaxNumberLC" ); - TTelNumber readNumber; - - iRepository->Get( KSettingsCFUsedFaxNumber, readNumber ); - - __PHSLOGSTRING1("[PHS] CPsetCallDiverting::GetUsedFaxNumberLC: readNumber: %S", &readNumber ); - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::GetUsedFaxNumberLC" ); - - return readNumber.AllocLC(); - } - -// --------------------------------------------------------------------------- -// Sets request observer. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCallDiverting::SetRequestObserver( MPsetRequestObserver* aObs ) - { - iReqObserver = aObs; - iDivert->SetRequestObserver(aObs); - } - -// --------------------------------------------------------------------------- -// Queries for voice mail box number -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCallDiverting::VoiceMailQueryL( TDes& /*aTelNumber*/ ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::VoiceMailQueryL" ); - - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::VoiceMailQueryL" ); - } - -// --------------------------------------------------------------------------- -// Queries for voice mail box number -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCallDiverting::VideoMailQueryL( TDes& /*aTelNumber*/ ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallDiverting::VideoMailQueryL" ); - - __PHSLOGSTRING("[PHS] <--CPsetCallDiverting::VideoMailQueryL" ); - } - -// --------------------------------------------------------------------------- -// Opens Vmbx. Leaves vmbx to the stack. -// --------------------------------------------------------------------------- -// -TInt CPsetCallDiverting::OpenVideoMailboxLC( TDes& /*aTelNumber*/, RVmbxNumber& /*aVmbx*/ ) - { - return 0; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PsetCallWaiting.cpp --- a/cellular/telephonysettings/src/PsetCallWaiting.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,495 +0,0 @@ -/* -* Copyright (c) 2002 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: CPsetCallWaiting is call waiting SS setting abstraction. -* -* -*/ - - -// Include Files -#include "psetcallwaiting.h" -#include "mpsetcallwaitingobs.h" -#include "nwdefs.h" -#include "psetpanic.h" -#include "psetconstants.h" -#include "mpsetrequestobs.h" -#include "psetutility.h" -#include "phonesettingslogger.h" - -#include "psetvariationproxy.h" -#include - -// CONSTANTS -_LIT( KPSNameOfClass, "CPsetCallWaiting" ); - -// MEMBER FUNCTIONS -// --------------------------------------------------------------------------- -// -// Symbian OS 1st phase constructor. -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetCallWaiting* CPsetCallWaiting::NewL( - RMobilePhone& aPhone, MPsetCallWaitingObserver& aObserver ) - { - CPsetCallWaiting* self = new ( ELeave ) CPsetCallWaiting( aPhone ); - CleanupStack::PushL( self ); - self->ConstructL(aObserver); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// -// 2nd phase constructor. -// -// --------------------------------------------------------------------------- -// -void CPsetCallWaiting::ConstructL(MPsetCallWaitingObserver& aObserver) - { - __PHSLOGSTRING("[PHS]--> CPsetCallWaiting::ConstructL" ); - this->SetPsuiObserver( aObserver ); - - //Check which line is used, or if ALS is not active. - TInt usedLine = ESSSettingsAlsNotSupported; - - iSsSettings = new (ELeave) RSSSettings; - User::LeaveIfError( iSsSettings->Open() ); - TRAPD( err, iSsSettings->Register( ESSSettingsAls, *this ) ); - if ( err == KErrNone ) - { - iSsSettings->Get( ESSSettingsAls, usedLine ); - } - - CPSetVariationProxy* variationProxy = - CPSetVariationProxy::NewL( KCRUidPhoneSettings, KPSetCallWaiting ); - CleanupStack::PushL( variationProxy ); - iCallWaitingDistinquishEnabled = variationProxy->IsFeatureEnabled( KCallWaitingDistiquishNotProvisioned ); - CleanupStack::PopAndDestroy( variationProxy ); - - iAls = static_cast ( usedLine ); - __PHSLOGSTRING1("[PHS] CPsetCallWaiting::ConstructL: usedLine: %d", usedLine ); - __PHSLOGSTRING("[PHS] <--CPsetCallWaiting::ConstructL" ); - } - -// --------------------------------------------------------------------------- -// -// C++ constructor. -// -// --------------------------------------------------------------------------- -// -CPsetCallWaiting::CPsetCallWaiting( RMobilePhone& aPhone) - : CActive( EPriorityStandard ), - iPhone ( aPhone ) - { - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// -// Destructor -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetCallWaiting::~CPsetCallWaiting() - { - Cancel(); - iReqObserver = NULL; - - if ( iSsSettings ) - { - iSsSettings->Cancel( ESSSettingsAls, *this ); - iSsSettings->Close(); - } - delete iSsSettings; - iSsSettings = NULL; - - delete iCwInterrogator; - iCwInterrogator = NULL; - } - -// --------------------------------------------------------------------------- -// -// If SsSettings notifies of settings change, copy new value to member variable. -// -// --------------------------------------------------------------------------- -void CPsetCallWaiting::PhoneSettingChanged( TSSSettingsSetting aSetting, TInt aNewValue ) - { - __PHSLOGSTRING("[PHS]--> PhoneSettingChanged::ValidateBsc" ); - if ( aSetting == ESSSettingsAls ) - { - iAls = static_cast (aNewValue); - } - __PHSLOGSTRING("[PHS] <--PhoneSettingChanged::ValidateBsc" ); - } - -// --------------------------------------------------------------------------- -// -// Validates used bsc, if EUnknown, updates to real value -// -// --------------------------------------------------------------------------- -// -void CPsetCallWaiting::ValidateBsc( TBasicServiceGroups& aBsc ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallWaiting::ValidateBsc" ); - if ( aBsc == EUnknown ) - // if bsc is unknown, update it - { - if ( iAls == ESSSettingsAlsAlternate ) - { - aBsc = EAltTele; - } - else - { - aBsc = ETelephony; - } - } - else - // If no specific line is indicated - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele ) - { - // if ALS is used, use 89 bsc - if ( iAls == ESSSettingsAlsAlternate ) - { - aBsc = EAltTele; - } - } - } - __PHSLOGSTRING("[PHS] <--CPsetCallWaiting::ValidateBsc" ); - } - -// --------------------------------------------------------------------------- -// -// Sets call waiting. -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCallWaiting::SetCallWaitingL - ( TSetCallWaiting aSetting, TBasicServiceGroups aBsc ) - { - __PHSLOGSTRING("[PHS]--> CPsetCallWaiting::SetCallWaitingL"); - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone::TMobilePhoneServiceAction cwAction = - RMobilePhone::EServiceActionUnspecified; - - RMobilePhone::TMobileService cwBasicServiceGroup; - - ValidateBsc( aBsc ); - - if ( aBsc == EAltTele ) - { - cwBasicServiceGroup = PSetUtility::VerifyAltLineUseL(); - } - - cwBasicServiceGroup = PSetUtility::ChangeToEtelInternal( aBsc ); - - if ( aSetting == EActivateCallWaiting ) - { - cwAction = RMobilePhone::EServiceActionActivate; - } - else - { - cwAction = RMobilePhone::EServiceActionDeactivate; - } - - //Copy data to member variables. - iSetValue = aSetting; - - //Start requesting for setting CW. - iPhone.SetCallWaitingStatus( iStatus, cwBasicServiceGroup, cwAction); - - SetActive(); - SetRequestStatus( EPSetServiceRequestSetCallWaiting ); - - //Set PSUI so that correct observer is used and show requesting note. - CleanupLeavePushL(); - iObserver->SetEngineContact( *this ); - iObserver->HandleCWRequestingL( ETrue, EFalse ); - CleanupStack::Pop(); - __PHSLOGSTRING("[PHS] <--CPsetCallWaiting::SetCallWaitingL"); - } - -// --------------------------------------------------------------------------- -// -// Requests call waiting status. -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCallWaiting::GetCallWaitingStatusL() - { - __PHSLOGSTRING("[PHS]--> CPsetCallWaiting::GetCallWaitingStatusL"); - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - - SetRequestStatus( EPSetServiceRequestGetCallWaitingStatus ); - - //Start requesting for CW status. - iCwInterrogator = CRetrieveMobilePhoneCWList::NewL( iPhone ); - iCwInterrogator->Start( iStatus ); - - SetActive(); - - //Set PSUI so that correct observer is used and show requesting note. - CleanupLeavePushL(); - iObserver->SetEngineContact( *this ); - iObserver->HandleCWRequestingL( ETrue, EFalse ); - CleanupStack::Pop(); //CleanupLeavePushL - __PHSLOGSTRING("[PHS] <--CPsetCallWaiting::GetCallWaitingStatusL"); - } - -// --------------------------------------------------------------------------- -// -// Cancel process. -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetCallWaiting::CancelProcess() - { - // Set PSUI so that correct observer is used and hide requesting note. - // When interrupting a note, does not leave. - // This needs to be done first, since notes must be cleared from screen - // even though request is not active. - iObserver->SetEngineContact( *this ); - // Does not leave - TRAPD( err, iObserver->HandleCWRequestingL( EFalse, ETrue ) ); - - if ( !IsActive() || err != KErrNone ) - { - return KErrGeneral; - } - Cancel(); - - return KErrNone; - } - -// --------------------------------------------------------------------------- -// Sets request observer. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCallWaiting::SetRequestObserver( MPsetRequestObserver* aObs ) - { - iReqObserver = aObs; - } - -// --------------------------------------------------------------------------- -// -// Run active object. -// -// --------------------------------------------------------------------------- -// -void CPsetCallWaiting::RunL() - { - __PHSLOGSTRING("[PHS]--> CPsetCallWaiting::RunL"); - - __ASSERT_ALWAYS( iObserver, Panic( KPSNameOfClass, ECWPanicNoObserver ) ); - - // Set PSUI so that correct observer is used and hide requesting note. - // does not leave when deleting a note. - iObserver->SetEngineContact( *this ); - iObserver->HandleCWRequestingL( EFalse, EFalse ); - - if ( iStatus != KErrNone ) - { - iObserver->HandleCWErrorL( iStatus.Int() ); - RequestCompleted( iStatus.Int() ); - return; - } - - TUint8 arrayOfBsc[KPSetNumberOfBsc]; - switch ( iServiceRequest ) - { - case EPSetServiceRequestGetCallWaitingStatus: - { - __PHSLOGSTRING("[PHS] CPsetCallWaiting::RunL: EPSetServiceRequestGetCallWaitingStatus"); - CMobilePhoneCWList* cwStatusList = iCwInterrogator->RetrieveListL(); - CleanupStack::PushL( cwStatusList ); - TGetCallWaitingStatus status = EStatusUnknown; - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone::TMobilePhoneCWInfoEntryV1 cwInfo; - TInt entries = cwStatusList->Enumerate(); - TInt i = 0; - while ( entries > i) - { - cwInfo = cwStatusList->GetEntryL( i ); - if ( cwInfo.iStatus == RMobilePhone::ECallWaitingStatusActive ) - { - status = TGetCallWaitingStatus( cwInfo.iStatus ); - } - - if ( iCallWaitingDistinquishEnabled && status == EStatusUnknown - && cwInfo.iStatus != RMobilePhone::ECallWaitingStatusUnknown ) - { - // pass on the status if the current status is still - // unknown and the received status is not unknown - switch ( cwInfo.iStatus ) - { - case RMobilePhone::ECallWaitingStatusNotProvisioned: - { - status = EStatusNotProvisioned; - break; - } - - case RMobilePhone::ECallWaitingStatusNotAvailable: - { - status = EStatusNotAvailable; - break; - } - - default: - { - status = TGetCallWaitingStatus( cwInfo.iStatus ); - break; - } - } - } - - arrayOfBsc[i] = static_cast - ( PSetUtility::ChangeToGSM( cwInfo.iServiceGroup ) ); - i++; - } - arrayOfBsc[i++] = KPSetUnusedValue; - CleanupStack::PopAndDestroy( cwStatusList ); - iObserver->SetEngineContact( *this ); - iObserver->HandleCallWaitingGetStatusL( status, arrayOfBsc ); - } - break; - case EPSetServiceRequestSetCallWaiting: - __PHSLOGSTRING("[PHS] CPsetCallWaiting::RunL: EPSetServiceRequestSetCallWaiting"); - // Set PSUI so that correct observer is used and show note. - iObserver->SetEngineContact( *this ); - iObserver->HandleCallWaitingChangedL( iSetValue, iStatus.Int() ); - break; - default: - Panic( KPSNameOfClass, ECWPanicInvalidRequestMode ); - } - RequestCompleted( KErrNone ); - - __PHSLOGSTRING("[PHS] <--CPsetCallWaiting::RunL"); - } - -// --------------------------------------------------------------------------- -// -// Cancels active object. -// -// --------------------------------------------------------------------------- -// -void CPsetCallWaiting::DoCancel() - { - switch ( iServiceRequest ) - { - case EPSetServiceRequestGetCallWaitingStatus: - iCwInterrogator->Cancel(); - delete iCwInterrogator; - iCwInterrogator = NULL; - break; - case EPSetServiceRequestSetCallWaiting: - iPhone.CancelAsyncRequest( EMobilePhoneSetCallWaitingStatus ); - break; - default: - break; - } - SetRequestStatus( EPSetServiceRequestNone ); - } - -// --------------------------------------------------------------------------- -// -// Sets observer (member variable) -// -// --------------------------------------------------------------------------- -// -void CPsetCallWaiting::SetPsuiObserver( MPsetCallWaitingObserver& aObserver ) - { - iObserver = &aObserver; - iObserver->SetEngineContact( *this ); - } - -// --------------------------------------------------------------------------- -// -// Push object into cleanupstack to catch leaving. -// -// --------------------------------------------------------------------------- -// -void CPsetCallWaiting::CleanupLeavePushL() - { - CleanupStack::PushL( TCleanupItem( DoHandleLeave, this ) ); - } - -// --------------------------------------------------------------------------- -// -// Object has caused a leave. -// -// --------------------------------------------------------------------------- -// -void CPsetCallWaiting::DoHandleLeave( TAny* aAny ) - { - REINTERPRET_CAST( CPsetCallWaiting*, aAny )->HandleLeave(); - } - -// --------------------------------------------------------------------------- -// -// Things to do when leave occurs. -// -// --------------------------------------------------------------------------- -// -void CPsetCallWaiting::HandleLeave() - { - CancelProcess(); - } - -// --------------------------------------------------------------------------- -// Inform the request observer that request has been completed. -// --------------------------------------------------------------------------- -// -void CPsetCallWaiting::RequestCompleted( const TInt& aError ) - { - if ( aError != KErrNone ) - { - SetRequestStatus( static_cast (aError) ); - } - SetRequestStatus( EPSetServiceRequestNone ); - - if ( iReqObserver ) - { - iReqObserver->RequestComplete(); - } - } - -// --------------------------------------------------------------------------- -// Update the request status - both internally and to observers. -// --------------------------------------------------------------------------- -// -void CPsetCallWaiting::SetRequestStatus( TPSetServiceRequest aStatus ) - { - iServiceRequest = aStatus; - if ( iReqObserver ) - { - iReqObserver->RequestStatusChanged( aStatus ); - } - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PsetCli.cpp --- a/cellular/telephonysettings/src/PsetCli.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,412 +0,0 @@ -/* -* Copyright (c) 2002 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: CPsetCli is provides calling line identification SS. -* -* -*/ - - -//INCLUDE FILES -#include "psetcli.h" -#include "psetpanic.h" -#include "psetconstants.h" -#include "mpsetrequestobs.h" -#include -#include - -// CONSTANTS -_LIT( KPSNameOfClass, "CPsetCli" ); - -// MEMBER FUNCTIONS -// --------------------------------------------------------------------------- -// Symbian OS 1st phase Constructor. -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetCli* CPsetCli::NewL( RMobilePhone& aPhone, MPsetCliObserver& aObserver ) - { - CPsetCli* self = new ( ELeave ) CPsetCli( aPhone ); - CleanupStack::PushL( self ); - // Sets up TLS, must be done before FeatureManager is used. - FeatureManager::InitializeLibL(); - CleanupStack::Pop( self ); - self->SetObserver( aObserver ); - return self; - } - -// --------------------------------------------------------------------------- -// Destructor. -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetCli::~CPsetCli() - { - // Remove FeatureManager - FeatureManager::UnInitializeLib(); - Cancel(); - iReqObserver = NULL; - } - -// --------------------------------------------------------------------------- -// C++ Constructor. -// --------------------------------------------------------------------------- -// -CPsetCli::CPsetCli( RMobilePhone& aPhone ) : CActive( EPriorityStandard ), -iPhone( aPhone ) - { - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// Cancels all requests. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCli::CancelAll() - { - // Set PSUI so that correct observer is used and hide requesting note. - // When interrupting a note, does not leave. - // This needs to be done first, since notes must be cleared from screen - // even though request is not active. - iObserver->SetEngineContact( this ); - TRAPD( ignore, iObserver->HandleCliRequestingL( EFalse, ETrue ) ); - // Line below fixes armv5 warning. - ignore = ignore; - - if ( !IsActive() ) - { - return; - } - - Cancel(); - } - -// --------------------------------------------------------------------------- -// Requests for COLP mode. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCli::GetColpModeL() - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - IssueRequestL( RMobilePhone::EIdServiceConnectedPresentation ); - } - -// --------------------------------------------------------------------------- -// Requests for CLIP mode. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCli::GetClipModeL() - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - IssueRequestL( RMobilePhone::EIdServiceCallerPresentation ); - } - -// --------------------------------------------------------------------------- -// Requests for COLP mode. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCli::GetClirModeL() - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - IssueRequestL( RMobilePhone::EIdServiceCallerRestriction ); - } - -// --------------------------------------------------------------------------- -// Requests for COLR mode. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCli::GetColrModeL() - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - IssueRequestL( RMobilePhone::EIdServiceConnectedRestriction ); - } - -// --------------------------------------------------------------------------- -// Sets request observer. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCli::SetRequestObserver( MPsetRequestObserver* aObs ) - { - iReqObserver = aObs; - } - -// --------------------------------------------------------------------------- -// Make request to get CNAP status -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetCli::GetCnapL() - { - if ( FeatureManager::FeatureSupported( KFeatureIdPhoneCnap ) ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - IssueRequestL( RMobilePhone::EIdServiceCallerName ); - } - } - -//--------------------------------------------------------------------------- -// Handles completed request. -// -//--------------------------------------------------------------------------- -// -void CPsetCli::RunL() - { - __ASSERT_ALWAYS( iObserver, Panic( KPSNameOfClass, ECliNoObserver ) ); - TBool commonNotes = ETrue; - - //Hide requesting note - does not leave when deleting a note. - iObserver->SetEngineContact( this ); - iObserver->HandleCliRequestingL( EFalse, EFalse ); - if ( iStatus != KErrNone ) - { - iObserver->HandleCliErrorL( iStatus.Int() ); - RequestCompleted( iStatus.Int() ); - return; - } - - TPsuiCli type = EPsuiCliUnknown; - - switch ( iRequestedService ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - case RMobilePhone::EIdServiceConnectedRestriction: - switch ( iServiceStatus ) - { - case RMobilePhone::EIdServiceActivePermanent: - type = EPsuiColrOn; - break; - case RMobilePhone::EIdServiceNotProvisioned: - type = EPsuiColrOff; - break; - case RMobilePhone::EIdServiceUnknown: - type = EPsuiCliUnknown; - break; - default: - break; - } - break; - case RMobilePhone::EIdServiceConnectedPresentation: - switch ( iServiceStatus ) - - { - case RMobilePhone::EIdServiceActivePermanent: - type = EPsuiColpOn; - break; - case RMobilePhone::EIdServiceNotProvisioned: - type = EPsuiColpOff; - break; - case RMobilePhone::EIdServiceUnknown: - type = EPsuiCliUnknown; - break; - default: - break; - } - break; - case RMobilePhone::EIdServiceCallerRestriction: - switch ( iServiceStatus ) - - { - case RMobilePhone::EIdServiceActivePermanent: - case RMobilePhone::EIdServiceActiveDefaultRestricted: - type = EPsuiClirOn; - break; - case RMobilePhone::EIdServiceActiveDefaultAllowed: - case RMobilePhone::EIdServiceNotProvisioned: - type = EPsuiClirOff; - break; - case RMobilePhone::EIdServiceUnknown: - type = EPsuiCliUnknown; - break; - default: - break; - } - break; - case RMobilePhone::EIdServiceCallerPresentation: - switch ( iServiceStatus ) - { - case RMobilePhone::EIdServiceActivePermanent: - type = EPsuiClipOn; - break; - case RMobilePhone::EIdServiceNotProvisioned: - type = EPsuiClipOff; - break; - case RMobilePhone::EIdServiceUnknown: - type = EPsuiCliUnknown; - break; - default: - break; - } - break; - case RMobilePhone::EIdServiceCallerName: - commonNotes = EFalse; - iObserver->HandleCnapStatusL( iServiceStatus ); - break; - default: - Panic( KPSNameOfClass, ECliParameter ); - break; - } - - if ( commonNotes ) - { - iObserver->CliInformationL( type ); - } - RequestCompleted( KErrNone ); - } - -// --------------------------------------------------------------------------- -// Cancels pending request. -// -// --------------------------------------------------------------------------- -// -void CPsetCli::DoCancel() - { - if ( !IsActive() ) - { - return; - } - switch ( iRequestedService ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - case RMobilePhone::EIdServiceConnectedRestriction: - case RMobilePhone::EIdServiceConnectedPresentation: - case RMobilePhone::EIdServiceCallerRestriction: - case RMobilePhone::EIdServiceCallerPresentation: - case RMobilePhone::EIdServiceCallerName: - iPhone.CancelAsyncRequest( EMobilePhoneGetIdentityServiceStatus ); - break; - default: - break; - } - SetRequestStatus( RMobilePhone::EIdServiceUnspecified ); - } - -// --------------------------------------------------------------------------- -// Sets observer. -// --------------------------------------------------------------------------- -// -void CPsetCli::SetObserver( MPsetCliObserver& aObserver ) - { - iObserver = &aObserver; - iObserver->SetEngineContact( this ); - } - -// --------------------------------------------------------------------------- -// -// Push object into cleanupstack to catch leaving. -// -// --------------------------------------------------------------------------- -// -void CPsetCli::CleanupLeavePushL() - { - CleanupStack::PushL( TCleanupItem( DoHandleLeave, this ) ); - } - -// --------------------------------------------------------------------------- -// -// Things to do when leave occurs. -// -// --------------------------------------------------------------------------- -// -void CPsetCli::HandleLeave() - { - CancelAll(); - } - -// --------------------------------------------------------------------------- -// -// Object has caused a leave. -// -// --------------------------------------------------------------------------- -// -void CPsetCli::DoHandleLeave( TAny* aAny ) - { - REINTERPRET_CAST( CPsetCli*, aAny )->HandleLeave(); - } - -// --------------------------------------------------------------------------- -// Inform the request observer that request has been completed. -// --------------------------------------------------------------------------- -// -void CPsetCli::RequestCompleted( const TInt& aError ) - { - if ( aError != KErrNone ) - { - SetRequestStatus( - static_cast (aError) ); - } - SetRequestStatus( RMobilePhone::EIdServiceUnspecified ); - - if ( iReqObserver ) - { - iReqObserver->RequestComplete(); - } - } - -// --------------------------------------------------------------------------- -// Issues pre-defined request. -// --------------------------------------------------------------------------- -// -void CPsetCli::IssueRequestL( RMobilePhone::TMobilePhoneIdService aService ) - { - if ( IsActive() ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - User::Leave( KErrGeneral ); - } - SetRequestStatus( aService ); - - iPhone.GetIdentityServiceStatus( iStatus, aService, iServiceStatus ); - SetActive(); - - // Set PSUI so that correct observer is used and show note. - iObserver->SetEngineContact( this ); - CleanupLeavePushL(); - iObserver->HandleCliRequestingL( ETrue, EFalse ); - CleanupStack::Pop(); // CleanupCancelPushL - } - -// --------------------------------------------------------------------------- -// Update the request status - both internally and to observers. -// --------------------------------------------------------------------------- -// -void CPsetCli::SetRequestStatus( RMobilePhone::TMobilePhoneIdService aStatus ) - { - iRequestedService = aStatus; - if ( iReqObserver ) - { - iReqObserver->RequestStatusChanged( aStatus ); - } - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PsetContainer.cpp --- a/cellular/telephonysettings/src/PsetContainer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,234 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: -* CPsetContainer is the general access class for phonesettings. -* Container must exists as long as PS objects are used. -* -* -*/ - - -// INCLUDES -#include "psetcontainer.h" -#include "psetconstants.h" -#include "psetrefreshhandlerimpl.h" -#include - -// --------------------------------------------------------------------------- -// -// Creates Call Waiting object -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetCallWaiting* CPsetContainer::CreateCWObjectL( - MPsetCallWaitingObserver& aObserver ) - { - return CPsetCallWaiting::NewL( iPhone, aObserver ); - } - -// --------------------------------------------------------------------------- -// -// Creates Diverting object -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetCallDiverting* CPsetContainer::CreateCFObjectL( - MPsetDivertObserver& aObserver ) - { - return CPsetCallDiverting::NewL( aObserver, iPhone ); - } - -// --------------------------------------------------------------------------- -// -// Creates CLI object -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetCli* CPsetContainer::CreateCliObjectL( - MPsetCliObserver& aObserver ) - { - return CPsetCli::NewL( iPhone, aObserver ); - } - -// --------------------------------------------------------------------------- -// -// Creates Call Barring object -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetCallBarring* CPsetContainer::CreateCBObjectL( - MPsetBarringObserver& aObserver ) - { - return CPsetCallBarring::NewL( aObserver, iPhone ); - } - -// --------------------------------------------------------------------------- -// -// Creates Network object -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetNetwork* CPsetContainer::CreateNetworkObjectL( - MPsetNetworkInfoObserver& aObserver ) - { - return CPsetNetwork::NewL( iPhone, aObserver ); - } - - -// ----------------------------------------------------------------------------- -// -// Creates Refresh Handler object -// -// ----------------------------------------------------------------------------- -// -EXPORT_C CPSetRefreshHandler* CPsetContainer::CreateRefreshHandlerL() - { - return CPSetRefreshHandlerImpl::NewL(); - } - - -// --------------------------------------------------------------------------- -// -// Connects to ETEL telephony server and initialises phone, -// line and event monitors. -// -// --------------------------------------------------------------------------- -// -void CPsetContainer::ConstructL() - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - User::LeaveIfError( ConnectServer() ); - - User::LeaveIfError( - iServer.SetExtendedErrorGranularity( RTelServer::EErrorExtended ) ); - - TInt numPhones; - - User::LeaveIfError( iServer.EnumeratePhones( numPhones ) ); - if ( !numPhones ) - { - User::Leave( KErrGeneral ); - } - - //match phone name to correct one - RTelServer::TPhoneInfo phoneInfo; - TName matchTsyName; - TInt i = 0; - for ( ; i < numPhones; i++ ) - { - User::LeaveIfError( iServer.GetTsyName( i, matchTsyName ) ); - if ( matchTsyName.CompareF( KMmTsyModuleName ) == 0 ) - { - User::LeaveIfError( iServer.GetPhoneInfo( i, phoneInfo ) ); - break; - } - } - if ( i == numPhones ) - { - User::Leave( KErrGeneral ); - } - - //open phone subsession - User::LeaveIfError( iPhone.Open( iServer, phoneInfo.iName ) ); - - // Open line - line is opened using phone and name is specified, - User::LeaveIfError( iLine.Open( iPhone, KMmTsyVoice1LineName ) ); - } - -// --------------------------------------------------------------------------- -// -// Connects to Etel and loads Tsy module -// -// --------------------------------------------------------------------------- -// -TInt CPsetContainer::ConnectServer() - { - TInt err = KErrNone; - for ( TInt a = 0 ; a < KPSetRetryCount ; a++ ) - { - err = iServer.Connect(); - - if ( err == KErrNone ) - { - break; - } - - User::After( KPSetRetryTimeout ); - } - - if ( err != KErrNone ) - { - return err; - } - else - { - // Access the phone - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - /***************************************************** - * Series 60 Customer / TSY - * Needs customer TSY implementation - *****************************************************/ - return iServer.LoadPhoneModule( KMmTsyModuleName ); - } - } - -// --------------------------------------------------------------------------- -// -// destructor -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetContainer::~CPsetContainer() - { - // Close line. - iLine.Close(); - iPhone.Close(); - iServer.Close(); - } - -// --------------------------------------------------------------------------- -// -// Symbian OS 2-phase constructor -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetContainer* CPsetContainer::NewL() - { - CPsetContainer* self = new( ELeave ) CPsetContainer; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - - -// --------------------------------------------------------------------------- -// -// Creates Network object for Network Mode observer -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetNetwork* CPsetContainer::CreateNetworkModeObjectL( - MPsetNetworkModeObserver& aModeObserver ) - { - return CPsetNetwork::NewL( iPhone, aModeObserver ); - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PsetNetwork.cpp --- a/cellular/telephonysettings/src/PsetNetwork.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,717 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: CPsetNetwork selects network and gets network information. -* -* -*/ - - -// INCLUDE FILES -#include "mpsetnetworkinfoobs.h" -#include "psetnetwork.h" -#include "psetsaobserver.h" -#include "psetpanic.h" -#include "psetconstants.h" -#include "mpsetnetworkselect.h" -#include -#include -#include - -#include -#include "phonesettingslogger.h" - -// LOCAL CONSTANTS AND MACROS -_LIT( KPSNameOfClass, "CPsetNetwork" ); - -enum TActiveObserver - { - ENetSelectObserver, - ENetModeObserver - }; - -// MEMBER FUNCTIONS -//============================================================================= -// --------------------------------------------------------------------------- -// -// 1st phase constructor. -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetNetwork* CPsetNetwork::NewL( RMobilePhone& aPhone, - MPsetNetworkInfoObserver& aObserver ) - { - CPsetNetwork* self = new ( ELeave ) CPsetNetwork( aPhone ); - CleanupStack::PushL( self ); - self->ConstructL( aObserver ); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// -// 1st phase constructor for net mode observer. -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetNetwork* CPsetNetwork::NewL( RMobilePhone& aPhone, - MPsetNetworkModeObserver& aModeObserver ) - { - CPsetNetwork* self = new ( ELeave ) CPsetNetwork( aPhone ); - CleanupStack::PushL( self ); - self->ConstructL( aModeObserver ); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// -// Destructor. -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetNetwork::~CPsetNetwork() - { - Cancel(); - iCustomPhone.Close(); - delete iNetworkRetrieve; - iNetworkRetrieve = NULL; - delete iSAObserver; - iSAObserver = NULL; - } - -// --------------------------------------------------------------------------- -// -// Returns available networks -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetNetwork::GetAvailableNetworksL() - { - __PHSLOGSTRING("[PHS]--> CPsetNetwork::GetAvailableNetworksL"); - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - - if ( iNetworkRetrieve ) - { - delete iNetworkRetrieve; - iNetworkRetrieve = NULL; - } - - // Start to request for network information. - iNetworkRetrieve = CRetrieveMobilePhoneDetectedNetworks::NewL( iPhone ); - iNetworkRetrieve->StartV2( iStatus ); - iServiceRequest = MPsetNetworkInfoObserver::EServiceRequestGetNetworkInfo; - SetActive(); - - // Show searching note. - CleanupLeavePushL(); - iObserver->HandleSearchingNetworksL( iServiceRequest ); - CleanupStack::Pop(); // CleanupCancelPushL - __PHSLOGSTRING("[PHS] <--CPsetNetwork::GetAvailableNetworksL"); - } - -// --------------------------------------------------------------------------- -// -// Returns information of the currently selected network. -// DEPRECATED. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetNetwork::GetCurrentNetworkInfo - ( MPsetNetworkSelect::TCurrentNetworkInfo& /*aInfo*/ ) - { - return KErrNotSupported; - } - -// --------------------------------------------------------------------------- -// -// Retrieve current search mode (automatic or manual) -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetNetwork::GetNetworkSelectMode( TSelectMode& aMode ) - { - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone::TMobilePhoneNetworkSelectionV1 setMode; - RMobilePhone::TMobilePhoneNetworkSelectionV1Pckg setModePckg( setMode ); - - __PHSLOGSTRING("[PHS]--> CPsetNetwork::GetNetworkSelectMode"); - - TInt res( iPhone.GetNetworkSelectionSetting( setModePckg ) ); - - if ( res == KErrNone ) - { - if ( setMode.iMethod == RMobilePhone::ENetworkSelectionAutomatic ) - { - aMode = ENetSelectModeAutomatic; - } - else - { - aMode = ENetSelectModeManual; - } - iTempNetInfo.iMode = aMode; - } - __PHSLOGSTRING("[PHS] <--CPsetNetwork::GetNetworkSelectMode"); - return res; - } - -// --------------------------------------------------------------------------- -// -// Starts using the indicated network. -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetNetwork::SelectNetworkL( const TNetworkInfo& aInfo ) - { - __PHSLOGSTRING("[PHS]--> CPsetNetwork::SelectNetworkL"); - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - - //Save previous network mode. - TBool previousModeAutomatic = EFalse; - if ( iTempNetInfo.iMode == ENetSelectModeAutomatic ) - { - previousModeAutomatic = ETrue; - } - iTempNetInfo = aInfo; - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - if ( aInfo.iMode == ENetSelectModeManual ) - { - //Copy data to member variables and make a request. - iNwInfo.iCountry.Append( aInfo.iId.iCountryCode ); - __PHSLOGSTRING1("[PHS] CPsetNetwork::SelectNetworkL: Manual - CountryCode: %S", &aInfo.iId.iCountryCode); - - iNwInfo.iNetwork.Append( aInfo.iId.iNetworkCode ); - __PHSLOGSTRING1("[PHS] CPsetNetwork::SelectNetworkL: Manual - NetworkCode: %S", &aInfo.iId.iNetworkCode); - - iServiceRequest = MPsetNetworkInfoObserver::EServiceRequestSetNetwork; - iPhone.SelectNetwork( iStatus, ETrue, iNwInfo ); - } - else - { - iServiceRequest = - MPsetNetworkInfoObserver::EServiceRequestSetNetworkAutomatic; - //If previously automatic, and now automatic, issue request - // to search networks. - if ( previousModeAutomatic ) - { - iNwInfo.iCountry.Append( aInfo.iId.iCountryCode ); - __PHSLOGSTRING1("[PHS] CPsetNetwork::SelectNetworkL: Auto - CountryCode: %S", &aInfo.iId.iCountryCode); - - iNwInfo.iNetwork.Append( aInfo.iId.iNetworkCode ); - __PHSLOGSTRING1("[PHS] CPsetNetwork::SelectNetworkL: Auto - NetworkCode: %S", &aInfo.iId.iNetworkCode); - - iPhone.SelectNetwork( iStatus, EFalse, iNwInfo ); - } - // make new selection without Network/Country code this way device - // connects automatically home network. - else - { - iNwInfo.iCountry = KNullDesC; - iNwInfo.iNetwork = KNullDesC; - __PHSLOGSTRING("[PHS] CPsetNetwork::SelectNetworkL: Manual>Auto - CountryCode = KNullDesC"); - __PHSLOGSTRING("[PHS] CPsetNetwork::SelectNetworkL: Manual>Auto - NetworkCode = KNullDesC"); - iPhone.SelectNetwork( iStatus, EFalse, iNwInfo ); - } - } - SetActive(); - - //Show requesting note. - CleanupLeavePushL(); - if ( aInfo.iMode == ENetSelectModeManual ) - { - __PHSLOGSTRING("[PHS]--> CPsetNetwork::SelectNetworkL: Requesting Selected N/W"); - iObserver->HandleRequestingSelectedNetworkL( ETrue ); - } - else - { - __PHSLOGSTRING("[PHS]--> CPsetNetwork::SelectNetworkL: Searching N/Ws"); - iObserver->HandleSearchingNetworksL( iServiceRequest ); - } - CleanupStack::Pop(); // CleanupCancelPushL - __PHSLOGSTRING("[PHS] <--CPsetNetwork::SelectNetworkL"); - } - -// --------------------------------------------------------------------------- -// -// Running the active object -// -// --------------------------------------------------------------------------- -// -void CPsetNetwork::RunL() - { - __PHSLOGSTRING1("[PHS]--> CPsetNetwork::RunL() - iStatus = %d", iStatus.Int()); - - MPsetNetworkInfoObserver::TServiceRequest serviceRequest = iServiceRequest; - MPsetNetworkModeObserver::TServiceRequest modeRequest = iModeRequest; - - // Params have to be cleared here since the observer may initiate another asynchronous operation immediately - // after they are notified, effectively messing up the state machine which controls the logic in DoCancel() - // resulting in a possible dead lock when CActive::Cancel()'s User::WaitForRequest( iStatus ) never gets signaled. - ClearParams(); - - if ( iActiveObserver == ENetSelectObserver && iObserver ) - { - __ASSERT_ALWAYS( iObserver, Panic( KPSNameOfClass, ENetNoObserver ) ); - HideRequestNoteL(); - } - else if ( iActiveObserver == ENetModeObserver && iNetworkModeObserver ) - { - __ASSERT_ALWAYS( iNetworkModeObserver, - Panic( KPSNameOfClass, ENetNoNetworkObserver ) ); - } - - if ( iStatus != KErrNone ) - { - if ( modeRequest == - MPsetNetworkModeObserver::EServiceRequestSetSelectedNetworkMode || - modeRequest == - MPsetNetworkModeObserver::EServiceRequestGetCurrentNetworkMode ) - { - __PHSLOGSTRING("[PHS]--> CPsetNetwork::RunL: Request is modeRequest"); - //PSetNetworkModeObs - iNetworkModeObserver->HandleNetworkErrorL( modeRequest, iStatus.Int() ); - } - else - { - __PHSLOGSTRING("[PHS]--> CPsetNetwork::RunL: Request is serviceRequest"); - //PSetNetworkInfoObs - GetRegistrationStatusL(); - iObserver->HandleNetworkErrorL( serviceRequest, iStatus.Int() ); - } - } - else // Request completed successfully. - { - switch ( serviceRequest ) - { - case MPsetNetworkInfoObserver::EServiceRequestGetNetworkInfo: - { - CNetworkInfoArray* array = new ( ELeave ) - CNetworkInfoArray( KPSetNetworkInfoArrayGranularity ); - CleanupStack::PushL( array ); - - CMobilePhoneNetworkListV2* results = - iNetworkRetrieve->RetrieveListV2L(); - CleanupStack::PushL( results ); - TInt amount = results->Enumerate(); - __PHSLOGSTRING1("[PHS] CPsetNetwork::RunL: amount: %d", amount); - TInt i = 0; - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone::TMobilePhoneNetworkInfoV2 nwNames; - while ( amount > i ) - { - nwNames = results->GetEntryL( i ); - iTempNetInfo.iId.iCountryCode.Copy( nwNames.iCountryCode ); - __PHSLOGSTRING1("[PHS] CPsetNetwork::RunL: CountryCode: %S", &iTempNetInfo.iId.iCountryCode); - - iTempNetInfo.iId.iNetworkCode.Copy( nwNames.iNetworkId ); - __PHSLOGSTRING1("[PHS] CPsetNetwork::RunL: NetworkCode: %S", &iTempNetInfo.iId.iNetworkCode); - - iTempNetInfo.iStatus = (MPsetNetworkSelect::TNetworkStatus)nwNames.iStatus; - __PHSLOGSTRING1("[PHS] CPsetNetwork::RunL: Status: %d", &iTempNetInfo.iStatus); - - iTempNetInfo.iLongName.Copy( nwNames.iLongName ); - __PHSLOGSTRING1("[PHS] CPsetNetwork::RunL: LongName: %S", &iTempNetInfo.iLongName); - - iTempNetInfo.iShortName.Copy( nwNames.iShortName ); - __PHSLOGSTRING1("[PHS] CPsetNetwork::RunL: ShortName: %S", &iTempNetInfo.iShortName); - - if ( nwNames.iAccess == RMobilePhone::ENetworkAccessUtran ) - { - iTempNetInfo.iAccess = ENetNetworkWCDMA; - } - else if ( nwNames.iAccess == RMobilePhone::ENetworkAccessGsmAndUtran ) - { - iTempNetInfo.iAccess = ENetNetworkGSMandWCDMA; - } - else - { - iTempNetInfo.iAccess = ENetNetworkGSM; - } - array->AppendL( iTempNetInfo ); - i++; - } - CleanupStack::PopAndDestroy( results ); - results = NULL; - __PHSLOGSTRING1("[PHS] CPsetNetwork::RunL: Count: %d", array->Count()); - iObserver->HandleNetworkInfoReceivedL( array, KErrNone ); - CleanupStack::PopAndDestroy( array ); - array = NULL; - break; - } - case MPsetNetworkInfoObserver::EServiceRequestSetNetwork: - { - __PHSLOGSTRING("[PHS] CPsetNetwork::RunL: EServiceRequestSetNetwork"); - GetRegistrationStatusL(); - iObserver->HandleNetworkChangedL( iTempNetInfo, - iRegStatus, KErrNone ); - break; - } - default: - break; - } - - //check if this is correct - switch ( modeRequest ) - { - case MPsetNetworkModeObserver::EServiceRequestSetSelectedNetworkMode: - __PHSLOGSTRING("[PHS] CPsetNetwork::RunL: EServiceRequestSetSelectedNetworkMode"); - iNetworkModeObserver->HandleNetworkSystemModeEventsL( - modeRequest, - iNetworkModeCaps ); - break; - case MPsetNetworkModeObserver::EServiceRequestGetCurrentNetworkMode: - __PHSLOGSTRING("[PHS] CPsetNetwork::RunL: EServiceRequestGetCurrentNetworkMode"); - iNetworkModeObserver->HandleNetworkSystemModeEventsL( - modeRequest, - iNetworkModeCaps ); - break; - default: - break; - } - } - __PHSLOGSTRING("[PHS] <--CPsetNetwork::RunL"); - } - -// --------------------------------------------------------------------------- -// -// Cancels pending request -// -// --------------------------------------------------------------------------- -// -void CPsetNetwork::DoCancel() - { - __PHSLOGSTRING("[PHS]--> CPsetNetwork::DoCancel"); - switch ( iServiceRequest ) - { - case MPsetNetworkInfoObserver::EServiceRequestGetNetworkInfo: - iNetworkRetrieve->Cancel(); - delete iNetworkRetrieve; - iNetworkRetrieve = NULL; - break; - case MPsetNetworkInfoObserver::EServiceRequestSetNetwork: - case MPsetNetworkInfoObserver::EServiceRequestSetNetworkAutomatic: - iPhone.CancelAsyncRequest( EMobilePhoneSelectNetwork ); - break; - default: - break; - } - - switch ( iModeRequest ) - { - case MPsetNetworkModeObserver::EServiceRequestSetSelectedNetworkMode: - iCustomPhone.CancelAsyncRequest( ECustomSetSystemNetworkModeIPC ); - break; - case MPsetNetworkModeObserver::EServiceRequestGetCurrentNetworkMode: - __PHSLOGSTRING("[PHS]--> CPsetNetwork::EServiceRequestGetCurrentNetworkMode"); - iCustomPhone.CancelAsyncRequest( - ECustomGetCurrentSystemNetworkModesIPC ); - __PHSLOGSTRING("[PHS]--> CPsetNetwork::EServiceRequestGetCurrentNetworkMode 2"); - break; - default: - break; - } - - ClearParams(); - __PHSLOGSTRING("[PHS] <--CPsetNetwork::DoCancel"); - } - -// --------------------------------------------------------------------------- -// -// Cancels current request -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetNetwork::CancelProcess() - { - if ( !IsActive() ) - { - //if not active, might mean that network list is shown, - // but call is incoming do not leave or raise error. - } - - Cancel(); - } - -// --------------------------------------------------------------------------- -// -// Sets observer (Observer starts to listen again if reset). -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetNetwork::SetNetSAObserver( MPsetNetworkInfoObserver& aObserver ) - { - __ASSERT_ALWAYS( iSAObserver, Panic( KPSNameOfClass, ENetNoObserver ) ); - iSAObserver->SetNetObserver( aObserver ); - } - -// --------------------------------------------------------------------------- -// -// Adds this to scheduler -// -// --------------------------------------------------------------------------- -// -void CPsetNetwork::ConstructL( MPsetNetworkInfoObserver& aObserver ) - { - iObserver = &aObserver; - iActiveObserver = ENetSelectObserver; - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - iRegStatus = RMobilePhone::ERegistrationUnknown; - User::LeaveIfError( iCustomPhone.Open( iPhone ) ); - - iSAObserver = CPsetSAObserver::NewL(); - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// -// Adds this to scheduler -// -// --------------------------------------------------------------------------- -// -void CPsetNetwork::ConstructL( MPsetNetworkModeObserver& aModeObserver ) - { - iNetworkModeObserver = &aModeObserver; - iActiveObserver = ENetModeObserver; - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - User::LeaveIfError( iCustomPhone.Open( iPhone ) ); - - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// -// C++ constructor. -// -// --------------------------------------------------------------------------- -// -CPsetNetwork::CPsetNetwork - ( RMobilePhone& aPhone ) : CActive( EPriorityStandard ), - iPhone ( aPhone ) - { - } - -// --------------------------------------------------------------------------- -// -// Gets registration status. -// -// --------------------------------------------------------------------------- -// -void CPsetNetwork::GetRegistrationStatusL() - { - TRequestStatus status; - iPhone.GetNetworkRegistrationStatus( status, iRegStatus ); - __PHSLOGSTRING1("[PHS] CPsetNetwork::GetRegistrationStatusL: iRegStatus: %d", iRegStatus); - User::WaitForRequest( status ); - User::LeaveIfError(status.Int()); - } - -// --------------------------------------------------------------------------- -// -// Requests SAObserver to check if call is active. -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetNetwork::IsCallActive() - { - return iSAObserver->IsCallActive(); - } - -// --------------------------------------------------------------------------- -// -// Requests SAObserver to check if gprs connection is active. -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetNetwork::IsGPRSConnected() - { - return iSAObserver->IsGPRSConnected(); - } - -// --------------------------------------------------------------------------- -// -// Requests ETEL to Reset back to the previously used network. -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetNetwork::ResetNetworkSearch() - { - __PHSLOGSTRING("[PHS]--> CPsetNetwork::ResetNetworkSearch"); - RMmCustomAPI customApi; - TInt error = customApi.Open( iPhone ); - if (error == KErrNone) - { - customApi.ResetNetServer(); - } - customApi.Close(); - - __PHSLOGSTRING("[PHS] <--CPsetNetwork::ResetNetworkSearch"); - //for compatibility reasons returns a value - return error; - } - -// --------------------------------------------------------------------------- -// -// Hides requesting note (either type). Cannot leave, since only deletes notes. -// -// --------------------------------------------------------------------------- -// -void CPsetNetwork::HideRequestNoteL() - { - // Hide requesting note, when interrupting a note, does not leave. - if ( iServiceRequest == - MPsetNetworkInfoObserver::EServiceRequestGetNetworkInfo ) - { - iObserver->HandleSearchingNetworksL( // Does not leave - MPsetNetworkInfoObserver::EServiceRequestNone ); - } - else //may cause unnecessary call to hide non-existing note - { - iObserver->HandleRequestingSelectedNetworkL( EFalse ); // Does not leave - } - } - -// --------------------------------------------------------------------------- -// -// Push object into cleanupstack to catch leaving. -// -// --------------------------------------------------------------------------- -// -void CPsetNetwork::CleanupLeavePushL() - { - CleanupStack::PushL( TCleanupItem( DoHandleLeave, this ) ); - } - -// --------------------------------------------------------------------------- -// -// Object has caused a leave. -// -// --------------------------------------------------------------------------- -// -void CPsetNetwork::DoHandleLeave( TAny* aAny ) - { - REINTERPRET_CAST( CPsetNetwork*, aAny )->HandleLeave(); - } - -// --------------------------------------------------------------------------- -// -// Things to do when leave occurs. -// -// --------------------------------------------------------------------------- -// -void CPsetNetwork::HandleLeave() - { - CancelProcess(); - } - -// --------------------------------------------------------------------------- -// -// Clears member variables -// -// --------------------------------------------------------------------------- -// -void CPsetNetwork::ClearParams() - { - iNwInfo.iCountry = KNullDesC; - iNwInfo.iNetwork = KNullDesC; - iServiceRequest = MPsetNetworkInfoObserver::EServiceRequestNone; - iModeRequest = MPsetNetworkModeObserver::EServiceRequestNone; - } - - -// --------------------------------------------------------------------------- -// -// Sets the network mode observer for communication. -// This method is called from CGSSettListNetView class. -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetNetwork::SetNetworkModeObserver( MPsetNetworkModeObserver& - aObserver ) - { - iNetworkModeObserver = &aObserver; - } - - -// --------------------------------------------------------------------------- -// -// Sets the currently selected network access mode (GSM/UMTS/DualMode). -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetNetwork::SetNetworkModeSelectionL( TUint32& aNetworkMode ) - { - __PHSLOGSTRING("[PHS]--> CPsetNetwork::SetNetworkModeSelectionL"); - - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - - iModeRequest = - MPsetNetworkModeObserver::EServiceRequestSetSelectedNetworkMode; - iCustomPhone.SetSystemNetworkMode( iStatus, - static_cast( aNetworkMode ) ); - SetActive(); - - __PHSLOGSTRING("[PHS] <--CPsetNetwork::SetNetworkModeSelectionL"); - } - - -// --------------------------------------------------------------------------- -// -// Gets the currently selected network access mode (GSM/UMTS/DualMode). -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetNetwork::GetCurrentNetworkModeSelectionL() - { - __PHSLOGSTRING("[PHS]--> CPsetNetwork::GetCurrentNetworkModeSelectionL"); - - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - - iModeRequest = - MPsetNetworkModeObserver::EServiceRequestGetCurrentNetworkMode; - iCustomPhone.GetCurrentSystemNetworkModes( iStatus, iNetworkModeCaps ); - SetActive(); - - __PHSLOGSTRING("[PHS] <--CPsetNetwork::GetCurrentNetworkModeSelectionL"); - } - - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PsetSAObserver.cpp --- a/cellular/telephonysettings/src/PsetSAObserver.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1548 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: CPsetSAObserver handles all the queries to observer. -* -* -*/ - - -// INCLUDE FILES -#include -#include -#include // telephony service local variation keys. -#include - -#include "psetsaobserver.h" -#include "mpsetnetworkinfoobs.h" -#include "mpsetdivertobs.h" -#include "phonesettingslogger.h" -#include "psetutility.h" -#include "psetvariationproxy.h" - -//CONSTANTS -const TInt KPsetRequesterUncertain = 0; - -// ================= MEMBER FUNCTIONS ======================= -// --------------------------------------------------------- -// -// 1st Phase constructor. -// -// --------------------------------------------------------- -// -EXPORT_C CPsetSAObserver* CPsetSAObserver::NewL() - { - CPsetSAObserver* self = new ( ELeave ) CPsetSAObserver; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); //self - return self; - } - -// --------------------------------------------------------------------------- -// -// C++ constructor. -// -// --------------------------------------------------------------------------- -// -CPsetSAObserver::CPsetSAObserver() - : CActive( EPriorityStandard ) - { - } - -// --------------------------------------------------------------------------- -// DualActvationFeature -// --------------------------------------------------------------------------- -// -TBool CPsetSAObserver::IsDivertDualAffectFeatureEnabledL() - { - TBool retValue(EFalse); - CPSetVariationProxy* variationProxy = - CPSetVariationProxy::NewL( KCRUidTelSrvVariation, KTelSrvVariationFlags ); - CleanupStack::PushL( variationProxy ); - retValue = variationProxy->IsFeatureEnabled( KTelephonyLVFlagDivertDualAffect ); - CleanupStack::PopAndDestroy( variationProxy ); - return retValue; - } - -// --------------------------------------------------------------------------- -// -// Run active object -- should only be used when trying to catch if call -// has been started. -// -// --------------------------------------------------------------------------- -void CPsetSAObserver::RunL() - { - if ( iNetObserver ) - { - if ( iStatus.Int() != KErrCancel ) - { - TInt value = KErrGeneral; - // This to ensure that events are not lost. - iNotifyProperty.Subscribe( iStatus ); - iNotifyProperty.Get( value ); - SetActive(); - if ( value != EPSCTsyCallStateNone ) - { - // This is what was wanted, so cancel subscribe and inform - // observer. - iNotifyProperty.Cancel(); - - iNetObserver->HandleCallActivatedL(); - } - } - } - } - -// --------------------------------------------------------------------------- -// -// Returns current gprs connection state. -// NOTE that this is not actual GPRS connection, even attached is considered -// connected in this method. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetSAObserver::IsGPRSConnected() - { - __PHSLOGSTRING("[PHS]--> CPsetSAObserver::IsGPRSConnected" ); - TInt connectionStatus = KErrGeneral; - - TInt error = RProperty::Get( KUidSystemCategory, - KPSUidGprsStatusValue, - connectionStatus ); - - if ( connectionStatus == EPSGprsUnattached ) - { - connectionStatus = CPsetSAObserver::EPSetGPRSNotConnected; - } - else if ( connectionStatus == EPSGprsAttach || - connectionStatus == EPSGprsContextActive || - connectionStatus == EPSGprsSuspend ) - { - connectionStatus = CPsetSAObserver::EPSetGPRSConnectionActive; - } - __PHSLOGSTRING2("[PHS]<-- CPsetSAObserver::IsGPRSConnected P&S error: %d, connectionStatus: %d", error, connectionStatus ); - //Else: error situation, return error code (already in connectionStatus). - return connectionStatus; - } - -// --------------------------------------------------------------------------- -// -// Returns current call state -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetSAObserver::IsCallActive() - { - TInt callStatus = KErrGeneral; - - TInt error = RProperty::Get( KPSUidCtsyCallInformation, - KCTsyCallState, - callStatus ); - if ( error == KErrNone ) - { - switch ( callStatus ) - { - case EPSCTsyCallStateUninitialized: - case EPSCTsyCallStateNone: - callStatus = CPsetSAObserver::EPSetNoCallsActive; - break; - default: - callStatus = CPsetSAObserver::EPSetCallActive; - break; - } - } - // Else - error situation, return error code (already in callStatus). - return callStatus; - } - -// --------------------------------------------------------------------------- -// -// Returns current Divert status -// -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPsetSAObserver::GetCurrentDivertStatus( - TUnconditionalCFStatus& aStatus ) - { - __PHSLOGSTRING("[PHS]--> CPsetSAObserver::GetCurrentDivertStatus" ); - TInt error(KErrNone); - TInt indicator(KCFIndicatorUnknown); - TInt forwadingIndicator( indicator ); - TPckg indicatorPckg( forwadingIndicator ); - - error = iRepository->Get( KCtsyUnconditionalCFStatus, indicatorPckg ); - if ( error == KErrNone ) - { - aStatus = static_cast ( forwadingIndicator ); - } - - __PHSLOGSTRING2("[PHS]--> Error: %d, aStatus: %d ", error, aStatus ); - __PHSLOGSTRING("[PHS]<-- CPsetSAObserver::GetCurrentDivertStatus" ); - return error; - } - -// --------------------------------------------------------------------------- -// -// Sets Network observer to member variable -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetSAObserver::SetNetObserver( - MPsetNetworkInfoObserver& aObserver ) - { - if ( !iNetObserver ) - { - iNetObserver = &aObserver; - } - TRAPD( ignore, NotifyCallStartedL() ); - // Line below fixes armv5 warning. - ignore = ignore; - } - -// --------------------------------------------------------------------------- -// -// Cancels active object. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::DoCancel() - { - iNotifyProperty.Cancel(); - } - -// --------------------------------------------------------------------------- -// -// Destructor -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPsetSAObserver::~CPsetSAObserver() - { - Cancel(); - - if ( iNotifyProperty.Handle() ) - { - iNotifyProperty.Close(); - } - - iNetObserver = NULL; - - delete iRepository; - iRepository = NULL; - } - -// --------------------------------------------------------------------------- -// -// Symbian OS 2-phase constructor. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::ConstructL() - { - iRepository = CRepository::NewL( KCRUidCtsyCallForwardingIndicator ); - CActiveScheduler::Add( this ); - } - -// --------------------------------------------------------------------------- -// -// Starts to listen to call alerting or call ringing events. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::NotifyCallStartedL() - { - if ( !IsActive() ) - { - //Ignore any errors here. It is handled in RunL - iNotifyProperty.Attach( KPSUidCtsyCallInformation, KCTsyCallState ); - iNotifyProperty.Subscribe( iStatus ); - SetActive(); - } - } - -// --------------------------------------------------------------------------- -// -// Notifies cenrep that diverts have been changed => sets indicator. -// -// --------------------------------------------------------------------------- -// -EXPORT_C void CPsetSAObserver::NotifyDivertChange( - TSelectedLine aAlsStatus, - TCallDivertNotifySetting& aDivertNotify, - const TInt& aActivatorUncertain ) - { - __PHSLOGSTRING("[PHS]--> CPsetSAObserver::NotifyDivertChange" ); - // we have only one ALS line available - if( aAlsStatus == ENotSupportedLine || - aAlsStatus == KErrUnknown ) - { - __PHSLOGSTRING("[PHS]--> we have only one ALS line available" ); - HandleNoAlsIndicators( aDivertNotify, - aActivatorUncertain ); - } - else if( aAlsStatus == EPrimaryLine ) - { - __PHSLOGSTRING("[PHS]--> HandlePrimaryLineIndicators" ); - HandlePrimaryLineIndicators( aDivertNotify ); - } - else if( aAlsStatus == EAuxiliaryLine ) - { - __PHSLOGSTRING("[PHS]--> HandleSecondaryLineIndicators" ); - HandleSecondaryLineIndicators( aDivertNotify ); - } - - __PHSLOGSTRING1("[PHS] NEW DIVERT STATUS:: %d", aDivertNotify.iPreviousCfStatus ); - TInt package = aDivertNotify.iPreviousCfStatus; - TPckg indicatorPckg( package ); - TInt error = iRepository->Set( KCtsyUnconditionalCFStatus, indicatorPckg ); - __PHSLOGSTRING("[PHS]<-- CPsetSAObserver::NotifyDivertChange" ); - } - -// --------------------------------------------------------------------------- -// -// Handles indicators when no ALS. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandleNoAlsIndicators( - TCallDivertNotifySetting& aDivertNotify, - const TInt& aActivatorUncertain ) - { - __PHSLOGSTRING("[PHS]--> CPsetSAObserver::HandleNoAlsIndicators" ); - TUnconditionalCFStatus previousStatus = aDivertNotify.iPreviousCfStatus; - TUnconditionalCFStatus currentStatus = aDivertNotify.iPreviousCfStatus; - TBool voiceMailBox = aDivertNotify.iVmbxDivert; - TInt bsc = aDivertNotify.iBasicServiceCode; - - __PHSLOGSTRING1("[PHS]--> Previous CF status: %d ", previousStatus ); - __PHSLOGSTRING1("[PHS]--> Voice MailBox: %d ", voiceMailBox ); - __PHSLOGSTRING1("[PHS]--> Basic Service Code: %d ", bsc ); - __PHSLOGSTRING1("[PHS]--> ActivatorUncertain: %d ", aActivatorUncertain ); - if ( aDivertNotify.iCfActivated ) - { - if( voiceMailBox ) - { - HandleVoiceMailBoxDivertActivation( currentStatus, bsc ); - } - else - { - HandleDivertActivation( currentStatus, bsc ); - } - } - else - { - __PHSLOGSTRING("[PHS]--> Deactivition" ); - HandleDivertDeactivation( currentStatus, bsc ); - } - - __PHSLOGSTRING1("[PHS]--> Current CF status: %d ", currentStatus ); - // If aActivatorUncertain is zero and previously divert was acitve to - // Voice mailbox then status is leaved as it was before. - if ( aActivatorUncertain == KPsetRequesterUncertain ) - { - if ( previousStatus != currentStatus ) - { - if ( ( previousStatus == KCFVoiceForwardedToVoiceMailbox ) || - ( previousStatus == KCFVideoForwardedToVoiceMailbox ) || - ( previousStatus == ( KCFVoiceForwarded | KCFVideoForwarded - | KCFForwardedToVoiceMailbox ) ) ) - { - __PHSLOGSTRING("[PHS] KCtsyUnconditionalCFStatus is NOT changed" ); - aDivertNotify.iPreviousCfStatus = previousStatus; - } - else - { - __PHSLOGSTRING("[PHS]RequesterUn-KCtsyUnconditionalCFStatus is going to be changed" ); - aDivertNotify.iPreviousCfStatus = currentStatus; - } - } - } - else - { - __PHSLOGSTRING("[PHS] KCtsyUnconditionalCFStatus is going to be changed" ); - aDivertNotify.iPreviousCfStatus = currentStatus; - } - - __PHSLOGSTRING("[PHS]<-- CPsetSAObserver::HandleNoAlsIndicators" ); - } - -// --------------------------------------------------------------------------- -// -// Handles line1 indicators. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandlePrimaryLineIndicators( - TCallDivertNotifySetting& aDivertNotify ) - { - __PHSLOGSTRING2("[PHS]--> HandlePrimaryLineIndicators - aPreviousCfStatus: %d, aCfActivated: %d", aDivertNotify.iPreviousCfStatus, aDivertNotify.iCfActivated ); - - TUnconditionalCFStatus status = aDivertNotify.iPreviousCfStatus; - TInt bsc = aDivertNotify.iBasicServiceCode; - - __PHSLOGSTRING1("[PHS]--> status: %d ", status ); - __PHSLOGSTRING1("[PHS]--> bsc: %d ", bsc ); - - if ( !IsDivertDualAffectFeatureEnabledL() ) - { - if( aDivertNotify.iCfActivated ) - { - __PHSLOGSTRING("[PHS]--> NOT DUAL Activation - Primary" ); - HandlePrimaryLineDivertActivation( status, bsc ); - } - else - { - __PHSLOGSTRING("[PHS]--> NOT DUAL - Primary" ); - HandlePrimaryLineDivertDeactivation( status, bsc ); - } - } - else // if dualactivation is active. - { - if( aDivertNotify.iCfActivated ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary" ); - HandlePrimaryLineDualDivertActivation( status, bsc ); - } - else - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary" ); - HandlePrimaryLineDualDivertDeactivation( status, bsc ); - } - } - - aDivertNotify.iPreviousCfStatus = status; - } - -// --------------------------------------------------------------------------- -// -// Handles line2 indicators. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandleSecondaryLineIndicators( - TCallDivertNotifySetting& aDivertNotify ) - { - __PHSLOGSTRING2("[PHS]--> HandleSecondaryLineIndicators - HandleSecondaryLineIndicators: %d, aCfActivated: %d", aDivertNotify.iPreviousCfStatus, aDivertNotify.iCfActivated ); - - TUnconditionalCFStatus status = aDivertNotify.iPreviousCfStatus; - - TInt bsc = aDivertNotify.iBasicServiceCode; - - __PHSLOGSTRING1("[PHS]--> status: %d ", status ); - __PHSLOGSTRING1("[PHS]--> bsc: %d ", bsc ); - - if ( !IsDivertDualAffectFeatureEnabledL() ) - { - if( aDivertNotify.iCfActivated ) - { - __PHSLOGSTRING("[PHS]--> NOT DUAL Activation - Secondary" ); - HandleSecondaryLineDivertActivation( status, bsc ); - } - else - { - __PHSLOGSTRING("[PHS]--> NOT DUAL Deactivation - Secondary" ); - HandleSecondaryLineDivertDeactivation( status, bsc ); - } - } - else // if dualactivation is active. - { - if( aDivertNotify.iCfActivated ) - { - __PHSLOGSTRING("[PHS]--> Activation - Secondary" ); - HandleSecondaryLineDualDivertActivation( status, bsc ); - } - else - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary" ); - HandleSecondaryLineDualDivertDeactivation( status, bsc ); - } - } - - aDivertNotify.iPreviousCfStatus = status; - } - -// --------------------------------------------------------------------------- -// -// Set correct indicator value when divert done to voicemail (no ALS). -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandleVoiceMailBoxDivertActivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ) - { - switch ( aStatus ) - { - case KCFIndicatorUnknown: - case KCFNoCallsForwarded: - { - if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 1" ); - aStatus = KCFVoiceForwardedToVoiceMailbox; - } - else if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 2" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedToVoiceMailbox ); - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 3" ); - aStatus = KCFVideoForwardedToVoiceMailbox; - } - break; - } - case KCFVoiceForwarded: - { - if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 4" ); - aStatus = KCFVoiceForwardedToVoiceMailbox; - } - else if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 5" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedToVoiceMailbox ); - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 6" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwardedToVoiceMailbox ); - } - break; - } - case KCFVideoForwarded: - { - if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 7" ); - aStatus = static_cast( - KCFVideoForwarded | KCFVoiceForwardedToVoiceMailbox ); - } - else if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 8" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedToVoiceMailbox ); - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 9" ); - aStatus = KCFVideoForwardedToVoiceMailbox; - } - break; - } - case KCFVoiceForwarded | KCFVideoForwarded: - { - if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 10" ); - aStatus = static_cast( - KCFVideoForwarded | KCFVoiceForwardedToVoiceMailbox ); - } - else if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 11" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedToVoiceMailbox ); - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 12" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwardedToVoiceMailbox ); - } - break; - } - case KCFVoiceForwardedToVoiceMailbox: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllBearer || - aBsc == EAllSync || aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 13" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedToVoiceMailbox ); - } - break; - } - case KCFVideoForwarded | KCFVoiceForwardedToVoiceMailbox: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllBearer || - aBsc == EAllSync || aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 14" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedToVoiceMailbox ); - } - break; - } - case KCFVideoForwardedToVoiceMailbox: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele || - aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 15" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedToVoiceMailbox ); - } - break; - } - case KCFVoiceForwarded | KCFVideoForwardedToVoiceMailbox: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele || - aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - Mailbox - 16" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedToVoiceMailbox ); - } - break; - } - default: - break; - } - } - -// --------------------------------------------------------------------------- -// -// Set correct indicator value when divert done to some other number than -// voicemail (no ALS). -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandleDivertActivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ) - { - switch ( aStatus ) - { - case KCFIndicatorUnknown: - case KCFNoCallsForwarded: - { - if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - 1" ); - aStatus = KCFVoiceForwarded; - } - else if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - 2" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded ); - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - 3" ); - aStatus = KCFVideoForwarded; - } - break; - } - case KCFVoiceForwarded: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllBearer || - aBsc == EAllSync || aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - 4" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded ); - } - break; - } - case KCFVideoForwarded: - { - if ( aBsc == EAllTele || aBsc == ETelephony || - aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - 5" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded ); - } - break; - } - case KCFVoiceForwardedToVoiceMailbox: - { - if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - 6" ); - aStatus = KCFVoiceForwarded; - } - else if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - 7" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded ); - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - 8" ); - aStatus = static_cast( - KCFVideoForwarded | KCFVoiceForwardedToVoiceMailbox ); - } - break; - } - case KCFVideoForwardedToVoiceMailbox: - { - if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - 9" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwardedToVoiceMailbox ); - } - else if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - 10" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded ); - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - 11" ); - aStatus = KCFVideoForwarded; - } - break; - } - case KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedToVoiceMailbox: - { - if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - 12" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwardedToVoiceMailbox ); - } - else if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - 13" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded ); - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - 14" ); - aStatus = static_cast( - KCFVideoForwarded | KCFVoiceForwardedToVoiceMailbox ); - } - break; - } - case KCFVoiceForwarded | KCFVideoForwardedToVoiceMailbox: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllBearer || - aBsc == EAllSync || aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - 15" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded ); - //aStatus = EPSAllForwarded; - } - break; - } - case KCFVideoForwarded | KCFVoiceForwardedToVoiceMailbox: - { - if ( aBsc == EAllTele || aBsc == ETelephony || - aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - 16" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded ); - } - break; - } - default: - break; - } - } - -// --------------------------------------------------------------------------- -// -// Set correct indicator value when deactivation done(no ALS). -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandleDivertDeactivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ) - { - switch ( aStatus ) - { - case KCFVoiceForwarded | KCFVideoForwarded: - { - if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 1" ); - aStatus = KCFVideoForwarded; - } - else if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 2" ); - aStatus = KCFNoCallsForwarded; - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 3" ); - aStatus = KCFVoiceForwarded; - } - break; - } - case KCFVoiceForwarded: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele || - aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 4" ); - aStatus = KCFNoCallsForwarded; - } - break; - } - case KCFVideoForwarded: - { - if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 5" ); - aStatus = KCFVideoForwarded; - } - else if ( aBsc == EAllTeleAndBearer || aBsc == EAllBearer || - aBsc == EAllSync || aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 6" ); - aStatus = KCFNoCallsForwarded; - } - break; - } - case KCFVoiceForwardedToVoiceMailbox: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele || - aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 7" ); - aStatus = KCFNoCallsForwarded; - } - break; - } - case KCFVideoForwarded | KCFVoiceForwardedToVoiceMailbox: - { - if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 9" ); - aStatus = KCFNoCallsForwarded; - } - else if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 10" ); - aStatus = KCFVideoForwarded; - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 11" ); - aStatus = KCFVoiceForwardedToVoiceMailbox; - } - break; - } - case KCFVideoForwardedToVoiceMailbox: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllBearer || - aBsc == EAllSync || aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 12" ); - aStatus = KCFNoCallsForwarded; - } - break; - } - case KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedToVoiceMailbox: - { - if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 13" ); - aStatus = KCFVoiceForwardedToVoiceMailbox; - } - else if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 14" ); - aStatus = KCFVideoForwardedToVoiceMailbox; - } - else if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 15" ); - aStatus = KCFNoCallsForwarded; - } - break; - } - case KCFVoiceForwarded | KCFVideoForwardedToVoiceMailbox: - { - if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 16" ); - aStatus = KCFNoCallsForwarded; - } - else if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 17" ); - aStatus = KCFVideoForwardedToVoiceMailbox; - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc== ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivition - 18" ); - aStatus = KCFVoiceForwarded; - } - break; - } - default: - break; - } - } - -// --------------------------------------------------------------------------- -// -// Set correct indicator value when Primary line used. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandlePrimaryLineDivertActivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ) - { - switch ( aStatus ) - { - case KCFIndicatorUnknown: - case KCFNoCallsForwarded: - case KErrUnknown: - { - if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary - 1" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedOnLine1 ); - } - else if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary - 2" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 ); - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary - 3" ); - aStatus = static_cast( - KCFVideoForwarded | KCFForwardedOnLine1 ); - } - break; - } - case KCFVoiceForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllBearer || - aBsc == EAllSync || aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary - 4" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedOnLine1 ); - } - break; - } - case KCFVideoForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele || - aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary - 5" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedOnLine1 ); - } - break; - } - case KCFVideoForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele || - aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary - 6" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedOnLine1 | - KCFForwardedOnLine2 ); - } - break; - } - case KCFForwardedOnLine2: - { - if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary - 7" ); - aStatus = static_cast( - KCFVideoForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - else if( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary - 8" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedOnLine1 | - KCFForwardedOnLine2 ); - } - else if ( aBsc == EAllTele || - aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary - 9" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - break; - } - - default: - break; - } - } - -// --------------------------------------------------------------------------- -// -// Set correct indicator value when Primary line used. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandlePrimaryLineDualDivertActivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ) - { - switch ( aStatus ) - { - case KCFIndicatorUnknown: - case KCFNoCallsForwarded: - case KErrUnknown: - { - if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary - 1" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 ); - } - else if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary - 2" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 ); - } - break; - } - case KCFVoiceForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary - 3" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - break; - } - case KCFForwardedOnLine2: - { - if( aBsc == EAllTeleAndBearer || aBsc == EAllTele || - aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Activation - Primary - 4" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - break; - } - - default: - break; - } - } - -// --------------------------------------------------------------------------- -// -// Set correct indicator value when Primary line used. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandlePrimaryLineDualDivertDeactivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ) - { - switch ( aStatus ) - { - case KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele - || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 1" ); - aStatus = KCFForwardedOnLine2; - } - break; - } - case KCFVoiceForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele - || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 2" ); - aStatus = KCFNoCallsForwarded; - } - break; - } - case KCFForwardedOnLine2: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele - || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 3" ); - aStatus = KCFForwardedOnLine2; - } - break; - } - - default: - break; - } - } - -// --------------------------------------------------------------------------- -// -// Set correct indicator value when Primary line used. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandlePrimaryLineDivertDeactivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ) - { - switch ( aStatus ) - { - case KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2: - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 1" ); - aStatus = KCFForwardedOnLine2; - break; - } - case KCFVoiceForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 2" ); - aStatus = KCFNoCallsForwarded; - } - else if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 3"); - aStatus = KCFNoCallsForwarded; - } - break; - } - case KCFVideoForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 4" ); - aStatus = KCFNoCallsForwarded; - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 5" ); - aStatus = KCFNoCallsForwarded; - } - break; - } - case KCFVideoForwarded | KCFVoiceForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 6" ); - aStatus = KCFNoCallsForwarded; - } - else if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 7" ); - aStatus = aStatus = static_cast( - KCFVideoForwarded | KCFForwardedOnLine1 ); - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 8" ); - aStatus = aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 ); - } - break; - } - case KCFVideoForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2: - { - if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData || aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 9" ); - aStatus = KCFForwardedOnLine2; - } - else if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 10" ); - aStatus = static_cast( - KCFVideoForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - break; - } - case KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2: - { - if ( aBsc == EAllTeleAndBearer ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 11" ); - aStatus = KCFForwardedOnLine2; - } - else if ( aBsc == EAllTele || aBsc == ETelephony ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 12" ); - aStatus = static_cast( - KCFVideoForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - else if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Primary - 13" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - break; - } - - default: - break; - } - } - -// --------------------------------------------------------------------------- -// -// Set correct indicator value when secondary line used. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandleSecondaryLineDivertActivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ) - { - switch ( aStatus ) - { - case KCFIndicatorUnknown: - case KCFNoCallsForwarded: - case KErrUnknown: - { - if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - Secondary - 1" ); - aStatus = static_cast( - KCFVideoForwarded | KCFForwardedOnLine1 ); - } - else if ( aBsc == EAllTeleAndBearer || aBsc == EAltTele || - aBsc == EAllTele ) - { - __PHSLOGSTRING("[PHS]--> Activation - Secondary - 2" ); - aStatus = KCFForwardedOnLine2; - } - break; - } - case KCFVoiceForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - Secondary - 3" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedOnLine1 ); - } - else if ( aBsc == EAllTeleAndBearer || aBsc == EAltTele || - aBsc == EAllTele ) - { - __PHSLOGSTRING("[PHS]--> Activation - Secondary - 4"); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - break; - } - case KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAltTele || - aBsc == EAllTele ) - { - __PHSLOGSTRING("[PHS]--> Activation - Secondary - 5"); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedOnLine1 | - KCFForwardedOnLine2 ); - } - break; - } - case KCFForwardedOnLine2: - { - if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - Secondary - 6"); - aStatus = static_cast( - KCFVideoForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - break; - } - case KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2: - { - if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Activation - Secondary - 7"); - aStatus = static_cast( - KCFVoiceForwarded | KCFVideoForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - break; - } - case KCFVideoForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAltTele || - aBsc == EAllTele ) - { - __PHSLOGSTRING("[PHS]--> Activation - Secondary - 8"); - aStatus = static_cast( - KCFVideoForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - break; - } - - default: - break; - } - } - -// --------------------------------------------------------------------------- -// -// Set correct indicator value when secondary line used. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandleSecondaryLineDualDivertActivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ) - { - switch ( aStatus ) - { - case KCFIndicatorUnknown: - case KCFNoCallsForwarded: - case KErrUnknown: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAltTele || - aBsc == EAllTele ) - { - __PHSLOGSTRING("[PHS]--> Activation - Secondary - 1" ); - aStatus = KCFForwardedOnLine2; - } - break; - } - case KCFVoiceForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAltTele || - aBsc == EAllTele ) - { - __PHSLOGSTRING("[PHS]--> Activation - Secondary - 2"); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - break; - } - case KCFForwardedOnLine2: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele ) - { - __PHSLOGSTRING("[PHS]--> Activation - Secondary - 3"); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - break; - } - default: - break; - } - } - -// --------------------------------------------------------------------------- -// -// Set correct indicator value when secondary line used. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandleSecondaryLineDivertDeactivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ) - { - switch ( aStatus ) - { - case KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele || - aBsc == EAltTele ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary - 1" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 ); - } - break; - } - case KCFVideoForwarded |KCFVoiceForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary - 2" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 ); - } - break; - } - case KCFVoiceForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary - 3" ); - aStatus = KCFNoCallsForwarded; - } - break; - } - case KCFVideoForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary - 4" ); - aStatus = KCFNoCallsForwarded; - } - break; - } - case KCFForwardedOnLine2: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAltTele || - aBsc == EAllTele ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary - 5" ); - aStatus = KCFNoCallsForwarded; - } - break; - } - case KCFVideoForwarded | KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2: - { - if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary - 6" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2 ); - } - else if ( aBsc == EAllTeleAndBearer || aBsc == EAltTele || - aBsc == EAllTele ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary - 7" ); - aStatus = static_cast( - KCFVideoForwarded | KCFVoiceForwarded | KCFForwardedOnLine1 ); - } - break; - } - case KCFVideoForwarded |KCFVoiceForwarded: - { - if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary - 8" ); - aStatus = KCFNoCallsForwarded; - } - break; - } - case KCFVideoForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2: - { - if ( aBsc == EAllBearer || aBsc == EAllSync || - aBsc == ESyncData ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary - 9" ); - aStatus = KCFForwardedOnLine2; - } - else if ( aBsc == EAllTeleAndBearer || aBsc == EAltTele || - aBsc == EAllTele ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary - 10" ); - aStatus = static_cast( - KCFVideoForwarded | KCFForwardedOnLine1 ); - } - break; - } - default: - break; - } - } - -// --------------------------------------------------------------------------- -// -// Set correct indicator value when secondary line used. -// -// --------------------------------------------------------------------------- -// -void CPsetSAObserver::HandleSecondaryLineDualDivertDeactivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ) - { - switch ( aStatus ) - { - case KCFVoiceForwarded | KCFForwardedOnLine1 | KCFForwardedOnLine2: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele || - aBsc == EAltTele ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary - 1" ); - aStatus = static_cast( - KCFVoiceForwarded | KCFForwardedOnLine1 ); - } - break; - } - case KCFVoiceForwarded | KCFForwardedOnLine1: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAllTele ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary - 2" ); - aStatus = KCFNoCallsForwarded; - } - break; - } - case KCFForwardedOnLine2: - { - if ( aBsc == EAllTeleAndBearer || aBsc == EAltTele || - aBsc == EAllTele ) - { - __PHSLOGSTRING("[PHS]--> Deactivation - Secondary - 3" ); - aStatus = KCFNoCallsForwarded; - } - break; - } - default: - break; - } - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PsetTelephony.cpp --- a/cellular/telephonysettings/src/PsetTelephony.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,275 +0,0 @@ -/* -* Copyright (c) 2002 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: ETEL connection and line opening class. -* -* -*/ - - -// INCLUDE FILES -#include -#include -#include -#include "psetconstants.h" -#include "psettelephony.h" -#include "phonesettingslogger.h" - -// MEMBER FUNCTIONS -// --------------------------------------------------------------------------- -// -// First phase constructor -// -// --------------------------------------------------------------------------- -// -CPsetTelephony* CPsetTelephony::NewL( - RMobilePhone& aPhone, const TDesC* aTsyName ) - { - CPsetTelephony* self = new ( ELeave ) CPsetTelephony( aPhone ); - CleanupStack::PushL( self ); - self->ConstructL( aTsyName ); - CleanupStack::Pop(); - return self; - } - -// --------------------------------------------------------------------------- -// -// Destructor -// -// --------------------------------------------------------------------------- -// -CPsetTelephony::~CPsetTelephony() - { - if ( iOwnConnection ) - { - if ( iPhone ) - { - iPhone->Close(); - } - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - /***************************************************** - * Series 60 Customer / TSY - * Needs customer TSY implementation - *****************************************************/ - if ( iTelServer ) - { - iTelServer->UnloadPhoneModule( iTsyName ); - iTelServer->Close(); - } - delete iTelServer; - iTelServer = NULL; - delete iPhone; - iPhone = NULL; - } - } - -// --------------------------------------------------------------------------- -// -// Constructor. -// -// --------------------------------------------------------------------------- -// -void CPsetTelephony::ConstructL( const TDesC* aTsyName ) - { - User::LeaveIfError( ConnectToEtelL( aTsyName ) ); - iOwnConnection = ETrue; - } - -// --------------------------------------------------------------------------- -// -// Connects to ETel server and loads TSY module, then opens phone object -// if phone(s) found. -// -// --------------------------------------------------------------------------- -TInt CPsetTelephony::ConnectToEtelL( const TDesC* aTsyName ) - { - __PHSLOGSTRING("[PHS]--> CPsetTelephony::ConnectToEtelL"); - if ( aTsyName ) - { - iTsyName= *aTsyName; // use specific tsy name - } - else - { - iTsyName = KMmTsyModuleName; // use default tsy name - } - - iTelServer = new ( ELeave ) RTelServer; - iPhone = new ( ELeave ) RMobilePhone; - TInt err = KErrNone; - - for ( TInt a = 0 ; a < KPSetRetryCount ; a++ ) - { - err = iTelServer->Connect(); - - if ( err == KErrNone ) - { - break; - } - - User::After( KPSetRetryTimeout ); - } - - User::LeaveIfError( err ); - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - /***************************************************** - * Series 60 Customer / TSY - * Needs customer TSY implementation - *****************************************************/ - err = iTelServer->LoadPhoneModule( iTsyName ); - - if ( err == KErrNone ) - { - iTelServer->SetExtendedErrorGranularity( RTelServer::EErrorExtended ); - - RTelServer::TPhoneInfo phoneInfo; - err = iTelServer->GetPhoneInfo( 0, phoneInfo ); - if ( err == KErrNone ) - { - // open phone subsession - err = iPhone->Open( *iTelServer, phoneInfo.iName ); - } - } - - __PHSLOGSTRING("[PHS] <--CPsetTelephony::ConnectToEtelL"); - return err; - } - -// --------------------------------------------------------------------------- -// -// Checks that correct line for diverting is open. If not, lines -// are gone through and when one with correct capabilities is found, -// it is opened. -// -// --------------------------------------------------------------------------- -// -void CPsetTelephony::CheckLineModeL( const TServiceGroup aServiceGroup, - RMobilePhone* aPhone, RMobileLine* aLine) - { - __PHSLOGSTRING("[PHS]--> CPsetTelephony::CheckLineModeL"); - if (!aPhone || !aLine) - { - User::Leave(KErrArgument); - } - - RLine::TCaps lineCaps; - lineCaps.iFlags = 0; - TBool oldMode( EFalse ); // if true, another line must be opened - - if ( aLine->SubSessionHandle() == 0 ) - { - oldMode = ETrue; - } - else - { - User::LeaveIfError( aLine->GetCaps( lineCaps ) ); - } - - TUint32 capsFlags( 0 ); - capsFlags = SetCapFlagsL( aServiceGroup, oldMode, lineCaps ); - - if ( oldMode ) - { // open line in right mode according to service group - if ( aLine->SubSessionHandle() ) - { - aLine->Close(); - } - - TInt lines = 0; - User::LeaveIfError( aPhone->EnumerateLines( lines ) ); - //lines is no of lines, to check each line, we need to - // check all lines from 0 to lines-1 - for (lines--; KPSetNoLinesAvailable < lines; lines-- ) - { - RPhone::TLineInfo lineInfo; - User::LeaveIfError( aPhone->GetLineInfo( lines, lineInfo ) ); - - if ( lineInfo.iLineCapsFlags & capsFlags ) - { - User::LeaveIfError( aLine->Open( *aPhone, lineInfo.iName ) ); - return; - } - } - } - __PHSLOGSTRING("[PHS] <--CPsetTelephony::CheckLineModeL"); - } -// --------------------------------------------------------------------------- -// -// Sets cap flags. -// -// --------------------------------------------------------------------------- -// -TUint32 CPsetTelephony::SetCapFlagsL( - const TServiceGroup aServiceGroup, TBool& aMode, RLine::TCaps& aCaps ) - { - __PHSLOGSTRING("[PHS]--> CPsetTelephony::SetCapFlagsL"); - TUint32 flags(0); - - switch ( aServiceGroup ) - { - case EServiceGroupVoice: - __PHSLOGSTRING("[PHS] CPsetTelephony::SetCapFlagsL: EServiceGroupVoice"); - // always open voice line even because it could have been another - // ALS line which was open - aMode = ETrue; - flags |= RLine::KCapsVoice; - break; - case EServiceGroupData: - __PHSLOGSTRING("[PHS] CPsetTelephony::SetCapFlagsL: EServiceGroupData"); - if ( !( aCaps.iFlags & RLine::KCapsData ) ) - { - aMode = ETrue; - } - flags |= RLine::KCapsData; - break; - case EServiceGroupFax: - __PHSLOGSTRING("[PHS] CPsetTelephony::SetCapFlagsL: EServiceGroupFax"); - if ( !( aCaps.iFlags & RLine::KCapsFax ) ) - { - aMode = ETrue; - } - flags |= RLine::KCapsFax; - break; - case EServiceGroupAllTeleservices: - __PHSLOGSTRING("[PHS] CPsetTelephony::SetCapFlagsL: EServiceGroupAllTeleservices"); - aMode = ETrue; - flags |= RLine::KCapsData; - flags |= RLine::KCapsFax; - flags |= RLine::KCapsVoice; - break; - default: - User::Leave( KErrNotSupported ); - } - - __PHSLOGSTRING("[PHS] <--CPsetTelephony::SetCapFlagsL"); - return flags; - } - -// --------------------------------------------------------------------------- -// -// C++ constructor. -// -// --------------------------------------------------------------------------- -// -CPsetTelephony::CPsetTelephony - ( RMobilePhone& aPhone ) : iPhone ( &aPhone ) - { - } -//End of file diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/src/PsetVariationProxy.cpp --- a/cellular/telephonysettings/src/PsetVariationProxy.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -/* -* Copyright (c) 2006 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: Implementation of CPSetVariationProxy class. -* -* -*/ - - -#include "psetvariationproxy.h" -#include -#include -#include - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -CPSetVariationProxy::CPSetVariationProxy() - { - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CPSetVariationProxy::~CPSetVariationProxy() - { - } - -// --------------------------------------------------------------------------- -// NewL -// --------------------------------------------------------------------------- -// -CPSetVariationProxy* CPSetVariationProxy::NewL( - const TUid& aUid, - const TUint aId ) - { - CPSetVariationProxy* self = new ( ELeave ) CPSetVariationProxy(); - CleanupStack::PushL( self ); - self->ConstructL( aUid, aId ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// ConstructL -// --------------------------------------------------------------------------- -// -void CPSetVariationProxy::ConstructL( - const TUid& aUid, - const TUint aId ) - { - TInt keySetting = 0; - CRepository* centralRepository = CRepository::NewLC( aUid ); - User::LeaveIfError( centralRepository->Get( aId, keySetting ) ); - - if( ( aUid == KCRUidPhoneSettings ) && - ( keySetting ) ) - { - iFeature |= KCallWaitingDistiquishNotProvisioned; - } - else if ( aUid == KCRUidTelSrvVariation ) - { - iFeature |= keySetting; - } - - CleanupStack::PopAndDestroy( centralRepository ); - } - -// --------------------------------------------------------------------------- -// IsFeatureEnabled -// --------------------------------------------------------------------------- -// -TBool CPSetVariationProxy::IsFeatureEnabled( TUint aFeature ) const - { - return aFeature&iFeature; - } diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/xqbindings/psetwrapper/psetwrapper.pri --- a/cellular/telephonysettings/xqbindings/psetwrapper/psetwrapper.pri Mon Aug 23 15:50:31 2010 +0300 +++ b/cellular/telephonysettings/xqbindings/psetwrapper/psetwrapper.pri Fri Sep 03 13:59:20 2010 +0300 @@ -14,13 +14,13 @@ # Description: # -HEADERS += ../../../../phonesrv_plat/\phone_settings_api/inc/psetcallbarringwrapper.h \ - ../../../../phonesrv_plat/\phone_settings_api/inc/psetcalldivertingwrapper.h \ - ../../../../phonesrv_plat/\phone_settings_api/inc/psetcallwaitingwrapper.h \ - ../../../../phonesrv_plat/\phone_settings_api/inc/psetcliwrapper.h \ - ../../../../phonesrv_plat/\phone_settings_api/inc/psetnetworkwrapper.h \ - ../../../../phonesrv_plat/\phone_settings_api/inc/psetwrapper.h \ - ../../../../phonesrv_plat/\phone_settings_api/inc/psetwrappertypes.h \ +HEADERS += ../../../../phonesrv_plat/phone_settings_api/inc/psetcallbarringwrapper.h \ + ../../../../phonesrv_plat/phone_settings_api/inc/psetcalldivertingwrapper.h \ + ../../../../phonesrv_plat/phone_settings_api/inc/psetcallwaitingwrapper.h \ + ../../../../phonesrv_plat/phone_settings_api/inc/psetcliwrapper.h \ + ../../../../phonesrv_plat/phone_settings_api/inc/psetnetworkwrapper.h \ + ../../../../phonesrv_plat/phone_settings_api/inc/psetwrapper.h \ + ../../../../phonesrv_plat/phone_settings_api/inc/psetwrappertypes.h \ ./src/psetcallbarringwrapper_p.h \ ./src/psetcalldivertingwrapper_p.h \ ./src/psetcallwaitingwrapper_p.h \ diff -r 35488577e233 -r 2fa1fa551b0b cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetcliwrapper/ut_psetcliwrapper.cpp --- a/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetcliwrapper/ut_psetcliwrapper.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/cellular/telephonysettings/xqbindings/psetwrapper/tsrc/ut_psetcliwrapper/ut_psetcliwrapper.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -19,7 +19,6 @@ #include #include #include -#include #include "ut_psetcliwrapper.h" #include "testutilities.h" #define private public diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/cce/bwins/cceU.DEF --- a/convergedcallengine/cce/bwins/cceU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -EXPORTS - ?ConferenceCallL@CCCE@@QAEAAVMCCEConferenceCall@@ABVMCCEConferenceCallObserver@@@Z @ 1 NONAME ; class MCCEConferenceCall & CCCE::ConferenceCallL(class MCCEConferenceCallObserver const &) - ?DtmfInterfaceL@CCCE@@QAEAAVMCCEDtmfInterface@@ABVMCCEDtmfObserver@@@Z @ 2 NONAME ; class MCCEDtmfInterface & CCCE::DtmfInterfaceL(class MCCEDtmfObserver const &) - ?ExtensionInterfaceL@CCCE@@QAEAAVMCCEExtensionInterface@@ABVMCCEExtensionObserver@@@Z @ 3 NONAME ; class MCCEExtensionInterface & CCCE::ExtensionInterfaceL(class MCCEExtensionObserver const &) - ?GetAirTimeDuration@CCCE@@QAEXAAVTTimeIntervalSeconds@@0@Z @ 4 NONAME ; void CCCE::GetAirTimeDuration(class TTimeIntervalSeconds &, class TTimeIntervalSeconds &) - ?GetCSInfo@CCCE@@QAEHAAVCSInfo@@@Z @ 5 NONAME ; int CCCE::GetCSInfo(class CSInfo &) - ?GetLifeTime@CCCE@@QAEHAAVTDes8@@@Z @ 6 NONAME ; int CCCE::GetLifeTime(class TDes8 &) - ?InitializeEmergencyCall@CCCE@@QAEAAVMCCECall@@ABVMCCECallObserver@@@Z @ 7 NONAME ; class MCCECall & CCCE::InitializeEmergencyCall(class MCCECallObserver const &) - ?NewL@CCCE@@SAPAV1@AAVMCCEObserver@@@Z @ 8 NONAME ; class CCCE * CCCE::NewL(class MCCEObserver &) - ?NewL@CCCE@@SAPAV1@XZ @ 9 NONAME ; class CCCE * CCCE::NewL(void) - ?NewLC@CCCE@@SAPAV1@AAVMCCEObserver@@@Z @ 10 NONAME ; class CCCE * CCCE::NewLC(class MCCEObserver &) - ?NewLC@CCCE@@SAPAV1@XZ @ 11 NONAME ; class CCCE * CCCE::NewLC(void) - ?OpenNewCallL@CCCE@@QAEAAVMCCECall@@ABVTDesC16@@ABVCCCECallParameters@@ABVMCCECallObserver@@@Z @ 12 NONAME ; class MCCECall & CCCE::OpenNewCallL(class TDesC16 const &, class CCCECallParameters const &, class MCCECallObserver const &) - ?SetObserver@CCCE@@QAEXAAVMCCEObserver@@AAVMCCESsObserver@@@Z @ 13 NONAME ; void CCCE::SetObserver(class MCCEObserver &, class MCCESsObserver &) - ?TerminateAllButRingingAndQueuedCalls@CCCE@@QAEXXZ @ 14 NONAME ; void CCCE::TerminateAllButRingingAndQueuedCalls(void) - ?TerminateAllCalls@CCCE@@QAEXXZ @ 15 NONAME ; void CCCE::TerminateAllCalls(void) - ?TerminateCall@CCCE@@QAEHAAV?$TBuf@$0IA@@@@Z @ 16 NONAME ; int CCCE::TerminateCall(class TBuf<128> &) - ?TerminateCall@CCCE@@QAEXAAHAAV?$TBuf@$0IA@@@@Z @ 17 NONAME ; void CCCE::TerminateCall(int &, class TBuf<128> &) - ?NewL@CCCECallParameters@@SAPAV1@XZ @ 18 NONAME ; class CCCECallParameters * CCCECallParameters::NewL(void) - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/cce/eabi/cceU.DEF --- a/convergedcallengine/cce/eabi/cceU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -EXPORTS - _ZN4CCCE11GetLifeTimeER5TDes8 @ 1 NONAME - _ZN4CCCE11SetObserverER12MCCEObserverR14MCCESsObserver @ 2 NONAME - _ZN4CCCE12OpenNewCallLERK7TDesC16RK18CCCECallParametersRK16MCCECallObserver @ 3 NONAME - _ZN4CCCE13TerminateCallER4TBufILi128EE @ 4 NONAME - _ZN4CCCE13TerminateCallERiR4TBufILi128EE @ 5 NONAME - _ZN4CCCE14DtmfInterfaceLERK16MCCEDtmfObserver @ 6 NONAME - _ZN4CCCE15ConferenceCallLERK26MCCEConferenceCallObserver @ 7 NONAME - _ZN4CCCE17TerminateAllCallsEv @ 8 NONAME - _ZN4CCCE18GetAirTimeDurationER20TTimeIntervalSecondsS1_ @ 9 NONAME - _ZN4CCCE19ExtensionInterfaceLERK21MCCEExtensionObserver @ 10 NONAME - _ZN4CCCE23InitializeEmergencyCallERK16MCCECallObserver @ 11 NONAME - _ZN4CCCE36TerminateAllButRingingAndQueuedCallsEv @ 12 NONAME - _ZN4CCCE4NewLER12MCCEObserver @ 13 NONAME - _ZN4CCCE4NewLEv @ 14 NONAME - _ZN4CCCE5NewLCER12MCCEObserver @ 15 NONAME - _ZN4CCCE5NewLCEv @ 16 NONAME - _ZN4CCCE9GetCSInfoER6CSInfo @ 17 NONAME - _ZTI18CCCECallParameters @ 18 NONAME ; ## - _ZTI4CCCE @ 19 NONAME ; ## - _ZTV18CCCECallParameters @ 20 NONAME ; ## - _ZTV4CCCE @ 21 NONAME ; ## - _ZN18CCCECallParameters4NewLEv @ 22 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/cenrepdatabase/group/cenrepdatabase.mmp --- a/convergedcallengine/cenrepdatabase/group/cenrepdatabase.mmp Mon Aug 23 15:50:31 2010 +0300 +++ b/convergedcallengine/cenrepdatabase/group/cenrepdatabase.mmp Fri Sep 03 13:59:20 2010 +0300 @@ -33,9 +33,7 @@ USERINCLUDE ../inc -// <-- QT PHONE START --> MW_LAYER_SYSTEMINCLUDE -// <-- QT PHONE END --> LIBRARY euser.lib LIBRARY centralrepository.lib diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/serviceselector/bwins/serviceselectoru.def --- a/convergedcallengine/serviceselector/bwins/serviceselectoru.def Mon Aug 23 15:50:31 2010 +0300 +++ b/convergedcallengine/serviceselector/bwins/serviceselectoru.def Fri Sep 03 13:59:20 2010 +0300 @@ -1,6 +1,6 @@ -EXPORTS - ?NewL@CConvergedServiceSelector@@SAPAV1@XZ @ 1 NONAME ; class CConvergedServiceSelector * CConvergedServiceSelector::NewL(void) - ?GetCallingServiceByCallType@CConvergedServiceSelector@@QAEHAAVTSsResult@1@W4TSsCallType@1@IHABVTDesC16@@@Z @ 2 NONAME ; int CConvergedServiceSelector::GetCallingServiceByCallType(class CConvergedServiceSelector::TSsResult &, enum CConvergedServiceSelector::TSsCallType, unsigned int, int, class TDesC16 const &) - ?CancelSelection@CConvergedServiceSelector@@QAEXXZ @ 3 NONAME ; void CConvergedServiceSelector::CancelSelection(void) - ??1CConvergedServiceSelector@@UAE@XZ @ 4 NONAME ; CConvergedServiceSelector::~CConvergedServiceSelector(void) - +EXPORTS + ?NewL@CConvergedServiceSelector@@SAPAV1@XZ @ 1 NONAME ; class CConvergedServiceSelector * CConvergedServiceSelector::NewL(void) + ?GetCallingServiceByCallType@CConvergedServiceSelector@@QAEHAAVTSsResult@1@W4TSsCallType@1@IHABVTDesC16@@@Z @ 2 NONAME ; int CConvergedServiceSelector::GetCallingServiceByCallType(class CConvergedServiceSelector::TSsResult &, enum CConvergedServiceSelector::TSsCallType, unsigned int, int, class TDesC16 const &) + ?CancelSelection@CConvergedServiceSelector@@QAEXXZ @ 3 NONAME ; void CConvergedServiceSelector::CancelSelection(void) + ??1CConvergedServiceSelector@@UAE@XZ @ 4 NONAME ; CConvergedServiceSelector::~CConvergedServiceSelector(void) + diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/serviceselector/eabi/serviceselectoru.def --- a/convergedcallengine/serviceselector/eabi/serviceselectoru.def Mon Aug 23 15:50:31 2010 +0300 +++ b/convergedcallengine/serviceselector/eabi/serviceselectoru.def Fri Sep 03 13:59:20 2010 +0300 @@ -1,10 +1,10 @@ -EXPORTS - _ZN25CConvergedServiceSelector15CancelSelectionEv @ 1 NONAME - _ZN25CConvergedServiceSelector27GetCallingServiceByCallTypeERNS_9TSsResultENS_11TSsCallTypeEjiRK7TDesC16 @ 2 NONAME - _ZN25CConvergedServiceSelector4NewLEv @ 3 NONAME - _ZN25CConvergedServiceSelectorD0Ev @ 4 NONAME - _ZN25CConvergedServiceSelectorD1Ev @ 5 NONAME - _ZN25CConvergedServiceSelectorD2Ev @ 6 NONAME - _ZTI25CConvergedServiceSelector @ 7 NONAME ; ## - _ZTV25CConvergedServiceSelector @ 8 NONAME ; ## - +EXPORTS + _ZN25CConvergedServiceSelector15CancelSelectionEv @ 1 NONAME + _ZN25CConvergedServiceSelector27GetCallingServiceByCallTypeERNS_9TSsResultENS_11TSsCallTypeEjiRK7TDesC16 @ 2 NONAME + _ZN25CConvergedServiceSelector4NewLEv @ 3 NONAME + _ZN25CConvergedServiceSelectorD0Ev @ 4 NONAME + _ZN25CConvergedServiceSelectorD1Ev @ 5 NONAME + _ZN25CConvergedServiceSelectorD2Ev @ 6 NONAME + _ZTI25CConvergedServiceSelector @ 7 NONAME ; ## + _ZTV25CConvergedServiceSelector @ 8 NONAME ; ## + diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/group/serviceprovidersettings.mmp --- a/convergedcallengine/spsettings/group/serviceprovidersettings.mmp Mon Aug 23 15:50:31 2010 +0300 +++ b/convergedcallengine/spsettings/group/serviceprovidersettings.mmp Fri Sep 03 13:59:20 2010 +0300 @@ -38,9 +38,7 @@ USERINCLUDE ../inc -// <-- QT PHONE START--> MW_LAYER_SYSTEMINCLUDE -// <-- QT PHONE END--> LIBRARY euser.lib LIBRARY centralrepository.lib @@ -50,4 +48,4 @@ LIBRARY featmgr.lib LIBRARY cenrepdatabase.lib -//DEFFILE ?filename + diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/t_csppropertyu.def --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/t_csppropertyu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -EXPORTS - ?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * CreateTestSuiteL(void) - ?SetValue@CSPProperty@@QAEHABVTDesC16@@@Z @ 2 NONAME ; int CSPProperty::SetValue(class TDesC16 const &) - ?GetValue@CSPProperty@@QBEHAAW4TOnOff@@@Z @ 3 NONAME ; int CSPProperty::GetValue(enum TOnOff &) const - ?SetName@CSPProperty@@QAEHW4TServicePropertyName@@@Z @ 4 NONAME ; int CSPProperty::SetName(enum TServicePropertyName) - ?NewLC@CSPProperty@@SAPAV1@XZ @ 5 NONAME ; class CSPProperty * CSPProperty::NewLC(void) - ?NewL@CSPProperty@@SAPAV1@XZ @ 6 NONAME ; class CSPProperty * CSPProperty::NewL(void) - ?DataType@CSPProperty@@SA?AW4TPropertyDataType@@W4TServicePropertyName@@@Z @ 7 NONAME ; enum TPropertyDataType CSPProperty::DataType(enum TServicePropertyName) - ?PropertyType@CSPProperty@@SA?AW4TSPItemType@@W4TServicePropertyName@@@Z @ 8 NONAME ; enum TSPItemType CSPProperty::PropertyType(enum TServicePropertyName) - ?GetDataType@CSPProperty@@QBE?AW4TPropertyDataType@@XZ @ 9 NONAME ; enum TPropertyDataType CSPProperty::GetDataType(void) const - ??8CSPProperty@@QBEHABV0@@Z @ 10 NONAME ; int CSPProperty::operator==(class CSPProperty const &) const - ?GetPropertyType@CSPProperty@@QBE?AW4TSPItemType@@XZ @ 11 NONAME ; enum TSPItemType CSPProperty::GetPropertyType(void) const - ?SetValue@CSPProperty@@QAEHW4TOnOff@@@Z @ 12 NONAME ; int CSPProperty::SetValue(enum TOnOff) - ?SetValue@CSPProperty@@QAEHH@Z @ 13 NONAME ; int CSPProperty::SetValue(int) - ?GetValue@CSPProperty@@QBEHAAH@Z @ 14 NONAME ; int CSPProperty::GetValue(int &) const - ?GetName@CSPProperty@@QBE?AW4TServicePropertyName@@XZ @ 15 NONAME ; enum TServicePropertyName CSPProperty::GetName(void) const - ?CopyL@CSPProperty@@QAEXABV1@@Z @ 16 NONAME ; void CSPProperty::CopyL(class CSPProperty const &) - ??1CSPProperty@@UAE@XZ @ 17 NONAME ; CSPProperty::~CSPProperty(void) - ?GetValue@CSPProperty@@QBEHAAVTDes16@@@Z @ 18 NONAME ; int CSPProperty::GetValue(class TDes16 &) const - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/t_cspsettingsengineu.def --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/t_cspsettingsengineu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -EXPORTS - ?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * CreateTestSuiteL(void) - ?BeginTransactionL@CCenRepDatabaseUtil@@QAEXXZ @ 2 NONAME ; void CCenRepDatabaseUtil::BeginTransactionL(void) - ?FindEntryIdsFromPropertiesL@CCenRepDatabaseUtil@@QAEHABV?$RPointerArray@VCCenRepDatabaseProperty@@@@AAV?$RArray@H@@@Z @ 3 NONAME ; int CCenRepDatabaseUtil::FindEntryIdsFromPropertiesL(class RPointerArray const &, class RArray &) - ?GetValue@CSPProperty@@QBEHAAW4TOnOff@@@Z @ 4 NONAME ; int CSPProperty::GetValue(enum TOnOff &) const - ?UpdateProperty@CSPEntry@@QAEHW4TServicePropertyName@@ABVTDesC16@@@Z @ 5 NONAME ; int CSPEntry::UpdateProperty(enum TServicePropertyName, class TDesC16 const &) - ?NewLC@CSPProperty@@SAPAV1@XZ @ 6 NONAME ; class CSPProperty * CSPProperty::NewLC(void) - ?NewL@CCenRepDatabaseUtil@@SAPAV1@VTUid@@KKKKH@Z @ 7 NONAME ; class CCenRepDatabaseUtil * CCenRepDatabaseUtil::NewL(class TUid, unsigned long, unsigned long, unsigned long, unsigned long, int) - ?PropertyType@CSPProperty@@SA?AW4TSPItemType@@W4TServicePropertyName@@@Z @ 8 NONAME ; enum TSPItemType CSPProperty::PropertyType(enum TServicePropertyName) - ?GetAllProperties@CSPEntry@@QBEABV?$RPointerArray@VCSPProperty@@@@XZ @ 9 NONAME ; class RPointerArray const & CSPEntry::GetAllProperties(void) const - ?SetServiceName@CSPEntry@@QAEHABVTDesC16@@@Z @ 10 NONAME ; int CSPEntry::SetServiceName(class TDesC16 const &) - ?GetPropertyType@CSPProperty@@QBE?AW4TSPItemType@@XZ @ 11 NONAME ; enum TSPItemType CSPProperty::GetPropertyType(void) const - ?GetServiceName@CSPEntry@@QBEABVTDesC16@@XZ @ 12 NONAME ; class TDesC16 const & CSPEntry::GetServiceName(void) const - ?DeletePropertiesL@CCenRepDatabaseUtil@@QAEHHABV?$RArray@K@@@Z @ 13 NONAME ; int CCenRepDatabaseUtil::DeletePropertiesL(int, class RArray const &) - ?CommitTransaction@CCenRepDatabaseUtil@@QAEHXZ @ 14 NONAME ; int CCenRepDatabaseUtil::CommitTransaction(void) - ?UpdateProperty@CSPEntry@@QAEHW4TServicePropertyName@@W4TOnOff@@@Z @ 15 NONAME ; int CSPEntry::UpdateProperty(enum TServicePropertyName, enum TOnOff) - ?SetValue@CSPProperty@@QAEHH@Z @ 16 NONAME ; int CSPProperty::SetValue(int) - ?GetProperty@CSPEntry@@QBEHAAPBVCSPProperty@@H@Z @ 17 NONAME ; int CSPEntry::GetProperty(class CSPProperty const * &, int) const - ?AddEntryL@CCenRepDatabaseUtil@@QAEXAAHABV?$RPointerArray@VCCenRepDatabaseProperty@@@@@Z @ 18 NONAME ; void CCenRepDatabaseUtil::AddEntryL(int &, class RPointerArray const &) - ?AddPropertyL@CSPEntry@@QAEHABVCSPProperty@@@Z @ 19 NONAME ; int CSPEntry::AddPropertyL(class CSPProperty const &) - ?PropertyCount@CSPEntry@@QBEHXZ @ 20 NONAME ; int CSPEntry::PropertyCount(void) const - ?DeleteProperty@CSPEntry@@QAEHH@Z @ 21 NONAME ; int CSPEntry::DeleteProperty(int) - ?GetValue@CSPProperty@@QBEHAAH@Z @ 22 NONAME ; int CSPProperty::GetValue(int &) const - ??1CSPProperty@@UAE@XZ @ 23 NONAME ; CSPProperty::~CSPProperty(void) - ?SetValue@CSPProperty@@QAEHABVTDesC16@@@Z @ 24 NONAME ; int CSPProperty::SetValue(class TDesC16 const &) - ?FindPropertyL@CCenRepDatabaseUtil@@QAEHHKAAVCCenRepDatabaseProperty@@@Z @ 25 NONAME ; int CCenRepDatabaseUtil::FindPropertyL(int, unsigned long, class CCenRepDatabaseProperty &) - ?NewLC@CCenRepDatabaseUtil@@SAPAV1@VTUid@@KKKKH@Z @ 26 NONAME ; class CCenRepDatabaseUtil * CCenRepDatabaseUtil::NewLC(class TUid, unsigned long, unsigned long, unsigned long, unsigned long, int) - ?UpdateEntryL@CCenRepDatabaseUtil@@QAEHHABV?$RPointerArray@VCCenRepDatabaseProperty@@@@@Z @ 27 NONAME ; int CCenRepDatabaseUtil::UpdateEntryL(int, class RPointerArray const &) - ?SetName@CSPProperty@@QAEHW4TServicePropertyName@@@Z @ 28 NONAME ; int CSPProperty::SetName(enum TServicePropertyName) - ?DeleteEntryL@CCenRepDatabaseUtil@@QAEHH@Z @ 29 NONAME ; int CCenRepDatabaseUtil::DeleteEntryL(int) - ?UpdateProperty@CSPEntry@@QAEHW4TServicePropertyName@@H@Z @ 30 NONAME ; int CSPEntry::UpdateProperty(enum TServicePropertyName, int) - ?NewL@CSPProperty@@SAPAV1@XZ @ 31 NONAME ; class CSPProperty * CSPProperty::NewL(void) - ?DataType@CSPProperty@@SA?AW4TPropertyDataType@@W4TServicePropertyName@@@Z @ 32 NONAME ; enum TPropertyDataType CSPProperty::DataType(enum TServicePropertyName) - ?GetServiceId@CSPEntry@@QBEIXZ @ 33 NONAME ; unsigned int CSPEntry::GetServiceId(void) const - ?NewLC@CSPEntry@@SAPAV1@XZ @ 34 NONAME ; class CSPEntry * CSPEntry::NewLC(void) - ?FindEntryIdsL@CCenRepDatabaseUtil@@QAEHAAV?$RArray@H@@@Z @ 35 NONAME ; int CCenRepDatabaseUtil::FindEntryIdsL(class RArray &) - ?RollbackTransaction@CCenRepDatabaseUtil@@QAEXXZ @ 36 NONAME ; void CCenRepDatabaseUtil::RollbackTransaction(void) - ?GetDataType@CSPProperty@@QBE?AW4TPropertyDataType@@XZ @ 37 NONAME ; enum TPropertyDataType CSPProperty::GetDataType(void) const - ??8CSPProperty@@QBEHABV0@@Z @ 38 NONAME ; int CSPProperty::operator==(class CSPProperty const &) const - ??1CCenRepDatabaseUtil@@UAE@XZ @ 39 NONAME ; CCenRepDatabaseUtil::~CCenRepDatabaseUtil(void) - ?EntryCountL@CCenRepDatabaseUtil@@QAEHAAH@Z @ 40 NONAME ; int CCenRepDatabaseUtil::EntryCountL(int &) - ?SetValue@CSPProperty@@QAEHW4TOnOff@@@Z @ 41 NONAME ; int CSPProperty::SetValue(enum TOnOff) - ?FindEntryL@CCenRepDatabaseUtil@@QAEHHAAV?$RPointerArray@VCCenRepDatabaseProperty@@@@@Z @ 42 NONAME ; int CCenRepDatabaseUtil::FindEntryL(int, class RPointerArray &) - ??1CSPEntry@@UAE@XZ @ 43 NONAME ; CSPEntry::~CSPEntry(void) - ?NewL@CSPEntry@@SAPAV1@XZ @ 44 NONAME ; class CSPEntry * CSPEntry::NewL(void) - ?Reset@CSPEntry@@QAEXXZ @ 45 NONAME ; void CSPEntry::Reset(void) - ?DeleteProperty@CSPEntry@@QAEHW4TServicePropertyName@@@Z @ 46 NONAME ; int CSPEntry::DeleteProperty(enum TServicePropertyName) - ?GetProperty@CSPEntry@@QBEHAAPBVCSPProperty@@W4TServicePropertyName@@@Z @ 47 NONAME ; int CSPEntry::GetProperty(class CSPProperty const * &, enum TServicePropertyName) const - ?CopyL@CSPProperty@@QAEXABV1@@Z @ 48 NONAME ; void CSPProperty::CopyL(class CSPProperty const &) - ?AddOrUpdatePropertiesL@CCenRepDatabaseUtil@@QAEHHABV?$RPointerArray@VCCenRepDatabaseProperty@@@@@Z @ 49 NONAME ; int CCenRepDatabaseUtil::AddOrUpdatePropertiesL(int, class RPointerArray const &) - ?GetName@CSPProperty@@QBE?AW4TServicePropertyName@@XZ @ 50 NONAME ; enum TServicePropertyName CSPProperty::GetName(void) const - ?GetValue@CSPProperty@@QBEHAAVTDes16@@@Z @ 51 NONAME ; int CSPProperty::GetValue(class TDes16 &) const - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/t_cspsettingsu.def --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/t_cspsettingsu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -EXPORTS - ?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * CreateTestSuiteL(void) - ?FindSubServicePropertiesL@CSPSettings@@QAEHIW4TSPItemType@@AAV?$RPointerArray@VCSPProperty@@@@@Z @ 2 NONAME ; int CSPSettings::FindSubServicePropertiesL(unsigned int, enum TSPItemType, class RPointerArray &) - ?SettingsCountL@CSPSettings@@QAEHXZ @ 3 NONAME ; int CSPSettings::SettingsCountL(void) - ?GetValue@CSPProperty@@QBEHAAW4TOnOff@@@Z @ 4 NONAME ; int CSPProperty::GetValue(enum TOnOff &) const - ?FindServiceIdsL@CSPSettings@@QAEHAAV?$RArray@I@@@Z @ 5 NONAME ; int CSPSettings::FindServiceIdsL(class RArray &) - ?AddOrUpdatePropertiesL@CSPSettings@@QAEHIABV?$RPointerArray@VCSPProperty@@@@@Z @ 6 NONAME ; int CSPSettings::AddOrUpdatePropertiesL(unsigned int, class RPointerArray const &) - ?UpdateProperty@CSPEntry@@QAEHW4TServicePropertyName@@ABVTDesC16@@@Z @ 7 NONAME ; int CSPEntry::UpdateProperty(enum TServicePropertyName, class TDesC16 const &) - ?NewLC@CSPProperty@@SAPAV1@XZ @ 8 NONAME ; class CSPProperty * CSPProperty::NewLC(void) - ?PropertyType@CSPProperty@@SA?AW4TSPItemType@@W4TServicePropertyName@@@Z @ 9 NONAME ; enum TSPItemType CSPProperty::PropertyType(enum TServicePropertyName) - ?GetAllProperties@CSPEntry@@QBEABV?$RPointerArray@VCSPProperty@@@@XZ @ 10 NONAME ; class RPointerArray const & CSPEntry::GetAllProperties(void) const - ?SetServiceName@CSPEntry@@QAEHABVTDesC16@@@Z @ 11 NONAME ; int CSPEntry::SetServiceName(class TDesC16 const &) - ?FindEntryL@CSPSettings@@QAEHIAAVCSPEntry@@@Z @ 12 NONAME ; int CSPSettings::FindEntryL(unsigned int, class CSPEntry &) - ?GetPropertyType@CSPProperty@@QBE?AW4TSPItemType@@XZ @ 13 NONAME ; enum TSPItemType CSPProperty::GetPropertyType(void) const - ?GetServiceName@CSPEntry@@QBEABVTDesC16@@XZ @ 14 NONAME ; class TDesC16 const & CSPEntry::GetServiceName(void) const - ?IsFeatureSupported@CSPSettings@@QAEHW4TSPServiceFeature@@@Z @ 15 NONAME ; int CSPSettings::IsFeatureSupported(enum TSPServiceFeature) - ?FindServiceNamesL@CSPSettings@@QAEHAAV?$RArray@I@@AAVCDesC16Array@@@Z @ 16 NONAME ; int CSPSettings::FindServiceNamesL(class RArray &, class CDesC16Array &) - ?UpdateProperty@CSPEntry@@QAEHW4TServicePropertyName@@W4TOnOff@@@Z @ 17 NONAME ; int CSPEntry::UpdateProperty(enum TServicePropertyName, enum TOnOff) - ?SetValue@CSPProperty@@QAEHH@Z @ 18 NONAME ; int CSPProperty::SetValue(int) - ?DeleteServicePropertiesL@CSPSettings@@QAEHIABV?$RArray@W4TServicePropertyName@@@@@Z @ 19 NONAME ; int CSPSettings::DeleteServicePropertiesL(unsigned int, class RArray const &) - ?GetProperty@CSPEntry@@QBEHAAPBVCSPProperty@@H@Z @ 20 NONAME ; int CSPEntry::GetProperty(class CSPProperty const * &, int) const - ?AddPropertyL@CSPEntry@@QAEHABVCSPProperty@@@Z @ 21 NONAME ; int CSPEntry::AddPropertyL(class CSPProperty const &) - ?PropertyCount@CSPEntry@@QBEHXZ @ 22 NONAME ; int CSPEntry::PropertyCount(void) const - ?FindServiceIdsFromPropertiesL@CSPSettings@@QAEHABV?$RPointerArray@VCSPProperty@@@@AAV?$RArray@I@@@Z @ 23 NONAME ; int CSPSettings::FindServiceIdsFromPropertiesL(class RPointerArray const &, class RArray &) - ?DeleteProperty@CSPEntry@@QAEHH@Z @ 24 NONAME ; int CSPEntry::DeleteProperty(int) - ?GetValue@CSPProperty@@QBEHAAH@Z @ 25 NONAME ; int CSPProperty::GetValue(int &) const - ?FindPropertyL@CSPSettings@@QAEHIW4TServicePropertyName@@AAVCSPProperty@@@Z @ 26 NONAME ; int CSPSettings::FindPropertyL(unsigned int, enum TServicePropertyName, class CSPProperty &) - ??1CSPProperty@@UAE@XZ @ 27 NONAME ; CSPProperty::~CSPProperty(void) - ?SetValue@CSPProperty@@QAEHABVTDesC16@@@Z @ 28 NONAME ; int CSPProperty::SetValue(class TDesC16 const &) - ?NewL@CSPSettings@@SAPAV1@XZ @ 29 NONAME ; class CSPSettings * CSPSettings::NewL(void) - ?GetSIPVoIPSWVersion@CSPSettings@@SAABVTDesC16@@XZ @ 30 NONAME ; class TDesC16 const & CSPSettings::GetSIPVoIPSWVersion(void) - ?UpdateEntryL@CSPSettings@@QAEHABVCSPEntry@@@Z @ 31 NONAME ; int CSPSettings::UpdateEntryL(class CSPEntry const &) - ?SetName@CSPProperty@@QAEHW4TServicePropertyName@@@Z @ 32 NONAME ; int CSPProperty::SetName(enum TServicePropertyName) - ?DeleteEntryL@CSPSettings@@QAEHI@Z @ 33 NONAME ; int CSPSettings::DeleteEntryL(unsigned int) - ?UpdateProperty@CSPEntry@@QAEHW4TServicePropertyName@@H@Z @ 34 NONAME ; int CSPEntry::UpdateProperty(enum TServicePropertyName, int) - ?NewL@CSPProperty@@SAPAV1@XZ @ 35 NONAME ; class CSPProperty * CSPProperty::NewL(void) - ?DataType@CSPProperty@@SA?AW4TPropertyDataType@@W4TServicePropertyName@@@Z @ 36 NONAME ; enum TPropertyDataType CSPProperty::DataType(enum TServicePropertyName) - ?GetServiceId@CSPEntry@@QBEIXZ @ 37 NONAME ; unsigned int CSPEntry::GetServiceId(void) const - ?NewLC@CSPEntry@@SAPAV1@XZ @ 38 NONAME ; class CSPEntry * CSPEntry::NewLC(void) - ?GetDataType@CSPProperty@@QBE?AW4TPropertyDataType@@XZ @ 39 NONAME ; enum TPropertyDataType CSPProperty::GetDataType(void) const - ??8CSPProperty@@QBEHABV0@@Z @ 40 NONAME ; int CSPProperty::operator==(class CSPProperty const &) const - ??1CSPSettings@@UAE@XZ @ 41 NONAME ; CSPSettings::~CSPSettings(void) - ?SetValue@CSPProperty@@QAEHW4TOnOff@@@Z @ 42 NONAME ; int CSPProperty::SetValue(enum TOnOff) - ??1CSPEntry@@UAE@XZ @ 43 NONAME ; CSPEntry::~CSPEntry(void) - ?NewL@CSPEntry@@SAPAV1@XZ @ 44 NONAME ; class CSPEntry * CSPEntry::NewL(void) - ?AddOrUpdatePropertyL@CSPSettings@@QAEHIABVCSPProperty@@@Z @ 45 NONAME ; int CSPSettings::AddOrUpdatePropertyL(unsigned int, class CSPProperty const &) - ?Reset@CSPEntry@@QAEXXZ @ 46 NONAME ; void CSPEntry::Reset(void) - ?DeleteProperty@CSPEntry@@QAEHW4TServicePropertyName@@@Z @ 47 NONAME ; int CSPEntry::DeleteProperty(enum TServicePropertyName) - ?AddEntryL@CSPSettings@@QAEHAAVCSPEntry@@@Z @ 48 NONAME ; int CSPSettings::AddEntryL(class CSPEntry &) - ?GetProperty@CSPEntry@@QBEHAAPBVCSPProperty@@W4TServicePropertyName@@@Z @ 49 NONAME ; int CSPEntry::GetProperty(class CSPProperty const * &, enum TServicePropertyName) const - ?CopyL@CSPProperty@@QAEXABV1@@Z @ 50 NONAME ; void CSPProperty::CopyL(class CSPProperty const &) - ?GetName@CSPProperty@@QBE?AW4TServicePropertyName@@XZ @ 51 NONAME ; enum TServicePropertyName CSPProperty::GetName(void) const - ?GetValue@CSPProperty@@QBEHAAVTDes16@@@Z @ 52 NONAME ; int CSPProperty::GetValue(class TDes16 &) const - ?NewLC@CSPSettings@@SAPAV1@XZ @ 53 NONAME ; class CSPSettings * CSPSettings::NewLC(void) - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/t_cspsettingsvoiputilsu.def --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/t_cspsettingsvoiputilsu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -EXPORTS - ?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * CreateTestSuiteL(void) - ?SetValue@CSPProperty@@QAEHABVTDesC16@@@Z @ 2 NONAME ; int CSPProperty::SetValue(class TDesC16 const &) - ?NewLC@CSPSettingsVoIPUtils@@SAPAV1@XZ @ 3 NONAME ; class CSPSettingsVoIPUtils * CSPSettingsVoIPUtils::NewLC(void) - ?VoIPProfilesExistL@CSPSettingsVoIPUtils@@QBEHXZ @ 4 NONAME ; int CSPSettingsVoIPUtils::VoIPProfilesExistL(void) const - ?GetValue@CSPProperty@@QBEHAAW4TOnOff@@@Z @ 5 NONAME ; int CSPProperty::GetValue(enum TOnOff &) const - ?SetName@CSPProperty@@QAEHW4TServicePropertyName@@@Z @ 6 NONAME ; int CSPProperty::SetName(enum TServicePropertyName) - ?NewL@CSPSettingsVoIPUtils@@SAPAV1@XZ @ 7 NONAME ; class CSPSettingsVoIPUtils * CSPSettingsVoIPUtils::NewL(void) - ?NewLC@CSPProperty@@SAPAV1@XZ @ 8 NONAME ; class CSPProperty * CSPProperty::NewLC(void) - ?NewL@CSPProperty@@SAPAV1@XZ @ 9 NONAME ; class CSPProperty * CSPProperty::NewL(void) - ?DataType@CSPProperty@@SA?AW4TPropertyDataType@@W4TServicePropertyName@@@Z @ 10 NONAME ; enum TPropertyDataType CSPProperty::DataType(enum TServicePropertyName) - ?PropertyType@CSPProperty@@SA?AW4TSPItemType@@W4TServicePropertyName@@@Z @ 11 NONAME ; enum TSPItemType CSPProperty::PropertyType(enum TServicePropertyName) - ?GetDataType@CSPProperty@@QBE?AW4TPropertyDataType@@XZ @ 12 NONAME ; enum TPropertyDataType CSPProperty::GetDataType(void) const - ??8CSPProperty@@QBEHABV0@@Z @ 13 NONAME ; int CSPProperty::operator==(class CSPProperty const &) const - ?GetPreferredService@CSPSettingsVoIPUtils@@QBEHAAI@Z @ 14 NONAME ; int CSPSettingsVoIPUtils::GetPreferredService(unsigned int &) const - ?IsVoIPSupported@CSPSettingsVoIPUtils@@QBEHXZ @ 15 NONAME ; int CSPSettingsVoIPUtils::IsVoIPSupported(void) const - ?GetPropertyType@CSPProperty@@QBE?AW4TSPItemType@@XZ @ 16 NONAME ; enum TSPItemType CSPProperty::GetPropertyType(void) const - ?SetValue@CSPProperty@@QAEHW4TOnOff@@@Z @ 17 NONAME ; int CSPProperty::SetValue(enum TOnOff) - ??1CSPSettingsVoIPUtils@@UAE@XZ @ 18 NONAME ; CSPSettingsVoIPUtils::~CSPSettingsVoIPUtils(void) - ?SetValue@CSPProperty@@QAEHH@Z @ 19 NONAME ; int CSPProperty::SetValue(int) - ?GetValue@CSPProperty@@QBEHAAH@Z @ 20 NONAME ; int CSPProperty::GetValue(int &) const - ?GetName@CSPProperty@@QBE?AW4TServicePropertyName@@XZ @ 21 NONAME ; enum TServicePropertyName CSPProperty::GetName(void) const - ?CopyL@CSPProperty@@QAEXABV1@@Z @ 22 NONAME ; void CSPProperty::CopyL(class CSPProperty const &) - ??1CSPProperty@@UAE@XZ @ 23 NONAME ; CSPProperty::~CSPProperty(void) - ?GetValue@CSPProperty@@QBEHAAVTDes16@@@Z @ 24 NONAME ; int CSPProperty::GetValue(class TDes16 &) const - ?IsPreferredTelephonyVoIP@CSPSettingsVoIPUtils@@QBEHXZ @ 25 NONAME ; int CSPSettingsVoIPUtils::IsPreferredTelephonyVoIP(void) const - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/ut_spsbackuphelpermonitoru.def --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/ut_spsbackuphelpermonitoru.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -EXPORTS - ?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * CreateTestSuiteL(void) diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/ut_spsbackuphelperperformeru.def --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/ut_spsbackuphelperperformeru.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -EXPORTS - ?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * CreateTestSuiteL(void) diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/ut_spsbufferedpublisheru.def --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/BWINS/ut_spsbufferedpublisheru.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -EXPORTS - ?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * CreateTestSuiteL(void) diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/T_CSPPropertyUT.mmp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/T_CSPPropertyUT.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 2005-2007 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: MMP file for T_CSPProperty. -* -*/ - - -#include -#include - -TARGET T_CSPProperty.dll -TARGETTYPE dll -UID 0x1000af5a 0x01700000 -CAPABILITY EUNIT_CAPS -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE T_CSPProperty.cpp -SOURCE T_CSPProperty_DllMain.cpp - - -// Sources required by the test suite -SOURCEPATH ../../../../../src -SOURCE spproperty.cpp - -USERINCLUDE ../src -USERINCLUDE ../../../../../inc - -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/Digia/EUnit - -LIBRARY EUnit.lib -LIBRARY EUnitUtil.lib -LIBRARY euser.lib - -// End of File - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/T_CSPSettingsEngineUT.mmp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/T_CSPSettingsEngineUT.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* -* Copyright (c) 2005-2007 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: MMP file for T_CSPSettingsEngine. -* -*/ - - -#include -#include - -TARGET T_CSPSettingsEngine.dll -TARGETTYPE dll -UID 0x1000af5a 0x01700000 -CAPABILITY EUNIT_CAPS -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE T_CSPSettingsEngine.cpp -SOURCE T_CSPSettingsEngine_DllMain.cpp - - -// Sources required by the test suite -SOURCEPATH ../../../../../src -SOURCE spsettingsengine.cpp - -SOURCE spentry.cpp -SOURCE spproperty.cpp - -SOURCEPATH ../stubs -SOURCE T_cenrepdatabaseutilStub.cpp - - -USERINCLUDE ../src -USERINCLUDE ../../../../../../cenrepdatabase -USERINCLUDE ../../../../../inc - -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/Digia/EUnit - -LIBRARY EUnit.lib -LIBRARY EUnitUtil.lib -LIBRARY euser.lib - -LIBRARY bafl.lib // CDesCArray -LIBRARY FeatMgr.lib -LIBRARY cenrepdatabase.lib -LIBRARY centralrepository.lib - -// End of File - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/T_CSPSettingsUT.mmp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/T_CSPSettingsUT.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* -* Copyright (c) 2005-2007 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: MMP file for T_CSPSettings. -* -*/ - - -#include -#include - -TARGET T_CSPSettings.dll -TARGETTYPE dll -UID 0x1000af5a 0x01700000 -CAPABILITY EUNIT_CAPS -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE T_CSPSettings.cpp -SOURCE T_CSPSettings_DllMain.cpp - -SOURCEPATH ../stubs -SOURCE FeatMgrStub.cpp -SOURCE TestData.cpp -SOURCE spsbufferedpublisher_stub.cpp - -// Sources required by the test suite -SOURCEPATH ../../../../../src -SOURCE spsettings.cpp - -SOURCE spsettingsengine.cpp -SOURCE spentry.cpp -SOURCE spproperty.cpp - -USERINCLUDE ../src -USERINCLUDE ../stubs -USERINCLUDE ../../../../../inc - -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/Digia/EUnit - -LIBRARY EUnit.lib -LIBRARY EUnitUtil.lib -LIBRARY euser.lib - -LIBRARY bafl.lib // CDesCArray -LIBRARY centralrepository.lib -LIBRARY cenrepdatabase.lib - -// End of File - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/T_CSPSettingsVoIPUtilsUT.mmp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/T_CSPSettingsVoIPUtilsUT.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* Copyright (c) 2005-2007 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: MMP file for T_CSPSettingsVoIPUtils. -* -*/ - - -#include -#include - -TARGET T_CSPSettingsVoIPUtils.dll -TARGETTYPE dll -UID 0x1000af5a 0x01700000 -CAPABILITY EUNIT_CAPS -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE T_CSPSettingsVoIPUtils.cpp -SOURCE T_CSPSettingsVoIPUtils_DllMain.cpp - - -// Sources required by the test suite -SOURCEPATH ../../../../../src -SOURCE spsettingsvoiputils.cpp - -//SOURCE spsettingsengine.cpp -SOURCE spproperty.cpp - -SOURCEPATH ../stubs -SOURCE T_spsettingsengineStub.cpp -SOURCE FeatMgrStub.cpp -SOURCE TestData.cpp - -USERINCLUDE ../src -USERINCLUDE ../stubs -USERINCLUDE ../../../../../inc - -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/Digia/EUnit - -LIBRARY EUnit.lib -LIBRARY EUnitUtil.lib -LIBRARY euser.lib - -LIBRARY centralrepository.lib -LIBRARY cenrepdatabase.lib - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/bld.inf --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2004 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: Build file for spsettings testing components. -* -*/ - - -PRJ_PLATFORMS - DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES - -PRJ_TESTMMPFILES -T_CSPPropertyUT.mmp -T_CSPSettingsUT.mmp -T_CSPSettingsVoIPUtilsUT.mmp -T_CSPSettingsEngineUT.mmp -ut_spsbackuphelpermonitor.mmp -ut_spsbackuphelperperformer.mmp -ut_spsbufferredpublisher.mmp - - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/ut_spsbackuphelpermonitor.mmp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/ut_spsbackuphelpermonitor.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +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 -#include - -TARGETTYPE DLL -TARGET ut_spsbackuphelpermonitor.dll -CAPABILITY EUNIT_CAPS -UID 0x1000af5a 0x01700000 -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE ut_spsbackuphelpermonitor.cpp -SOURCE ut_spsbackuphelpermonitor_dllmain.cpp - -SOURCEPATH ../stubs -SOURCE spsbackuphelperperformer_stub.cpp -SOURCE abclient_stub.cpp - -// Sources required by the test suite -SOURCEPATH ../../../../../backuphelper/src -SOURCE spsbackuphelpermonitor.cpp - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/connect -SYSTEMINCLUDE /epoc32/include/Digia/EUnit -USERINCLUDE ../../../../../backuphelper/inc -USERINCLUDE ../../../../../inc - -LIBRARY EUnit.lib -LIBRARY EUnitUtil.lib -LIBRARY euser.lib - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/ut_spsbackuphelperperformer.mmp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/ut_spsbackuphelperperformer.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +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 -#include - -TARGETTYPE DLL -TARGET ut_spsbackuphelperperformer.dll -CAPABILITY EUNIT_CAPS -UID 0x1000af5a 0x01700000 -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE ut_spsbackuphelperperformer.cpp -SOURCE ut_spsbackuphelperperformer_dllmain.cpp - -SOURCEPATH ../stubs -SOURCE serviceprovidersettings_stub.cpp -SOURCE centralrepository_stub.cpp - -// Sources required by the test suite -SOURCEPATH ../../../../../backuphelper/src -SOURCE spsbackuphelperperformer.cpp - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/connect -SYSTEMINCLUDE /epoc32/include/Digia/EUnit -USERINCLUDE ../../../../../backuphelper/inc -USERINCLUDE ../../../../../inc - -LIBRARY EUnit.lib -LIBRARY EUnitUtil.lib -LIBRARY euser.lib - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/ut_spsbufferredpublisher.mmp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/group/ut_spsbufferredpublisher.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +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 -#include - -TARGETTYPE DLL -TARGET ut_spsbufferedpublisher.dll -CAPABILITY EUNIT_CAPS -UID 0x1000af5a 0x01700000 -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE ut_spsbufferedpublisher.cpp -SOURCE ut_spsbufferedpublisher_dllmain.cpp - -SOURCEPATH ../stubs - -// Sources required by the test suite -SOURCEPATH ../../../../../src -SOURCE spsbufferedpublisher.cpp - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/connect -SYSTEMINCLUDE /epoc32/include/Digia/EUnit -USERINCLUDE ../../../../../inc - -LIBRARY EUnit.lib -LIBRARY EUnitUtil.lib -LIBRARY euser.lib - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPProperty.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPProperty.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,284 +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: Implementation of T_CSPProperty class. -* -*/ - -#include "T_CSPProperty.h" -#include -#include - - - -// - Construction ----------------------------------------------------------- - -T_CSPProperty* T_CSPProperty::NewL() - { - T_CSPProperty* self = T_CSPProperty::NewLC(); - CleanupStack::Pop(); - return self; - } - -T_CSPProperty* T_CSPProperty::NewLC() - { - T_CSPProperty* self = new( ELeave ) T_CSPProperty(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -T_CSPProperty::~T_CSPProperty() - { - } - -T_CSPProperty::T_CSPProperty() - { - } - -void T_CSPProperty::ConstructL() - { - CEUnitTestSuiteClass::ConstructL(); - } - -// - Test methods ----------------------------------------------------------- - - - -void T_CSPProperty::SetupL( ) - { - iCSPProperty = CSPProperty::NewL(); - } - - -void T_CSPProperty::Teardown( ) - { - delete iCSPProperty; - iCSPProperty = NULL; - } - -// --------------------------------------------------------------------------- -// T_CSPProperty::PropertyDatatypeTIntSetGetTestL -// --------------------------------------------------------------------------- -// -void T_CSPProperty::PropertyDatatypeTIntSetGetTestL( ) - { - TInt profIdSet( 15 ); - EUNIT_ASSERT( KErrArgument == iCSPProperty->SetValue( profIdSet ) ); - - iCSPProperty->SetName( EPropertyVoIPSubServicePluginId ); - EUNIT_ASSERT( EPropertyVoIPSubServicePluginId == iCSPProperty->GetName() ); - User::LeaveIfError( iCSPProperty->SetValue( profIdSet )); - EUNIT_ASSERT( EDataTypeInt == iCSPProperty->GetDataType() ); - - TInt profIdGet( 0 ); - TInt error = iCSPProperty->GetValue( profIdGet ); - EUNIT_ASSERT( error == KErrNone ); - EUNIT_ASSERT( profIdSet == profIdGet ); - } - -// --------------------------------------------------------------------------- -// T_CSPProperty::PropertyDatatypeOnOffSetGetTestL -// --------------------------------------------------------------------------- -// -void T_CSPProperty::PropertyDatatypeOnOffSetGetTestL( ) - { - TOnOff onOffSet( EOn ); - EUNIT_ASSERT( KErrArgument == iCSPProperty->SetValue( onOffSet ) ); - - iCSPProperty->SetName( ESubPropertyPresenceEnabled ); - EUNIT_ASSERT( ESubPropertyPresenceEnabled == iCSPProperty->GetName() ); - User::LeaveIfError( iCSPProperty->SetValue( onOffSet ) ); - EUNIT_ASSERT( EDataTypeOnOff == iCSPProperty->GetDataType() ); - - TOnOff onOffGet( EOONotSet ); - TInt error = iCSPProperty->GetValue( onOffGet ); - EUNIT_ASSERT( error == KErrNone ); - EUNIT_ASSERT( onOffSet == onOffGet ); - } - -// --------------------------------------------------------------------------- -// T_CSPProperty::PropertyDatatypeTDesCSetGetTestL -// --------------------------------------------------------------------------- -// -void T_CSPProperty::PropertyDatatypeTDesCSetGetTestL( ) - { - iCSPProperty->SetName( EPropertyBrandId ); - EUNIT_ASSERT( EPropertyBrandId == iCSPProperty->GetName() ); - - TBuf<514> overflower; - overflower.FillZ( 514 ); - EUNIT_ASSERT( KErrOverflow == iCSPProperty->SetValue( overflower ) ); - - RBuf brandIdSet; - brandIdSet.CreateL( _L( "SomeBrandId" ) ); - CleanupClosePushL( brandIdSet); - User::LeaveIfError( iCSPProperty->SetValue( brandIdSet ) ); - EUNIT_ASSERT( iCSPProperty->GetDataType() == EDataTypeDes ); - - RBuf brandIdGet; - brandIdGet.CreateL( 9 ); - CleanupClosePushL( brandIdGet ); - brandIdGet.FillZ( 9 ); - EUNIT_ASSERT( KErrOverflow == iCSPProperty->GetValue( brandIdGet ) ); - CleanupStack::PopAndDestroy( &brandIdGet); - - brandIdGet.CreateL( KSPMaxDesLength ); - CleanupClosePushL( brandIdGet); - TInt error = iCSPProperty->GetValue( brandIdGet ); - EUNIT_ASSERT( error == KErrNone ); - EUNIT_ASSERT( brandIdSet.Compare( brandIdGet ) == 0 ); - - CleanupStack::PopAndDestroy( &brandIdGet); - CleanupStack::PopAndDestroy( &brandIdSet); - } - -// --------------------------------------------------------------------------- -// CopyLL -// --------------------------------------------------------------------------- -// -void T_CSPProperty::CopyLL( ) - { - iCSPProperty->CopyL( *iCSPProperty ); - - CSPProperty* property = CSPProperty::NewLC(); - RBuf brandIdSet; - brandIdSet.CreateL( _L( "SomeBrandId" ) ); - CleanupClosePushL( brandIdSet); - User::LeaveIfError( property->SetValue( brandIdSet ) ); - - iCSPProperty->CopyL( *property ); - - RBuf brandIdGet; - brandIdGet.CreateL( KSPMaxDesLength ); - CleanupClosePushL( brandIdGet); - TInt error = iCSPProperty->GetValue( brandIdGet ); - EUNIT_ASSERT( error == KErrNone ); - EUNIT_ASSERT( brandIdSet.Compare( brandIdGet ) == 0 ); - - CleanupStack::PopAndDestroy( &brandIdGet ); - CleanupStack::PopAndDestroy( &brandIdSet ); - CleanupStack::PopAndDestroy( property ); - } - -// --------------------------------------------------------------------------- -// CopyLL -// --------------------------------------------------------------------------- -// -void T_CSPProperty::SetValueNoDataTypeCheckL( ) - { - RBuf bufToSet; - bufToSet.CreateL( KSPMaxDesLength + 1 ); - CleanupClosePushL( bufToSet ); - bufToSet.FillZ( KSPMaxDesLength + 1 ); - EUNIT_ASSERT( KErrOverflow == iCSPProperty->SetValueNoDataTypeCheck( bufToSet ) ); - CleanupStack::PopAndDestroy( &bufToSet ); - - bufToSet.CreateL( _L( "SomeBrandId" ) ); - CleanupClosePushL( bufToSet ); - TInt error = iCSPProperty->SetValueNoDataTypeCheck( bufToSet ); - EUNIT_ASSERT( KErrNone == error ); - - CleanupStack::PopAndDestroy( &bufToSet ); - } - - -// --------------------------------------------------------------------------- -// PropertyTypeL -// --------------------------------------------------------------------------- -// -void T_CSPProperty::PropertyTypeL( ) - { - EUNIT_ASSERT( EItemTypeNotDefined == iCSPProperty->PropertyType( EPropertyUnknown ) ); - EUNIT_ASSERT( EItemTypeVoIPSubProperty == iCSPProperty->PropertyType( ESubPropertyVoIPPreferredSNAPId ) ); - EUNIT_ASSERT( EItemTypePresenceSubProperty == iCSPProperty->PropertyType( ESubPropertyPresencePreferredSNAPId ) ); - EUNIT_ASSERT( EItemTypeIMSubProperty == iCSPProperty->PropertyType( ESubPropertyIMPreferredSNAPId ) ); - EUNIT_ASSERT( EItemTypeVMBXSubProperty == iCSPProperty->PropertyType( ESubPropertyVMBXPreferredSNAPId ) ); - EUNIT_ASSERT( EItemTypeProperty == iCSPProperty->PropertyType( EPropertyCTIPluginId ) ); - } - -// --------------------------------------------------------------------------- -// PropertyTypeL -// --------------------------------------------------------------------------- -// -void T_CSPProperty::EqualToOperatorOverloadL( ) - { - CSPProperty* property = CSPProperty::NewLC(); - TBool objectsEqual = *iCSPProperty == *iCSPProperty; - EUNIT_ASSERT( objectsEqual ); - - property->SetName( EPropertyBrandId ); - objectsEqual = *iCSPProperty == *property; - EUNIT_ASSERT( !objectsEqual ); - - CleanupStack::PopAndDestroy( property ); - } - - -// - EUnit test table ------------------------------------------------------- - -EUNIT_BEGIN_TEST_TABLE( - T_CSPProperty, - "Add test suite description here.", - "UNIT" ) - -EUNIT_TEST( - "PropertyDatatypeTIntSetGetTest - Test", - "CSPProperty", - "PropertyDatatypeTIntSetGetTest - Test", - "FUNCTIONALITY", - SetupL, PropertyDatatypeTIntSetGetTestL, Teardown) - -EUNIT_TEST( - "PropertyDatatypeTIntSetGetTest - Test", - "CSPProperty", - "PropertyDatatypeTIntSetGetTest - Test", - "FUNCTIONALITY", - SetupL, PropertyDatatypeOnOffSetGetTestL, Teardown) - -EUNIT_TEST( - "PropertyDatatypeTIntSetGetTest - Test", - "CSPProperty", - "PropertyDatatypeTIntSetGetTest - Test", - "FUNCTIONALITY", - SetupL, PropertyDatatypeTDesCSetGetTestL, Teardown) - -EUNIT_TEST( - "CopyL - Test", - "CSPProperty", - "CopyL - Test", - "FUNCTIONALITY", - SetupL, CopyLL, Teardown) - -EUNIT_TEST( - "SetValueNoDataTypeCheck - Test", - "CSPProperty", - "SetValueNoDataTypeCheck - Test", - "FUNCTIONALITY", - SetupL, SetValueNoDataTypeCheckL, Teardown) - -EUNIT_TEST( - "PropertyType - Test", - "CSPProperty", - "PropertyType - Test", - "FUNCTIONALITY", - SetupL, PropertyTypeL, Teardown) - -EUNIT_TEST( - "EqualToOperatorRedefinition - Test", - "CSPProperty", - "EqualToOperatorRedefinition - Test", - "FUNCTIONALITY", - SetupL, EqualToOperatorOverloadL, Teardown) - -EUNIT_END_TEST_TABLE diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPProperty.h --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPProperty.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +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: Declaration of T_CSPProperty class. -* -*/ - -#ifndef __T_CSPPROPERTY_H__ -#define __T_CSPPROPERTY_H__ - -// INCLUDES -#include -#include - -#include "spproperty.h" - -// FORWARD DECLARATIONS - - -// CLASS DEFINITION -/** - * Generated EUnit test suite class. - */ -NONSHARABLE_CLASS( T_CSPProperty ) - : public CEUnitTestSuiteClass - { - public: // Constructors and destructor - - static T_CSPProperty* NewL(); - static T_CSPProperty* NewLC(); - ~T_CSPProperty(); - - private: // Constructors - - T_CSPProperty(); - void ConstructL(); - - private: // New methods - - void SetupL(); - - void Teardown(); - - void PropertyDatatypeTIntSetGetTestL(); - - void PropertyDatatypeOnOffSetGetTestL(); - - void PropertyDatatypeTDesCSetGetTestL(); - - void CopyLL(); - - void SetValueNoDataTypeCheckL(); - - void PropertyTypeL(); - - void EqualToOperatorOverloadL(); - - - private: // Data - - CSPProperty* iCSPProperty; - - EUNIT_DECLARE_TEST_TABLE; - - }; - -#endif // __T_CSPPROPERTY_H__ diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPProperty_DllMain.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPProperty_DllMain.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +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: Implementation of CreateTestSuiteL class. -* -*/ - -#include "T_CSPProperty.h" -#include - -EXPORT_C MEUnitTest* CreateTestSuiteL() - { - return T_CSPProperty::NewL(); - } diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettings.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettings.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,400 +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: Implementation of T_CSPSettings class. -* -*/ - -#include "T_CSPSettings.h" -#include -#include - -#include -#include -#include "spsettings.h" -#include "TestData.h" - -// - Construction ----------------------------------------------------------- - -T_CSPSettings* T_CSPSettings::NewL() - { - T_CSPSettings* self = T_CSPSettings::NewLC(); - CleanupStack::Pop(); - return self; - } - -T_CSPSettings* T_CSPSettings::NewLC() - { - T_CSPSettings* self = new( ELeave ) T_CSPSettings(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -T_CSPSettings::~T_CSPSettings() - { - } - -T_CSPSettings::T_CSPSettings() - { - } - -void T_CSPSettings::ConstructL() - { - CEUnitTestSuiteClass::ConstructL(); - } - -// - Test methods ----------------------------------------------------------- - - - -void T_CSPSettings::SetupL( ) - { - iCSPSettings = CSPSettings::NewL(); - } - -void T_CSPSettings::Setup2L( ) - { - TestData::iCheckSupportedCase = ETrue; - iCSPSettings = CSPSettings::NewL(); - } - - -void T_CSPSettings::Teardown( ) - { - delete iCSPSettings; - iCSPSettings = NULL; - } - -void T_CSPSettings::T_CSPSettings_AddEntryLL( ) - { - CSPEntry* entry = CSPEntry::NewLC(); - User::LeaveIfError( entry->SetServiceName( _L("Nimi") ) ); - - EUNIT_ASSERT( KErrNone == iCSPSettings->AddEntryL( *entry ) ); - - CleanupStack::PopAndDestroy( entry ); - } - -void T_CSPSettings::T_CSPSettings_FindEntryLL( ) - { - CSPEntry* entry = CSPEntry::NewLC(); - User::LeaveIfError( entry->SetServiceName( _L("Nimi") ) ); - TInt id = entry->GetServiceId(); - - EUNIT_ASSERT( KErrNotFound == iCSPSettings->FindEntryL( id, *entry ) ); - - iCSPSettings->AddEntryL( *entry ); - id = entry->GetServiceId(); - EUNIT_ASSERT( KErrNone == iCSPSettings->FindEntryL( id, *entry ) ); - - CleanupStack::PopAndDestroy( entry ); - } - -void T_CSPSettings::T_CSPSettings_UpdateEntryLL( ) - { - CSPEntry* entry = CSPEntry::NewLC(); - - EUNIT_ASSERT_LEAVE( iCSPSettings->UpdateEntryL( *entry ) ); - - User::LeaveIfError( entry->SetServiceName( _L("Nimi") ) ); - iCSPSettings->AddEntryL( *entry ); - EUNIT_ASSERT( KErrNone == iCSPSettings->UpdateEntryL( *entry ) ); - - CleanupStack::PopAndDestroy( entry ); - } - -void T_CSPSettings::T_CSPSettings_DeleteEntryLL( ) - { - CSPEntry* entry = CSPEntry::NewLC(); - User::LeaveIfError( entry->SetServiceName( _L("Nimi") ) ); - TInt id = entry->GetServiceId(); - - EUNIT_ASSERT( KErrNotFound == iCSPSettings->DeleteEntryL( id ) ); - - iCSPSettings->AddEntryL( *entry ); - id = entry->GetServiceId(); - EUNIT_ASSERT( KErrNone == iCSPSettings->DeleteEntryL( id ) ); - CleanupStack::PopAndDestroy( entry ); - } - -void T_CSPSettings::T_CSPSettings_FindPropertyLL( ) - { - CSPProperty* property = CSPProperty::NewLC(); - property->SetName( EPropertyVoIPSubServicePluginId ); - TInt profId( 15 ); - User::LeaveIfError( property->SetValue( profId )); - - EUNIT_ASSERT( KErrNotFound == iCSPSettings->FindPropertyL( - 0, EPropertyVoIPSubServicePluginId, *property ) ); - - EUNIT_ASSERT( KErrNone == iCSPSettings->FindPropertyL( - profId, EPropertyVoIPSubServicePluginId, *property ) ); - - CleanupStack::PopAndDestroy( property ); - } - -void T_CSPSettings::T_CSPSettings_AddOrUpdatePropertiesLL( ) - { - // iCSPSettings->AddOrUpdatePropertiesL( ); - EUNIT_ASSERT_DESC( EFalse, "Generated assert, replace with real"); - } - -void T_CSPSettings::T_CSPSettings_AddOrUpdatePropertyLL( ) - { - CSPProperty* property = CSPProperty::NewLC(); - property->SetName( EPropertyVoIPSubServicePluginId ); - TInt profId( 15 ); - User::LeaveIfError( property->SetValue( profId )); - - EUNIT_ASSERT( KErrNone == iCSPSettings->AddOrUpdatePropertyL( profId, *property ) ); - - CleanupStack::PopAndDestroy( property ); - } - -void T_CSPSettings::T_CSPSettings_SettingsCountLL( ) - { - TInt count = iCSPSettings->SettingsCountL( ); - EUNIT_ASSERT( count ); - } - -void T_CSPSettings::T_CSPSettings_FindServiceIdsLL( ) - { - RIdArray ids; - CleanupClosePushL( ids ); - - EUNIT_ASSERT( KErrNone == iCSPSettings->FindServiceIdsL( ids ) ); - TInt count( ids.Count() ); - EUNIT_ASSERT( count ); - - CleanupStack::PopAndDestroy( &ids ); - } - -void T_CSPSettings::T_CSPSettings_FindServiceNamesLL( ) - { - RIdArray ids; - CleanupClosePushL( ids ); - iCSPSettings->FindServiceIdsL( ids ); - - CDesCArrayFlat* names = new ( ELeave ) CDesCArrayFlat( 10 ); - CleanupStack::PushL( names ); - EUNIT_ASSERT( KErrNone == iCSPSettings->FindServiceNamesL( ids, *names ) ); - TInt count = names->MdcaCount(); - EUNIT_ASSERT( count ); - - CleanupStack::PopAndDestroy( names ); - CleanupStack::PopAndDestroy( &ids ); - } - -void T_CSPSettings::T_CSPSettings_FindSubServicePropertiesLL( ) - { - RPropertyArray* propertyArray = new (ELeave) RPropertyArray( 3 ); - CleanupStack::PushL( propertyArray ); - - iCSPSettings->FindSubServicePropertiesL( 0, EItemTypeVMBXSubProperty, *propertyArray ); - TInt count = propertyArray->Count(); - EUNIT_ASSERT( !count ); - - CleanupStack::PopAndDestroy( propertyArray ); - } - -void T_CSPSettings::T_CSPSettings_DeleteServicePropertiesLL( ) - { - RPropertyNameArray names; - CleanupClosePushL( names ); - - EUNIT_ASSERT( KErrNone == iCSPSettings->DeleteServicePropertiesL( 0, names ) ); - - CleanupStack::PopAndDestroy( &names ); - } - -void T_CSPSettings::T_CSPSettings_FindServiceIdsFromPropertiesLL( ) - { - RIdArray serviceIds; - CleanupClosePushL( serviceIds ); - RPropertyArray properties; - CleanupClosePushL( properties ); - - EUNIT_ASSERT( KErrNone == iCSPSettings->FindServiceIdsFromPropertiesL( properties, serviceIds ) ); - - CleanupStack::PopAndDestroy( &properties ); - CleanupStack::PopAndDestroy( &serviceIds ); - } - -void T_CSPSettings::T_CSPSettings_GetSIPVoIPSWVersionL( ) - { - EUNIT_ASSERT( _L("3.1") == iCSPSettings->GetSIPVoIPSWVersion() ); - } - -void T_CSPSettings::T_CSPSettings_IsFeatureSupportedL( ) - { - EUNIT_ASSERT( !iCSPSettings->IsFeatureSupported( ESupportInternetCallFeature ) ); - } - -void T_CSPSettings::T_CSPSettings_CheckSupportedLsL( ) - { - // Test CheckSupportedL( TServiceId aServiceId, const RPropertyNameArray& aNameArray ) - - CSPProperty* property = CSPProperty::NewLC(); - iCSPSettings->FindPropertyL( 0, EPropertyVoIPSubServicePluginId, *property ); - iCSPSettings->FindPropertyL( 2, EPropertyVoIPSubServicePluginId, *property ); - CleanupStack::PopAndDestroy( property ); - - - // Test CheckSupportedL( TServiceId aServiceId ) - - CSPEntry* entry = CSPEntry::NewLC(); - iCSPSettings->FindEntryL( 0, *entry ); - entry->SetServiceId( 2 ); - iCSPSettings->FindEntryL( 2, *entry ); - CleanupStack::PopAndDestroy( entry ); - - - // Test CheckSupportedL( TSPItemType aPropertyType ) - - RPropertyArray* propertyArray = new (ELeave) RPropertyArray( 3 ); - CleanupStack::PushL( propertyArray ); - iCSPSettings->FindSubServicePropertiesL( 0, EItemTypeVMBXSubProperty, *propertyArray ); - - - // Test CheckSupportedL( const RPropertyArray& aPropertyArray ) - - RIdArray serviceIds; - CleanupClosePushL( serviceIds ); - iCSPSettings->FindServiceIdsFromPropertiesL( *propertyArray, serviceIds ); - - CleanupStack::PopAndDestroy( &serviceIds ); - CleanupStack::PopAndDestroy( propertyArray ); - } - - -// - EUnit test table ------------------------------------------------------- - -EUNIT_BEGIN_TEST_TABLE( - T_CSPSettings, - "Add test suite description here.", - "UNIT" ) - -EUNIT_TEST( - "AddEntryL - test", - "CSPSettings", - "AddEntryL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_AddEntryLL, Teardown) - -EUNIT_TEST( - "FindEntryL - test", - "CSPSettings", - "FindEntryL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_FindEntryLL, Teardown) - -EUNIT_TEST( - "UpdateEntryL - test", - "CSPSettings", - "UpdateEntryL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_UpdateEntryLL, Teardown) - -EUNIT_TEST( - "DeleteEntryL - test", - "CSPSettings", - "DeleteEntryL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_DeleteEntryLL, Teardown) - -EUNIT_TEST( - "FindPropertyL - test", - "CSPSettings", - "FindPropertyL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_FindPropertyLL, Teardown) -/* -EUNIT_TEST( - "AddOrUpdatePropertiesL - test", - "CSPSettings", - "AddOrUpdatePropertiesL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_AddOrUpdatePropertiesLL, Teardown) -*/ -EUNIT_TEST( - "AddOrUpdatePropertyL - test", - "CSPSettings", - "AddOrUpdatePropertyL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_AddOrUpdatePropertyLL, Teardown) - -EUNIT_TEST( - "SettingsCountL - test", - "CSPSettings", - "SettingsCountL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_SettingsCountLL, Teardown) - -EUNIT_TEST( - "FindServiceIdsL - test", - "CSPSettings", - "FindServiceIdsL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_FindServiceIdsLL, Teardown) - -EUNIT_TEST( - "FindServiceNamesL - test", - "CSPSettings", - "FindServiceNamesL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_FindServiceNamesLL, Teardown) - -EUNIT_TEST( - "FindSubServicePropertiesL - test", - "CSPSettings", - "FindSubServicePropertiesL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_FindSubServicePropertiesLL, Teardown) - -EUNIT_TEST( - "DeleteServicePropertiesL - test", - "CSPSettings", - "DeleteServicePropertiesL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_DeleteServicePropertiesLL, Teardown) - -EUNIT_TEST( - "FindServiceIdsFromPropertiesL - test", - "CSPSettings", - "FindServiceIdsFromPropertiesL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_FindServiceIdsFromPropertiesLL, Teardown) - -EUNIT_TEST( - "GetSIPVoIPSWVersion - test", - "CSPSettings", - "GetSIPVoIPSWVersion - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_GetSIPVoIPSWVersionL, Teardown) - -EUNIT_TEST( - "IsFeatureSupported - test", - "CSPSettings", - "IsFeatureSupported - test", - "FUNCTIONALITY", - SetupL, T_CSPSettings_IsFeatureSupportedL, Teardown) - -EUNIT_TEST( - "CheckSupportedLs - test", - "CSPSettings", - "CheckSupportedLs - test", - "FUNCTIONALITY", - Setup2L, T_CSPSettings_CheckSupportedLsL, Teardown) - -EUNIT_END_TEST_TABLE diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettings.h --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettings.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +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: Declaration of T_CSPSettings class. -* -*/ - -#ifndef __T_CSPSETTINGS_H__ -#define __T_CSPSETTINGS_H__ - -// INCLUDES -#include -#include - -#include "spsettings.h" - -// FORWARD DECLARATIONS - - -// CLASS DEFINITION -/** - * Generated EUnit test suite class. - */ -NONSHARABLE_CLASS( T_CSPSettings ) - : public CEUnitTestSuiteClass - { - public: // Constructors and destructor - - static T_CSPSettings* NewL(); - static T_CSPSettings* NewLC(); - ~T_CSPSettings(); - - private: // Constructors - - T_CSPSettings(); - void ConstructL(); - - private: // New methods - - void SetupL(); - - void Setup2L(); - - void Teardown(); - - void T_CSPSettings_AddEntryLL(); - - void T_CSPSettings_FindEntryLL(); - - void T_CSPSettings_UpdateEntryLL(); - - void T_CSPSettings_DeleteEntryLL(); - - void T_CSPSettings_FindPropertyLL(); - - void T_CSPSettings_AddOrUpdatePropertiesLL(); - - void T_CSPSettings_AddOrUpdatePropertyLL(); - - void T_CSPSettings_SettingsCountLL(); - - void T_CSPSettings_FindServiceIdsLL(); - - void T_CSPSettings_FindServiceNamesLL(); - - void T_CSPSettings_FindSubServicePropertiesLL(); - - void T_CSPSettings_DeleteServicePropertiesLL(); - - void T_CSPSettings_FindServiceIdsFromPropertiesLL(); - - void T_CSPSettings_GetSIPVoIPSWVersionL(); - - void T_CSPSettings_IsFeatureSupportedL(); - - void T_CSPSettings_CheckSupportedLsL(); - - - private: // Data - - CSPSettings* iCSPSettings; - - EUNIT_DECLARE_TEST_TABLE; - - }; - -#endif // __T_CSPSETTINGS_H__ diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettingsEngine.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettingsEngine.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,506 +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: Implementation of T_CSPSettingsEngine class. -* -*/ - -#include "T_CSPSettingsEngine.h" -#include -#include - -#include -#include -#include "spsettingsengine.h" - -// - Construction ----------------------------------------------------------- - -T_CSPSettingsEngine* T_CSPSettingsEngine::NewL() - { - T_CSPSettingsEngine* self = T_CSPSettingsEngine::NewLC(); - CleanupStack::Pop(); - return self; - } - -T_CSPSettingsEngine* T_CSPSettingsEngine::NewLC() - { - T_CSPSettingsEngine* self = new( ELeave ) T_CSPSettingsEngine(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -T_CSPSettingsEngine::~T_CSPSettingsEngine() - { - } - -T_CSPSettingsEngine::T_CSPSettingsEngine() - { - } - -void T_CSPSettingsEngine::ConstructL() - { - CEUnitTestSuiteClass::ConstructL(); - } - -// - Test methods ----------------------------------------------------------- - - - -void T_CSPSettingsEngine::SetupL( ) - { - iCSPSettingsEngine = CSPSettingsEngine::NewL(); - } - - -void T_CSPSettingsEngine::Teardown( ) - { - delete iCSPSettingsEngine; - iCSPSettingsEngine = NULL; - } - - -void T_CSPSettingsEngine::T_CSPSettingsEngine_BeginTransactionLCL( ) - { - EUNIT_ASSERT( KErrNone == iCSPSettingsEngine->BeginTransactionLC( ) ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_CommitTransactionL( ) - { - EUNIT_ASSERT( KErrNone == iCSPSettingsEngine->CommitTransaction() ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_RollbackTransactionL( ) - { - iCSPSettingsEngine->RollbackTransaction( ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_AddEntryLL( ) - { - CSPEntry* entry = CSPEntry::NewLC(); - TServiceId id = entry->GetServiceId(); - - EUNIT_ASSERT_SPECIFIC_LEAVE( iCSPSettingsEngine->AddEntryL( *entry ), KErrArgument ) ; - - User::LeaveIfError( entry->SetServiceName( _L("Nimi") ) ); - iCSPSettingsEngine->AddEntryL( *entry ); - EUNIT_ASSERT( id != entry->GetServiceId() ); - - CleanupStack::PopAndDestroy( entry ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_FindEntryLL( ) - { - CSPEntry* entry = CSPEntry::NewLC(); - User::LeaveIfError( entry->SetServiceName( _L("Nimi") ) ); - TInt id = entry->GetServiceId(); - - EUNIT_ASSERT( KErrNotFound == iCSPSettingsEngine->FindEntryL( id, *entry ) ); - - iCSPSettingsEngine->AddEntryL( *entry ); - id = entry->GetServiceId(); - - EUNIT_ASSERT( KErrNone == iCSPSettingsEngine->FindEntryL( id, *entry ) ); - - CleanupStack::PopAndDestroy( entry ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_UpdateEntryLL( ) - { - CSPEntry* entry = CSPEntry::NewLC(); - - EUNIT_ASSERT_LEAVE( iCSPSettingsEngine->UpdateEntryL( *entry ) ); - - User::LeaveIfError( entry->SetServiceName( _L("Nimi") ) ); - iCSPSettingsEngine->AddEntryL( *entry ); - EUNIT_ASSERT( KErrNone == iCSPSettingsEngine->UpdateEntryL( *entry ) ); - - CleanupStack::PopAndDestroy( entry ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_DeleteEntryLL( ) - { - CSPEntry* entry = CSPEntry::NewLC(); - User::LeaveIfError( entry->SetServiceName( _L("Nimi") ) ); - TInt id = entry->GetServiceId(); - - EUNIT_ASSERT( KErrNotFound == iCSPSettingsEngine->DeleteEntryL( id ) ); - - iCSPSettingsEngine->AddEntryL( *entry ); - id = entry->GetServiceId(); - EUNIT_ASSERT( KErrNone == iCSPSettingsEngine->DeleteEntryL( id ) ); - CleanupStack::PopAndDestroy( entry ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_FindPropertyLL( ) - { - CSPProperty* property = CSPProperty::NewLC(); - property->SetName( EPropertyVoIPSubServicePluginId ); - TInt profId( 15 ); - User::LeaveIfError( property->SetValue( profId )); - - EUNIT_ASSERT( KErrNotFound == iCSPSettingsEngine->FindPropertyL( - 0, EPropertyVoIPSubServicePluginId, *property ) ); - - EUNIT_ASSERT( KErrNone == iCSPSettingsEngine->FindPropertyL( - profId, EPropertyVoIPSubServicePluginId, *property ) ); - - CleanupStack::PopAndDestroy( property ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_AddOrUpdatePropertiesLL( ) - { - CSPProperty* property = CSPProperty::NewLC(); - property->SetName( EPropertyVoIPSubServicePluginId ); - TInt profId( 15 ); - User::LeaveIfError( property->SetValue( profId )); - - RPropertyArray propertyArray; - propertyArray.Append( property ); - CleanupClosePushL( propertyArray ); - - EUNIT_ASSERT( KErrNone == iCSPSettingsEngine->AddOrUpdatePropertiesL( profId, propertyArray ) ); - - CleanupStack::PopAndDestroy( &propertyArray ); - CleanupStack::PopAndDestroy( property ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_SettingsCountLL( ) - { - EUNIT_ASSERT( !iCSPSettingsEngine->SettingsCountL() ); - - // Note that stub file is set to increase the count for this - // test when calling SettingsCountL method again - EUNIT_ASSERT( !iCSPSettingsEngine->SettingsCountL() ); - EUNIT_ASSERT( iCSPSettingsEngine->SettingsCountL() ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_FindServiceIdsLL( ) - { - RIdArray serviceIds; - CleanupClosePushL( serviceIds ); - - EUNIT_ASSERT( KErrNone == iCSPSettingsEngine->FindServiceIdsL( serviceIds ) ); - EUNIT_ASSERT( serviceIds.Count() ); - - CleanupStack::PopAndDestroy( &serviceIds ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_FindServiceNamesLL( ) - { - RIdArray ids; - CleanupClosePushL( ids ); - iCSPSettingsEngine->FindServiceIdsL( ids ); - - CDesCArrayFlat* names = new ( ELeave ) CDesCArrayFlat( 10 ); - CleanupStack::PushL( names ); - iCSPSettingsEngine->FindServiceNamesL( ids, *names ); - TInt count = names->MdcaCount(); - EUNIT_ASSERT( count ); - - CleanupStack::PopAndDestroy( names ); - CleanupStack::PopAndDestroy( &ids ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_PropertyNameArrayFromItemTypeLL( ) - { - RPropertyArray* propertyArray = new (ELeave) RPropertyArray( 3 ); - CleanupStack::PushL( propertyArray ); - - EUNIT_ASSERT_SPECIFIC_LEAVE( iCSPSettingsEngine->FindSubServicePropertiesL( 0, EItemTypeNotDefined, - *propertyArray ), KErrArgument ); - iCSPSettingsEngine->FindSubServicePropertiesL( 0, EItemTypeVoIPSubProperty, *propertyArray ); - iCSPSettingsEngine->FindSubServicePropertiesL( 0, EItemTypePresenceSubProperty, *propertyArray ); - iCSPSettingsEngine->FindSubServicePropertiesL( 0, EItemTypeIMSubProperty, *propertyArray ); - iCSPSettingsEngine->FindSubServicePropertiesL( 0, EItemTypeVMBXSubProperty, *propertyArray ); - - CleanupStack::PopAndDestroy( propertyArray ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_FindSubServicePropertiesLL( ) - { - RPropertyArray* propertyArray = new (ELeave) RPropertyArray( 3 ); - CleanupStack::PushL( propertyArray ); - - iCSPSettingsEngine->FindSubServicePropertiesL( 0, EItemTypeVMBXSubProperty, *propertyArray ); - TInt count = propertyArray->Count(); - EUNIT_ASSERT( !count ); - - CleanupStack::PopAndDestroy( propertyArray ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_DeleteServicePropertiesLL( ) - { - RPropertyNameArray names; - CleanupClosePushL( names ); - - EUNIT_ASSERT( KErrNone == iCSPSettingsEngine->DeleteServicePropertiesL( 0, names ) ); - - names.AppendL( EPropertyPCSPluginId ); - names.AppendL( ESubPropertyVoIPSettingsId ); - EUNIT_ASSERT( KErrNone == iCSPSettingsEngine->DeleteServicePropertiesL( 0, names ) ); - - CleanupStack::PopAndDestroy( &names ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_FindServiceIdsFromPropertiesLL( ) - { - RIdArray serviceIds; - CleanupClosePushL( serviceIds ); - RPropertyArray properties; - CleanupClosePushL( properties ); - - iCSPSettingsEngine->FindServiceIdsFromPropertiesL( properties, serviceIds ); - EUNIT_ASSERT( serviceIds.Count() ); - - CleanupStack::PopAndDestroy( &properties ); - CleanupStack::PopAndDestroy( &serviceIds ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_IsFeatureSupportedLL( ) - { - EUNIT_ASSERT( !iCSPSettingsEngine->IsFeatureSupportedL( ESupportInternetCallFeature, EFalse ) ); - EUNIT_ASSERT_LEAVE( iCSPSettingsEngine->IsFeatureSupportedL( ESupportInternetCallFeature, ETrue ) ); - - EUNIT_ASSERT( !iCSPSettingsEngine->IsFeatureSupportedL( ESupportCallOutFeature, EFalse ) ); - EUNIT_ASSERT_LEAVE( iCSPSettingsEngine->IsFeatureSupportedL( ESupportCallOutFeature, ETrue ) ); - - EUNIT_ASSERT( !iCSPSettingsEngine->IsFeatureSupportedL( ESupportVoIPSSFeature, EFalse ) ); - EUNIT_ASSERT_LEAVE( iCSPSettingsEngine->IsFeatureSupportedL( ESupportVoIPSSFeature, ETrue ) ); - - EUNIT_ASSERT( iCSPSettingsEngine->IsFeatureSupportedL( ESupportVoIPFeature, EFalse ) ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_UpdateSupportFeaturePSKeyLL( ) - { - EUNIT_ASSERT_LEAVE( iCSPSettingsEngine->UpdateSupportFeaturePSKeyL( ) ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_IsVoIPServiceLL( ) - { - EUNIT_ASSERT( !iCSPSettingsEngine->IsVoIPServiceL( 0 ) ); - EUNIT_ASSERT( iCSPSettingsEngine->IsVoIPServiceL( 2 ) ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_HasCallPropertyNameL( ) - { - RPropertyNameArray names; - CleanupClosePushL( names ); - EUNIT_ASSERT( !iCSPSettingsEngine->HasCallPropertyName( names ) ); - - names.AppendL( EPropertyUnknown ); - names.AppendL( EPropertyCTIPluginId ); - EUNIT_ASSERT( iCSPSettingsEngine->HasCallPropertyName( names ) ); - - CleanupStack::PopAndDestroy( &names ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_HasVoIPAndVmbxPropertyNameL( ) - { - RPropertyNameArray names; - CleanupClosePushL( names ); - EUNIT_ASSERT( !iCSPSettingsEngine->HasVoIPAndVmbxPropertyName( names ) ); - - names.AppendL( EPropertyUnknown ); - names.AppendL( EPropertyVoIPSubServicePluginId ); - EUNIT_ASSERT( iCSPSettingsEngine->HasVoIPAndVmbxPropertyName( names ) ); - - CleanupStack::PopAndDestroy( &names ); - } - -void T_CSPSettingsEngine::T_CSPSettingsEngine_NameArrayFromPropertyArrayLL( ) - { - RPropertyNameArray names; - CleanupClosePushL( names ); - - RPropertyArray properties; - CleanupClosePushL( properties ); - - iCSPSettingsEngine->NameArrayFromPropertyArrayL( names, properties ); - EUNIT_ASSERT( !names.Count() ); - - CSPProperty* property = CSPProperty::NewLC(); - property->SetName( EPropertyVoIPSubServicePluginId ); - properties.AppendL( property ); - - iCSPSettingsEngine->NameArrayFromPropertyArrayL( names, properties ); - EUNIT_ASSERT( names.Count() ); - - CleanupStack::PopAndDestroy( property ); - CleanupStack::PopAndDestroy( &properties ); - CleanupStack::PopAndDestroy( &names ); - } - - -// - EUnit test table ------------------------------------------------------- - -EUNIT_BEGIN_TEST_TABLE( - T_CSPSettingsEngine, - "Add test suite description here.", - "UNIT" ) - -EUNIT_TEST( - "BeginTransactionLC - test1", - "CSPSettingsEngine", - "BeginTransactionLC - test1", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_BeginTransactionLCL, Teardown) - -EUNIT_TEST( - "CommitTransaction - test", - "CSPSettingsEngine", - "CommitTransaction - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_CommitTransactionL, Teardown) - -EUNIT_TEST( - "RollbackTransaction - test", - "CSPSettingsEngine", - "RollbackTransaction - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_RollbackTransactionL, Teardown) - -EUNIT_TEST( - "AddEntryL - test", - "CSPSettingsEngine", - "AddEntryL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_AddEntryLL, Teardown) - -EUNIT_TEST( - "FindEntryL - test", - "CSPSettingsEngine", - "FindEntryL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_FindEntryLL, Teardown) - -EUNIT_TEST( - "UpdateEntryL - test", - "CSPSettingsEngine", - "UpdateEntryL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_UpdateEntryLL, Teardown) - -EUNIT_TEST( - "DeleteEntryL - test", - "CSPSettingsEngine", - "DeleteEntryL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_DeleteEntryLL, Teardown) - -EUNIT_TEST( - "FindPropertyL - test", - "CSPSettingsEngine", - "FindPropertyL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_FindPropertyLL, Teardown) - -EUNIT_TEST( - "AddOrUpdatePropertiesL - test", - "CSPSettingsEngine", - "AddOrUpdatePropertiesL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_AddOrUpdatePropertiesLL, Teardown) - -EUNIT_TEST( - "SettingsCountL - test", - "CSPSettingsEngine", - "SettingsCountL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_SettingsCountLL, Teardown) - -EUNIT_TEST( - "FindServiceIdsL - test", - "CSPSettingsEngine", - "FindServiceIdsL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_FindServiceIdsLL, Teardown) - -EUNIT_TEST( - "FindServiceNamesL - test", - "CSPSettingsEngine", - "FindServiceNamesL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_FindServiceNamesLL, Teardown) - -EUNIT_TEST( - "PropertyNameArrayFromItemTypeL - test", - "CSPSettingsEngine", - "PropertyNameArrayFromItemTypeL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_PropertyNameArrayFromItemTypeLL, Teardown) - -EUNIT_TEST( - "FindSubServicePropertiesL - test", - "CSPSettingsEngine", - "FindSubServicePropertiesL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_FindSubServicePropertiesLL, Teardown) - -EUNIT_TEST( - "DeleteServicePropertiesL - test", - "CSPSettingsEngine", - "DeleteServicePropertiesL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_DeleteServicePropertiesLL, Teardown) - -EUNIT_TEST( - "FindServiceIdsFromPropertiesL - test", - "CSPSettingsEngine", - "FindServiceIdsFromPropertiesL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_FindServiceIdsFromPropertiesLL, Teardown) - -EUNIT_TEST( - "IsFeatureSupportedL - test", - "CSPSettingsEngine", - "IsFeatureSupportedL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_IsFeatureSupportedLL, Teardown) - -EUNIT_TEST( - "UpdateSupportFeaturePSKeyL - test", - "CSPSettingsEngine", - "UpdateSupportFeaturePSKeyL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_UpdateSupportFeaturePSKeyLL, Teardown) - -EUNIT_TEST( - "IsVoIPServiceL - test", - "CSPSettingsEngine", - "IsVoIPServiceL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_IsVoIPServiceLL, Teardown) - -EUNIT_TEST( - "HasCallPropertyName - test", - "CSPSettingsEngine", - "HasCallPropertyName - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_HasCallPropertyNameL, Teardown) - -EUNIT_TEST( - "HasVoIPAndVmbxPropertyName - test", - "CSPSettingsEngine", - "HasVoIPAndVmbxPropertyName - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_HasVoIPAndVmbxPropertyNameL, Teardown) - -EUNIT_TEST( - "NameArrayFromPropertyArrayL - test", - "CSPSettingsEngine", - "NameArrayFromPropertyArrayL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsEngine_NameArrayFromPropertyArrayLL, Teardown) - -EUNIT_END_TEST_TABLE diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettingsEngine.h --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettingsEngine.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +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: Declaration of T_CSPSettingsEngine class. -* -*/ - -#ifndef __T_CSPSETTINGSENGINE_H__ -#define __T_CSPSETTINGSENGINE_H__ - -// INCLUDES -#include -#include - -#include "spsettingsengine.h" - -// FORWARD DECLARATIONS - - -// CLASS DEFINITION -/** - * Generated EUnit test suite class. - */ -NONSHARABLE_CLASS( T_CSPSettingsEngine ) - : public CEUnitTestSuiteClass - { - public: // Constructors and destructor - - static T_CSPSettingsEngine* NewL(); - static T_CSPSettingsEngine* NewLC(); - ~T_CSPSettingsEngine(); - - private: // Constructors - - T_CSPSettingsEngine(); - void ConstructL(); - - private: // New methods - - void SetupL(); - - void Teardown(); - - void T_CSPSettingsEngine_BeginTransactionLCL(); - - void T_CSPSettingsEngine_CommitTransactionL(); - - void T_CSPSettingsEngine_RollbackTransactionL(); - - void T_CSPSettingsEngine_AddEntryLL(); - - void T_CSPSettingsEngine_FindEntryLL(); - - void T_CSPSettingsEngine_UpdateEntryLL(); - - void T_CSPSettingsEngine_DeleteEntryLL(); - - void T_CSPSettingsEngine_FindPropertyLL(); - - void T_CSPSettingsEngine_AddOrUpdatePropertiesLL(); - - void T_CSPSettingsEngine_SettingsCountLL(); - - void T_CSPSettingsEngine_FindServiceIdsLL(); - - void T_CSPSettingsEngine_FindServiceNamesLL(); - - void T_CSPSettingsEngine_PropertyNameArrayFromItemTypeLL(); - - void T_CSPSettingsEngine_FindSubServicePropertiesLL(); - - void T_CSPSettingsEngine_DeleteServicePropertiesLL(); - - void T_CSPSettingsEngine_FindServiceIdsFromPropertiesLL(); - - void T_CSPSettingsEngine_IsFeatureSupportedLL(); - - void T_CSPSettingsEngine_UpdateSupportFeaturePSKeyLL(); - - void T_CSPSettingsEngine_IsVoIPServiceLL(); - - void T_CSPSettingsEngine_HasCallPropertyNameL(); - - void T_CSPSettingsEngine_HasVoIPAndVmbxPropertyNameL(); - - void T_CSPSettingsEngine_NameArrayFromPropertyArrayLL(); - - - private: // Data - - CSPSettingsEngine* iCSPSettingsEngine; - - EUNIT_DECLARE_TEST_TABLE; - - }; - -#endif // __T_CSPSETTINGSENGINE_H__ diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettingsEngine_DllMain.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettingsEngine_DllMain.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +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: Implementation of CreateTestsuiteL class. -* -*/ - -#include "T_CSPSettingsEngine.h" -#include - -EXPORT_C MEUnitTest* CreateTestSuiteL() - { - return T_CSPSettingsEngine::NewL(); - } diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettingsVoIPUtils.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettingsVoIPUtils.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +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: Implementation of T_CSPSettingsVoIPUtils class. -* -*/ - -#include "T_CSPSettingsVoIPUtils.h" -#include -#include -#include -#include - -#include "spsettingsvoiputils.h" -#include "TestData.h" - -// - Construction ----------------------------------------------------------- - -T_CSPSettingsVoIPUtils* T_CSPSettingsVoIPUtils::NewL() - { - T_CSPSettingsVoIPUtils* self = T_CSPSettingsVoIPUtils::NewLC(); - CleanupStack::Pop(); - return self; - } - -T_CSPSettingsVoIPUtils* T_CSPSettingsVoIPUtils::NewLC() - { - T_CSPSettingsVoIPUtils* self = new( ELeave ) T_CSPSettingsVoIPUtils(); - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -T_CSPSettingsVoIPUtils::~T_CSPSettingsVoIPUtils() - { - } - -T_CSPSettingsVoIPUtils::T_CSPSettingsVoIPUtils() - { - } - -void T_CSPSettingsVoIPUtils::ConstructL() - { - CEUnitTestSuiteClass::ConstructL(); - } - -// - Test methods ----------------------------------------------------------- - - - -void T_CSPSettingsVoIPUtils::SetupL( ) - { - iCSPSettingsVoIPUtils = CSPSettingsVoIPUtils::NewL(); - } - -void T_CSPSettingsVoIPUtils::Setup2L( ) - { - iCSPSettingsVoIPUtils = CSPSettingsVoIPUtils::NewL(); - - CRepository* repository = CRepository::NewLC( KCRUidTelephonySettings ); - User::LeaveIfError( repository->Set( KDynamicVoIP, EFalse ) ); - CleanupStack::PopAndDestroy( repository ); - - repository = CRepository::NewLC( KCRUidRichCallSettings ); - User::LeaveIfError( repository->Set( KRCSPSPreferredService, 0 ) ); - CleanupStack::PopAndDestroy( repository ); - } - -void T_CSPSettingsVoIPUtils::Setup3L( ) - { - TestData::iCheckSupportedCase = ETrue; - iCSPSettingsVoIPUtils = CSPSettingsVoIPUtils::NewL(); - } - -void T_CSPSettingsVoIPUtils::Teardown( ) - { - delete iCSPSettingsVoIPUtils; - iCSPSettingsVoIPUtils = NULL; - } - -void T_CSPSettingsVoIPUtils::T_CSPSettingsVoIPUtils_VoIPProfilesExistLL( ) - { - iCSPSettingsVoIPUtils->VoIPProfilesExistL(); - } - -void T_CSPSettingsVoIPUtils::T_CSPSettingsVoIPUtils_IsVoIPSupportedL( ) - { - EUNIT_ASSERT( !iCSPSettingsVoIPUtils->IsVoIPSupported( ) ); - TestData::iCheckSupportedCase = EFalse; - } - -void T_CSPSettingsVoIPUtils::T_CSPSettingsVoIPUtils_IsPreferredTelephonyVoIPL( ) - { - EUNIT_ASSERT( !iCSPSettingsVoIPUtils->IsPreferredTelephonyVoIP() ); - } - -void T_CSPSettingsVoIPUtils::T_CSPSettingsVoIPUtils_GetPreferredServiceL( ) - { - TUint id( 0 ); - EUNIT_ASSERT( KErrNotSupported == iCSPSettingsVoIPUtils->GetPreferredService( id ) ); - - CRepository* repository = CRepository::NewLC( KCRUidTelephonySettings ); - User::LeaveIfError( repository->Set( KDynamicVoIP, ETrue ) ); - CleanupStack::PopAndDestroy( repository ); - - EUNIT_ASSERT( KErrNotFound == iCSPSettingsVoIPUtils->GetPreferredService( id ) ); - - TInt testValue( 1 ); - repository = CRepository::NewLC( KCRUidRichCallSettings ); - User::LeaveIfError( repository->Set( KRCSPSPreferredService, testValue ) ); - CleanupStack::PopAndDestroy( repository ); - EUNIT_ASSERT( KErrNone == iCSPSettingsVoIPUtils->GetPreferredService( id ) ); - EUNIT_ASSERT( testValue == id ); - } - -void T_CSPSettingsVoIPUtils::T_CSPSettingsVoIPUtils_DoGetPreferredServiceLL( ) - { - - } - - -// - EUnit test table ------------------------------------------------------- - -EUNIT_BEGIN_TEST_TABLE( - T_CSPSettingsVoIPUtils, - "Add test suite description here.", - "UNIT" ) - -EUNIT_TEST( - "VoIPProfilesExistL - test", - "CSPSettingsVoIPUtils", - "VoIPProfilesExistL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsVoIPUtils_VoIPProfilesExistLL, Teardown) - -EUNIT_TEST( - "IsVoIPSupported - test", - "CSPSettingsVoIPUtils", - "IsVoIPSupported - test", - "FUNCTIONALITY", - Setup3L, T_CSPSettingsVoIPUtils_IsVoIPSupportedL, Teardown) - -EUNIT_TEST( - "IsPreferredTelephonyVoIP - test", - "CSPSettingsVoIPUtils", - "IsPreferredTelephonyVoIP - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsVoIPUtils_IsPreferredTelephonyVoIPL, Teardown) - -EUNIT_TEST( - "GetPreferredService - test", - "CSPSettingsVoIPUtils", - "GetPreferredService - test", - "FUNCTIONALITY", - Setup2L, T_CSPSettingsVoIPUtils_GetPreferredServiceL, Teardown) -/* -EUNIT_TEST( - "DoGetPreferredServiceL - test", - "CSPSettingsVoIPUtils", - "DoGetPreferredServiceL - test", - "FUNCTIONALITY", - SetupL, T_CSPSettingsVoIPUtils_DoGetPreferredServiceLL, Teardown)*/ - - -EUNIT_END_TEST_TABLE diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettingsVoIPUtils.h --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettingsVoIPUtils.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +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: Declaration of T_CSPSettingsVoIPUtils class. -* -*/ - -#ifndef __T_CSPSETTINGSVOIPUTILS_H__ -#define __T_CSPSETTINGSVOIPUTILS_H__ - -// INCLUDES -#include -#include - -#include "spsettingsvoiputils.h" - -// FORWARD DECLARATIONS - - -// CLASS DEFINITION -/** - * Generated EUnit test suite class. - */ -NONSHARABLE_CLASS( T_CSPSettingsVoIPUtils ) - : public CEUnitTestSuiteClass - { - public: // Constructors and destructor - - static T_CSPSettingsVoIPUtils* NewL(); - static T_CSPSettingsVoIPUtils* NewLC(); - ~T_CSPSettingsVoIPUtils(); - - private: // Constructors - - T_CSPSettingsVoIPUtils(); - void ConstructL(); - - private: // New methods - - void SetupL(); - - void Setup2L(); - - void Setup3L(); - - void Teardown(); - - void T_CSPSettingsVoIPUtils_VoIPProfilesExistLL(); - - void T_CSPSettingsVoIPUtils_IsVoIPSupportedL(); - - void T_CSPSettingsVoIPUtils_IsPreferredTelephonyVoIPL(); - - void T_CSPSettingsVoIPUtils_GetPreferredServiceL(); - - void T_CSPSettingsVoIPUtils_DoGetPreferredServiceLL(); - - - private: // Data - - CSPSettingsVoIPUtils* iCSPSettingsVoIPUtils; - - EUNIT_DECLARE_TEST_TABLE; - - }; - -#endif // __T_CSPSETTINGSVOIPUTILS_H__ diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettingsVoIPUtils_DllMain.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettingsVoIPUtils_DllMain.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +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: Implementation of CreateTestSuiteL class. -* -*/ - -#include "T_CSPSettingsVoIPUtils.h" -#include - -EXPORT_C MEUnitTest* CreateTestSuiteL() - { - return T_CSPSettingsVoIPUtils::NewL(); - } diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettings_DllMain.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/T_CSPSettings_DllMain.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +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: Implementation of CreateTestSuiteL class. -* -*/ - -#include "T_CSPSettings.h" -#include - -EXPORT_C MEUnitTest* CreateTestSuiteL() - { - return T_CSPSettings::NewL(); - } diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbackuphelpermonitor.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbackuphelpermonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,150 +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 "ut_spsbackuphelpermonitor.h" -#include -#include - -#include -#include -#include "spsbackuphelpermonitor.h" - -// - Construction ----------------------------------------------------------- - -Ut_CSpsBackupHelperMonitor* Ut_CSpsBackupHelperMonitor::NewL() - { - Ut_CSpsBackupHelperMonitor* self = new (ELeave) Ut_CSpsBackupHelperMonitor; - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - -Ut_CSpsBackupHelperMonitor::~Ut_CSpsBackupHelperMonitor() - { - } - -Ut_CSpsBackupHelperMonitor::Ut_CSpsBackupHelperMonitor() - { - } - -void Ut_CSpsBackupHelperMonitor::ConstructL() - { - CEUnitTestSuiteClass::ConstructL(); - } - -// - Test methods ----------------------------------------------------------- - - - -void Ut_CSpsBackupHelperMonitor::SetupL( ) - { - iMonitor = CSpsBackupHelperMonitor::NewL(); - } - - -void Ut_CSpsBackupHelperMonitor::Teardown( ) - { - delete iMonitor; - iMonitor = NULL; - } - - -void Ut_CSpsBackupHelperMonitor::Ut_ConstructL() - { - // Do nothing - } - -void Ut_CSpsBackupHelperMonitor::Ut_FullBackupOngoingSetupL() - { - RProperty prop; - prop.Attach( KUidSystemCategory, conn::KUidBackupRestoreKey ); - prop.Set( EBURBackupFull ); - iMonitor = CSpsBackupHelperMonitor::NewL(); - prop.Close(); - } - -void Ut_CSpsBackupHelperMonitor::Ut_PartialBackupOngoingSetupL() - { - RProperty prop; - prop.Attach( KUidSystemCategory, conn::KUidBackupRestoreKey ); - prop.Set( EBURBackupPartial ); - iMonitor = CSpsBackupHelperMonitor::NewL(); - prop.Close(); - } - -void Ut_CSpsBackupHelperMonitor::Ut_FullRestoreOngoingSetupL() - { - RProperty prop; - prop.Attach( KUidSystemCategory, conn::KUidBackupRestoreKey ); - prop.Set( EBURRestoreFull ); - iMonitor = CSpsBackupHelperMonitor::NewL(); - prop.Close(); - } - -void Ut_CSpsBackupHelperMonitor::Ut_PartialRestoreOngoingSetupL() - { - RProperty prop; - prop.Attach( KUidSystemCategory, conn::KUidBackupRestoreKey ); - prop.Set( EBURRestorePartial ); - iMonitor = CSpsBackupHelperMonitor::NewL(); - prop.Close(); - } - -// - EUnit test table ------------------------------------------------------- - -EUNIT_BEGIN_TEST_TABLE( - Ut_CSpsBackupHelperMonitor, - "Add test suite description here.", - "UNIT" ) - -EUNIT_TEST( - "Construct - destruct", - "CSPSettingsEngine", - "Construct - destruct", - "FUNCTIONALITY", - SetupL, Ut_ConstructL, Teardown) - -EUNIT_TEST( - "FullBackup Construct - destruct", - "CSPSettingsEngine", - "Construct - destruct", - "FUNCTIONALITY", - Ut_FullBackupOngoingSetupL, Ut_ConstructL, Teardown) - -EUNIT_TEST( - "PartialBackup Construct - destruct", - "CSPSettingsEngine", - "Construct - destruct", - "FUNCTIONALITY", - Ut_PartialBackupOngoingSetupL, Ut_ConstructL, Teardown) - -EUNIT_TEST( - "FullRestore Construct - destruct", - "CSPSettingsEngine", - "Construct - destruct", - "FUNCTIONALITY", - Ut_FullRestoreOngoingSetupL, Ut_ConstructL, Teardown) - -EUNIT_TEST( - "PartialRestore Construct - destruct", - "CSPSettingsEngine", - "Construct - destruct", - "FUNCTIONALITY", - Ut_PartialRestoreOngoingSetupL, Ut_ConstructL, Teardown) - -EUNIT_END_TEST_TABLE diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbackuphelpermonitor.h --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbackuphelpermonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +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: -* -*/ - -#ifndef __UT_SPSBACKUPHELPERMONITOR_H__ -#define __UT_SPSBACKUPHELPERMONITOR_H__ - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class CSpsBackupHelperMonitor; - -// CLASS DEFINITION -/** - * Generated EUnit test suite class. - */ -NONSHARABLE_CLASS( Ut_CSpsBackupHelperMonitor ) - : public CEUnitTestSuiteClass - { - public: // Constructors and destructor - - static Ut_CSpsBackupHelperMonitor* NewL(); - - ~Ut_CSpsBackupHelperMonitor(); - - private: // Constructors - - Ut_CSpsBackupHelperMonitor(); - void ConstructL(); - - private: // New methods - - void SetupL(); - - void Teardown(); - - void Ut_ConstructL(); - - void Ut_FullBackupOngoingSetupL(); - - void Ut_PartialBackupOngoingSetupL(); - - void Ut_FullRestoreOngoingSetupL(); - - void Ut_PartialRestoreOngoingSetupL(); - private: // Data - - CSpsBackupHelperMonitor* iMonitor; - - EUNIT_DECLARE_TEST_TABLE; - - }; - -#endif // __UT_SPSBACKUPHELPERMONITOR_H__ diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbackuphelpermonitor_dllmain.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbackuphelpermonitor_dllmain.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +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 "ut_spsbackuphelpermonitor.h" -#include - -EXPORT_C MEUnitTest* CreateTestSuiteL() - { - return Ut_CSpsBackupHelperMonitor::NewL(); - } diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbackuphelperperformer.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbackuphelperperformer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +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 "ut_spsbackuphelperperformer.h" -#include -#include - -#include -#include -#include "spsbackuphelperperformer.h" - -// - Construction ----------------------------------------------------------- - -Ut_CSpsBackupHelperPerformer* Ut_CSpsBackupHelperPerformer::NewL() - { - - Ut_CSpsBackupHelperPerformer* self = new (ELeave) Ut_CSpsBackupHelperPerformer; - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - -Ut_CSpsBackupHelperPerformer::~Ut_CSpsBackupHelperPerformer() - { - } - -Ut_CSpsBackupHelperPerformer::Ut_CSpsBackupHelperPerformer() - { - } - -void Ut_CSpsBackupHelperPerformer::ConstructL() - { - CEUnitTestSuiteClass::ConstructL(); - } - -// - Test methods ----------------------------------------------------------- - - - -void Ut_CSpsBackupHelperPerformer::SetupL( ) - { - iPerformer = CSpsBackupHelperPerformer::NewL(); - } - - -void Ut_CSpsBackupHelperPerformer::Teardown( ) - { - delete iPerformer; - iPerformer = NULL; - } - -void Ut_CSpsBackupHelperPerformer::Ut_ConstructL() - { - // Do nothing - } - -void Ut_CSpsBackupHelperPerformer::Ut_CSpsBackupHelperPerformer_PerformL() - { - iPerformer->PerformL(); - } - -// - EUnit test table ------------------------------------------------------- - -EUNIT_BEGIN_TEST_TABLE( - Ut_CSpsBackupHelperPerformer, - "Add test suite description here.", - "UNIT" ) - -EUNIT_TEST( - "Construct - destruct", - "CSPSettingsEngine", - "Construct - destruct", - "FUNCTIONALITY", - SetupL, Ut_ConstructL, Teardown) - -EUNIT_TEST( - "Test Perform", - "CSPSettingsEngine", - "Test Perform", - "FUNCTIONALITY", - SetupL, Ut_CSpsBackupHelperPerformer_PerformL, Teardown) - -EUNIT_END_TEST_TABLE diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbackuphelperperformer.h --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbackuphelperperformer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +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: -* -*/ - -#ifndef __UT_SPSBACKUPHELPERPERFORMER_H__ -#define __UT_SPSBACKUPHELPERPERFORMER_H__ - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class CSpsBackupHelperPerformer; - -// CLASS DEFINITION -/** - * Generated EUnit test suite class. - */ -NONSHARABLE_CLASS( Ut_CSpsBackupHelperPerformer ) - : public CEUnitTestSuiteClass - { - public: // Constructors and destructor - - static Ut_CSpsBackupHelperPerformer* NewL(); - - ~Ut_CSpsBackupHelperPerformer(); - - private: // Constructors - - Ut_CSpsBackupHelperPerformer(); - void ConstructL(); - - private: // New methods - - void SetupL(); - - void Teardown(); - - void Ut_ConstructL(); - - void Ut_CSpsBackupHelperPerformer_PerformL(); - - private: // Data - - CSpsBackupHelperPerformer* iPerformer; - - EUNIT_DECLARE_TEST_TABLE; - - }; - -#endif // __UT_SPSBACKUPHELPERPERFORMER_H__ diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbackuphelperperformer_dllmain.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbackuphelperperformer_dllmain.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +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 "ut_spsbackuphelperperformer.h" -#include - -EXPORT_C MEUnitTest* CreateTestSuiteL() - { - return Ut_CSpsBackupHelperPerformer::NewL(); - } diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbufferedpublisher.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbufferedpublisher.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,162 +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 "ut_spsbufferedpublisher.h" -#include -#include - -#include - -#include "spsbufferedpublisher.h" -#include "spdefaultvalues.h" - -// - Construction ----------------------------------------------------------- - -Ut_CSpsBufferedPublisher* Ut_CSpsBufferedPublisher::NewL() - { - - Ut_CSpsBufferedPublisher* self = new (ELeave) Ut_CSpsBufferedPublisher; - CleanupStack::PushL(self); - self->ConstructL(); - CleanupStack::Pop(self); - return self; - } - -Ut_CSpsBufferedPublisher::~Ut_CSpsBufferedPublisher() - { - } - -Ut_CSpsBufferedPublisher::Ut_CSpsBufferedPublisher() - { - } - -void Ut_CSpsBufferedPublisher::ConstructL() - { - CEUnitTestSuiteClass::ConstructL(); - } - -// - Test methods ----------------------------------------------------------- - - - -void Ut_CSpsBufferedPublisher::SetupL( ) - { - iPublisher = CSpsBufferedPublisher::NewL( KUidSystemCategory, KSPNotifyChangeKey ); - iPublisher->Start(); - } - - -void Ut_CSpsBufferedPublisher::Teardown( ) - { - delete iPublisher; - iPublisher = NULL; - } - -void Ut_CSpsBufferedPublisher::Ut_ConstructL() - { - // Do nothing - } - -void Ut_CSpsBufferedPublisher::Ut_CSpsBufferedPublisher_DataSizeL() - { - const TUint32 data( 0xFFFFFFFF ); - CSpsBufferedPublisher::SetL( KUidSystemCategory, KSPNotifyChangeKey, data ); - RArray array; - iPublisher->GetL( array ); - EUNIT_ASSERT_EQUALS( 1, array.Count() ); - EUNIT_ASSERT_EQUALS( data, array[0] ); - array.Close(); - } - -void Ut_CSpsBufferedPublisher::Ut_CSpsBufferedPublisher_BufferSizeL() - { - TInt testedBuffer = 100000; - - for( TInt i(0); i < testedBuffer; i++ ) - { - CSpsBufferedPublisher::SetL( KUidSystemCategory, KSPNotifyChangeKey, i ); - } - - RArray array; - iPublisher->GetL( array ); - EUNIT_ASSERT_EQUALS( 127, array.Count() ); - - for( TInt i(127); i > 0; i-- ) - { - EUNIT_ASSERT_EQUALS( testedBuffer - i, array[array.Count()-i] ); - } - - - array.Close(); - } - -void Ut_CSpsBufferedPublisher::Ut_CSpsBufferedPublisher_DataValidyL() - { - - for( TInt i(0); i < 100000; i++ ) - { - CSpsBufferedPublisher::SetL( KUidSystemCategory, KSPNotifyChangeKey, i ); - - RArray array; - iPublisher->GetL( array ); - EUNIT_ASSERT_EQUALS( 1, array.Count() ); - EUNIT_ASSERT_EQUALS( i, array[0] ); - array.Close(); - } - - RArray array; - iPublisher->GetL( array ); - EUNIT_ASSERT_EQUALS( 0, array.Count() ); - array.Close(); - } - -// - EUnit test table ------------------------------------------------------- - -EUNIT_BEGIN_TEST_TABLE( - Ut_CSpsBufferedPublisher, - "Add test suite description here.", - "UNIT" ) - -EUNIT_TEST( - "Construct - destruct", - "CSpsBufferedPublisher", - "Construct - destruct", - "FUNCTIONALITY", - SetupL, Ut_ConstructL, Teardown) - -EUNIT_TEST( - "Test DataSize", - "CSpsBufferedPublisher", - "Test DataSize", - "FUNCTIONALITY", - SetupL, Ut_CSpsBufferedPublisher_DataSizeL, Teardown) - -EUNIT_TEST( - "Test BufferSize", - "CSpsBufferedPublisher", - "Test BufferSize", - "FUNCTIONALITY", - SetupL, Ut_CSpsBufferedPublisher_BufferSizeL, Teardown) - -EUNIT_TEST( - "Test DataValidy", - "CSpsBufferedPublisher", - "Test DataValidy", - "FUNCTIONALITY", - SetupL, Ut_CSpsBufferedPublisher_DataValidyL, Teardown) - -EUNIT_END_TEST_TABLE diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbufferedpublisher.h --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbufferedpublisher.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +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: -* -*/ - -#ifndef __UT_SPSBUFFEREDPUBLISHER_H__ -#define __UT_SPSBUFFEREDPUBLISHER_H__ - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class CSpsBufferedPublisher; - -// CLASS DEFINITION -/** - * Generated EUnit test suite class. - */ -NONSHARABLE_CLASS( Ut_CSpsBufferedPublisher ) - : public CEUnitTestSuiteClass - { - public: // Constructors and destructor - - static Ut_CSpsBufferedPublisher* NewL(); - - ~Ut_CSpsBufferedPublisher(); - - private: // Constructors - - Ut_CSpsBufferedPublisher(); - void ConstructL(); - - private: // New methods - - void SetupL(); - - void Teardown(); - - void Ut_ConstructL(); - - void Ut_CSpsBufferedPublisher_DataSizeL(); - - void Ut_CSpsBufferedPublisher_BufferSizeL(); - - void Ut_CSpsBufferedPublisher_DataValidyL(); - - private: // Data - - CSpsBufferedPublisher* iPublisher; - - EUNIT_DECLARE_TEST_TABLE; - - }; - -#endif // __UT_SPSBUFFEREDPUBLISHER_H__ diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbufferedpublisher_dllmain.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/src/ut_spsbufferedpublisher_dllmain.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +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 "ut_spsbufferedpublisher.h" -#include - -EXPORT_C MEUnitTest* CreateTestSuiteL() - { - return Ut_CSpsBufferedPublisher::NewL(); - } diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/FeatMgr.h --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/FeatMgr.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* 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: Stub header for CallUiEngine testing. -* -*/ - - -#ifndef FEATMGR_STUB_H -#define FEATMGR_STUB_H - - -// INCLUDES -#include - - -/** -* FeatureManager -*/ -class FeatureManager - { - public: - - static void InitializeLibL(); - static void UnInitializeLib(); - static TBool FeatureSupported( TInt aFeature ); - - - public: - - static TBool iFeatureIdCsVideoTelephony; - static TBool iBtAudioSupported; - static TBool iHelpSupported; - - }; - - -#endif // FEATMGR_STUB_H - -// End of File \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/FeatMgrStub.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/FeatMgrStub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* -* Copyright (c) 2003 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: Stub implementation for needed libraries. -* -*/ - - - -// INCLUDE FILES -#include "FeatMgr.h" -#include -#include "TestData.h" - -TBool FeatureManager::iBtAudioSupported = ETrue; -TBool FeatureManager::iHelpSupported = ETrue; -TBool FeatureManager::iFeatureIdCsVideoTelephony = ETrue; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// FeatureManager::InitializeLibL -// -// ----------------------------------------------------------------------------- -void FeatureManager::InitializeLibL() - { - } - -// ----------------------------------------------------------------------------- -// FeatureManager::InitializeLibL -// -// ----------------------------------------------------------------------------- -void FeatureManager::UnInitializeLib() - { - } - -// ----------------------------------------------------------------------------- -// FeatureManager::FeatureSupported -// -// ----------------------------------------------------------------------------- -TBool FeatureManager::FeatureSupported( TInt aFeature ) - { - TBool returnValue = EFalse; - - if ( aFeature == KFeatureIdCsVideoTelephony ) - { - returnValue = iFeatureIdCsVideoTelephony; - } - else if ( aFeature == KFeatureIdBtAudio ) - { - returnValue = iBtAudioSupported; - } - else if ( aFeature == KFeatureIdHelp ) - { - returnValue = iHelpSupported; - } - else if ( aFeature == KFeatureIdAutoRedialForVideoCall ) - { - returnValue = ETrue; - } - else if ( aFeature == KFeatureIdCommonVoip ) - { - if ( TestData::iCheckSupportedCase ) - { - returnValue = EFalse; - } - else - { - returnValue = ETrue; - } - } - else - { - // By default any other feature is not supported. - returnValue = EFalse; - } - - return returnValue; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/T_cenrepdatabaseutilStub.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/T_cenrepdatabaseutilStub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,831 +0,0 @@ -/* -* 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: Utility class to central repository database. -* -*/ - - -#include - -#include "cenrepdatabaseutil.h" -//#include "//CENREPDATABASELOGger.h" - -TUint count( 0 ); -const TInt KNoEntryId = 0; // Not allowed ID for entries. Deleted rows - // are marked with KNoEntryId - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -CCenRepDatabaseUtil::CCenRepDatabaseUtil( TUint32 aStartKey, - TUint32 aColIncrement, - TUint32 aColMask, - TUint32 aIdCounterKey, - TInt aColCount ) - : iStartKey( aStartKey ), - iColIncrement( aColIncrement ), - iColMask( aColMask ), - iIdCounterKey( aIdCounterKey ), - iColCount( aColCount ) - { - } - -// --------------------------------------------------------------------------- -// 2nd phase constructor -// --------------------------------------------------------------------------- -// -void CCenRepDatabaseUtil::ConstructL( TUid aUid ) - { - if( iColIncrement - 1 + iColMask != KMaxTUint ) - { - User::Leave( KErrArgument ); - } - - iRepository = CRepository::NewL( aUid ); - - // Create semaphore name from repository uid - TUidName uidName = aUid.Name(); - TInt err = iSemaphore.OpenGlobal( uidName ); - if ( err != KErrNone ) - { - User::LeaveIfError( iSemaphore.CreateGlobal( uidName, 1 ) ); - } - - } - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -EXPORT_C CCenRepDatabaseUtil* CCenRepDatabaseUtil::NewL( TUid aUid, - TUint32 aStartKey, - TUint32 aColIncrement, - TUint32 aColMask, - TUint32 aIdCounterKey, - TInt aColCount ) - { - ////CENREPDATABASELOG( "CCenRepDatabaseUtil::NewL - IN" ); - - CCenRepDatabaseUtil* self = CCenRepDatabaseUtil::NewLC( - aUid, - aStartKey, - aColIncrement, - aColMask, - aIdCounterKey, - aColCount ); - CleanupStack::Pop( self ); - - ////CENREPDATABASELOG( "CCenRepDatabaseUtil::NewL - OUT" ); - - return self; - } - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -EXPORT_C CCenRepDatabaseUtil* CCenRepDatabaseUtil::NewLC( TUid aUid, - TUint32 aStartKey, - TUint32 aColIncrement, - TUint32 aColMask, - TUint32 aIdCounterKey, - TInt aColCount ) - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::NewLC - IN" ); - - CCenRepDatabaseUtil* self = new( ELeave ) CCenRepDatabaseUtil( - aStartKey, - aColIncrement, - aColMask, - aIdCounterKey, - aColCount ); - CleanupStack::PushL( self ); - self->ConstructL( aUid ); - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::NewLC - OUT" ); - - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -EXPORT_C CCenRepDatabaseUtil::~CCenRepDatabaseUtil() - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::~CCenRepDatabaseUtil - IN" ); - - iSemaphore.Close(); - delete iRepository; - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::~CCenRepDatabaseUtil - OUT" ); - } - -// --------------------------------------------------------------------------- -// Begins transaction in repository. -// --------------------------------------------------------------------------- -// -EXPORT_C void CCenRepDatabaseUtil::BeginTransactionL() - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::BeginTransactionL - IN" ); - -/* iSemaphore.Wait(); - TCleanupItem cleanup( CCenRepDatabaseUtil::ReleaseSemaphore, this ); - CleanupStack::PushL( cleanup ); - - User::LeaveIfError( - iRepository->StartTransaction( CRepository::EReadWriteTransaction ) ); - - iRepository->CleanupRollbackTransactionPushL(); // if leave happens, - // only roll back, no delete - */ - //CENREPDATABASELOG( "CCenRepDatabaseUtil::BeginTransactionL - OUT" ); - } - -// --------------------------------------------------------------------------- -// Commits changes in repository. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCenRepDatabaseUtil::CommitTransaction() - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::CommitTransaction - IN" ); - -/* TUint32 temp; - - TInt retval = iRepository->CommitTransaction( temp ); - - iSemaphore.Signal(); - - CleanupStack::Pop( 2 ); // semaphore and repository*/ - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::CommitTransaction - OUT" ); - - //return retval; - return 0; - } - -// --------------------------------------------------------------------------- -// Rollback changes in repository. -// --------------------------------------------------------------------------- -// -EXPORT_C void CCenRepDatabaseUtil::RollbackTransaction() - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::RollbackTransaction - IN" ); - -/* CleanupStack::Pop( 2 ); // rollback transaction item and semaphore - - iRepository->RollbackTransaction(); - iSemaphore.Signal();*/ - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::RollbackTransaction - OUT" ); - } - -// --------------------------------------------------------------------------- -// Add new entry to cenrep. -// --------------------------------------------------------------------------- -// -EXPORT_C void CCenRepDatabaseUtil::AddEntryL( - TInt& aEntryId, - const RIpAppPropArray& aArray ) - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::AddEntryL - IN" ); - - CreateEntryIdL( aEntryId ); - TUint32 idKey = GetNewIdKeyL(); - - // Add entry Id - SetOrCreateKeyL( idKey, aEntryId ); - - UpdatePropertiesL( idKey, aArray ); - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::AddEntryL - OUT" ); - } - -// --------------------------------------------------------------------------- -// Find entry by ID. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCenRepDatabaseUtil::FindEntryL( - TInt aEntryId, - RIpAppPropArray& aArray ) - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::FindEntryL - IN" ); - - RKeyArray keys; - CleanupClosePushL( keys ); - - // Find all rows where ID is aServiceId (entry row + each property row) - TInt err = iRepository->FindEqL( iStartKey, iColMask, aEntryId, keys ); - - TInt count = keys.Count(); - - if ( KErrNone == err && count > 0 ) - { - TUint32 idKey = keys[ 0 ]; - - for ( TInt i = 1; i <= iColCount; i++ ) - { - RBuf value; - value.CreateL( KCenRepMaxDesLength ); - value.CleanupClosePushL(); - TUint32 propertyKey = idKey + i * iColIncrement; - TInt errProperty = iRepository->Get( propertyKey, value ); - if( errProperty == KErrNone && value.Compare( KNullDesC ) != 0 ) - { - CCenRepDatabaseProperty* property = CCenRepDatabaseProperty::NewLC(); - property->SetName( propertyKey - idKey + iStartKey ); - User::LeaveIfError( property->SetValue( value ) ); - User::LeaveIfError( aArray.Append( property ) ); - CleanupStack::Pop( property ); - } - - CleanupStack::PopAndDestroy( &value ); - } - } - - CleanupStack::PopAndDestroy( &keys ); - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::FindEntryL - OUT" ); - - return err; - - } - -// --------------------------------------------------------------------------- -// Update entry in cenrep. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCenRepDatabaseUtil::UpdateEntryL( - TInt aEntryId, - const RIpAppPropArray& aArray ) - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::UpdateEntryL - IN" ); - - RKeyArray keys; - CleanupClosePushL( keys ); - - // Find rows where ID is located - TInt err = iRepository->FindEqL( iStartKey, iColMask, aEntryId, keys ); - - TInt count = keys.Count(); - - if ( KErrNone == err && count > 0 ) - { - TUint32 idKey = keys[ 0 ]; - UpdatePropertiesL( idKey, aArray ); - } - - CleanupStack::PopAndDestroy( &keys ); - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::UpdateEntryL - OUT" ); - - return err; - } - -// --------------------------------------------------------------------------- -// Delete entry from cenrep. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCenRepDatabaseUtil::DeleteEntryL( TInt aEntryId ) - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::DeleteEntryL - IN" ); - - RKeyArray keys; - CleanupClosePushL( keys ); - - // Find all rows where ID is aServiceId (entry row + each property row) - TInt err = iRepository->FindEqL( iStartKey, iColMask, aEntryId, keys ); - - TInt count = keys.Count(); - - if ( KErrNone == err && count > 0 ) - { - TUint32 idKey = keys[ 0 ]; - SetOrCreateKeyL( idKey, KNoEntryId ); - - for ( TInt i = 1; i <= iColCount; i++ ) - { - TUint32 propertyKey = idKey + i * iColIncrement; - SetOrCreateKeyL( propertyKey, KNullDesC ); - } - } - - CleanupStack::PopAndDestroy( &keys ); - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::DeleteEntryL - OUT" ); - - return err; - } - -// --------------------------------------------------------------------------- -// Find property and its value by ID. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCenRepDatabaseUtil::FindPropertyL( TInt aEntryId, - TUint32 aPropertyName, - CCenRepDatabaseProperty& aProperty ) - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::FindPropertyL - IN" ); - - RKeyArray keys; - CleanupClosePushL( keys ); - TBool found = EFalse; - - // Find all rows where ID is aServiceId (entry row + each property row) - TInt err = iRepository->FindEqL( iStartKey, iColMask, aEntryId, keys ); - - TInt count = keys.Count(); - - if ( KErrNone == err && count > 0 ) - { - TUint32 idKey = keys[ 0 ]; - - for ( TInt i = 1; i <= iColCount; i++ ) - { - TUint32 propertyKey = idKey + i * iColIncrement; - TUint32 propertyName = propertyKey - idKey + iStartKey; - if( propertyName == aPropertyName ) - { - RBuf value; - value.CreateL( KCenRepMaxDesLength ); - value.CleanupClosePushL(); - - err = iRepository->Get( propertyKey, value ); - if( err == KErrNone ) - { - if( value.Compare( KNullDesC ) != 0 ) - { - aProperty.SetName( propertyName ); - User::LeaveIfError( aProperty.SetValue( value ) ); - found = ETrue; - } - } - - CleanupStack::PopAndDestroy( &value ); - break; - } - } - } - - if( found ) - { - err = KErrNone; - } - else - { - if( err == KErrNone ) - { - err = KErrNotFound; - } - } - CleanupStack::PopAndDestroy( &keys ); - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::FindPropertyL - OUT" ); - - return err; - } - -// --------------------------------------------------------------------------- -// Adds or updates properties to/in cenrep. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCenRepDatabaseUtil::AddOrUpdatePropertiesL( - TInt aEntryId, - const RIpAppPropArray& aArray ) - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::AddOrUpdatePropertiesL - IN" ); - - RKeyArray keys; - CleanupClosePushL( keys ); - - // Find row maching to given ID - TInt err = iRepository->FindEqL( iStartKey, iColMask, aEntryId, keys ); - - if ( KErrNone == err && keys.Count() > 0 ) - { - TUint32 idKey = keys[ 0 ]; - - TInt count = aArray.Count(); - - // Add properties one by one - for( TInt i = 0; i < count; i++ ) - { - CCenRepDatabaseProperty* property = aArray[i]; - TUint32 propertyName = property->GetName(); - TUint32 key = idKey - iStartKey + propertyName; - SetOrCreateKeyL( key, property->GetDesValue() ); - } - } - - CleanupStack::PopAndDestroy( &keys ); - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::AddOrUpdatePropertiesL - OUT" ); - - return err; - } - -// --------------------------------------------------------------------------- -// Return count of entries in cenrep. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCenRepDatabaseUtil::EntryCountL( TInt& aCount ) - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::EntryCountL - IN" ); - - TInt err( KErrNone ); - -/* RKeyArray keys; - CleanupClosePushL( keys ); - - // Find all rows where ID not equals to KNoEntryId - TInt err = iRepository->FindNeqL( iStartKey, iColMask, KNoEntryId, keys ); - - TInt count = keys.Count(); - - if ( KErrNone == err && count > 0 ) - { - aCount = keys.Count(); - } - else - { - aCount = 0; - } - - CleanupStack::PopAndDestroy( &keys );*/ - - if ( 2 > count ) - { - if ( !count ) - { - err = KErrNotFound; - } - aCount = count; - count++; - } - else - { - aCount = count; - count = 0; - } - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::EntryCountL - OUT" ); - - return err; - } - -// --------------------------------------------------------------------------- -// Find all ids of entries in cenrep. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCenRepDatabaseUtil::FindEntryIdsL( RArray& aEntryIds ) - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::FindEntryIdsL - IN" ); - - aEntryIds.Reset(); - - RKeyArray keys; - CleanupClosePushL( keys ); - - // Find all entry rows from ID column. Deleted rows are not returned. - TInt err = iRepository->FindNeqL( iStartKey, iColMask, KNoEntryId, keys ); - - TInt count = keys.Count(); - - if ( KErrNone == err && count > 0 ) - { - for( TInt i = 0; i < count; i++ ) - { - TUint32 key = keys[i]; - TInt entryId = 0; - User::LeaveIfError( iRepository->Get( key, entryId ) ); - User::LeaveIfError( aEntryIds.Append( entryId ) ); - } - } - - CleanupStack::PopAndDestroy( &keys ); - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::FindEntryIdsL - OUT" ); - - return err; - } - -// --------------------------------------------------------------------------- -// Delete given properties from entry. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCenRepDatabaseUtil::DeletePropertiesL( TInt aEntryId, - const RArray& aNameArray ) - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::DeletePropertiesL - IN" ); - - RKeyArray keys; - CleanupClosePushL( keys ); - - // Find row that matches to aEntryID - TInt err = iRepository->FindEqL( iStartKey, iColMask, aEntryId, keys ); - - if ( KErrNone == err && keys.Count() > 0 ) - { - TUint32 idKey = keys[ 0 ]; - - TInt count = aNameArray.Count(); - - // delete properties one by one - for( TInt i = 0; i < count; i++ ) - { - TUint32 name = aNameArray[i]; - TUint32 key = idKey - iStartKey + name; - SetOrCreateKeyL( key, KNullDesC ); - } - } - - CleanupStack::PopAndDestroy( &keys ); - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::DeletePropertiesL - OUT" ); - - return err; - } - -// --------------------------------------------------------------------------- -// Find entry ids of given properties. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CCenRepDatabaseUtil::FindEntryIdsFromPropertiesL( - const RIpAppPropArray& aPropertyArray, - RArray& aEntryIds ) - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::FindEntryIdsFromPropertiesL - IN" ); - - TInt err = FindEntryIdsL( aEntryIds ); - if( err == KErrNone ) - { - TInt count = aEntryIds.Count(); - TInt removed = 0; - - for( TInt i = 0; i < count; i++ ) - { - TBool ok = EFalse; - TUint32 entryId = aEntryIds[ i - removed ]; - CheckEntryHasPropertiesL( entryId, aPropertyArray, ok ); - - if( !ok ) - { - aEntryIds.Remove( i - removed ); - removed++; - } - } - } - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::FindEntryIdsFromPropertiesL - OUT" ); - - return err; - } - -// --------------------------------------------------------------------------- -// Release semaphore, this function is used in custom cleanup -// --------------------------------------------------------------------------- -// -void CCenRepDatabaseUtil::ReleaseSemaphore( TAny* aPtr ) - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::ReleaseSemaphore - IN" ); - - ASSERT ( aPtr ); - CCenRepDatabaseUtil* utils = static_cast( aPtr ); - utils->DoReleaseSemaphore(); - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::ReleaseSemaphore - OUT" ); - } - -// --------------------------------------------------------------------------- -// Release semaphore -// --------------------------------------------------------------------------- -// -void CCenRepDatabaseUtil::DoReleaseSemaphore() - { - //CENREPDATABASELOG( "CCenRepDatabaseUtil::DoReleaseSemaphore - IN" ); - - iSemaphore.Signal(); - - //CENREPDATABASELOG( "CCenRepDatabaseUtil::DoReleaseSemaphore - OUT" ); - } - -// --------------------------------------------------------------------------- -// Set value of key or create a new one. -// --------------------------------------------------------------------------- -// -template void CCenRepDatabaseUtil::SetOrCreateKeyL( TUint32 aKey, - const T& aValue ) - { - TInt err = iRepository->Set( aKey, aValue ); - - if ( KErrNotFound == err ) - { - err = iRepository->Create( aKey, aValue ); - } - - User::LeaveIfError( err ); - } - -// --------------------------------------------------------------------------- -// Create new ID. -// --------------------------------------------------------------------------- -// -void CCenRepDatabaseUtil::CreateEntryIdL( TInt& aNewId ) - { - TInt newId( KNoEntryId ); - - TInt err = iRepository->Get( iIdCounterKey, newId ); - - if ( KErrNone == err ) - { - if ( 0 < newId ) - { - // Store next available ID - err = iRepository->Set( iIdCounterKey, newId + 1 ); - } - else - { - // Range of ID exceeded - err = KErrOverflow; - } - } - else if ( KErrNotFound == err ) - { - // Create new key (should always be found) - SetOrCreateKeyL( iIdCounterKey, KNoEntryId + 1 ); - } - - aNewId = newId; - - User::LeaveIfError( err ); - } - -// --------------------------------------------------------------------------- -// Get next available key for ID. -// --------------------------------------------------------------------------- -// -TUint32 CCenRepDatabaseUtil::GetNewIdKeyL() - { - RKeyArray keys; - CleanupClosePushL( keys ); - TUint32 idKey( 0 ); - - // Reuse keys which value is KNoEntryId - TInt err = iRepository->FindEqL( iStartKey, iColMask, KNoEntryId, keys ); - - if ( KErrNone == err && 0 < keys.Count() ) - { - // return id column key from first deleted row - idKey = keys[0]; - } - else if ( KErrNotFound == err ) - { - keys.Close(); - TInt err1 = iRepository->FindL( iStartKey, iColMask, keys ); - - if( KErrNone == err1 ) - { - // return new - TInt count( keys.Count() ); - idKey = keys[count-1] + 1; - } - else if ( KErrNotFound == err1 ) - { - idKey = iStartKey; - } - else - { - User::Leave( err1 ); - } - } - else - { - User::Leave( err ); - } - - CleanupStack::PopAndDestroy( &keys ); - - return idKey; - } - -// --------------------------------------------------------------------------- -// Update given properties to cenrep. -// --------------------------------------------------------------------------- -// -void CCenRepDatabaseUtil::UpdatePropertiesL( - TUint32 aIdKey, - const RIpAppPropArray& aArray ) - { - TInt count = aArray.Count(); - - // Create all keys for this entry - RKeyArray propertyKeys; - CleanupClosePushL( propertyKeys ); - for( TInt k = 1; k <= iColCount; k++ ) - { - User::LeaveIfError( propertyKeys.Append( aIdKey + k * iColIncrement ) ); - } - - // Add properties one by one - for( TInt i = 0; i < count; i++ ) - { - CCenRepDatabaseProperty* property = aArray[i]; - TUint32 propertyName = property->GetName(); - TUint32 key = aIdKey - iStartKey + propertyName; - SetOrCreateKeyL( key, property->GetDesValue() ); - - // Get only non-set keys - TInt index = propertyKeys.Find( key ); - if( index != KErrNotFound ) - { - propertyKeys.Remove( index ); - } - } - - // set non-set properties one by one - count = propertyKeys.Count(); - for( TInt j = 0; j < count; j++ ) - { - TUint32 key = propertyKeys[j]; - SetOrCreateKeyL( key, KNullDesC() ); - } - - CleanupStack::PopAndDestroy( &propertyKeys ); - } - -// --------------------------------------------------------------------------- -// Check if entry has these properties. -// --------------------------------------------------------------------------- -// -void CCenRepDatabaseUtil::CheckEntryHasPropertiesL( - TInt aEntryId, - const RIpAppPropArray& aPropertyArray, - TBool& aOk ) - { - RIpAppPropArray allArray; - TCleanupItem cleanup( CCenRepDatabaseUtil::CleanupPointerArray, &allArray ); - CleanupStack::PushL( cleanup ); - - TInt err = FindEntryL( aEntryId, allArray ); - if( err == KErrNone ) - { - aOk = ETrue; - TInt count = aPropertyArray.Count(); - TInt allCount = allArray.Count(); - - for( TInt i = 0; i < count; i++ ) - { - CCenRepDatabaseProperty* property = aPropertyArray[i]; - TUint32 name = property->GetName(); - const TDesC& value = property->GetDesValue(); - TBool found = EFalse; - for( TInt j = 0; j < allCount; j++ ) - { - CCenRepDatabaseProperty* allProperty = allArray[j]; - if( name == allProperty->GetName() && - value.Compare( allProperty->GetDesValue() ) == 0 ) - { - found = ETrue; - break; - } - } - if( !found ) - { - aOk = EFalse; - break; - } - } - } - else - { - aOk = EFalse; - } - - CleanupStack::PopAndDestroy( &allArray ); - } - -// --------------------------------------------------------------------------- -// Cleanup array of properties. -// --------------------------------------------------------------------------- -// -void CCenRepDatabaseUtil::CleanupPointerArray( TAny* aPointer ) - { - RIpAppPropArray* array = static_cast( aPointer ); - array->ResetAndDestroy(); - } - - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/T_spsettingsengineStub.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/T_spsettingsengineStub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,994 +0,0 @@ -/* -* Copyright (c) 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: Service Provider Settings API's engine. -* -*/ - -// The entire file is taken from 3.2.3 baseline - -#include -#include -#include -#include -#include - -#include "spsettingsengine.h" -#include "spentry.h" -#include "spproperty.h" -#include "spcrkeys.h" -#include "spdefinitions.h" -#include "spdefaultvalues.h" - - -#include "spsapilogger.h" // For logging - -const TInt KSPPredefinedCount = 2; -TInt counter( 0 ); - - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -CSPSettingsEngine::CSPSettingsEngine() - { - } - - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -void CSPSettingsEngine::ConstructL() - { - XSPSLOGSTRING( "CSPSettingsEngine::ConstructL() - IN" ); - - iCenRepUtils = CCenRepDatabaseUtil::NewL( KCRUidSPSettings, - KSPStartKey, - KSPColIncrement, - KSPColMask, - KServiceIdCounter, - KSPColCount ); - - XSPSLOGSTRING( "CSPSettingsEngine::ConstructL() - OUT" ); - } - - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -CSPSettingsEngine* CSPSettingsEngine::NewL() - { - CSPSettingsEngine* self = CSPSettingsEngine::NewLC(); - CleanupStack::Pop( self ); - return self; - } - - -// --------------------------------------------------------------------------- -// Constructor -// --------------------------------------------------------------------------- -// -CSPSettingsEngine* CSPSettingsEngine::NewLC() - { - CSPSettingsEngine* self = new( ELeave ) CSPSettingsEngine; - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CSPSettingsEngine::~CSPSettingsEngine() - { - XSPSLOGSTRING( "CSPSettingsEngine::~CSPSettingsEngine() - IN" ); - - delete iCenRepUtils; - - XSPSLOGSTRING( "CSPSettingsEngine::~CSPSettingsEngine() - OUT" ); - } - - -// --------------------------------------------------------------------------- -// Begins transaction in repository. -// --------------------------------------------------------------------------- -// -TInt CSPSettingsEngine::BeginTransactionLC() - { - XSPSLOGSTRING( "CSPSettingsEngine::BeginTransaction() - IN" ); - - iCenRepUtils->BeginTransactionL(); - - XSPSLOGSTRING( "CSPSettingsEngine::BeginTransaction() - OUT" ); - - return KErrNone; - - } - - -// --------------------------------------------------------------------------- -// Commits changes in repository. -// --------------------------------------------------------------------------- -// -TInt CSPSettingsEngine::CommitTransaction() - { - XSPSLOGSTRING( - "CSPSettingsEngine::CommitTransaction() - IN" ); - - iCenRepUtils->CommitTransaction(); - - XSPSLOGSTRING( "CSPSettingsEngine::CommitTransaction() - OUT" ); - - return KErrNone; - } - - -// --------------------------------------------------------------------------- -// Rollback changes in repository. -// --------------------------------------------------------------------------- -// -void CSPSettingsEngine::RollbackTransaction() - { - XSPSLOGSTRING( - "CSPSettingsEngine::RollbackTransaction() - IN" ); - - iCenRepUtils->RollbackTransaction(); - - XSPSLOGSTRING( "CSPSettingsEngine::RollbackTransaction() - OUT" ); - - } - -void CSPSettingsEngine::ConvertSpEntryToCenRepArrayL( const CSPEntry& aEntry, - RIpAppPropArray& aArray ) - { - CCenRepDatabaseProperty* property = CCenRepDatabaseProperty::NewLC(); - - property->SetName( EServiceName ); - property->SetValue( aEntry.GetServiceName() ); - User::LeaveIfError( aArray.Append( property ) ); - CleanupStack::Pop( property ); - - TInt count = aEntry.PropertyCount(); - const RPropertyArray& entryArray = aEntry.GetAllProperties(); - - ConvertSpArrayToCenRepArrayL( entryArray, aArray ); - } - -void CSPSettingsEngine::ConvertSpArrayToCenRepArrayL( const RPropertyArray& aSpArray, - RIpAppPropArray& aCenRepArray ) - { - TInt count = aSpArray.Count(); - for( TInt i = 0; i < count; i++ ) - { - CSPProperty* spProperty = aSpArray[i]; - CCenRepDatabaseProperty* property = CCenRepDatabaseProperty::NewLC(); - property->SetName( spProperty->GetName() ); - - RBuf value; - value.CreateL( KSPMaxDesLength ); - CleanupClosePushL( value); - User::LeaveIfError( spProperty->GetValue( value ) ); - User::LeaveIfError( property->SetValue( value ) ); - CleanupStack::PopAndDestroy( &value ); - - User::LeaveIfError( aCenRepArray.Append( property ) ); - CleanupStack::Pop( property ); - } - } - -void CSPSettingsEngine::CleanupPointerArray( TAny* aPointer ) - { - RIpAppPropArray* array = static_cast( aPointer ); - array->ResetAndDestroy(); - } - -// --------------------------------------------------------------------------- -// Stores new service provider settings entry -// --------------------------------------------------------------------------- -// -void CSPSettingsEngine::AddEntryL( CSPEntry& aEntry ) - { - XSPSLOGSTRING( "CSPSettingsEngine::AddEntryL() - IN" ); - - // check the service name is not empty - if( aEntry.GetServiceName().Length() == 0 ) - { - User::LeaveIfError( KErrArgument ); - } - - // construct RIpAppPropArray - RIpAppPropArray array; - TCleanupItem cleanup( CSPSettingsEngine::CleanupPointerArray, &array ); - CleanupStack::PushL( cleanup ); - - ConvertSpEntryToCenRepArrayL( aEntry, array ); - - // Create new unique service ID - TInt newId = 0; - iCenRepUtils->AddEntryL( newId, array ); - aEntry.SetServiceId( newId ); - - CleanupStack::PopAndDestroy( &array ); - - XSPSLOGSTRING( "CSPSettingsEngine::AddEntryL() - OUT" ); - } - -// --------------------------------------------------------------------------- -// Find service provider settings entry by service ID -// --------------------------------------------------------------------------- -// - TInt CSPSettingsEngine::FindEntryL( TServiceId aServiceId, CSPEntry& aEntry ) - { - XSPSLOGSTRING2( "CSPSettingsEngine::FindEntryL( %d ) - IN", aServiceId ); - - RIpAppPropArray array; - TCleanupItem cleanup( CSPSettingsEngine::CleanupPointerArray, &array ); - CleanupStack::PushL( cleanup ); - - TInt err = iCenRepUtils->FindEntryL( aServiceId, array ); - - if( err == KErrNone ) - { - TInt count = array.Count(); - - for( TInt i = 0; i < count; i++ ) - { - CCenRepDatabaseProperty* property = array[i]; - - if( property->GetName() == EServiceName ) - { - User::LeaveIfError( aEntry.SetServiceName( property->GetDesValue() ) ); - } - else - { - CSPProperty* spProperty = CSPProperty::NewLC(); - User::LeaveIfError( spProperty->SetName( (TServicePropertyName)( property->GetName() ))); - User::LeaveIfError( spProperty->SetValue( property->GetDesValue() )); - - User::LeaveIfError( aEntry.AddPropertyL( *spProperty )); - CleanupStack::PopAndDestroy( spProperty ); - } - } - } - CleanupStack::PopAndDestroy( &array ); - - aEntry.SetServiceId( aServiceId ); - - XSPSLOGSTRING2( "CSPSettingsEngine::FindEntryL( %d ) - OUT", aServiceId ); - - return err; - } - -// --------------------------------------------------------------------------- -// Update existing service provider settings entry -// --------------------------------------------------------------------------- -// -TInt CSPSettingsEngine::UpdateEntryL( const CSPEntry& aEntry ) - { - XSPSLOGSTRING( "CSPSettingsEngine::UpdateEntry() - IN" ); - - TServiceId serviceId( aEntry.GetServiceId() ); - - // Leave if there is no service ID - if ( KSPNoId == serviceId || aEntry.GetServiceName().Length() == 0 ) - { - User::Leave( KErrArgument ); - } - - // construct RIpAppPropArray - RIpAppPropArray array; - TCleanupItem cleanup( CSPSettingsEngine::CleanupPointerArray, &array ); - CleanupStack::PushL( cleanup ); - - ConvertSpEntryToCenRepArrayL( aEntry, array ); - - TInt err = iCenRepUtils->UpdateEntryL( (TInt) serviceId, array ); - - CleanupStack::PopAndDestroy( &array ); - - XSPSLOGSTRING( "CSPSettingsEngine::UpdateEntry() - OUT" ); - - return err; - } - - -// --------------------------------------------------------------------------- -// Deletes service provider settings entry by service ID -// --------------------------------------------------------------------------- -// -TInt CSPSettingsEngine::DeleteEntryL( TServiceId aServiceId ) - { - XSPSLOGSTRING2( "CSPSettingsEngine::DeleteEntryL(%d) - IN", aServiceId ); - - TInt err = iCenRepUtils->DeleteEntryL( aServiceId ); - - XSPSLOGSTRING2( "CSPSettingsEngine::DeleteEntryL(%d) - OUT", aServiceId ); - - return err; - } - - -// --------------------------------------------------------------------------- -// Search property of service provider settings entry by property name -// --------------------------------------------------------------------------- -// -TInt CSPSettingsEngine::FindPropertyL( TServiceId aServiceId, - TServicePropertyName aPropertyName, - CSPProperty& aProperty ) - { - XSPSLOGSTRING2( "CSPSettingsEngine::FindPropertyL(%d) - IN", aServiceId ); - - CCenRepDatabaseProperty* cenrepProperty = CCenRepDatabaseProperty::NewLC(); - TInt err = iCenRepUtils->FindPropertyL( aServiceId, aPropertyName, *cenrepProperty ); - - if( err == KErrNone ) - { - User::LeaveIfError( aProperty.SetName( aPropertyName ) ); - User::LeaveIfError( aProperty.SetValue( cenrepProperty->GetDesValue())); - } - - CleanupStack::PopAndDestroy( cenrepProperty ); - - XSPSLOGSTRING2( "CSPSettingsEngine::FindPropertyL(%d) - OUT", aServiceId ); - -/* if ( !counter ) - { - counter++; - } - else - { - err = KErrNone; - }*/ -// err = KErrNone; - return err; - } - - -// --------------------------------------------------------------------------- -// Add or update properties of service provider settings entry -// --------------------------------------------------------------------------- -// -TInt CSPSettingsEngine::AddOrUpdatePropertiesL( TServiceId aServiceId, - const RPropertyArray& aPropertyArray ) - { - XSPSLOGSTRING2( "CSPSettingsEngine::AddOrUpdatePropertiesL(%d) - IN", aServiceId ); - - // construct RIpAppPropArray - RIpAppPropArray array; - TCleanupItem cleanup( CSPSettingsEngine::CleanupPointerArray, &array ); - CleanupStack::PushL( cleanup ); - - ConvertSpArrayToCenRepArrayL( aPropertyArray, array ); - - TInt err = iCenRepUtils->AddOrUpdatePropertiesL( aServiceId, array ); - - CleanupStack::PopAndDestroy( &array ); - - XSPSLOGSTRING2( - "CSPSettingsEngine::AddOrUpdatePropertiesL(%d) - OUT", aServiceId ); - - return err; - } - - -// --------------------------------------------------------------------------- -// Returns count of stored service provider settings entries -// --------------------------------------------------------------------------- -// -TInt CSPSettingsEngine::SettingsCountL() - { - XSPSLOGSTRING( "CSPSettingsEngine::SettingsCount() - IN" ); - - TInt result( 0 ); - - TInt err = iCenRepUtils->EntryCountL( result ); - - if( err == KErrNone ) - { - - if( result >= KSPPredefinedCount ) - { - result--; - } - - err = result; - } - else - { - err = 0; - } - - XSPSLOGSTRING2( "CSPSettingsEngine::SettingsCount(%d) - OUT", result ); - - return err; - } - - - -// --------------------------------------------------------------------------- -// Search stored service IDs of service provider settings entries -// --------------------------------------------------------------------------- -// -TInt CSPSettingsEngine::FindServiceIdsL( RIdArray& aServiceIds ) - { - XSPSLOGSTRING( "CSPSettingsEngine::FindServiceIdsL() - IN" ); - - RArray cenrepArray; - CleanupClosePushL( cenrepArray ); - - TInt err = iCenRepUtils->FindEntryIdsL( cenrepArray ); - - for( TInt i = 0; i < cenrepArray.Count(); i++ ) - { - TServiceId id = (TServiceId)cenrepArray[i]; - if( id != KSPDefaultVoIPServiceId ) - { - User::LeaveIfError( aServiceIds.Append( id )); - - if ( i > 2 ) - { - aServiceIds.Append( 2 ); - break; - } - } - } - - CleanupStack::PopAndDestroy( &cenrepArray ); - - XSPSLOGSTRING( "CSPSettingsEngine::FindServiceIdsL() - OUT" ); - - return err; - } - - -// --------------------------------------------------------------------------- -// Search service names by given service IDs -// --------------------------------------------------------------------------- -// -void CSPSettingsEngine::FindServiceNamesL( RIdArray& aServiceIds, - CDesCArray& aServiceNames ) - { - XSPSLOGSTRING( "CSPSettingsEngine::FindServiceNamesL() - IN" ); - - CCenRepDatabaseProperty* property = CCenRepDatabaseProperty::NewLC(); - TInt count = aServiceIds.Count(); - for( TInt i = 0; i < count; i++ ) - { - TInt id = ( TInt )aServiceIds[i]; - - TInt err = iCenRepUtils->FindPropertyL( id, EServiceName, *property ); - if( err == KErrNone ) - { - aServiceNames.AppendL( property->GetDesValue() ); - } - else - { - aServiceIds.Remove( i ); // Remove non-existent ID - count--; - i--; // Do not increment index - } - } - - CleanupStack::PopAndDestroy( property ); - - XSPSLOGSTRING( "CSPSettingsEngine::FindServiceNamesL() - OUT" ); - } - -void CSPSettingsEngine::PropertyNameArrayFromItemTypeL( TSPItemType aPropertyType, - RPropertyNameArray& aNameArray ) - { - switch ( aPropertyType ) - { - case EItemTypeVoIPSubProperty: - { - User::LeaveIfError( aNameArray.Append( ESubPropertyVoIPSettingsId ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVoIPPreferredSNAPId ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVoIPPreferredIAPId ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVoIPTemporaryIAPId ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVoIPRelNumber ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVoIPBrandDataUri ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVoIPBrandIconUri ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVoIPAddrScheme ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVoIPEnabled ) ); - break; - } - case EItemTypePresenceSubProperty: - { - User::LeaveIfError( aNameArray.Append( ESubPropertyPresenceSettingsId ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyPresencePreferredSNAPId ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyPresencePreferredIAPId ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyPresencePresentityIDFieldType ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyPresenceLaunchMethod ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyPresenceLaunchUid ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyPresenceAddrScheme ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyPresenceEnabled ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyPresenceRequestPreference ) ); - break; - } - case EItemTypeIMSubProperty: - { - User::LeaveIfError( aNameArray.Append( ESubPropertyIMSettingsId ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyIMPreferredSNAPId ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyIMPreferredIAPId ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyIMLaunchMethod ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyIMLaunchUid ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyIMAddrScheme ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyIMEnabled ) ); - break; - } - case EItemTypeVMBXSubProperty: - { - User::LeaveIfError( aNameArray.Append( ESubPropertyVMBXSettingsId ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVMBXPreferredSNAPId ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVMBXPreferredIAPId ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVMBXMWISubscribeInterval ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVMBXLaunchMethod ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVMBXLaunchUid ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVMBXListenAddress ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVMBXMWIAddress ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVMBXBrandIconUri ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVMBXAddrScheme ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVMBXListenRegister ) ); - User::LeaveIfError( aNameArray.Append( ESubPropertyVMBXEnabled ) ); - break; - } - default: - { - User::Leave( KErrArgument ); - break; - } - } - } - -// --------------------------------------------------------------------------- -// -// --------------------------------------------------------------------------- -// -TInt CSPSettingsEngine::FindSubServicePropertiesL( TServiceId aServiceId, - TSPItemType aPropertyType, - RPropertyArray& aPropertyArray ) - { - XSPSLOGSTRING2( - "CSPSettingsEngine::FindSubServicePropertiesL( %d ) - IN", aServiceId ); - - RPropertyNameArray nameArray; - CleanupClosePushL( nameArray ); - - PropertyNameArrayFromItemTypeL( aPropertyType, nameArray ); - TInt count = nameArray.Count(); - TInt id = (TInt) aServiceId; - - CCenRepDatabaseProperty* property = CCenRepDatabaseProperty::NewLC(); - - for( TInt i = 0; i < count; i++ ) - { - TUint32 name = nameArray[i]; - TInt err = iCenRepUtils->FindPropertyL( id, name, *property ); - if( err == KErrNone ) - { - CSPProperty* spProperty = CSPProperty::NewLC(); - User::LeaveIfError( spProperty->SetName( (TServicePropertyName)(property->GetName())) ); - User::LeaveIfError( spProperty->SetValue( property->GetDesValue() )); - - User::LeaveIfError( aPropertyArray.Append( spProperty )); - CleanupStack::Pop( spProperty ); - } - } - - CleanupStack::PopAndDestroy( property ); - CleanupStack::PopAndDestroy( &nameArray ); - - XSPSLOGSTRING( "CSPSettingsEngine::FindSubServicePropertiesL() - OUT" ); - - return KErrNone; - } - -// --------------------------------------------------------------------------- -// Deletes service properties -// --------------------------------------------------------------------------- -// -TInt CSPSettingsEngine::DeleteServicePropertiesL( TServiceId aServiceId, - const RPropertyNameArray& aNameArray ) - { - XSPSLOGSTRING2( - "CSPSettingsEngine::FindSubServicePropertyL( %d ) - IN", aServiceId ); - - RArray nameArray; - CleanupClosePushL( nameArray ); - TInt count = aNameArray.Count(); - - for( TInt i = 0; i < count; i++ ) - { - TUint32 name = (TUint32)( aNameArray[i] ); - User::LeaveIfError( nameArray.Append( name ) ); - } - - TInt id = (TInt)aServiceId; - TInt err = iCenRepUtils->DeletePropertiesL( id, nameArray ); - - CleanupStack::PopAndDestroy( &nameArray ); - - XSPSLOGSTRING( "CSPSettingsEngine::FindSubServicePropertyL() - OUT" ); - - return err; - } - -// --------------------------------------------------------------------------- -// Find service IDs with same properties -// --------------------------------------------------------------------------- -// -void CSPSettingsEngine::FindServiceIdsFromPropertiesL( const RPropertyArray& aPropertyArray, - RIdArray& aServiceIds ) - { - XSPSLOGSTRING( "CSPSettingsEngine::FindServiceIdsFromPropertiesL() - IN" ); - - RArray entryIds; - CleanupClosePushL( entryIds ); - - RIpAppPropArray array; - TCleanupItem cleanup( CSPSettingsEngine::CleanupPointerArray, &array ); - CleanupStack::PushL( cleanup ); - - // todo custom cleanup stack - ConvertSpArrayToCenRepArrayL( aPropertyArray, array ); - - TInt err = iCenRepUtils->FindEntryIdsFromPropertiesL( array, entryIds ); - if( err == KErrNone ) - { - TInt count = entryIds.Count(); - for( TInt i = 0; i < count; i++ ) - { - TServiceId id = (TServiceId)entryIds[i]; - if( id != KSPDefaultVoIPServiceId ) - { - User::LeaveIfError( aServiceIds.Append( id ) ); - } - } - } - - CleanupStack::PopAndDestroy( &array ); - CleanupStack::PopAndDestroy( &entryIds ); - - XSPSLOGSTRING( "CSPSettingsEngine::FindServiceIdsFromPropertiesL() - OUT" ); - } - - - -// --------------------------------------------------------------------------- -// Check feature is supported or not -// --------------------------------------------------------------------------- -// -TBool CSPSettingsEngine::IsFeatureSupportedL( TSPServiceFeature aFeature, - TBool aWriteAllowed ) - { - XSPSLOGSTRING( "CSPSettingsEngine::IsFeatureSupportedL() - IN" ); - - TBool ret = EFalse; - - // First check P&S key, if P&S key is defined, use the value from P&S key. - // if not defined, then walk through all the sevices and check there is any service match - TInt mask = 0; - TInt value = 0; - TInt psFlag = 0; - TInt retProperty = 0; - - switch( aFeature ) - { - case ESupportInternetCallFeature: - { - retProperty = RProperty::Get( KUidSystemCategory, KSPSupportInternetCallKey, psFlag ); - if( retProperty == KErrNone && psFlag != KSPInitFeatureValue ) - { - ret = psFlag; - } - else - { - mask = ESupportsInternetCall | ESupportsAlphanumericAddressing | EIsVisibleInCallMenu; - value = mask; - ret = CheckFeatureL( mask, value ); - if ( aWriteAllowed ) - { - User::LeaveIfError( RProperty::Set( KUidSystemCategory, - KSPSupportInternetCallKey, ret ) ); - } - } - - break; - } - case ESupportCallOutFeature: - { - retProperty = RProperty::Get( KUidSystemCategory, KSPSupportCallOutKey, psFlag ); - if( retProperty == KErrNone && psFlag != KSPInitFeatureValue ) - { - ret = psFlag; - } - else - { - mask = ESupportsInternetCall | ESupportsMSISDNAddressing | EIsVisibleInCallMenu; - value = mask; - ret = CheckFeatureL( mask, value ); - if ( aWriteAllowed ) - { - User::LeaveIfError( RProperty::Set( - KUidSystemCategory, - KSPSupportCallOutKey, ret ) ); - } - } - break; - } - - case ESupportVoIPSSFeature: - { - retProperty = RProperty::Get( KUidSystemCategory, KSPSupportVoIPSSKey, psFlag ); - if( retProperty == KErrNone && psFlag != KSPInitFeatureValue ) - { - ret = psFlag; - } - else - { - mask = ESupportVoIPSS; - value = mask; - ret = CheckFeatureL( mask, value ); - if ( aWriteAllowed ) - { - User::LeaveIfError( RProperty::Set( - KUidSystemCategory, - KSPSupportVoIPSSKey, ret ) ); - } - } - break; - } - - case ESupportVoIPFeature: - { - TBool bFeatureMgr = EFalse; - TBool bDynVoIP = EFalse; - TBool bSubVoIP = EFalse; - - //check FeatureManager - FeatureManager::InitializeLibL(); - bFeatureMgr = FeatureManager::FeatureSupported( KFeatureIdCommonVoip ); - FeatureManager::UnInitializeLib(); - - //check dynamic voip flag - CRepository* repository = CRepository::NewLC( KCRUidTelephonySettings ); - TInt value = 0; - TInt err = repository->Get( KDynamicVoIP, value ); - if( value != 0 ) - { - bDynVoIP = ETrue; - } - - CleanupStack::PopAndDestroy( repository ); - - //check subservice voip - RIdArray serviceIds; - CleanupClosePushL( serviceIds ); - FindServiceIdsL( serviceIds ); - CSPProperty* property = CSPProperty::NewLC(); - - for( TInt i = 0; i < serviceIds.Count(); i++ ) - { - TServiceId serviceId = serviceIds[i]; - TInt retProperty = FindPropertyL( serviceId, EPropertyVoIPSubServicePluginId, *property ); - if( retProperty == KErrNone ) - { - bSubVoIP = ETrue; - break; - } - } - CleanupStack::PopAndDestroy( property ); - CleanupStack::PopAndDestroy( &serviceIds ); - - ret = bFeatureMgr && bDynVoIP && bSubVoIP; - - break; - } - default: - { - User::Leave( KErrNotSupported ); - } - } - - XSPSLOGSTRING( "CSPSettingsEngine::IsFeatureSupportedL() - OUT" ); - - return ret; - } - -// --------------------------------------------------------------------------- -// When service table is changed, update the P&S key -// --------------------------------------------------------------------------- -// -void CSPSettingsEngine::UpdateSupportFeaturePSKeyL() - { - TInt mask = 0; - TInt value = 0; - TBool ret = EFalse; - - //ESupportInternetCallFeature - //ESupportsInternetCall + ESupportsAlphanumericAddressing + EIsVisibleInCallMenu - mask = ESupportsInternetCall | ESupportsAlphanumericAddressing | EIsVisibleInCallMenu; - value = mask; - ret = CheckFeatureL( mask, value ); - User::LeaveIfError( RProperty::Set( KUidSystemCategory, KSPSupportInternetCallKey, ret ) ); - - //ESupportCallOutFeature - //ESupportsInternetCall + ESupportsMSISDNAddressing + EIsVisibleInCallMenu - mask = ESupportsInternetCall | ESupportsMSISDNAddressing | EIsVisibleInCallMenu; - value = mask; - ret = CheckFeatureL( mask, value ); - User::LeaveIfError( RProperty::Set( KUidSystemCategory, KSPSupportCallOutKey, ret ) ); - - //ESupportVoIPSSFeature - //ESupportVoIPSS - mask = ESupportVoIPSS; - value = mask; - ret = CheckFeatureL( mask, value ); - User::LeaveIfError( RProperty::Set( KUidSystemCategory, KSPSupportVoIPSSKey, ret ) ); - } - -// --------------------------------------------------------------------------- -// Walk through all the sevices and check there is any service match -// --------------------------------------------------------------------------- -// -TBool CSPSettingsEngine::CheckFeatureL( TInt aMask, TInt aValue ) - { - RArray entryIds; - CleanupClosePushL( entryIds ); - iCenRepUtils->FindEntryIdsL( entryIds ); - CCenRepDatabaseProperty* property = CCenRepDatabaseProperty::NewLC(); - TBool ret = EFalse; - - for( TInt i = 0; i < entryIds.Count(); i++ ) - { - TInt entryId = entryIds[i]; - if( entryId == KSPDefaultVoIPServiceId ) - { - continue; - } - - TInt retProperty = iCenRepUtils->FindPropertyL( entryId, EPropertyServiceAttributeMask, *property ); - if( retProperty == KErrNone ) - { - TInt maskValue = 0; - TInt err = property->GetValue( maskValue ); - if( err == KErrNone ) - { - if( ( maskValue & aMask ) == (aValue & aMask) ) - { - // Find matched servcie - ret = ETrue; - break; - } - } - } - } - - CleanupStack::PopAndDestroy( property ); - CleanupStack::PopAndDestroy( &entryIds ); - return ret; - } - -// --------------------------------------------------------------------------- -// Check if it is VoIP Service ID -// --------------------------------------------------------------------------- -// -TBool CSPSettingsEngine::IsVoIPServiceL( TServiceId aServiceId ) - { - TBool bIsVoIP = EFalse; - - CSPProperty* property = CSPProperty::NewLC(); - TInt err = FindPropertyL( aServiceId, EPropertyVoIPSubServicePluginId, *property ); - if( err == KErrNone ) - { - bIsVoIP = ETrue; - } - CleanupStack::PopAndDestroy( property ); - - return bIsVoIP; - } - -// --------------------------------------------------------------------------- -// Check if an array has call related property name in it -// --------------------------------------------------------------------------- -// -TBool CSPSettingsEngine::HasCallPropertyName( const RPropertyNameArray& aNameArray ) - { - TBool bHasCall = EFalse; - - for( TInt i = 0; i < aNameArray.Count(); i++ ) - { - TServicePropertyName name = aNameArray[i]; - if( name == EPropertyCTIPluginId || - name == EPropertyCLIPluginId || - name == EPropertyCallLoggingPluginId || - name == EPropertyCallStateIndicatorPluginId || - name == EPropertyCallMenuHandlerPluginId || - name == EPropertyCallProviderPluginId ) - { - bHasCall = ETrue; - break; - } - } - - return bHasCall; - } - -// --------------------------------------------------------------------------- -// Check if an array has VoIP or Vmbx related property name in it -// --------------------------------------------------------------------------- -// -TBool CSPSettingsEngine::HasVoIPAndVmbxPropertyName( const RPropertyNameArray& aNameArray ) - { - TBool bHasVoIPAndVmbx = EFalse; - - for( TInt i = 0; i < aNameArray.Count(); i++ ) - { - TServicePropertyName name = aNameArray[i]; - if( name == EPropertyVoIPSubServicePluginId || - name == EPropertyVMBXSubServicePluginId || - name == ESubPropertyVoIPSettingsId || - name == ESubPropertyVoIPPreferredSNAPId || - name == ESubPropertyVoIPPreferredIAPId || - name == ESubPropertyVoIPTemporaryIAPId || - name == ESubPropertyVMBXSettingsId || - name == ESubPropertyVMBXPreferredSNAPId || - name == ESubPropertyVMBXPreferredIAPId || - name == ESubPropertyVMBXMWISubscribeInterval || - name == ESubPropertyVMBXLaunchMethod || - name == ESubPropertyVMBXLaunchUid || - name == ESubPropertyVoIPRelNumber || - name == ESubPropertyVoIPBrandDataUri || - name == ESubPropertyVoIPBrandIconUri || - name == ESubPropertyVoIPAddrScheme || - name == ESubPropertyVMBXListenAddress || - name == ESubPropertyVMBXMWIAddress || - name == ESubPropertyVMBXBrandIconUri || - name == ESubPropertyVMBXAddrScheme || - name == ESubPropertyVoIPEnabled || - name == ESubPropertyVMBXListenRegister || - name == ESubPropertyVMBXEnabled ) - { - bHasVoIPAndVmbx = ETrue; - break; - } - } - - return bHasVoIPAndVmbx; - } - -// --------------------------------------------------------------------------- -// Get Name array from Property array -// --------------------------------------------------------------------------- -// -void CSPSettingsEngine::NameArrayFromPropertyArrayL( RPropertyNameArray& aNameArray, - const RPropertyArray& aPropertyArray ) - { - aNameArray.Reset(); - - for( TInt i = 0; i < aPropertyArray.Count(); i++ ) - { - CSPProperty* property = aPropertyArray[i]; - TServicePropertyName name = property->GetName(); - User::LeaveIfError( aNameArray.Append( name ) ); - } - } - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/TestData.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/TestData.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* -* 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: Definitions for spseettings testing. -* -*/ - - -// INCLUDES -#include "TestData.h" - - -TBool TestData::iFeatureIdCsVideoTelephonySupported = ETrue; -TInt TestData::iCallingServiceByCallType = 1; -TBool TestData::iCheckSupportedCase = EFalse; diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/TestData.h --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/TestData.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/* -* 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: Declaration of TestData class. -* -*/ - - -#ifndef TESTDATA_H -#define TESTDATA_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS - - -// CLASS DECLARATIONS - -/** - * Virtual Phonebook contact link array. - * This interface can be used to handle a read-only array of contact links. - */ -class TestData - { -public: - - /** - * Constructor. - */ - TestData(){}; - - /** - * Destructor. - */ - virtual ~TestData(){}; - -public: // data - - static TBool iFeatureIdCsVideoTelephonySupported; - static TInt iCallingServiceByCallType; - static TBool iCheckSupportedCase; - - }; - -#endif // TESTDATA_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/abclient_stub.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/abclient_stub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +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: active backup stub -* -*/ - -#include - -using namespace conn; - -CActiveBackupClient* CActiveBackupClient::NewL( MActiveBackupDataClient* ) - { - return new (ELeave) CActiveBackupClient; - } - -CActiveBackupClient::CActiveBackupClient() - { - - } - -CActiveBackupClient::~CActiveBackupClient() - { - - } - -TBool CActiveBackupClient::DoesPartialBURAffectMeL() - { - - } - -void CActiveBackupClient::ConfirmReadyForBURL( TInt ) - { - - } diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/centralrepository_stub.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/centralrepository_stub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +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: Cenrep stub -* -*/ - -#include - - -CRepository* CRepository::NewLC( TUid ) - { - CRepository* ret = new (ELeave) CRepository; - CleanupStack::PushL( ret ); - return ret; - } - -CRepository::~CRepository() - { - - } - -TInt CRepository::Reset() - { - return KErrNone; - } - -TInt CRepository::Get( TUint32 , TInt& ) - { - return KErrNone; - } - -TInt CRepository::Set( TUint32 , TInt ) - { - return KErrNone; - } diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/serviceprovidersettings_stub.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/serviceprovidersettings_stub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +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: Service provider settings stub -* -*/ - -#include -#include - -CSPSettings* CSPSettings::NewL() - { - return new (ELeave) CSPSettings; - } - -CSPSettings::CSPSettings() - { - - } - -CSPSettings::~CSPSettings() - { - - } - -TInt CSPSettings::FindServiceIdsL( RArray& ) - { - return KErrNone; - } - -TInt CSPSettings::FindEntryL( TUint, CSPEntry& ) - { - return KErrNone; - } - -TInt CSPSettings::AddEntryL( CSPEntry& ) - { - return KErrNone; - } - -CSPEntry* CSPEntry::NewLC() - { - CSPEntry* ret = new (ELeave) CSPEntry; - CleanupStack::PushL( ret ); - return ret; - } - -TServiceId CSPEntry::GetServiceId() const - { - return 0; - } - -const RPropertyArray& CSPEntry::GetAllProperties() const - { - return iPropertyArray; - } - -CSPEntry::CSPEntry() - { - - } - -CSPEntry::~CSPEntry() - { - - } diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/spsbackuphelperperformer_stub.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/spsbackuphelperperformer_stub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +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: stub -* -*/ - -#include -#include "spsbackuphelperperformer.h" - - -CSpsBackupHelperPerformer* CSpsBackupHelperPerformer::NewL() - { - return new (ELeave) CSpsBackupHelperPerformer; - } - -CSpsBackupHelperPerformer::~CSpsBackupHelperPerformer() - { - - } - - -void CSpsBackupHelperPerformer::PerformL() - { - - } - - -CSpsBackupHelperPerformer::CSpsBackupHelperPerformer() - { - - } - diff -r 35488577e233 -r 2fa1fa551b0b convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/spsbufferedpublisher_stub.cpp --- a/convergedcallengine/spsettings/tsrc/public/basic/spsettingsUT/stubs/spsbufferedpublisher_stub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +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: stub -* -*/ - -#include -#include "spsbufferedpublisher.h" - - -CSpsBufferedPublisher* CSpsBufferedPublisher::NewL( TUid aCat, TUint aKey ) - { - return new (ELeave) CSpsBufferedPublisher( aCat, aKey ); - } - -CSpsBufferedPublisher::~CSpsBufferedPublisher() - { - - } - - -void CSpsBufferedPublisher::SetL( TUid , TUint , TUint32 ) - { - - } - - -CSpsBufferedPublisher::CSpsBufferedPublisher( TUid , TUint ) - { - - } - diff -r 35488577e233 -r 2fa1fa551b0b package_definition.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/package_definition.xml Fri Sep 03 13:59:20 2010 +0300 @@ -0,0 +1,289 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff -r 35488577e233 -r 2fa1fa551b0b package_map.xml --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/package_map.xml Fri Sep 03 13:59:20 2010 +0300 @@ -0,0 +1,1 @@ + diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/BMARM/CAUIENGINEU.DEF --- a/phoneclientserver/CallUI/BMARM/CAUIENGINEU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - CreateCaUiEngFactoryL__Fv @ 1 NONAME R3UNUSED ; CreateCaUiEngFactoryL(void) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/BWINS/CAUIENGINEU.DEF --- a/phoneclientserver/CallUI/BWINS/CAUIENGINEU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -EXPORTS - ?CreateCaUiEngFactoryL@@YAPAVCCaUiEngFactory@@XZ @ 1 NONAME ; class CCaUiEngFactory * __cdecl CreateCaUiEngFactoryL(void) - ?NewL@CCaUiReconnectQuery@@SAPAV1@AAVMCaUiReconnectQueryObserver@@@Z @ 2 NONAME ; class CCaUiReconnectQuery * CCaUiReconnectQuery::NewL(class MCaUiReconnectQueryObserver &) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Data/101F868E.rss --- a/phoneclientserver/CallUI/Data/101F868E.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* -* Copyright (c) 2004 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: ECom resource file for CallUI. -* -*/ - - - -// INCLUDES -#include -#include -#include "caui.hrh" - - -// RESOURCE DEFINITIONS - -// ----------------------------------------------------------------------------- -// -// theInfo -// ECOM registry information - defined as ROM only. -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO theInfo - { - resource_format_version = RESOURCE_FORMAT_VERSION_2; - - dll_uid = KCallUIImplementationUid; - interfaces = - { - INTERFACE_INFO - { - interface_uid = KAiwClassMenu; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = KCallUIImplementationUid; - version_no = 1; - display_name = ""; - default_data = "*"; - opaque_data = KAiwCmdCallStr; - rom_only = 1; - } - }; - }, - INTERFACE_INFO - { - interface_uid = KAiwClassBase; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = KCallUIImplementationUid2; - version_no = 1; - display_name = ""; - default_data = "*"; - opaque_data = KAiwCmdCallStr; - rom_only = 1; - } - }; - } - }; - } - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Data/CallUI.rss --- a/phoneclientserver/CallUI/Data/CallUI.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,558 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: This file contains all the resources -* for the CallUI. -* -*/ - - -// RESOURCE IDENTIFIER -NAME CAUI - -// INCLUDES -#include -#include -#include -#include -#include - -#include "caui.hrh" -#include -#include - - - -// RESOURCE DEFINITIONS - -// ----------------------------------------------------------------------------- -// -// RSS_SIGNATURE -// -// Signature. -// -// ----------------------------------------------------------------------------- -// -RESOURCE RSS_SIGNATURE { } - - -// ----------------------------------------------------------------------------- -// -// r_callui_call_menu -// -// Call menu (non-cascaded). -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_PANE r_callui_call_menu - { - items= - { - MENU_ITEM - { - command = ECallUIVoice; - txt = qtn_options_call; - extratxt = qtn_call_sub_voice; - }, - MENU_ITEM - { - command = AIW_SUBMENU_TITLE; - txt = qtn_options_call; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_callui_cascaded_submenu -// -// Cascaded call submenu. -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_PANE r_callui_cascaded_submenu - { - items= - { - MENU_ITEM - { - command = ECallUIVoice; - txt = qtn_call_sub_voice; - }, - MENU_ITEM - { - command = ECallUIVideo; - txt = qtn_call_sub_video; - }, - MENU_ITEM - { - command = ECallUIInternet; - txt = qtn_call_sub_internet; - }, - MENU_ITEM - { - command = AIW_SUBMENU_TITLE; - txt = qtn_options_call; - } - }; - } - - - -// ----------------------------------------------------------------------------- -// -// r_callui_create_list_query -// -// List query dialog for call type query or confirmation. -// -// ----------------------------------------------------------------------------- -// -RESOURCE DIALOG r_callui_create_list_query - { - flags = EGeneralQueryFlags; - buttons = R_AVKON_SOFTKEYS_CALL_CANCEL__CALL; - items = - { - DLG_LINE - { - type = EAknCtListQueryControl; - id = EListQueryControl; - control = AVKON_LIST_QUERY_CONTROL - { - listtype = EAknCtSinglePopupMenuListBox; - listbox = LISTBOX - { - flags = EAknListBoxMenuList; - height = ECaUiCreateListQueryHeight; - width = ECaUiCreateListQueryWidth; - array_id = r_callui_create_list_items; - }; - heading = qtn_popup_title_create; - }; - } - }; - } - - -// ----------------------------------------------------------------------------- -// -// r_callui_create_list_items -// -// List items for call types used in create query. -// -// ----------------------------------------------------------------------------- -// -RESOURCE ARRAY r_callui_create_list_items - { - items= - { - LBUF { txt = qtn_popup_create_voice; }, - LBUF { txt = qtn_popup_create_video; } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_callui_create_list_voice -// -// The voice call item string in call type query. -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_callui_create_list_voice - { - buf = qtn_popup_create_voice; - } - -// ----------------------------------------------------------------------------- -// -// r_callui_create_list_video -// -// The video item string in call type query -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_callui_create_list_video - { - buf = qtn_popup_create_video; - } - -// ----------------------------------------------------------------------------- -// -// r_callui_create_list_internet -// -// The internet item string in call type query -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_callui_create_list_internet - { - buf = qtn_popup_create_internet; - } - - -// ----------------------------------------------------------------------------- -// -// r_callui_no_video_network -// -// The text shown in information note when there is no -// network support for video call. -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_callui_no_video_network - { - buf = qtn_tel_no_video_network; - } - - -// ----------------------------------------------------------------------------- -// -// r_callui_reconnect_query_header -// -// The header string in reconnect confirmation query. -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_callui_reconnect_query_header - { - buf = qtn_tel_retry_voicevideo_call; - } - - -// ----------------------------------------------------------------------------- -// -// r_callui_reconnect_list_item_voice -// -// The voice call option item string in create confirmation query. -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_callui_reconnect_list_item_voice - { - buf = qtn_tel_retry_voice_call_item; - } - - -// ----------------------------------------------------------------------------- -// -// r_callui_reconnect_list_item_video -// -// The video call option item string in create confirmation query. -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_callui_reconnect_list_item_video - { - buf = qtn_tel_retry_video_call_item; - } - - -// ----------------------------------------------------------------------------- -// -// r_callui_reconnect_list_item_mms -// -// The mms option item string in create confirmation query. -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_callui_reconnect_list_item_mms - { - buf = qtn_tel_retry_mms_call_item; - } - - -// ----------------------------------------------------------------------------- -// -// r_callui_reconnect_list_item_sms -// -// The sms option item string in create confirmation query. -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_callui_reconnect_list_item_sms - { - buf = qtn_tel_retry_sms_call_item; - } - -// ----------------------------------------------------------------------------- -// -// r_callui_call_internet_menu -// -// Call menu Voice call, Internet call -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_PANE r_callui_call_internet_menu - { - items= - { - MENU_ITEM - { - command = ECallUIVoice; - txt = qtn_call_sub_voice; - }, - MENU_ITEM - { - command = ECallUIInternet; - txt = qtn_call_sub_internet; - }, - MENU_ITEM - { - command = AIW_SUBMENU_TITLE; - txt = qtn_options_call; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_callui_internet_menu -// -// Call menu Internet call (non-cascaded). -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_PANE r_callui_internet_menu - { - items= - { - MENU_ITEM - { - command = ECallUIInternet; - txt = qtn_options_internet_call; - }, - MENU_ITEM - { - command = AIW_SUBMENU_TITLE; - txt = qtn_options_call; - } - }; - } - -// ----------------------------------------------------------------------------- -// -// r_callui_call_menu -// -// Call menu Voice call, Video call -// -// ----------------------------------------------------------------------------- -// -RESOURCE MENU_PANE r_callui_call_video_menu - { - items= - { - MENU_ITEM - { - command = ECallUIVoice; - txt = qtn_call_sub_voice; - }, - MENU_ITEM - { - command = ECallUIVideo; - txt = qtn_call_sub_video; - }, - MENU_ITEM - { - command = AIW_SUBMENU_TITLE; - txt = qtn_options_call; - } - }; - } - - - -// ----------------------------------------------------------------------------- -// -// NEW_MESSAGE_MTM_TYPE -// -// Message MTM types -// -// ----------------------------------------------------------------------------- -// -STRUCT NEW_MESSAGE_MTM_TYPE - { - LONG id = 0; - LTEXT name = ""; - } - -// ----------------------------------------------------------------------------- -// -// NEW_MESSAGE_MTM_ARRAY -// -// Message MTM items struct -// -// ----------------------------------------------------------------------------- -// -STRUCT NEW_MESSAGE_MTM_ARRAY - { - STRUCT items[]; - } - - -// ----------------------------------------------------------------------------- -// -// new_message_types_array -// -// Message type array -// -// ----------------------------------------------------------------------------- -// -RESOURCE NEW_MESSAGE_MTM_ARRAY new_message_types_array - { - items = - { -#ifndef RD_UNIFIED_EDITOR - NEW_MESSAGE_MTM_TYPE - { - id = 0x1000102C; - name = qtn_mce_pop_up_sms; - } -#ifdef __MMS - , - NEW_MESSAGE_MTM_TYPE - { - id = 0x100058E1; - name = qtn_mce_pop_up_mms; - } -#endif //__MMS -#else // RD_UNIFIED_EDITOR - NEW_MESSAGE_MTM_TYPE - { - id = 0x102072D6; - name = qtn_tel_retry_message_call_item; - } -#endif // RD_UNIFIED_EDITOR -#ifdef __EMAIL_UI - , - NEW_MESSAGE_MTM_TYPE - { - id = 0x10001028; - name = qtn_mce_pop_up_email; - } -#endif //__EMAIL_UI - , - NEW_MESSAGE_MTM_TYPE - { - id = 0x10207245; - name = qtn_mce_pop_up_PostCard; - } - }; - } -// ----------------------------------------------------------------------------- -// -// r_callui_reconnect_list_item_message -// -// The mms option item string in create confirmation query. -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_callui_reconnect_list_item_message - { - buf = qtn_tel_retry_message_call_item; - } - -// ----------------------------------------------------------------------------- -// -// r_callui_vt_setting_note -// -// Text for query dialog -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_callui_vt_setting_note - { - buf = qtn_incal_set_long_press_call_video; - } - -// ----------------------------------------------------------------------------- -// -// r_callui_vt_setting_note -// -// The string in VT setting note -// -// ----------------------------------------------------------------------------- -// -RESOURCE TBUF r_callui_popup_vt_title_setting - { - buf = qtn_popup_vt_title_setting; - } - -// ----------------------------------------------------------------------------- -// -// r_callui_vt_setting_query -// -// Query dialog for Video Telephony setting -// -// -// ----------------------------------------------------------------------------- -// - -RESOURCE DIALOG r_callui_vt_setting_query - { - flags = EGeneralQueryFlags | EEikDialogFlagNoBorder | EEikDialogFlagNoShadow; - buttons = R_AVKON_SOFTKEYS_YES_NO; - items= - { - DLG_LINE - { - type = EAknCtPopupHeadingPane; - id = EAknMessageQueryHeaderId; - control = AVKON_HEADING - { - headinglayout = R_AVKON_WML_SIGN_QUERY_HEADING_PANE; - }; - }, - DLG_LINE - { - type = EAknCtMessageQuery; - id = EAknMessageQueryContentId; - control = AVKON_MESSAGE_QUERY - { - message = qtn_incal_set_long_press_call_video; - }; - } - }; - } - -RESOURCE TBUF r_callui_cs_voice_call - { - buf = qtn_call_sub_voice; - } - -RESOURCE TBUF r_callui_cs_video_call - { - buf = qtn_call_sub_video; - } - -RESOURCE TBUF r_callui_internet_call - { - buf = qtn_call_sub_internet; - } - -RESOURCE TBUF r_callui_xsp_call_with_service_name - { - buf = qtn_call_sub_voip_with_name; - } - -RESOURCE TBUF r_callui_call_submenu_title - { - buf = qtn_options_call; - } - -RESOURCE TBUF r_callui_xsp_test_temp - { - buf = qtn_call_sub_test; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Group/CaUiEngine.mmp --- a/phoneclientserver/CallUI/Group/CaUiEngine.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Project specification for CaUiEngine. -* -*/ - - -#include -#include - -// Capability assignment. -CAPABILITY CAP_GENERAL_DLL - -TARGET cauiengine.dll -TARGETTYPE dll -UID 0x1000008d 0x101F868F - -SOURCEPATH ../src/cauiengine -SOURCE cauiengfactimpl.cpp - -SOURCE cauiquery.cpp -SOURCE cauiengine.cpp -SOURCE cauiactiveobject.cpp -SOURCE cauimessagesender.cpp -SOURCE cauidialogs.cpp - -SOURCE cauivoipextension.cpp -SOURCE ccauireconnectquery.cpp -SOURCE ccauireconnectqueryimpl.cpp - -SOURCEPATH ../data -START RESOURCE callui.rss -HEADER -TARGETPATH RESOURCE_FILES_DIR -END - -// TEMPORARY DEFINITION FOR CONTACT FINDER HEADERS -SYSTEMINCLUDE ../../../../../app/phone/inc - -USERINCLUDE ../inc -USERINCLUDE ../inc/cauiengine -USERINCLUDE ../data -USERINCLUDE ../loc - -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE ../../../inc -SYSTEMINCLUDE ../../inc // phoneclientserver inc - -LIBRARY cone.lib -LIBRARY euser.lib -LIBRARY commonengine.lib -LIBRARY phoneclient.lib -LIBRARY featmgr.lib // FeatureManager -LIBRARY pbkeng.lib // PhoneBook engine -LIBRARY pbkview.lib -LIBRARY centralrepository.lib -LIBRARY cenrepnotifhandler.lib // Cenrep notifier -LIBRARY flogger.lib -LIBRARY phonecntfinder.lib - -LIBRARY avkon.lib -LIBRARY aknnotify.lib -LIBRARY eikcore.lib // For test printing. -LIBRARY sendui.lib -LIBRARY eikcoctl.lib -LIBRARY eikdlg.lib -LIBRARY bafl.lib // CDesC16ArrayFlat -LIBRARY mmscli.lib -LIBRARY msgs.lib -LIBRARY muiu.lib -LIBRARY serviceselector.lib -LIBRARY serviceprovidersettings.lib - -LIBRARY aiwdialdata.lib - -LANGUAGE_IDS - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Group/CaUiPlugin.mmp --- a/phoneclientserver/CallUI/Group/CaUiPlugin.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2004 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: Project specification for CallUI plugin. -* -*/ - - -#include -// Capability assignment. -CAPABILITY CAP_ECOM_PLUGIN - -TARGET cauiplugin.dll - -TARGETTYPE PLUGIN - -UID 0x10009D8D 0x101F868E - -SOURCEPATH ../src/cauiplugin -SOURCE cauiplugin.cpp -SOURCE cauimain.cpp - - -SOURCEPATH ../data - -START RESOURCE 101f868e.rss -TARGET cauiplugin.rsc -END - - -USERINCLUDE ../inc -USERINCLUDE ../inc/cauiplugin - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../inc - -LIBRARY euser.lib -LIBRARY servicehandler.lib -LIBRARY flogger.lib -LIBRARY commonengine.lib - -LANGUAGE_IDS - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Group/bld.inf --- a/phoneclientserver/CallUI/Group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2004-2007 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: Build information specification for CallUI. -* -*/ - - -#include -PRJ_PLATFORMS -DEFAULT - - -PRJ_EXPORTS - -// Private -../inc/cauiengine/cauidialresultobserver.h |../inc/cauidialresultobserver.h -../inc/cauiengine/cauilogger.h |../inc/cauilogger.h -../inc/cauiengine/cauieng.h |../inc/cauieng.h - -// Internal -../inc/caui.hrh |../../../inc/caui.hrh - -../group/callui_stub.sis /epoc32/data/z/system/install/callui_stub.sis - -// LOC files -../loc/callui.loc MW_LAYER_LOC_EXPORT_PATH(callui.loc) - -// IBY files -../rom/callui.iby CORE_MW_LAYER_IBY_EXPORT_PATH(callui.iby) -../rom/callui_variant.iby CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(callui_variant.iby) -../rom/calluiresources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(calluiresources.iby) - - -PRJ_MMPFILES -../group/cauiengine.mmp -../group/cauiplugin.mmp - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Group/callui_stub.SIS Binary file phoneclientserver/CallUI/Group/callui_stub.SIS has changed diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Group/callui_stub.pkg --- a/phoneclientserver/CallUI/Group/callui_stub.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +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: For packing CalUi component. -; -; Languages -&EN - -; Header -#{"CallUI"}, (0x101F868F), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\CaUiEngine.dll" -""-"z:\sys\bin\CaUiPlugin.dll" -""-"z:\resource\CallUI.rsc" diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUI.hrh --- a/phoneclientserver/CallUI/Inc/CaUI.hrh Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Defines UIDs used in CallUI. -* -*/ - - -#ifndef CAUI_HRH -#define CAUI_HRH - - -// CONSTANTS - -// Connection utility implementation uid. -#define KCallUIImplementationUid 0x101F868E -#define KCallUIImplementationUid2 0x102029A1 - -// Create list query listbox height. -enum - { - ECaUiCreateListQueryHeight = 3 - }; - -// Create list query listbox width. -enum - { - ECaUiCreateListQueryWidth = 3 - }; - - -// Values for different kinds of call commands. -enum - { - ECallUIVoice = 500, // Normal, i.e. voice call. - ECallUIVideo = 501, // Video call. - ECallUIInternet = 502 // Internet call ( VoIP ) - }; - -// Values used in communication between CaUiEngine and CaUiPlugin. -enum TCaUiCallType - { - ECaUiCallTypeUnknown = 0, // Call type is unknown. - ECaUiCallTypeVoice = 1, // Call type is voice call. - ECaUiCallTypeVideo = 2, // Call type is video call. - ECaUiCallTypeInternet = 3 // Call type is Internet call - }; - -enum EMenuItemType { - ECSVoice, - ECSVideo, - EInternet, - EInternetWithName -}; - -#endif // CAUI_HRH - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/CaUiActiveObject.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/CaUiActiveObject.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,258 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Active object to handle global list query results. -* -*/ - - -#ifndef CAUIACTIVEOBJECT_H -#define CAUIACTIVEOBJECT_H - - -// INCLUDES -#include -#include - - -// DATA TYPES -typedef CArrayFixFlat CCaUiTIntArray; - - -// FORWARD DECLARATIONS -class MCaUiReconnectQueryObserver; -class CCoeEnv; -class CPhCntFactory; -class CPhCntMatcher; -class CCaUiMessageSender; - -// CLASS DECLARATION - -/** -* Active object to handle global list query results. -* -* @lib CaUiEngine.lib -* @since 2.6 -*/ -NONSHARABLE_CLASS( CCaUiGlnActiveObject ) -: public CActive - { - public: // Data types - - /* - * The reconnect query options. - */ - enum TCaUiReconnectType - { - ECaUiVoiceCall = 0, // Voice call. - ECaUiVideoCall = 1, // Video call. - #ifdef RD_UNIFIED_EDITOR - ECaUiMsg = 2 // Unified editor. - #else // RD_UNIFIED_EDITOR - ECaUiMms = 2, // MMS. - ECaUiSms = 3 // SMS. - #endif // // RD_UNIFIED_EDITOR - }; - - - /** - * The editor types that can be launched. - * - * ECaUiEditorSMS SMS editor. - * ECaUiEditorMMS MMS editor. - */ - enum TCaUiEditorType - { - #ifdef RD_UNIFIED_EDITOR - ECaUiEditorMSG = 0 - #else // RD_UNIFIED_EDITOR - ECaUiEditorSMS = 0, - ECaUiEditorMMS = 1 - #endif // RD_UNIFIED_EDITOR - }; - - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aObserver The observer to handle query results. - * @param aPhCntMatcher The Phone Contact Matcher. - * Ownership not transferred. If NULL, then matcher is created - * inside CCaUiGlnActiveObject. - * @param aPhoneNumber Pointer to the number where dial was tried. - * @param aAlias The alias corresponding the number. Can be NULL. - * @return Constructed CCaUiGlnActiveObject instance. - */ - static CCaUiGlnActiveObject* NewL( - MCaUiReconnectQueryObserver& aObserver, - CPhCntMatcher* aPhCntMatcher, - const TPtrC aPhoneNumber, - const TPtrC aAlias ); - - /** - * Destructor. - */ - virtual ~CCaUiGlnActiveObject(); - - - public: // New functions - - - /** - * Returns reconnect query options array, that must include options - * in the same order and in the same locations than they are in - * reconnect query. Insert only TCaUiReconnectType members. - * - * @return Reconnect query options array. - */ - CCaUiTIntArray* ReconQueryOptionsArray(); - - - public: // Functions from base classes - - /** - * @see CActive::DoCancel. - */ - void DoCancel(); - - /** - * @see CActive::RunL. - */ - void RunL(); - - - /** - * @see CActive::SetActive. - */ - void SetActive(); - - - private: - - /** - * C++ constructor. - * - * @param aObserver The observer to handle query results. - */ - CCaUiGlnActiveObject( - MCaUiReconnectQueryObserver& aObserver ); - - /** - * By default Symbian 2nd phase constructor is private. - * - * @see CCaUiGlnActiveObject::NewL(). - */ - void ConstructL( - CPhCntMatcher* aPhCntMatcher, - const TPtrC aPhoneNumber, - const TPtrC aAlias ); - - - /** - * Launch the desired editor. - * - * @param aEditorType The editor type to be launched. - */ - void LaunchEditorL( TCaUiEditorType aEditorType ); - - /** - * Creates message sender. - * - */ - void CreateMessageSenderL(); - - private: // Data - - - // The query observer. - MCaUiReconnectQueryObserver* iObserver; - - // Storage for real addresses. - CDesCArrayFlat* iRealAddress; - - // Storage for aliases. - CDesCArrayFlat* iAliases; - - // Storage for reconnect query options. - CCaUiTIntArray* iReConQueryOptions; - - // Phone Contact finder factory. - CPhCntFactory* iPhCntFactory; - - // Phone Contact matcher. - CPhCntMatcher* iPhCntMatcher; - - // Is CPhCntMatcher owned. - TBool iOwnMatcher; - - // Message sender - CCaUiMessageSender* iMessageSender; - - }; - -/** -* Active object to handle note results. -* -* @lib CaUiEngine.lib -* @since 2.6 -*/ -NONSHARABLE_CLASS( CCaUiNoteActiveObject ) -: public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @return Constructed CCaUiNoteActiveObject instance. - */ - static CCaUiNoteActiveObject* NewL(); - - /** - * Destructor. - */ - virtual ~CCaUiNoteActiveObject(); - - - - public: // Functions from base classes - - /** - * @see CActive::DoCancel. - */ - void DoCancel(); - - /** - * @see CActive::RunL. - */ - void RunL(); - - /** - * @see CActive::SetActive. - */ - void SetActive(); - - - private: - - /** - * C++ default constructor. - * - */ - CCaUiNoteActiveObject(); - }; - -#endif // CCAUIACTIVEOBJECT_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/CaUiDialDataContainer.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/CaUiDialDataContainer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* -* Copyright (c) 2004 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: Contains PhoneClient Dial Data. -* -*/ - - - -#ifndef CAUIDIALDATACONTAINER_H -#define CAUIDIALDATACONTAINER_H - -// INCLUDES -#include -#include - - -/** -* Defines the class that contains PhoneClient Dial Data. -* -* @lib CaUiEngine.lib -* @since 2.6 -*/ -class CCaUiDialDataContainer -: public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @return Created CCaUiDialDataContainer instance. - */ - static CCaUiDialDataContainer* NewL(); - - /** - * Destructor. - */ - virtual ~CCaUiDialDataContainer(); - - - public: // New functions - - /** - * Returns reference to owned dial data. - * - * @return Owned PhoneClient dial data. - */ - TPhCltExtPhoneDialData& DialData(); - - - private: - - /** - * C++ default constructor. - */ - CCaUiDialDataContainer(); - - - private: // Data - - // PhoneClient Dial data. - TPhCltExtPhoneDialData iDialData; - }; - -#endif // CAUIDIALDATACONTAINER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/CaUiDialResultObserver.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/CaUiDialResultObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 2004 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: It defines the interface for the observers of -* the CCaUiEngApi DialL function results. -* -*/ - - -#ifndef MCAUIDIALRESULTOBSERVER_H -#define MCAUIDIALRESULTOBSERVER_H - -// CLASS DECLARATION - -/** -* Defines the interface for the observers of the CCaUiEngApi DialL function. -* -* @lib CaUiEngine.lib -* @since 2.6 -*/ -class MCaUiDialResultObserver - { - public: // New functions - - /** - * It is called whenever dial request is completed. - * - * @param aStatus It is the status of the operation. - * KErrNone if successful. - * < 0 means Symbian OS error code. - */ - virtual void HandleDialResultL( const TInt aStatus ) = 0; - - }; - -#endif // MCAUIDIALRESULTOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/CaUiDialogs.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/CaUiDialogs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,212 +0,0 @@ -/* -* 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: Provides engine implementation for CallUI. -* -*/ - - -#ifndef __CAUIDIALOGS_H__ -#define __CAUIDIALOGS_H__ - -// Includes - -#include "phclttypes.h" -#include "cauivoipextension.h" - -// Forward declarations - -class CCaUiEngine; -class MCaUiReconnectQueryObserver; -class CPhCntMatcher; -class CAknGlobalListQuery; -class CCaUiGlnActiveObject; -class CCaUiReConQueryInformation; -class CAknGlobalNote; -class CCaUiNoteActiveObject; - - -// Contants - -// The first item in list query (CCaUiQuery). -const TInt KCallUiVoiceCall = 0; - -// The second item in list query (CCaUiQuery). -const TInt KCallUiVideoCall = 1; - -// The third item in list query (CCaUiQuery). -const TInt KCallUiInternetCall = 2; - -// Priority of the note -const TInt KNoVideoSupportNotePriority = 3500; - -// Timeout for note launch. -const TInt KCaUiEngNoteTimeout = 3000000; // 3s - -NONSHARABLE_CLASS( CCaUiDialogs ) - : public CBase - { - - public: - - /** - * Two-phased constructor. - * @return an instance of CCaUiDialogs. - */ - static CCaUiDialogs* NewL( CCaUiEngine& aCaUiEngine ); - - /** - * Destructor. - */ - virtual ~CCaUiDialogs(); - - /** - * Launch a query whether video call will be created with long - * press of Send key - * - * @return The selection user made - */ - TInt QueryVideoCallDefaultActionL(); - - /** - * Launch a list query asking what type of call the caller wants - * to make. - * - * @param aCallType The call type chosen by user in query. - * @return ETrue if query was successful, EFalse otherwise. - */ - TBool LaunchCreateListQueryL( TPhCltCallType& aCallType ); - - /** - * Launch the qtn.tel.no.video.network information note. - * - * @see CCaUiEngApi::LaunchNoNetSupNoteL(). - */ - void LaunchNoNetSupNoteL(); - - /** - * Launch reconnect confirmation query. - * - * @see CCaUiEngApi::LaunchReconConfQueryL(). - * @param aAlias The alias corresponding the number. Can be empty TPtrC. - */ - void LaunchReconConfQueryL( - MCaUiReconnectQueryObserver& aObserver, - CPhCntMatcher* aPhCntMatcher, - const TPtrC aPhoneNumber, - const TBool aIncludeVideoCallOption, - const TPtrC aAlias ); - - /** - * Cancel reconnect query. - * - * @see CCaUiEngApi::CancelReconConfQuery(). - */ - void CancelReconConfQuery(); - - /** - * Cancel note and reconnect query. - * - * @see CCaUiEngApi::CancelNoteAndReconConfQuery(). - */ - void CancelNoteAndReconConfQuery(); - - /** - * Launch note and reconnect confirmation query. - * - * @see CCaUiEngApi::LaunchNoteAndReconConfQueryL(). - * @param aAlias The alias corresponding the number. Can be empty TPtrC. - */ - void LaunchNoteAndReconConfQueryL( - MCaUiReconnectQueryObserver& aObserver, - CPhCntMatcher* aPhCntMatcher, - const TPtrC aPhoneNumber, - const TBool aIncludeVideoCallOption, - const TPtrC aNoteText, - const TPtrC aAlias ); - - /** - * Check if reconfigure query is ongoing. - * @since 3.2 - * @return TBool, ETrue if query is ongoing - * EFalse if not ongoing. - */ - TBool IsReconfQueryOngoing(); - - /** - * Set reconfigure query is ongoing. - * @since 5.0 - */ - void SetReconfQueryOngoing( TBool aOngoing ); - - private: - - /** - * C++ default constructor. - */ - CCaUiDialogs( CCaUiEngine& aCaUiEngine ); - - /** - * Symbian 2nd phase constructor - */ - void ConstructL(); - - /** - * Fill list query items - * - * @since 5.0 - * @param aTextArray - * @param aMappingList - */ - void FillListQueryItemsL( - CDesCArray& aTextArray, - CListMappingArray& aMappingList ); - - /** - * Handle note expiration call back. - * - * @param aAny This pointer. - * @return KErrNone if successful, Symbian error code otherwise. - */ - static TInt DoPerformNoteLaunchCallBackL( TAny* aAny ); - - public: // data - - // tkuuva, create getter/setter - //TBool iReconfQueryOngoing; - - private: //data - - // The reconnect global list query. - CAknGlobalListQuery* iReconListQuery; - - // The active object to handle reconnect query results. - CCaUiGlnActiveObject* iReconActObject; - - CCaUiEngine& iCaUiEngine; - - // Owned timer for note launch time-out. - CPeriodic* iNoteTimer; - - // Storage for Reconnect query information. - CCaUiReConQueryInformation* iReConQueryInformation; - - // The qtn.tel.no.video.network note shown to the user. - CAknInformationNote* iInfoNote; - - // ReconfQuery ongoing flag - TBool iReconfQueryOngoing; - - }; - -#endif // __CAUIDIALOGS_H__ diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/CaUiEng.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/CaUiEng.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,230 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: API for CallUiEngine usage. -* -*/ - - -#ifndef CAUIENG_H -#define CAUIENG_H - - -// INCLUDES -#include -#include //RIdArray -#include "caui.hrh" - - -// FORWARD DECLARATIONS -class MCaUiReconnectQueryObserver; -class MDesC16Array; -class MCaUiDialResultObserver; -class CPhCntMatcher; - - -// CLASS DECLARATION - -/** -* The API for CallUIEngine usage. -* -* @lib CaUiEngine.lib -* @since 2.6 -*/ -class CCaUiEngApi -: public CBase - { - public: // Data types - - /** - * Enumerate all supported resource types. - * - * ECaUiResVoice - Pure voice call resources. - * ECaUiResVoiceAndVideo - Voice and video call resources. - * ECaUiResVoiceInternetAndVideo - All Internet, voice and video call resources. - * ECaUiResOnlyInternet - Only Internet call resources. - */ - enum TCaUiEngResource - { - ECaUiResVoice = 0, - ECaUiResVoiceAndVideo = 1, - ECaUiResVoiceInternetAndVideo = 2, - ECaUiResOnlyInternet = 3 - }; - - - /** - * Enumerate all supported localized text. - * - * ECallMenuItemText - Menu item text for call. - * EVoiceCallMenuItemText - Menu item text for voice call. - * EVideoCallMenuItemText - Menu item text for video call. - * EInternetCallMenuItemText - Menu item text for internet call. - */ - enum TCaUiEngText - { - ECallMenuItemText = 0, - EVoiceCallMenuItemText = 1, - EVideoCallMenuItemText = 2, - EInternetCallMenuItemText = 3 - }; - - public: // New functions - - /** - * Make the dial operation. - * - * @param aObserver The observer to handle dial result. - * @param aDialData The TCallUIDialDataV1 dial data information in - * packaged format. - * @param aCallType If not equal to ECaUiCallTypeUnknown, then - * overwrites the call type in aDialData. - */ - virtual void DialL( - MCaUiDialResultObserver& aObserver, - const TDesC8& aDialData, - const TCaUiCallType aCallType ) = 0; - - /** - * Launch the qtn.tel.no.video.network information note. - * - */ - virtual void LaunchNoNetSupNoteL() = 0; - - - /** - * Launch the reconnect confirmation query shown to user. - * - * @param aObserver The observer to handle query result. - * @param aPhCntMatcher The Phone Contact Matcher. - * Ownership not transferred. If NULL, then matcher is created - * inside CaUIEngine. - * @param aPhoneNumber Pointer to the number where dial was tried. - * @param aIncludeVideoCallOption If set to ETrue, video call option is - * included to query, otherwise it is left out. - */ - virtual void LaunchReconConfQueryL( - MCaUiReconnectQueryObserver& aObserver, - CPhCntMatcher* aPhCntMatcher, - const TPtrC aPhoneNumber, - const TBool aIncludeVideoCallOption ) = 0; - - - /** - * Cancel reconnect query launched with LaunchReconConfQueryL. - * - */ - virtual void CancelReconConfQuery() = 0; - - - /** - * Launch note and reconnect confirmation query in sequence. - * - * @param aObserver The observer to handle query result. - * @param aPhCntMatcher The Phone Contact Matcher. - * Ownership not transferred. If NULL, then matcher is created - * inside CaUIEngine. - * @param aPhoneNumber Pointer to the number where dial was tried. - * @param aIncludeVideoCallOption If set to ETrue, video call option is - * included to query, otherwise it is left out. - * @param aNoteText The text shown in information note. If empty, then - * qtn.tel.no.video.network text is shown. - */ - virtual void LaunchNoteAndReconConfQueryL( - MCaUiReconnectQueryObserver& aObserver, - CPhCntMatcher* aPhCntMatcher, - const TPtrC aPhoneNumber, - const TBool aIncludeVideoCallOption, - const TPtrC aNoteText ) = 0; - - /** - * Cancel note and reconnection query launched with - * LaunchNoteAndReconConfQueryL. - * - */ - virtual void CancelNoteAndReconConfQuery() = 0; - - /** - * Launch address selection. If contact contains default number or - * only one number, number will be returned directly. - * Otherwise address selection list displayed. - * @since 3.0 - * - * @param aTelNum Contains selected number after execution. - * @param aContactId The contact id from PhoneBook. - * @param aVoIPAddressSelect If ETrue VoIP address select is used. - * @return TBool, ETrue if number selected, - * EFalse otherwice (E.g. list canceled). - */ - virtual TBool LaunchAddressSelectL( - TDes& aTelNum, - const TInt aContactId, - const TBool aVoIPAddressSelect ) = 0; - - /** - * Cancel address selection launched with LaunchAddressSelectL. - * - */ - virtual void CancelAddressSelect() = 0; - - /** - * Get VoIP services - * @param aVoipServiceIds On return, contains the list of VoIP services - */ - virtual void GetVoIPServiceIdsL( RIdArray& aVoipServiceIds ) const = 0; - - /** - * Get the service provider name - * @param aServiceId The service, whose name is requested - * @param aServiceName On return, contains the service name - */ - virtual void GetVoipServiceNameL( TServiceId aServiceId, TDes& aServiceName ) const = 0; - }; - - - - -/** -* Interface for CaUiEngine creation. -* -* @lib -* @since 2.6 -*/ -class CCaUiEngFactory : public CBase - { - public: - - /** - * Creates CallUIEngine. - * CCaUiEngFactory instance is deleted even in leave case. - * - * @return CCaUiEngApi implementation. NULL if not supported. - * Ownership transferred. - */ - virtual CCaUiEngApi* CCaUiEngApiLD() = 0; - - }; - -/** -* Only exported function. This is in index 1 in the lookup table. -* Call this function to create CCaUiEngFactory instance. -* -* IMPORT_C CCaUiEngFactory* CreateCaUiEngFactoryL(); -*/ - - - - -#endif // CAUIENG_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/CaUiEngFactImpl.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/CaUiEngFactImpl.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the CaUiEngine factory interface. -* -*/ - - - -#ifndef CAUIENGFACTIMPL_H -#define CAUIENGFACTIMPL_H - - -// INCLUDES -#include "cauieng.h" - - -/** -* Implementation of the PhoneClient Extension factory. -* -* @lib CaUiEngine.lib -* @since 2.6 -*/ -class CCaUiEngFactImpl -: public CCaUiEngFactory - { - public: - - /** - * @see CCaUiEngFactory. - */ - CCaUiEngApi* CCaUiEngApiLD(); - - - private: - - /* - * Destructor - */ - ~CCaUiEngFactImpl(); - }; - - -#endif // CAUIENGFACTIMPL_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/CaUiEngine.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/CaUiEngine.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,511 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Provides engine implementation for CallUI. -* -*/ - - -#ifndef CAUIENGINE_H -#define CAUIENGINE_H - -// INCLUDES -#include -#include // RconeResourceLoader. -#include // MPhCltExtPhoneObserver. -#include "cauieng.h" -#include "cauidialresultobserver.h" -#include "cauiqueryobserver.h" -#include -#include -#include // MPhCntSelectionObserver -#include // CPhCltEmergencyCall -#include -#include -#include -#include - -// FORWARD DECLARATIONS -class CPhCltExtPhoneBase; -class CAknGlobalListQuery; -class CAknGlobalConfirmationQuery; -class CAknGlobalNote; -class CCaUiReConQueryInformation; -class CAiwInternalDialData; -class CPhCltExtPhoneDialData; -class CPhCntSingleItemFetch; -class CPhCntFactory; -class CCaUiVoIPExtension; -class MPhCntStoreLoader; -class MVPbkContactStore; - -class CCaUiDialogs; - -// CONSTANTS - -// Owned and used resource file. -_LIT( KCallUIResFile, "z:\\resource\\CallUI.rsc" ); - - - /** - * Indicates state of long press key - * Default value: 0 - * Default value for iMode variant: 1 - */ -enum TCaUiLongPressKey - { - ECaUiLongPressKeyNotSet = 0, // Long press key is not set - ECaUiLongPressKeyNotInUse = 1, // Long press key is not in use - ECaUiLongPressKeyInUse = 2, // Long press key is in use - }; - -// CLASS DECLARATION - -/** -* CaUIEngine implementation. -* -* @lib CaUiEngine.lib -* @since 2.6 -*/ -NONSHARABLE_CLASS( CCaUiEngine ) -: public CCaUiEngApi, - public MPhCltExtPhoneObserver, - public MCaUiReconnectQueryObserver, - public MPhCntSelectionObserver, - public MPhCltEmergencyCallObserver, - public MPhCntStoreLoaderObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @return an instance of CallUI. - */ - static CCaUiEngine* NewL(); - - /** - * Destructor. - */ - virtual ~CCaUiEngine(); - - - public: // New functions - - /** - * Make the dial operation. - * - * @see CCaUiEngApi::DialL(). - */ - void DialL( - MCaUiDialResultObserver& aObserver, - const TDesC8& aDialData, - const TCaUiCallType aCallType ); - - /** - * Launch the qtn.tel.no.video.network information note. - * - * @see CCaUiEngApi::LaunchNoNetSupNoteL(). - */ - void LaunchNoNetSupNoteL(); - - - /** - * Launch reconnect confirmation query. - * - * @see CCaUiEngApi::LaunchReconConfQueryL(). - */ - void LaunchReconConfQueryL( - MCaUiReconnectQueryObserver& aObserver, - CPhCntMatcher* aPhCntMatcher, - const TPtrC aPhoneNumber, - const TBool aIncludeVideoCallOption ); - - /** - * Cancel reconnect query. - * - * @see CCaUiEngApi::CancelReconConfQuery(). - */ - void CancelReconConfQuery(); - - - /** - * Launch note and reconnect confirmation query. - * - * @see CCaUiEngApi::LaunchNoteAndReconConfQueryL(). - */ - void LaunchNoteAndReconConfQueryL( - MCaUiReconnectQueryObserver& aObserver, - CPhCntMatcher* aPhCntMatcher, - const TPtrC aPhoneNumber, - const TBool aIncludeVideoCallOption, - const TPtrC aNoteText ); - - /** - * Cancel note and reconnect query. - * - * @see CCaUiEngApi::CancelNoteAndReconConfQuery(). - */ - void CancelNoteAndReconConfQuery(); - - /** - * Launch address selection. - * @since 3.0 - * - * @see CCaUiEngApi::LaunchAddressSelectL(). - */ - TBool LaunchAddressSelectL( - TDes& aTelNum, - const TInt aContactId, - const TBool aVoIPAddressSelect ); - - /** - * Cancel address select launched with LaunchAddressSelectL. - * @since 3.0 - * - * @see CCaUiEngApi::CancelAddressSelect(). - */ - void CancelAddressSelect(); - - public: // from MPhCntStoreLoaderObserver - - /** - * From MPhCntStoreLoaderObserver; - * @since S60 v9.1 - * @see MPhCntStoreLoaderObserver. - */ - void ContactStoreLoadingCompleted( - MVPbkContactStore* aStore, TInt aErrorCode ); - - private: // Functions from base classes - - /** - * Handle dial request completion. - * - * @see MPhCltExtPhoneObserver::HandleDialL(). - */ - void HandleDialL( const TInt aStatus ); - - /** - * Called when CCaUiReconnectQuery has got a key press. - * - * @see MCaUiReconnectQueryObserver::OptionSelectedL(). - */ - void OptionSelected( MCaUiReconnectQueryObserver::TCaUiReconType aReconType ); - - - private: - - /** - * C++ default constructor. - */ - CCaUiEngine(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Convert the AIW dialdata to PhoneClient format. - * - * @param aAiwDialData AIW DialData format. - */ - void ConvertDialDataL( - const CAiwInternalDialData& aAiwDialData ); - - - /** - * Clear the Dial related contents if they exist. - */ - void ClearDialContents(); - - - - public: - - /** - * Check is there VoIP profiles in phone. - * - * @since 3.0 - * @return ETrue if found, EFalse otherwise. - */ - TBool IsVoIPProfiles(); - - /** - * @see CCaUiEngApi::GetVoIPServiceIdsL - */ - void GetVoIPServiceIdsL( RIdArray& aVoipServiceIds ) const; - - /** - * @see CCaUiEngApi::GetVoipServiceNameL - */ - void GetVoipServiceNameL( TServiceId aServiceId, TDes& aServiceName ) const; - - private: - - /** - * Launch address selection. If contact contains default number or - * only one number, number will be returned directly. - * Otherwise address selection list displayed. - * @since 3.0 - * - * @param aTelNum Contains selected number after execution. - * @param aContactId The contact id from PhoneBook. - * @param aCallType If calltype is ECaUiCallTypeInternet VoIP address - * select is used. - * @param aRemoveInvalidChars Removes invalid chars from selected number - * if set ETrue. - * @param aFocusedField Focused field from PhoneBook - * @return TBool, ETrue if number selected, EFalse otherwice - * (E.g. list canceled) - */ - void LaunchAddressSelectL( - const TDesC8& aContactLink, - const TCaUiCallType aCallType - ); - - - /** - * Looks for tel URI parameters from a specified phone number. - * @param aNumber The phone number that might contain URI parameters - * @return HBufC containing URI parameters, if parameters couldn't - * be found the HBufC with zero length is returned - * NOTE: The parameters will be ripped off from the given phone - * number (aNumber) if found. - */ - HBufC* FindAndRipURIParametersL( TDes& aNumber ) const; - - /** - * Looks call-type parameter from, URI params and converts the - * possible found hint as a return value. - * @param aUriParams The descriptor containing URI part of the tel URI. - * Parameters can be extracted from URI by using - * FindAndRipURIParametersL method. - * @return The hinted call type defined in URI parameters. - * If call-type parameter couldn't be found the EPhCltVoice is returned. - */ - TPhCltCallType CallTypeFromUriParams( const TDesC& aUriParams ) const; - - /** - * Utility method to search value of named parameter from tel URI. - * @param aName The name of parameter what is searched - * @param aUri The URI from from which parameter is searched - * @return The descriptor containing the valud of named parameter. - * If named parameter couldn't be found, KNullDesC is returned - */ - TPtrC ParamValue( const TDesC& aName, const TDesC& aUri ) const; - - /** - * Utility method to loop through all parameters in Tel URI. - * @param aUri Tel URI from which the parameters are searched. - * @param aStartIndex Offset from which searching is started. - * NOTE: method modifies aStartIndex parameter, always when - * it returns. So - * @return The descriptor containing the next parameter name=value pair. - */ - TPtrC FindNextParamValuePair( const TDesC& aUri, - TInt& aStartIndex ) const; - - /** - * Handle first long press of send key - * @since 3.2 - * Leaves if cenrep data can't be read. - * @return User decision about the VT setting - */ - TBool HandleFirstLongPressOfSendKeyL(); - - /** - * General handling of long press of send key - * @since 3.2 - * Leaves if cenrep data can't be read. - */ - void HandleLongPressOfSendKeyL(); - - /** - * from MPhCntSelectionObserver class - * @since 3.2 - * Leaves if aContactData data can't be read. - */ - void SelectionDone( CPhCntSelectedData* aContactData, TInt aErrorCode ); - - /** - * Makes phoneclient dial request - * @since 3.2 - * @param fieldLink link to phonenumber in contacts. If NULL call is - * not created from Phonebook. - */ - void PhoneClientDialL( const TDesC8* fieldLink ); - - /** - * Sets call type to phoneclient dial data struct. - * @since 3.2 - * @param aCallType Call type to set in dialdata struct. - */ - void SetDialDataCallType( const TCaUiCallType aCallType ); - - /** - * Checks if number is emergency number using - * Emergency call API - * @since 3.2 - * returns ETrue if number is emergency number. Default EFalse. - */ - TBool IsEmergencyNumber(); - - /** - * Handling of emergency dial result. - * @since 3.2 - * @see MPhCltEmergencyCallObserver::HandleEmergencyDialL(). - */ - void HandleEmergencyDialL( const TInt aStatus ); - - /** - * Checks if Video Call can be made - * @since 3.2 - * Leaves if cenrep data can't be read. - * returns ETrue if call can be made. - */ - TBool IsVideoCallAllowedL(); - - /** - * Gets Central repository value - * @since 3.2 - * @param aUid Central repository uid. - * @param aId, Central repository key Id. - * @param aValue Cen Rep key value. - * Leaves if cenrep data can't be read. - */ - void GetCenRepValueL( const TUid& aUid, - const TUint aId, - TInt& aValue ) const; - - /** - * Converts given TCaUiCallType to CPhCntContactDataSelection::TCallType - * @since 3.2 - * @param aCallType CallType to convert - * @param aResultCallType converted type - * - */ - void ConvertCaUiCallType( const TCaUiCallType aCallType, - CPhCntContactDataSelection::TCallType& aResultCallType ); - - /** - * Converts CPhCltExtPhoneDialData callType - * to CPhCntContactDataSelection::TCallType - * @since 3.2 - * @param aResultCallType converted type - * - */ - void ConvertDialDataCallType( - CPhCntContactDataSelection::TCallType& aResultCallType ); - - /** - * Converts TPhCltCallType callType to TCaUiCallType. - * @since S60 v9.1 - * @param aCallType Source type - * @param aResultCallType Converted type - */ - void ConvertPhCltCallType( const TPhCltCallType aCallType, - TCaUiCallType& aResultCallType ) const; - - /** - * Returns Service Selectors calltype by dial data calltype. - * @since 5.0 - * @param Selector calltype. - */ - CConvergedServiceSelector::TSsCallType ServiceSelectorCallType() const; - - /** - * Converts CCConvergedServiceSelector results - * to CPhCltExtPhoneDialData (calltype and service id) - * @since 5.0 - * @param aResults Service selectors results. - */ - void SetSelectorResults( - CConvergedServiceSelector::TSsResult& aResults ); - - /** - * Starts to load specified contact store if not yet loaded. - * If loading is needed, MPhCntStoreLoaderObserver::ContactStoreLoaded - * is called when store is ready for use. - * - * @since S60 v9.1 - * @param aContactLink Contact link specifying store to load. - * @return ETrue if store is already loaded. - */ - TBool LaunchContactStoreLoadingL( const TDesC8& aContactLink ); - - /** - * Resolves with a help of call type values whether call is initiated - * with a send command or through the explicit menu option. - * - * @since S60 v9.1 - * @param aCallType Call UI call type. - * @param aAiwCallType AIW call type. - * @return ETrue if send key pressed, EFalse otherwise. - */ - TBool IsSendKeyPressed( TCaUiCallType aCallType, - CAiwDialData::TCallType aAiwCallType ) const; - - private: // Data - - // Owned resource loader. - RConeResourceLoader iResourceLoader; - - // Buffer for returned localized texts. - HBufC* iBuf; - - // PhoneClient for call creation. - CPhCltExtPhoneBase* iPhCltDialer; - - // Handler class for PhoneClient Dial data. - CPhCltExtPhoneDialData* iDialData; - // Emergency call API - CPhCltEmergencyCall* iEmergencyCall; - - // The observer to handle CallUI dial results. - MCaUiDialResultObserver* iObserver; - - // VoIP extension. - CCaUiVoIPExtension* iVoIPProfileHandler; - - // Long press of Send key setting state, NOT SET/ON/OFF - TInt iLongPressSet; - - // The qtn.tel.xxx note shown to the user. - CAknGlobalConfirmationQuery* iVTSettingQuery; - - // Long key press note buffer - HBufC* iVTString; - // Contact factory for PhoneCntFinder connection - CPhCntFactory* iFactory; - - // Contact selector for fetching contact information from phonebook - CPhCntContactDataSelection* iContactSelector; - - // Service selector for calling service (service id and type) - CConvergedServiceSelector* iServiceSelector; - - /** - * Contact store loader. - * Own. - */ - MPhCntStoreLoader* iContactStoreLoader; - - // Dialogs class. Own - CCaUiDialogs* iDialogs; - - }; - -#endif // CAUIENGINE_H - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/CaUiLogger.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/CaUiLogger.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* Copyright (c) 2004 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: Logger headerfile for CallUi -* -*/ - - - -#ifndef CAUILOGGER_H -#define CAUILOGGER_H - -/* ------------------------------------------------------------------------------ - LOG SELECTION ------------------------------------------------------------------------------ -*/ -#ifndef _DEBUG - // UREL BUILD: - #define CAUI_LOGGING_METHOD 0 // No logging in UREL builds -#else - // UDEB BUILD: - #define CAUI_LOGGING_METHOD 1 // 0 = No logging, - // 1 = Flogger, - // 2 = RDebug -#endif //_DEBUG - - -#if CAUI_LOGGING_METHOD > 0 - #define CAUI_LOGGING_ENABLED // This is for backward compatibility -#endif //CAUI_LOGGING_METHOD - -/* ------------------------------------------------------------------------------ - FLOGGER SETTINGS ------------------------------------------------------------------------------ -*/ -#if CAUI_LOGGING_METHOD == 1 // Flogger - - #include - - _LIT(KCAUILogFolder, "TF"); - _LIT(KCAUILogFile, "TFLOG.TXT"); - -#elif CAUI_LOGGING_METHOD == 2 // RDebug - - #include - -#endif //CAUI_LOGGING_METHOD - - -/* ------------------------------------------------------------------------------ - LOGGING MACROs - - USE THESE MACROS IN YOUR CODE ! ------------------------------------------------------------------------------ -*/ - - -#if CAUI_LOGGING_METHOD == 1 // Flogger - -#define CAUILOGTEXT(AAA) /*lint -save -e960 */ { RFileLogger::Write(KCAUILogFolder(),KCAUILogFile(),EFileLoggingModeAppend,AAA); } /*lint -restore */ -#define CAUILOGSTRING(AAA) /*lint -save -e960 */ { _LIT(tempLogDes,AAA); RFileLogger::Write(KCAUILogFolder(),KCAUILogFile(),EFileLoggingModeAppend,tempLogDes()); } /*lint -restore */ -#define CAUILOGSTRING2(AAA,BBB) /*lint -save -e960 -e437 */ { _LIT(tempLogDes,AAA); RFileLogger::WriteFormat(KCAUILogFolder(),KCAUILogFile(),EFileLoggingModeAppend,TRefByValue(tempLogDes()),BBB); } /*lint -restore */ -#define CAUILOGSTRING3(AAA,BBB,CCC) /*lint -save -e960 */ { _LIT(tempLogDes,AAA); RFileLogger::WriteFormat(KCAUILogFolder(),KCAUILogFile(),EFileLoggingModeAppend,TRefByValue(tempLogDes()),BBB,CCC); } /*lint -restore */ - -#elif CAUI_LOGGING_METHOD == 2 // RDebug - -#define CAUILOGTEXT(AAA) RDebug::Print(AAA); -#define CAUILOGSTRING(AAA) RDebug::Print(_L(AAA)); -#define CAUILOGSTRING2(AAA,BBB) RDebug::Print(_L(AAA),BBB); -#define CAUILOGSTRING3(AAA,BBB,CCC) RDebug::Print(_L(AAA),BBB,CCC); - -#else // CAUI_LOGGING_METHOD == 0 or invalid - -// Example: CAUILOGTEXT(own_desc); -#define CAUILOGTEXT(AAA) -// Example: CAUILOGSTRING("Test"); -#define CAUILOGSTRING(AAA) -// Example: CAUILOGSTRING("Test %i", aValue); -#define CAUILOGSTRING2(AAA,BBB) -// Example: CAUILOGSTRING("Test %i %i", aValue1, aValue2); -#define CAUILOGSTRING3(AAA,BBB,CCC) - -#endif // CAUI_LOGGING_METHOD - -#endif // CAUILOGGER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/CaUiMessageSender.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/CaUiMessageSender.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Launches Send Ui. -* -*/ - - -#ifndef CAUIMESSAGESENDER_H -#define CAUIMESSAGESENDER_H - -// INCLUDES -#include -#include -#include // CUidNameArray - -// CLASS DECLARATION -class CMsvSession; -class CSendUi; - -// CLASS DECLARATION - -/** -* CaUIMessageSender implementation. -* -* @lib CaUiEngine.lib -* @since 2.6 -*/ -class CCaUiMessageSender : - public CBase, - private MMsvSessionObserver - { - public: // Constructors and destructor - - /** - * Destructor. - */ - ~CCaUiMessageSender(); - - /** - * Two-phased constructor. - * @return an instance of CCaUiMessageSender. - */ - static CCaUiMessageSender* NewL(); - - public: // New functions - - /** - * Create new message by given Id. The message editor will always - * be lauched stand alone. - * @param aMessageType mtmUid indicate the message type - * aRealAddress address list to send message - */ - void CreateNewMessageL( TInt aMessageType, - MDesC16Array* aRealAddress, - MDesC16Array* aAliases, - CRichText* aRichText ); - - /** - * Get messgae types array - */ - const CUidNameArray& MessageTypesArrayL(); - - private: - - /** - * C++ constructor. - * - * @param aIndex After the query is dismissed, the index will hold - * the value of selected item. - */ - CCaUiMessageSender( ); - - /** - * Create SendUi - */ - void CreateSendUiL(); - - /** - * Get message types from mtm registry - * - * @param aMsgTypes array of UIDs (MTM types) - * - */ - void UpdateMessageTypesArrayL( CUidNameArray* aMsgTypes ); - - /** - * Check if mail box is defined - */ - TBool IsMailboxDefinedL(); - - /** - * Create connection to message service - */ - void CreateMessageServiceConnectionL(); - - protected: // Functions from base classes - - /** - * From MMsvSessionObserver - */ - virtual void HandleSessionEventL(TMsvSessionEvent aEvent, - TAny* aArg1, TAny* aArg2, TAny* aArg3); - - private: - - // Message service session - CMsvSession* iSession; - - // Send UI - CSendUi* iSendUi; - - // Array of MTM types - CUidNameArray* iMsgTypes; - - }; - -#endif // CAUIMESSAGESENDER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/CaUiMessageSenderStub.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/CaUiMessageSenderStub.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Message sender stub. -* -*/ - - -#ifndef CAUIMESSAGESENDER_H -#define CAUIMESSAGESENDER_H - -// INCLUDES -#include -#include // cuidnamearray - -// CLASS DECLARATION - -/** -* CaUIMessageSender implementation. -* -* @lib CaUiEngine.lib -* @since 3.1 -*/ -class CCaUiMessageSender : - public CBase - { - public: // Constructors and destructor - - /** - * Destructor. - */ - ~CCaUiMessageSender(); - - /** - * Two-phased constructor. - * @return an instance of CCaUiMessageSender. - */ - static CCaUiMessageSender* NewL(); - - public: // New functions - - /** - * Create new message by given Id. The message editor will always - * be lauched stand alone. - * @param aMessageType mtmUid indicate the message type - * aRealAddress address list to send message - */ - void CreateNewMessageL( TInt aMessageType, - MDesC16Array* aRealAddress, - MDesC16Array* aAliases, - CRichText* aRichText ); - - private: - - /** - * C++ constructor. - * - * @param aIndex After the query is dismissed, the index will hold - * the value of selected item. - */ - CCaUiMessageSender( ); - - /** - * Create SendUi - */ - void CreateSendUiL(); - - /** - * Get message types from mtm registry - * - * @param aMsgTypes array of UIDs (MTM types) - * - */ - void UpdateMessageTypesArrayL( CUidNameArray* aMsgTypes ); - - /** - * Check if mail box is defined - */ - TBool IsMailboxDefinedL(); - - /** - * Create connection to message service - */ - void CreateMessageServiceConnectionL(); - - private: - - }; - -#endif // CAUIMESSAGESENDER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/CaUiQuery.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/CaUiQuery.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Defines the query used in CallUI to ask call type from user. -* -*/ - - -#ifndef CAUIQUERY_H -#define CAUIQUERY_H - - -// INCLUDES -#include - - - -// CLASS DECLARATION - -/** -* Defines create list query that is used in CaUiEngine to ask -* call type confirmation from user. -* -* @lib CaUiEngine.lib -* @since 2.6 -*/ -NONSHARABLE_CLASS( CCaUiCreateListQuery ) - : public CAknListQueryDialog - { - public: // Constructors and destructor - - /** - * C++ constructor. - * - * @param aIndex After the query is dismissed, the index will hold - * the value of selected item. - */ - CCaUiCreateListQuery( TInt* aIndex ); - - /** - * Destructor. - */ - ~CCaUiCreateListQuery(); - - - public: // Functions from base classes - - /** - * Loaded version to enable Send key handling. - * - * @see CAknListQueryDialog::OfferKeyEventL. - */ - TKeyResponse OfferKeyEventL( - const TKeyEvent& aKeyEvent, - TEventCode aType ); - - private: //data - - /** - * Flag indicating the validity of the received key event. - */ - TBool iValidKeyEvent; - }; - -#endif // CAUIQUERY_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/CaUiQueryObserver.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/CaUiQueryObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* Copyright (c) 2004 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: Defines the query observer interfaces used in CallUI -* confirmation query handling. -* -*/ - - -#ifndef CAUIQUERYOBSERVER_H -#define CAUIQUERYOBSERVER_H - - -/** -* Defines the observer interface for reconnect confirmation query observers. -* -* @lib CaUiEngine.lib -* @since 2.6 -*/ -class MCaUiReconConfQueryObserver - { - public: // Data types - - enum TCaUiReconType - { - ECallUiReconTypeCancel = -1, // Query canceled. - ECallUiReconTypeVoice = 0, // Voice call. - ECallUiReconTypeVideo = 1, // Video call. -#ifndef RD_UNIFIED_EDITOR - ECallUiReconTypeMms = 2, // MMS. - ECallUiReconTypeSms = 3 // SMS. -#else // RD_UNIFIED_EDITOR - ECallUiReconTypeMsg = 2 -#endif // RD_UNIFIED_EDITOR - }; - - public: // New functions - - /** - * Called when CCaUiReconConfQuery has got a key press. - * - * @param aReconType The reconnect choice of the user. - */ - virtual void HandleReconConfQueryResultL( - TCaUiReconType aReconType ) = 0; - }; - - - -#endif // CAUIQUERYOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/CaUiVoIPExtension.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/CaUiVoIPExtension.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -/* -* Copyright (c) 2005-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: VoIP profile handler -* -*/ - - - -#ifndef CAUIVOIPEXTENSION_H -#define CAUIVOIPEXTENSION_H - -// INCLUDES -#include -#include -#include -#include //RIdArray - -/** -* Mapping for list items. -* -* @lib CaUiEngine.lib -* @since 3.2 -*/ -NONSHARABLE_CLASS( TListMappingItem ) - { - public: //Data - // Index of the list item. - TInt iIndex; - // Call type ot the list item. - TPhCltCallType iCallType; - }; - -// DATATYPES -typedef CArrayFixFlat CListMappingArray; - -// CLASS DECLARATION -/** -* VoIP profile handler. -* -* -* @lib CaUiEngine.lib -* @since Series60 3.0 -*/ -NONSHARABLE_CLASS( CCaUiVoIPExtension ) : public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CCaUiVoIPExtension* NewL(); - - /** - * Destructor. - */ - virtual ~CCaUiVoIPExtension(); - - - public: // New functions - - /** - * Check has user set VoIP profiles. - * @return TBool, ETrue if profiles exists - */ - TBool IsVoIPProfilesL(); - - /** - * @see CCaUiEngApi::GetVoIPServiceIdsL - */ - void GetVoIPServiceIdsL( RIdArray& aVoipServiceIds ) const; - - /** - * @see CCaUiEngApi::GetVoipServiceNameL - */ - void GetVoipServiceNameL( TServiceId aServiceId, TDes& aServiceName ) const; - - private: - - /** - * C++ default constructor. - */ - CCaUiVoIPExtension(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - }; - -#endif // CAUIVOIPEXTENSION_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiEngine/ccauireconnectqueryimpl.h --- a/phoneclientserver/CallUI/Inc/CaUiEngine/ccauireconnectqueryimpl.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -/* -* Copyright (c) 2007 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: Provides reconnectquery implementation for CallUI. -* -*/ - - -#ifndef CCAUIRECONNECTQUERYIMPL_H -#define CCAUIRECONNECTQUERYIMPL_H - -// INCLUDES -#include - -#include - - -// FORWARD DECLARATIONS -class CCaUiEngine; - -// CONSTANTS - - - - -// CLASS DECLARATION - -/** -* CaUIEngine implementation. -* -* @lib CaUiReconnectQueryImpl.lib -* @since 5.0 -*/ -NONSHARABLE_CLASS( CCaUiReconnectQueryImpl ) -: public CCaUiReconnectQuery - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @return an instance of CallUI. - */ - static CCaUiReconnectQueryImpl* NewL( - MCaUiReconnectQueryObserver& aObserver ); - - - /** - * Destructor. - */ - virtual ~CCaUiReconnectQueryImpl(); - - - - private: // Functions from base classes - - /** - * Launch reconnect confirmation query. - * - */ - void ShowL( - const TPtrC aPhoneNumber, - const TBool aIncludeVideoCallOption ); - - private: // internal functions - - /** - * Constructor. - */ - CCaUiReconnectQueryImpl(MCaUiReconnectQueryObserver& aObserver); - - /** - * Second phase construction. - */ - void ConstructL(); - - - private: // Data - - CCaUiEngine* iEng; - - }; - -#endif // CCAUIRECONNECTQUERYIMPL_H - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/Inc/CaUiPlugin/CaUiPlugin.h --- a/phoneclientserver/CallUI/Inc/CaUiPlugin/CaUiPlugin.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,158 +0,0 @@ -/* -* Copyright (c) 2004 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: Provides ECOM interface implementation for CallUI. -* -*/ - - -#ifndef CAUIPLUGIN_H -#define CAUIPLUGIN_H - - -// INCLUDES -#include -#include // AIW dialdata. -#include //TServiceId -#include "cauidialresultobserver.h" -#include "caui.hrh" - -// FORWARD DECLARATIONS -class CCaUiEngApi; -class MAiwNotifyCallback; -class CAiwMenuPane; - - - -// CLASS DECLARATION - -/** -* CaUiPlugin implementation. -* -* @since 2.6 -*/ -class CCaUiPlugin -: public CAiwServiceIfMenu, - public MCaUiDialResultObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @return An instance of CaUiPlugin. - */ - static CCaUiPlugin* NewL(); - - /** - * Destructor. - */ - virtual ~CCaUiPlugin(); - - - public: // Functions from base classes - - /** - * @see CAiwServiceIfMenu::InitialiseL. - */ - void InitialiseL( - MAiwNotifyCallback& aFrameworkCallback, - const RCriteriaArray& aInterest ); - - /** - * @see CAiwServiceIfMenu::HandleServiceCmdL. - */ - void HandleServiceCmdL( - const TInt& aCmdId, - const CAiwGenericParamList& aInParamList, - CAiwGenericParamList& aOutParamList, - TUint aCmdOptions = 0, - const MAiwNotifyCallback* aCallback = NULL ); - - /** - * @see CAiwServiceIfMenu::InitializeMenuPaneL. - */ - void InitializeMenuPaneL( - CAiwMenuPane& aMenuPane, - TInt aIndex, - TInt aCascadeId, - const CAiwGenericParamList& aInParamList ); - - /** - * @see CAiwServiceIfMenu::HandleMenuCmdL. - */ - void HandleMenuCmdL( - TInt aMenuCmdId, - const CAiwGenericParamList& aInParamList, - CAiwGenericParamList& aOutParamList, - TUint aCmdOptions = 0, - const MAiwNotifyCallback* aCallback = NULL ); - - /** - * @see MCaUiDialResultObserver::HandleDialResultL. - */ - void HandleDialResultL( const TInt aStatus ); - - - private: - - /** - * C++ default constructor. - */ - CCaUiPlugin(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Adds a new call sub menu items. If the call type is internet call - * and there is only one service, the service's provider ID is used - * in menu item. - * @param aMenuPane Menu pane to insert commands - * @param aIndex The index of call sub menu - * @param aType The type of item being added - * @param aServiceId The service ID of VoIP call item, needed when - * getting the service name - */ - void AddAiwMenuItemL( - CAiwMenuPane& aMenuPane, - TInt aIndex, - EMenuItemType aType, - TServiceId aServiceId = 0 ); - - private: // Data - - // The library loader. - RLibrary iLibrary; - - // CaUiEngine. - CCaUiEngApi* iCaUiEngine; - - // The AIW callback instance. - const MAiwNotifyCallback* iAiwNotifyCallback; - - // AIW Input parameters. - const CAiwGenericParamList* iInParamList; - - // AIW Output parameters, result of call is returned here. - CAiwGenericParamList* iOutParamList; - - // The menu command given to HandleMenuCmdL. - TInt iMenuCmdId; - }; - -#endif // CAUIPLUGIN_H - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/eabi/cauiengineu.def --- a/phoneclientserver/CallUI/eabi/cauiengineu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,10 +0,0 @@ -EXPORTS - _Z21CreateCaUiEngFactoryLv @ 1 NONAME - _ZN19CCaUiReconnectQuery4NewLER27MCaUiReconnectQueryObserver @ 2 NONAME - _ZTI16CCaUiEngFactImpl @ 3 NONAME - _ZTI18CCaUiMessageSender @ 4 NONAME - _ZTI19CCaUiReconnectQuery @ 5 NONAME - _ZTV16CCaUiEngFactImpl @ 6 NONAME - _ZTV18CCaUiMessageSender @ 7 NONAME - _ZTV19CCaUiReconnectQuery @ 8 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/CallUI/loc/callui.loc --- a/phoneclientserver/CallUI/loc/callui.loc Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: This file contains the localised strings for CallUI. -* -*/ - - - -// LOCALISATION STRINGS - -// d: It is text for a menu option. If it is selected, -// d: normal, i.e. voice call will be made. -// l: list_single_popup_submenu_pane_t1 -// -#define qtn_call_sub_voice "Voice call" - - -// d: It is text for a menu option. If it is selected, -// d: video call will be made. -// l: list_single_popup_submenu_pane_t1 -// -#define qtn_call_sub_video "Video call" - -// d: It is text for a menu option. If it is selected, -// d: an internet call will be made. -// d: %U is replaced with the VoIP service name. -// l: list_single_popup_submenu_pane_t1 -// r: 5.0 -// -#define qtn_call_sub_voip_with_name "%U call" - - -// d: Defines list query header for call type inquiry. -// l: heading_pane_t1 -// -#define qtn_popup_title_create "Create:" - - -// d: In list query selecting this option -// d: means that normal, i.e. voice call is created. -// l: list_single_pane_t1_cp2 -// -#define qtn_popup_create_voice "Voice call" - - -// d: In list query selecting this option -// d: means that video call is created. -// l: list_single_pane_t1_cp2 -// -#define qtn_popup_create_video "Video call" - - -// d: In list query selecting this option -// d: means that internet call is created. -// l: list_single_pane_t1_cp2 -// w: -// r: 3.0 -// -// -#define qtn_popup_create_internet "Internet call" - - -// d: Defines the information note text shown to user when there is -// d: no network support for video call. -// l: popup_note_window -// -#define qtn_tel_no_video_network "No network support for video call." - - -// d: Defines list query header for reconnect type inquiry. -// l: heading_pane_t1 -// -#define qtn_tel_retry_voicevideo_call "Reconnect via:" - - -// d: In reconnect query selecting this option means that -// d: voice call is created. -// l: list_single_pane_t1_cp2 -// -#define qtn_tel_retry_voice_call_item "Voice call" - - -// d: In reconnect query selecting this option means that -// d: video call is created. -// l: list_single_pane_t1_cp2 -// -#define qtn_tel_retry_video_call_item "Video call" - - -// d: In reconnect query selecting this option means that -// d: multimedia messaging service editor is opened. -// l: list_single_pane_t1_cp2 -// -#define qtn_tel_retry_mms_call_item "Multimedia message" - - -// d: In reconnect query selecting this option means that -// d: short message service editor is opened. -// l: list_single_pane_t1_cp2 -// -#define qtn_tel_retry_sms_call_item "Short message" - -// d: It is text for a menu option. If it is selected, -// d: internet call will be made. -// l: list_single_popup_submenu_pane_t1 -// r: 3.0 -// -#define qtn_call_sub_internet "Internet call" - -// d: In reconnect query selecting this option means that -// d: Send message service editor is opened. -// l: list_single_pane_t1_cp2 -// r: 3.1 -#define qtn_tel_retry_message_call_item "Message" - - -// d: Text for query dialog -// l: popup_info_list_pane_t1 -// r: 3.2 -#define qtn_incal_set_long_press_call_video "By long pressing the Call creation key, a video call can be created if defined in Call settings as the default action. Activate now?" - -// This is only used for Phone NG development. -// Will be fixed/removed -#ifdef RD_PHONE_NG - -// LOCALISATION STRINGS - -//d: When user personalize the softkey on idle state to be "New message", -//d: after press softkey, a menu with following text will appear. User chose -//d: one item to activate corresponding message editor. This is the same text -//d: appeared on Message Center application. -//l: list_single_pane_t1_cp2 -// r: 3.2 -// -#define qtn_mce_pop_up_email "Email" - -//d: When user personalize the softkey on idle state to be "New message", -//d: after press softkey, a menu with following text will appear. User chose -//d: one item to activate corresponding message editor. This is the same text -//d: appeared on Message Center application. -//l: list_single_pane_t1_cp2 -// r: 3.2 -// -#define qtn_mce_pop_up_sms "Short message" - -//d: When user personalize the softkey on idle state to be "New message", -//d: after press softkey, a menu with following text will appear. User chose -//d: one item to activate corresponding message editor. This is the same text -//d: appeared on Message Center application. -//l: list_single_pane_t1_cp2 -// r: 3.2 -// -#define qtn_mce_pop_up_mms "Multimedia message" - -//d: When user personalize the softkey on idle state to be "New message", -//d: after press softkey, a menu with following text will appear. User chose -//d: one item to activate corresponding message editor. This is the same text -//d: appeared on Message Center application. -//l: list_single_pane_t1_cp2 -// r: 3.2 -// -#define qtn_mce_pop_up_PostCard "Postcard" - -#endif - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/BMARM/DOSENPOLICYU.DEF --- a/phoneclientserver/EnPolicy/BMARM/DOSENPOLICYU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - NewEnPolicyL__Fv @ 1 NONAME R3UNUSED ; NewEnPolicyL(void) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/BMARM/SOSENPOLICYU.DEF --- a/phoneclientserver/EnPolicy/BMARM/SOSENPOLICYU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - NewEnPolicyL__Fv @ 1 NONAME R3UNUSED ; NewEnPolicyL(void) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/BWINS/DOSENPOLICYU.DEF --- a/phoneclientserver/EnPolicy/BWINS/DOSENPOLICYU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - ?NewEnPolicyL@@YAPAVCEmergencyNumberPolicy@@XZ @ 1 NONAME ; class CEmergencyNumberPolicy * NewEnPolicyL(void) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/BWINS/SOSENPOLICYU.DEF --- a/phoneclientserver/EnPolicy/BWINS/SOSENPOLICYU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - ?NewEnPolicyL@@YAPAVCEmergencyNumberPolicy@@XZ @ 1 NONAME ; class CEmergencyNumberPolicy * NewEnPolicyL(void) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Group/DOSENPolicy.mmp --- a/phoneclientserver/EnPolicy/Group/DOSENPolicy.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 2004-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: DOS emergency number policy -* -*/ - -#include - -// Capability assignment. -CAPABILITY CAP_GENERAL_DLL - -// Assign Vendor ID. -VENDORID VID_DEFAULT - -TARGET dosenpolicy.dll -TARGETTYPE DLL -UID 0x101F86D1 0x101F86D2 - -SOURCEPATH ../src/dosenpolicy -SOURCE cdosemergencynumberpolicy.cpp - -USERINCLUDE . ../inc -USERINCLUDE ../inc/dosenpolicy - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE ../../../inc -SYSTEMINCLUDE ../../inc // for RPhCltEmergencyCall.h - -LIBRARY euser.lib -LIBRARY etel.lib -LIBRARY etelmm.lib -LIBRARY customapi.lib -LIBRARY commonengine.lib -LIBRARY centralrepository.lib -LIBRARY cenrepnotifhandler.lib - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Group/DosEnPolicy_stub.SIS Binary file phoneclientserver/EnPolicy/Group/DosEnPolicy_stub.SIS has changed diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Group/DosEnPolicy_stub.pkg --- a/phoneclientserver/EnPolicy/Group/DosEnPolicy_stub.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +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: For packing dosenpolicy stub component. -; -; Languages -&EN - -; Header -#{"DosEnPolicy"}, (0x101F86D2), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\DosEnPolicy.dll" - - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Group/SOSENPolicy.mmp --- a/phoneclientserver/EnPolicy/Group/SOSENPolicy.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2004-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: MMP file for SosEnPolicy component. -* -*/ - -#include - -// Capability assignment. -CAPABILITY CAP_GENERAL_DLL - -// Assign Vendor ID. -VENDORID VID_DEFAULT - -TARGET sosenpolicy.dll -TARGETTYPE DLL -UID 0x101F86D1 0x101F86D3 - -SOURCEPATH ../src/sosenpolicy -SOURCE csosemergencynumberpolicymanager.cpp -SOURCE csosemergencynumberpolicyhandler.cpp -SOURCE csosenpolicyenlisthandler.cpp -SOURCE csosenpolicysimstatusmonitor.cpp -SOURCE csosenpolicysatrefresh.cpp - -USERINCLUDE . ../inc -USERINCLUDE ../inc/sosenpolicy - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE ../../../inc -SYSTEMINCLUDE ../../inc // for rphcltemergencycall.h - -LIBRARY euser.lib -LIBRARY etel.lib -LIBRARY etelmm.lib -LIBRARY commonengine.lib -LIBRARY featmgr.lib -LIBRARY satclient.lib // for sat refresh -LIBRARY centralrepository.lib -LIBRARY cenrepnotifhandler.lib - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Group/SosEnPolicy_stub.SIS Binary file phoneclientserver/EnPolicy/Group/SosEnPolicy_stub.SIS has changed diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Group/SosEnPolicy_stub.pkg --- a/phoneclientserver/EnPolicy/Group/SosEnPolicy_stub.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,31 +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: For packing SosEnPolicy stub component. -; -; Languages -&EN - -; Header -#{"SosEnPolicy"}, (0x101F86D3), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\SosEnPolicy.dll" - - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Group/bld.inf --- a/phoneclientserver/EnPolicy/Group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,42 +0,0 @@ -/* -* Copyright (c) 2004 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: Build file for dos and sos enpolicy components. -* -*/ - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -../inc/cemergencynumberpolicy.h |../../../inc/cemergencynumberpolicy.h -#ifdef __EN_POLICY_DOS -dosenpolicy_stub.sis /epoc32/data/z/system/install/dosenpolicy_stub.sis -#else -sosenpolicy_stub.sis /epoc32/data/z/system/install/sosenpolicy_stub.sis -#endif - -// IBY files -../rom/enpolicy.iby CORE_MW_LAYER_IBY_EXPORT_PATH(enpolicy.iby) - -PRJ_MMPFILES -../group/dosenpolicy.mmp -../group/sosenpolicy.mmp - -PRJ_TESTMMPFILES -// specify the .mmp files required for building any test programs here - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Inc/CEmergencyNumberPolicy.h --- a/phoneclientserver/EnPolicy/Inc/CEmergencyNumberPolicy.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* Copyright (c) 2004 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: Provides emergency number policy API to verify an emergency -* number. -* -*/ - - - -#ifndef CEMERGENCYNUMBERPOLICY_H -#define CEMERGENCYNUMBERPOLICY_H - -// INCLUDES -#include -#include -#include - -// CONSTANTS -const TUid KEnPolicyUid={ 0x101F86D1 }; -// length of list in shared data. -const TInt KEnPolicySDEmergencyNumberListLength( 100 ); -// separator between emergency numbers. -const TText KEnPolicySDNumberSeparator = ' '; - -// CLASS DECLARATION - -/** -* CEmergencyNumberPolicy -* Description: Defines emergency number policy. -* -* @since Series60_2.6 -*/ - -class CEmergencyNumberPolicy : public CBase - - { - public: // Abstract - /** - * Constructor. - * @since Series60_2.6 - * @param aETelServer a reference of RTelServer. - */ - virtual void ConstructL( RTelServer& aETelServer ) = 0; - - /** - * Emergency number check. - * @since Series60_2.6 - * @param aTelNumber a telephone number to be checked. - * @param aMode a check mode, Normal/Advanced. - * @param aIsEmergencyNumber return True if the number is emergency. - * @return error code. - */ - virtual TInt IsEmergencyNumber( - TPhCltTelephoneNumber& aTelNumber, - TPhCltEmergencyNumberQueryMode aMode, - TBool& aIsEmergencyNumber ) = 0; - - }; - -#endif // CEMERGENCYNUMBERPOLICY_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Inc/DosEnPolicy/CDOSEmergencyNumberPolicy.h --- a/phoneclientserver/EnPolicy/Inc/DosEnPolicy/CDOSEmergencyNumberPolicy.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,160 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Provides DOS emergency number policy API. -* -*/ - - - -#ifndef CDOSEMERGENCYNUMBERPOLICY_H -#define CDOSEMERGENCYNUMBERPOLICY_H - -// INCLUDES -#include -#include -#include - -// FORWARD DECLARATIONS -//None. - - -// CLASS DECLARATION - -/** -* CDosEmergencyNumberPolicy -* Description: Defines DOS emergency number policy. -* -* @since Series60_2.6 -*/ - -NONSHARABLE_CLASS( CDosEmergencyNumberPolicy ) : - public CEmergencyNumberPolicy, - private MCenRepNotifyHandlerCallback - { - public: // Constructors and destructor - - /** - * Destructor. - */ - ~CDosEmergencyNumberPolicy(); - - public: // New - - /** - * Symbian 2nd phase constructor. - * @param aETelServer a reference of RTelServer. - */ - void ConstructL( RTelServer& aETelServer ); - - /** - * Emergency number check. - * @since Series60_2.6 - * @param aTelNumber a telephone number to be checked. - * @param aMode a check mode, Normal/Advanced. - * @param aIsEmergencyNumber return True if the number is emergency. - * @return error code. - */ - TInt IsEmergencyNumber( - TPhCltTelephoneNumber& aTelNumber, - TPhCltEmergencyNumberQueryMode aMode, - TBool& aIsEmergencyNumber ); - - private: // New - - /** - * Reads product specific numbers. - * - * @return None. - */ - void ReadProductSpecificNumbers(); - - /** - * Is number in current list with normal mode. - * - * @param aNumber This is number to be checked. - * @return Returns ETrue if in list, otherwice EFalse. - */ - TBool IsInListByNormalMode ( const TDesC& aNumber ); - - /** - * Is number in current list with advanced mode. - * - * @param aNumber This is number to be checked. - * @return Returns ETrue if in list, otherwice EFalse. - */ - TBool IsInListByAdvancedMode ( TDes& aNumber ); - - /** - * Parses number in corrent format to be checked as - * emergency number. - * - * @since 3.0 - * @param aTelNumber This is number to be parsed. - * @return Returns None. - */ - void ParseNumber( TPhCltTelephoneNumber& aTelNumber ); - - private: // From MCenRepNotifyHandlerCallback - - void HandleNotifyString( TUint32 aId, const TDesC16& aNewValue ); - - private:// Data - - // The RTelServer instance. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RTelServer iETelServer; - - // The RMobilePhone instance. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone iMobilePhone; - - // The CustomAPI instance. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMmCustomAPI iCustomPhone; - - // The information if advanced Emergency check is supported. - TBool iAdvancedCheck; - - - // The product specific emergency numbers. - TBuf< KEnPolicySDEmergencyNumberListLength > iProductSpecificList; - - /** - * CenRep, needed by listener - * - * Own - */ - CRepository* iCenRep; - - /** - * CenRep listener - * - * Own - */ - CCenRepNotifyHandler* iListener; - - }; - -#endif // CDOSEMERGENCYNUMBERPOLICY_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Inc/SosEnPolicy/CSOSEmergencyNumberPolicyHandler.h --- a/phoneclientserver/EnPolicy/Inc/SosEnPolicy/CSOSEmergencyNumberPolicyHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,218 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Provides SOS emergency number policy API implementation. -* -*/ - - - -#ifndef CSOSEMERGENCYNUMBERPOLICYHANDLER_H -#define CSOSEMERGENCYNUMBERPOLICYHANDLER_H - -// INCLUDES -#include "csosemergencynumberpolicymanager.h" -#include "csosenpolicysimstatusmonitor.h" -#include "csosenpolicyenlisthandler.h" -#include -#include - -// DATA TYPES -/* -* EEnPolicyPanicSystemAgentConnectionFailure System agent failure. -*/ - enum TEnPolicyPanic - { - EEnPolicyPanicCentralRepositoryConnectionFailure = 0 - }; - -// FORWARD DECLARATIONS -class CSosEnPolicySimStatusMonitor; -class CSosEnPolicyENListHandler; -class CRepository; -class RSatSession; -class RSatRefresh; - -// CLASS DECLARATION - -/** -* Active object to handle the Publish&Subscriber notify -* -* @since Series 60 Series60_2.8 -*/ -NONSHARABLE_CLASS( CSosEnPolicyActive ) : public CActive - { - public: // Constructors and destructor - /** - * Constructor. - */ - CSosEnPolicyActive( - CSosEmergencyNumberPolicyHandler& aEmergNumHandler ); - - /** - * Destructor. - */ - ~CSosEnPolicyActive(); - - private: // Derived from CActive - - /** - * @see CActive::DoCancel() - */ - void DoCancel(); - - /** - * @see CActive::RunL() - */ - void RunL(); - - private: // Data - CSosEmergencyNumberPolicyHandler& iEmergNumHandler; - - }; - - -/** -* CSosEmergencyNumberPolicyHandler -* Description: Defines SOS emergency number policy. -* -* @since Series60_2.6 -*/ -NONSHARABLE_CLASS( CSosEmergencyNumberPolicyHandler ) : - public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aETelServer a reference of RTelServer. - * @return a instance of SOS emergency number policy handler. - */ - static CSosEmergencyNumberPolicyHandler* NewL( - RTelServer& aETelServer ); - - /** - * Destructor. - */ - ~CSosEmergencyNumberPolicyHandler(); - - public: // New - /** - * Emergency number check. - * @param aTelNumber a telephone number to be checked. - * @param aMode a check mode, Normal/Advanced. - * @param aIsEmergencyNumber return True if the number is emergency. - * @return error code. - */ - TInt IsEmergencyNumber( - TPhCltTelephoneNumber& aTelNumber, - TPhCltEmergencyNumberQueryMode aMode, - TBool& aIsEmergencyNumber ); - - /** - * SIM Emergency numbers action status. - */ - enum TSosEnPolicySimEmergencyNumberAction - { - // Reads emergency numbers from SIM - ESosEnPolicySimEmergencyNumberRead, - // Clears emergency numbers in SIM - ESosEnPolicySimEmergencyNumberClear - }; - - /** - * Observer for SIM status changes. - * - * @param aAction Action to be handled. - */ - void CpsssmHandleSimStatusEvent( - TSosEnPolicySimEmergencyNumberAction aAction ); - - private: // Functions from base classes - - /** - * @see CActive::DoCancel() - */ - void DoCancel(); - - /** - * @see CActive::RunL() - */ - void RunL(); - - /** - * From CActive - */ - TInt RunError( TInt aError ); - - private: - - /** - * Initializes values to Central Repository list. - */ - void InitializeCentralRepositoryList(); - - private: - /** - * C++ default constructor. - */ - CSosEmergencyNumberPolicyHandler(); - - /** - * Symbian 2nd phase constructor is private. - * @param aETelServer a reference of RTelServer. - */ - void ConstructL( RTelServer& aETelServer ); - - private:// Data - - // The RMobilePhone instance. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone iMobilePhone; - - // SIM status monitor - CSosEnPolicySimStatusMonitor* iSimMonitor; - - // Emergency Number list handler - CSosEnPolicyENListHandler* iENListHandler; - - // Reads Emergency Number list from the phone or SIM store. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - CRetrieveMobilePhoneENList* iSimEnRetriver; - - // Storage for emergency number read. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobileENStore iENStore; - - // Central repository instance. - CRepository* iCenRepSession; - - // Sat refresh listener - CSosEnPolicySatRefresh* iSatRefresh; - - //Sim state - TInt iSimState; - - }; - -#endif // CSOSEMERGENCYNUMBERPOLICYHANDLER_H -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Inc/SosEnPolicy/CSOSEmergencyNumberPolicyManager.h --- a/phoneclientserver/EnPolicy/Inc/SosEnPolicy/CSOSEmergencyNumberPolicyManager.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Provides SOS emergency number policy API. -* -*/ - - - -#ifndef CSOSEMERGENCYNUMBERPOLICYMANAGER_H -#define CSOSEMERGENCYNUMBERPOLICYMANAGER_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class CSosEmergencyNumberPolicyHandler; -class CSosEnPolicySatRefresh; - -// CLASS DECLARATION - -/** -* CSosEmergencyNumberPolicyManager -* Description: Defines SOS emergency number policy. -* -* @since Series60_2.6 -*/ - -NONSHARABLE_CLASS( CSosEmergencyNumberPolicyManager ) : - public CEmergencyNumberPolicy - { - public: // Constructors and destructor - - /** - * Symbian 2nd phase constructor is private. - * @param aETelServer a reference of RTelServer. - */ - void ConstructL( RTelServer& aETelServer ); - - /** - * Destructor. - */ - ~CSosEmergencyNumberPolicyManager(); - - public: // New - /** - * Emergency number check. - * @param aTelNumber a telephone number to be checked. - * @param aMode a check mode, Normal/Advanced. - * @param aIsEmergencyNumber return True if the number is emergency. - * @return error code. - */ - TInt IsEmergencyNumber( - TPhCltTelephoneNumber& aTelNumber, - TPhCltEmergencyNumberQueryMode aMode, - TBool& aIsEmergencyNumber ); - - private:// Data - - // Pointer to the instance of SOS emergency number handler. - CSosEmergencyNumberPolicyHandler* iSosEnPolicyHandler; - - }; - -#endif // CSOSEMERGENCYNUMBERPOLICYMANAGER_H -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Inc/SosEnPolicy/CSosEnPolicyENListHandler.h --- a/phoneclientserver/EnPolicy/Inc/SosEnPolicy/CSosEnPolicyENListHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,154 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Monitoring startup and reading/writing to shared data. -* -*/ - - - -#ifndef CSOSENPOLICYENLISTHANDLER_H -#define CSOSENPOLICYENLISTHANDLER_H - - -// INCLUDES -#include "csosemergencynumberpolicyhandler.h" -#include -#include - -// FORWARD DECLARATIONS - - -// CLASS DECLARATION - -/** -* It is the monitor for startup status, and provides services for -* reading and writing to/from shared data. -* -* @since Series60_2.6 -*/ -NONSHARABLE_CLASS( CSosEnPolicyENListHandler ) : public CBase, - public MCenRepNotifyHandlerCallback - { - public: // Constructors and destructor - - /** - * Creates a new monitor and starts it. - * - * @return Pointer to created CSosEnPolicyENListHandler instance. - */ - - static CSosEnPolicyENListHandler* NewL(); - - /** - * Destructor. - */ - ~CSosEnPolicyENListHandler(); - - public: // New functions - - /** - * Reads product specific numbers. - * - * @return Returns space separated list of emergency numbers, in case - * of error, empty list is returned. - */ - const TDesC& ReadProductSpecificNumbers(); - - /** - * Adds Emergency number to list to be written to Central Repository - * - * @param aNumber This is emergency number to be added. - * @param aPermanent If this is set to ETrue, number will not be - * cleared with ClearCurrentList function. - * For numbers which are read in the startup. - * Permanent numbers should be written first. Also adding new permanent - * number removes all non permanent numbers. - */ - void AddToList( const TDesC& aNumber, TBool aPermanent = EFalse ); - - /** - * Clears Current list. - * Does not touch to permanent numbers. - */ - void ClearCurrentList(); - - /** - * Writes current list to Central Repository. - */ - void WriteListToCentralRepository(); - - /** - * Is number in current list with normal mode. - * - * @param aNumber This is number to be checked. - * @return Returns ETrue if in list, otherwice EFalse. - */ - TBool IsInListByNormalMode ( const TDesC& aNumber ); - - /** - * Is number in current list with advanced mode. - * - * @param aNumber This is number to be checked. - * @return Returns ETrue if in list, otherwice EFalse. - */ - TBool IsInListByAdvancedMode ( TDes& aNumber ); - - private: // From MCenRepNotifyHandlerCallback - - void HandleNotifyString( TUint32 aId, const TDesC16& aNewValue ); - - private: - - /** - * C++ constructor. - * - */ - - CSosEnPolicyENListHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // Central repository instance. - CRepository* iRepository; - - // The product specific emergency numbers. - TBuf< KEnPolicySDEmergencyNumberListLength > iProductSpecificList; - - // The current emergency number list. - TBuf< KEnPolicySDEmergencyNumberListLength > iCurrentList; - - // The current place in the emergency number list. - TInt iCurrentListPlace; - - // The start point of current emergency number list. - TInt iCurrentListStart; - - /** - * CenRep listener - * - * Own - */ - CCenRepNotifyHandler* iListener; - - }; - -#endif // CSOSENPOLICYENLISTHANDLER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Inc/SosEnPolicy/CSosEnPolicySatRefresh.h --- a/phoneclientserver/EnPolicy/Inc/SosEnPolicy/CSosEnPolicySatRefresh.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,123 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Monitors sat refresh for cbsserver -* -*/ - - - -#ifndef CSOSENPOLICYSATREFRESH_H -#define CSOSENPOLICYSATREFRESH_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class RSatSession; -class RSatRefresh; - -// CLASS DECLARATION - -/** -* Monitors sat refresh for cbsserver -* -*/ -class CSosEnPolicySatRefresh : public CActive, public MSatRefreshObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CSosEnPolicySatRefresh* NewL( CSosEmergencyNumberPolicyHandler& aCSosEmergencyNumberPolicyHandler ); - - /** - * Destructor. - */ - virtual ~CSosEnPolicySatRefresh(); - - - private: - - /** - * C++ default constructor. - */ - CSosEnPolicySatRefresh( CSosEmergencyNumberPolicyHandler& aCSosEmergencyNumberPolicyHandler ); - - - /** - * Refresh query. Client should determine whether it allow the - * refresh to happen. In this method the client should not close or - * cancel the RSatRefresh subsession. - * @since 2.6 - * @param aType Refresh type. - * @param aFiles Elementary files which are to be changed. - * May be zero length. - * @return ETrue to allow refresh, EFalse to decline refresh. - */ - TBool AllowRefresh( TSatRefreshType aType, const TSatRefreshFiles& aFiles ); - - /** - * Notification of refresh. In this method the client should not close - * or cancel the RSatRefresh subsession. - * @since 2.6 - * @param aType Type of refresh which has happened. - * @param aFiles List of elementary files which has been changed. - * May be zero length. - */ - void Refresh( TSatRefreshType aType, const TSatRefreshFiles& aFiles ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * @Activates property listening - * @param None. - */ - void IssueRequest(); - - private: // Functions from base classes - - /** - * @see CActive::RunL() - */ - void DoCancel(); - - /** - * @see CActive::RunL() - */ - void RunL(); - - private: // Data - - // Reference to cbsserver - CSosEmergencyNumberPolicyHandler& iCSosEmergencyNumberPolicyHandler; - // Sat session connection. - RSatSession* iSatSession; - // Sat refresh connection - RSatRefresh* iSatRefresh; - // Is refresh allowed to do. - TBool iAllowRefresh; - // The RProperty to listen system global state.. - RProperty iProperty; - }; - -#endif // CSOSENPOLICYSATREFRESH_H - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Inc/SosEnPolicy/CSosEnPolicySimStatusMonitor.h --- a/phoneclientserver/EnPolicy/Inc/SosEnPolicy/CSosEnPolicySimStatusMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,124 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Monitoring status of sim for emergency numbers. -* -*/ - - - -#ifndef CSOSENPOLICYSIMSTATUSMONITOR_H -#define CSOSENPOLICYSIMSTATUSMONITOR_H - - -// INCLUDES -#include "csosemergencynumberpolicyhandler.h" - -#include // CActive -#include // RProperty - - -// FORWARD DECLARATIONS -class CSosEmergencyNumberPolicyHandler; -class RSystemAgent; -class TSysAgentEvent; - - -// CLASS DECLARATION - -/** -* It is the SIM monitor class for Emergency number manager. -* -* @since Series60_2.6 -*/ -NONSHARABLE_CLASS( CSosEnPolicySimStatusMonitor ) : public CActive - { - public: // Constructors and destructor - - /** - * Creates a new monitor and starts it. - * - * @param aObserver The observer class of the SIM status changes. - * @return Pointer to created CSosEnPolicySimStatusMonitor instance. - */ - static CSosEnPolicySimStatusMonitor* NewL( - CSosEmergencyNumberPolicyHandler& aObserver ); - - /** - * Destructor. - */ - ~CSosEnPolicySimStatusMonitor(); - - public: // New functions - /** - * Is SIM reading allowed? - * - * @return Returns ETrue, if SIM reading is allowed. - */ - TBool IsReadingAllowed(); - - - private: // Functions from base classes - - /** - * @see CActive::RunL() - */ - void DoCancel(); - - /** - * @see CActive::RunL() - */ - void RunL(); - - - private: // New functions - - /** - * Requests notifications from system agent. - */ - void IssueRequest(); - - /** - * Translates system agent's state information. - * - * @param aState This is the state from SA. - */ - TBool TranslateState( TInt aState ); - - private: - /** - * C++ constructor. - * @param aObserver The observer class of the SIM status changes. - */ - CSosEnPolicySimStatusMonitor( CSosEmergencyNumberPolicyHandler& aObserver ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - - private: // Data - - // The Observer for events. - CSosEmergencyNumberPolicyHandler& iObserver; - - // The RProperty to replace System agent. - RProperty iProperty; - - }; - -#endif // CSOSENPOLICYSIMSTATUSMONITOR_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Src/DosEnPolicy/CDOSEmergencyNumberPolicy.cpp --- a/phoneclientserver/EnPolicy/Src/DosEnPolicy/CDOSEmergencyNumberPolicy.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,399 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Provides DOS emergency number policy API implementation. -* -*/ - - -// INCLUDE FILES -#include "cdosemergencynumberpolicy.h" -#include -#include - -#include -#include -#include - -// CONSTANT -const TInt KDosEmergencyNumberMaxLength = 6; -//Prefix for Sip. -_LIT( KSipPrefix, "sip:" ); -//Prefix for Tel. -_LIT( KTelPrefix, "tel:" ); -//Prefix for Sos. -_LIT( KSosPrefix, "sos:" ); -// @ char -_LIT( KAt, "@" ); -// Prefix length -const TInt KPrefixLength = 4; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CDosEmergencyNumberPolicy::~CDosEmergencyNumberPolicy() -// ----------------------------------------------------------------------------- -// -CDosEmergencyNumberPolicy::~CDosEmergencyNumberPolicy() - { - if ( iListener ) - { - iListener->StopListening(); - delete iListener; - } - delete iCenRep; - - iProductSpecificList.Zero(); - - iCustomPhone.Close(); - iMobilePhone.Close(); - } - -// ----------------------------------------------------------------------------- -// CDosEmergencyNumberPolicy::ConstructL() -// ----------------------------------------------------------------------------- -// -void CDosEmergencyNumberPolicy::ConstructL( RTelServer& aETelServer ) - { - iETelServer = aETelServer; - - User::LeaveIfError( iMobilePhone.Open( iETelServer , KMmTsyPhoneName ) ); - User::LeaveIfError( iCustomPhone.Open( iMobilePhone) ); - - TInt variantReadOnlyValues = 0; - TInt err = KErrNone; - - CRepository* variationFlags = CRepository::NewL( KCRUidTelSrvVariation ); - err = variationFlags->Get( KTelSrvVariationFlags , variantReadOnlyValues ); - - if ( err != KErrNotFound ) - { - User::LeaveIfError( err ); - } - - if ( KTelSrvLVFlagAdvancedENCheck & variantReadOnlyValues ) - { - iAdvancedCheck = ETrue; - } - else - { - iAdvancedCheck = EFalse; - } - - delete variationFlags; - - iCenRep = CRepository::NewL( KCRUidDefaultEmergencyNumbers ); - iListener = CCenRepNotifyHandler::NewL( - *this, - *iCenRep, - CCenRepNotifyHandler::EStringKey, - KDefaultEmergencyNumbersList ); - - iListener->StartListeningL(); - - ReadProductSpecificNumbers(); - } - - -// ----------------------------------------------------------------------------- -// CDosEmergencyNumberPolicy::IsEmergencyNumberL -// -// ----------------------------------------------------------------------------- -// -TInt CDosEmergencyNumberPolicy::IsEmergencyNumber ( - TPhCltTelephoneNumber& aTelNumber, - TPhCltEmergencyNumberQueryMode aMode, - TBool& aIsEmergencyNumber ) - { - TPhCltTelephoneNumber checkedTelNumber(aTelNumber); - ParseNumber( checkedTelNumber ); - aIsEmergencyNumber = EFalse; - RMmCustomAPI::TEmerNumberCheckMode checkedNumberMode; - if ( checkedNumberMode.iNumber.MaxLength() >= checkedTelNumber.Length() ) // aTelNumber -> checkedTelNumber - { - checkedNumberMode.iNumber = checkedTelNumber; // aTelNumber -> checkedTelNumber - } - else - { - // too long, cannot be checked - return KErrArgument; - } - - // set check type - switch ( aMode ) - { - case EPhCltEmergencyNumberQueryModeAdvanced: - { - // check if it is a product specific number. - if ( IsInListByAdvancedMode( checkedTelNumber ) ) // aTelNumber -> checkedTelNumber - { - aTelNumber = checkedTelNumber; // aTelNumber -> checkedTelNumber - aIsEmergencyNumber = ETrue; - return KErrNone; - } - - // if TSY doesn't support advanced mode, then check by S60 advanced mode - // based on TSY normal mode check. - if ( ! iAdvancedCheck ) - { - TInt length = - Min( checkedTelNumber.Length(), KDosEmergencyNumberMaxLength ); // aTelNumber -> checkedTelNumber - checkedNumberMode.iCheckMode = RMmCustomAPI::EEmerNumberCheckNormal; - - TInt result = KErrArgument; - while ( ( length > 0 ) && ! aIsEmergencyNumber ) - { - checkedNumberMode.iNumber = checkedTelNumber.Right( length ); // aTelNumber -> checkedTelNumber - result = iCustomPhone.CheckEmergencyNumber( - checkedNumberMode, aIsEmergencyNumber ); - - if ( result == KErrNone && aIsEmergencyNumber ) - { - aTelNumber = checkedNumberMode.iNumber; - } - - length--; - } - - return result; - } - else - { - checkedNumberMode.iCheckMode = - RMmCustomAPI::EEmerNumberCheckAdvanced; - } - } - break; - case EPhCltEmergencyNumberQueryModeNormal: - case EPhCltEmergencyNumberQueryModeNormalWriteback: - // check if it is a product specific number. - if ( IsInListByNormalMode( checkedTelNumber ) ) // aTelNumber -> checkedTelNumber - { - aTelNumber = checkedTelNumber; // aTelNumber -> checkedTelNumber - aIsEmergencyNumber = ETrue; - return KErrNone; - } - - // flow thru - default: - checkedNumberMode.iCheckMode = - RMmCustomAPI::EEmerNumberCheckNormal; - break; - } - - // do checking - TInt err = iCustomPhone.CheckEmergencyNumber ( - checkedNumberMode, aIsEmergencyNumber ); - - aTelNumber = checkedNumberMode.iNumber; - - return err; - } - -// ----------------------------------------------------------------------------- -// CDosEmergencyNumberPolicy::ReadProductSpecificNumbers -// -// Reads product specific values from central repository -// ----------------------------------------------------------------------------- -// -void CDosEmergencyNumberPolicy::ReadProductSpecificNumbers() - { - // This is done only once in bootup phase. - iProductSpecificList.Zero(); - - TInt err = KErrNone; - - - err = iCenRep->Get( KDefaultEmergencyNumbersList, - iProductSpecificList ); - - if ( err != KErrNone ) - { - // just to make sure, if central repository has modified it, - // even when there was an error. - iProductSpecificList.Zero(); - } - } - -// ----------------------------------------------------------------------------- -// CDosEmergencyNumberPolicy::IsInListByAdvancedMode -// -// Checks if the number is in list by advanced mode check. -// -// ----------------------------------------------------------------------------- -// -TBool CDosEmergencyNumberPolicy::IsInListByAdvancedMode ( TDes& aNumber ) - { - TLex list( iProductSpecificList ); - TLexMark mark; - TPtrC token_candidate( KNullDesC() ) ; - - for ( TInt i = 0; i < KEnPolicySDEmergencyNumberListLength; i++ ) - { - list.Mark( mark ); - list.SkipCharacters(); - TPtrC token; - token.Set( list.MarkedToken( mark ) ); - if ( token.Length() && ( token == aNumber.Right( token.Length() ) ) ) - { - // _DDPRINT( 4, "ENPolicy.SDM.IsInListAdvanced.ok.", place ); - if( token_candidate == KNullDesC ) - { - token_candidate.Set( token ); - } - else - { - if( token.Length() > token_candidate.Length() ) - { - token_candidate.Set( token ); - } - } - } - list.Inc(); - } - - if( token_candidate != KNullDesC ) - { - aNumber = token_candidate; - return ETrue; - } - - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CDosEmergencyNumberPolicy::IsInListByNormalMode -// -// Checks if the number is in list by normal mode check. -// -// ----------------------------------------------------------------------------- -// -TBool CDosEmergencyNumberPolicy::IsInListByNormalMode( const TDesC& aNumber ) - { - TInt length = aNumber.Length(); - TInt place = iProductSpecificList.Find( aNumber ); // first number of aNumber - - // _DDPRINT( 4, "ENPolicy.SDM.IsInListNormal.ok.", place ); // debug print - - if ( place < 0 ) - { - // negative value is an error, not found! - // return immediately - return EFalse; - } - - TInt endOfMatch = place + length; // end of number + 1 - - // we check the begining - if ( place > 0 ) - { - // we are not in the begining of buffer, so we have to check - // char before that - if ( iProductSpecificList[ place -1 ] != KEnPolicySDNumberSeparator ) - { - // this was just a substring numbers before that - return EFalse; - } - } - - // beginning was ok, so we can continue - - // now checking the end - // there must be atleast one empty space in the end that - // we do the checking of number end. - if ( endOfMatch < ( iProductSpecificList.Length() - 2 ) ) - { - if ( iProductSpecificList[ endOfMatch ] != KEnPolicySDNumberSeparator ) - { - return EFalse; - } - } - - //match is wrong, only part of ememergency number is matched - int newmatchlen = 0; - for (int i = place; i < iProductSpecificList.Length(); i++) - { - if(iProductSpecificList [i] != KEnPolicySDNumberSeparator ) - newmatchlen++; - else - break; - } - - if (length != newmatchlen) - { - return EFalse; - } - - - // if we get so far, its ok. - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CDosEmergencyNumberPolicy::ParserNumber -// -// Removes sip prefixis beging of the number and end of the number after @ char. -// @ character is also removed. -// -// ----------------------------------------------------------------------------- -// -void CDosEmergencyNumberPolicy::ParseNumber( TPhCltTelephoneNumber& aTelNumber ) - { - // Does number contains prefix. If yes then remove it - - if ( 0 == aTelNumber.FindC( KSipPrefix ) || - 0 == aTelNumber.FindC( KTelPrefix ) || - 0 == aTelNumber.FindC( KSosPrefix ) ) - { - aTelNumber.Delete( 0, KPrefixLength ); - } - // Does Number contains domain part. If yes remove it at beging of @ character. - TInt atIndex = aTelNumber.Find( KAt ); - TInt telNumberLength = aTelNumber.Length(); - if ( 0 < atIndex && - atIndex < telNumberLength ) - { - aTelNumber.Delete( atIndex, telNumberLength - atIndex ); - } - } - -// ----------------------------------------------------------------------------- -// CDosEmergencyNumberPolicy::HandleNotifyString -// -// Inherited from MCenRepNotifyHandlerCallback. -// ----------------------------------------------------------------------------- -// -void CDosEmergencyNumberPolicy::HandleNotifyString( - TUint32 aId, const TDesC16& aNewValue ) - { - if( aId == KDefaultEmergencyNumbersList ) - { - iProductSpecificList.Zero(); - iProductSpecificList.Copy( aNewValue ); - } - - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// NewEnPolicy() -// -// ----------------------------------------------------------------------------- -// -EXPORT_C CEmergencyNumberPolicy* NewEnPolicyL() - { - return new (ELeave) CDosEmergencyNumberPolicy; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEmergencyNumberPolicyHandler.cpp --- a/phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEmergencyNumberPolicyHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,350 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Provides SOS emergency number policy API implementation. -* -*/ - - - -// INCLUDE FILES -#include "csosemergencynumberpolicyhandler.h" -#include -#include -#include -#include -#include -#include -#include "csosenpolicysatrefresh.h" - -// CONSTANTS -// The default emergency numbers. -_LIT( KEnPolicyUnivEmergencyNumber, "112" ); -_LIT( KEnPolicyUSEmergencyNumber, "911" ); // U.S.A -_LIT( KEnPolicyUKEmergencyNumber, "999" ); // U.K -_LIT( KEnPolicyAUEmergencyNumber, "000" ); // Australian -_LIT( KEnPolicyMXEmergencyNumber, "08" ); // Mexico -_LIT( KEnPolicyAPACEmergencyNumber, "110" ); // APAC countries, Germany -_LIT( KEnPolicyJapanEmergencyNumber, "118" ); // Japan -_LIT( KEnPolicyJapanEmergencyNumber2, "119" ); // Japan - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSosEnPolicyActive::CSosEnPolicyActive() -// -// C++ constructor -// ----------------------------------------------------------------------------- -// -CSosEnPolicyActive::CSosEnPolicyActive( - CSosEmergencyNumberPolicyHandler& aEmergNumHandler ) - : CActive( CActive::EPriorityStandard ), iEmergNumHandler ( aEmergNumHandler ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicyActive::~CSosEnPolicyActive() -// ----------------------------------------------------------------------------- -// -CSosEnPolicyActive::~CSosEnPolicyActive() - { - Cancel(); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicyActive::RunL() -// -// ----------------------------------------------------------------------------- -// -void CSosEnPolicyActive::RunL() - { - iEmergNumHandler.CpsssmHandleSimStatusEvent( - CSosEmergencyNumberPolicyHandler::ESosEnPolicySimEmergencyNumberRead ); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicyActive::DoCancel() -// -// ----------------------------------------------------------------------------- -// -void CSosEnPolicyActive::DoCancel() - { - } - -// ----------------------------------------------------------------------------- -// CSosEmergencyNumberPolicyHandler::CSosEmergencyNumberPolicyHandler() -// -// C++ constructor -// ----------------------------------------------------------------------------- -// -CSosEmergencyNumberPolicyHandler::CSosEmergencyNumberPolicyHandler() - : CActive( CActive::EPriorityStandard ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CSosEmergencyNumberPolicyImp::NewL() -// -// ----------------------------------------------------------------------------- -// -CSosEmergencyNumberPolicyHandler* CSosEmergencyNumberPolicyHandler::NewL( - RTelServer& aETelServer ) - { - CSosEmergencyNumberPolicyHandler* self = - new(ELeave) CSosEmergencyNumberPolicyHandler(); - CleanupStack::PushL( self ); - self->ConstructL( aETelServer ); - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CSosEmergencyNumberPolicyHandler::~CSosEmergencyNumberPolicyHandler() -// ----------------------------------------------------------------------------- -// -CSosEmergencyNumberPolicyHandler::~CSosEmergencyNumberPolicyHandler() - { - Cancel(); // also deletes requester if there is one - - delete iSatRefresh; - // both cancel operations in destructors. - delete iSimMonitor; - delete iENListHandler; - - iENStore.Close(); - - FeatureManager::UnInitializeLib(); - iMobilePhone.Close(); - - delete iCenRepSession; - } - -// ----------------------------------------------------------------------------- -// CSosEmergencyNumberPolicyHandler::ConstructL() -// ----------------------------------------------------------------------------- -// -void CSosEmergencyNumberPolicyHandler::ConstructL( RTelServer& aETelServer ) - { - FeatureManager::InitializeLibL(); - - User::LeaveIfError( iMobilePhone.Open( aETelServer , KMmTsyPhoneName ) ); - - // Create sat refresh listener - iSatRefresh = CSosEnPolicySatRefresh::NewL( *this ); - - iSimMonitor = CSosEnPolicySimStatusMonitor::NewL( *this ); - - iENListHandler = CSosEnPolicyENListHandler::NewL() ; - - User::LeaveIfError( iENStore.Open( iMobilePhone ) ); - - InitializeCentralRepositoryList(); - } - - -// ----------------------------------------------------------------------------- -// CSosEmergencyNumberPolicyHandler::IsEmergencyNumberL -// -// ----------------------------------------------------------------------------- -// -TInt CSosEmergencyNumberPolicyHandler::IsEmergencyNumber ( - TPhCltTelephoneNumber& aTelNumber, - TPhCltEmergencyNumberQueryMode aMode, - TBool& aIsEmergencyNumber ) - - { - if ( aMode == EPhCltEmergencyNumberQueryModeAdvanced ) - { - aIsEmergencyNumber = iENListHandler->IsInListByAdvancedMode( aTelNumber ); - } - else - { - aIsEmergencyNumber = iENListHandler->IsInListByNormalMode( aTelNumber ); - } - - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSosEmergencyNumberPolicyHandler::CpsssmHandleSimStatusEvent() -// -// SIM event occurred, it's either for adding or removing -// SIM emergency numbers. If SIM is rejected or removed -// SIM emergency numbers are removed. -// -// Old list is cleared only if new list is received. Otherwise -// it's stays valid. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CSosEmergencyNumberPolicyHandler::CpsssmHandleSimStatusEvent( - TSosEnPolicySimEmergencyNumberAction aAction ) - { - // If not null there is something ongoing which should be cancelled first. - if ( iSimEnRetriver ) - { - Cancel(); // retriever is also deleted. - } - - // We need to read new numbers. - if ( aAction == ESosEnPolicySimEmergencyNumberRead ) - { - TInt err = KErrNone; - - // _DPRINT( 4, "ENPolicy.EN.SimNumbers.create" ); // debug print - - // The retrieve may fail, that possibility is TRAPed here. - TRAP( err, iSimEnRetriver = - CRetrieveMobilePhoneENList::NewL( iENStore ) ); - - // _DDPRINT( 4, "ENPolicy.EN.SimNumbers.create.ok.", err ); // debug print - - if( err == KErrNone ) - { - iSimEnRetriver->Start( iStatus ); - SetActive(); - } - } - } - -// ----------------------------------------------------------------------------- -// CSosEmergencyNumberPolicyHandler::DoCancel() -// -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CSosEmergencyNumberPolicyHandler::DoCancel() - { - if ( iSimEnRetriver ) - { - iSimEnRetriver->Cancel(); - delete iSimEnRetriver; - iSimEnRetriver = NULL; - } - } - - -// ----------------------------------------------------------------------------- -// CSosEmergencyNumberPolicyHandler::RunL() -// -// Number fetch complete. In case of error we stick to that -// what we have, or use default list. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CSosEmergencyNumberPolicyHandler::RunL() - { - if ( iStatus.Int() == KErrNone ) - { - // ownership is transferred! - CMobilePhoneENList* list = iSimEnRetriver->RetrieveListL(); - CleanupStack::PushL( list ); - if ( list ) - { - TInt count = list->Enumerate(); - - // _DDPRINT( 4, "ENPolicy.EN.SimNumber.count.", count ); // debug print - - // clear old changeable stuff from list. - iENListHandler->ClearCurrentList(); - for ( TInt i = 0; i < count; i++ ) - { - const RMobileENStore::TMobileENEntryV1 entry = - list->GetEntryL( i ); - - // _DDPRINT( 4, "ENPolicy.EN.SimNumber.number.", entry.iNumber ); - - iENListHandler->AddToList( entry.iNumber, EFalse ); - } - } - CleanupStack::PopAndDestroy(); // list - } - delete iSimEnRetriver; - iSimEnRetriver = NULL; - } - - -// ----------------------------------------------------------------------------- -// CSosEmergencyNumberPolicyHandler::RunError -// -// Called when RunL leaves. -// The RunL can leave in EN list operations. It is ok to return KErrNone after -// deleting the SimEnRetriever. -// -// ----------------------------------------------------------------------------- -// -TInt CSosEmergencyNumberPolicyHandler::RunError( TInt /*aError*/ ) - { - // delete the SimEnRetriever, because not done in RunL. - delete iSimEnRetriver; - iSimEnRetriver = NULL; - - return KErrNone; - } - - -// ----------------------------------------------------------------------------- -// CSosEmergencyNumberPolicyHandler::InitializeCentralRepositoryList() -// -// Called once in the startup. -// Adds universal (112) emergency number to Central Repository list, -// and checks possible product specific values. After this, -// these values are not changed. -// ----------------------------------------------------------------------------- -// -void CSosEmergencyNumberPolicyHandler::InitializeCentralRepositoryList() - { - // (From 3GPP specification 22.101, ftp://ftp.3gpp.org/specs/latest/Rel-8/22_series/22101-880.zip) - // - // "The ME shall identify a number dialled by the end user as a valid emergency number if it occurs under one or more - // of the following conditions: - // a) 112 and 911 shall always be available. These numbers shall be stored on the ME. - // b) Any emergency number stored on a SIM/USIM when the SIM/USIM is present. - // c) 000, 08, 110, 999, 118 and 119 when a SIM/USIM is not present. These numbers shall be stored on the ME. - // d) Additional emergency numbers that may have been downloaded by the serving network when the SIM/USIM is present." - - // Universal, 112 - iENListHandler->AddToList( KEnPolicyUnivEmergencyNumber, ETrue ); - // U.S, 911 - iENListHandler->AddToList( KEnPolicyUSEmergencyNumber, ETrue ); - - if ( iSimMonitor->IsReadingAllowed() ) - { - CpsssmHandleSimStatusEvent( ESosEnPolicySimEmergencyNumberRead ); - } - else - { - iENListHandler->AddToList( KEnPolicyUKEmergencyNumber ); - iENListHandler->AddToList( KEnPolicyAUEmergencyNumber ); - iENListHandler->AddToList( KEnPolicyMXEmergencyNumber ); - iENListHandler->AddToList( KEnPolicyAPACEmergencyNumber ); - iENListHandler->AddToList( KEnPolicyJapanEmergencyNumber ); - iENListHandler->AddToList( KEnPolicyJapanEmergencyNumber2 ); - } - - // Product specific numbers. - iENListHandler->AddToList( iENListHandler->ReadProductSpecificNumbers(), ETrue ); - } - -// End of file. diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEmergencyNumberPolicyManager.cpp --- a/phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEmergencyNumberPolicyManager.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* Copyright (c) 2004 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: Provides SOS emergency number policy API to verify an emergency -* number. -* -*/ - - - -// INCLUDE FILES -#include "csosemergencynumberpolicymanager.h" -#include "csosemergencynumberpolicyhandler.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSosEmergencyNumberPolicyManager::~CSosEmergencyNumberPolicyManager() -// ----------------------------------------------------------------------------- -// -CSosEmergencyNumberPolicyManager::~CSosEmergencyNumberPolicyManager() - { - delete iSosEnPolicyHandler; - } - -// ----------------------------------------------------------------------------- -// CSosEmergencyNumberPolicyManager::ConstructL() -// ----------------------------------------------------------------------------- -// -void CSosEmergencyNumberPolicyManager::ConstructL( RTelServer& aETelServer ) - { - iSosEnPolicyHandler = CSosEmergencyNumberPolicyHandler::NewL( aETelServer); - } - -// ----------------------------------------------------------------------------- -// CSosEmergencyNumberPolicyManager::IsEmergencyNumber -// -// ----------------------------------------------------------------------------- -// -TInt CSosEmergencyNumberPolicyManager::IsEmergencyNumber ( - TPhCltTelephoneNumber& aTelNumber, - TPhCltEmergencyNumberQueryMode aMode, - TBool& aIsEmergencyNumber ) - { - return iSosEnPolicyHandler->IsEmergencyNumber( aTelNumber, - aMode, - aIsEmergencyNumber ); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// NewEnPolicy() -// -// ----------------------------------------------------------------------------- -// -EXPORT_C CEmergencyNumberPolicy* NewEnPolicyL() - { - return new (ELeave) CSosEmergencyNumberPolicyManager; - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEnPolicyENListHandler.cpp --- a/phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEnPolicyENListHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,292 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Shared Data Monitor -* -*/ - - -// INCLUDES -#include "csosenpolicyenlisthandler.h" -#include -#include -#include -#include - -// FUNCTIONS - -// ----------------------------------------------------------------------------- -// CSosEnPolicyENListHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSosEnPolicyENListHandler* CSosEnPolicyENListHandler::NewL( - ) - { - CSosEnPolicyENListHandler* self = new ( ELeave ) - CSosEnPolicyENListHandler(); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicyENListHandler::~CSosEnPolicyENListHandler() -// ----------------------------------------------------------------------------- -// -CSosEnPolicyENListHandler::~CSosEnPolicyENListHandler() - { - if ( iListener ) - { - iListener->StopListening(); - delete iListener; - } - delete iRepository; - - iProductSpecificList.Zero(); - iCurrentList.Zero(); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicyENListHandler::CSosEnPolicyENListHandler -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSosEnPolicyENListHandler::CSosEnPolicyENListHandler( - ) - { - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicyENListHandler::ConstructL -// Construction, 2nd phase. -// ----------------------------------------------------------------------------- -// -void CSosEnPolicyENListHandler::ConstructL() - { - ClearCurrentList(); - iRepository = CRepository::NewL( KCRUidDefaultEmergencyNumbers ); - iListener = CCenRepNotifyHandler::NewL( - *this, - *iRepository, - CCenRepNotifyHandler::EStringKey, - KDefaultEmergencyNumbersList); - - iListener->StartListeningL(); - } - - -// ----------------------------------------------------------------------------- -// CSosEnPolicyENListHandler::AddToList -// -// Adds number to list with separator. -// If numbers are set to permanent, also list start index is updated. -// Permanent numbers must be in the beginning of the list, -// so SIM numbers are removed before writing! -// ----------------------------------------------------------------------------- -// -void CSosEnPolicyENListHandler::AddToList( - const TDesC& aNumber, - TBool aPermanent ) - { - TInt length = aNumber.Length(); - if ( length > 0 ) // for null string do nothing - { - // Remove non permanent numbers - if ( aPermanent ) - { - ClearCurrentList(); - } - // Write new ones - - for ( TInt i = 0; i < length; i++ ) - { - iCurrentList[ iCurrentListPlace ] = aNumber[i]; - iCurrentListPlace++; - } - iCurrentListPlace++; - // Update starting point - if ( aPermanent ) - { - iCurrentListStart = iCurrentListPlace; - } - } - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicyENListHandler::ClearCurrentList -// -// Clears list to be written to Central Repository. -// Does not clear permanent numbers, from the begining of list -// There is always 112 or 911 (WCDMA) and optionally product specific numbers. -// Basically only deleted numbers are SIM emergency numbers. -// ----------------------------------------------------------------------------- -// -void CSosEnPolicyENListHandler::ClearCurrentList() - { - iCurrentList.SetLength( KEnPolicySDEmergencyNumberListLength ); - iCurrentListPlace = iCurrentListStart; - for ( TInt i = iCurrentListStart; - i < KEnPolicySDEmergencyNumberListLength; - i++ ) - { - iCurrentList[i] = KEnPolicySDNumberSeparator; - } - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicyENListHandler::IsInListByAdvancedMode -// -// Checks if the number is in list by advanced mode check. -// -// ----------------------------------------------------------------------------- -// -TBool CSosEnPolicyENListHandler::IsInListByAdvancedMode ( TDes& aNumber ) - { - TLex list( iCurrentList ); - TLexMark mark; - TPtrC token_candidate( KNullDesC() ); - - for ( TInt i = 0; i < KEnPolicySDEmergencyNumberListLength; i++ ) - { - list.Mark( mark ); - list.SkipCharacters(); - TPtrC token; - token.Set( list.MarkedToken( mark ) ); - if ( token.Length() && ( token == aNumber.Right( token.Length() ) ) ) - { - // _DDPRINT( 4, "ENPolicy.SDM.IsInListAdvanced.ok.", place ); - if( token_candidate == KNullDesC ) - { - token_candidate.Set( token ); - } - else - { - if( token.Length() > token_candidate.Length() ) - { - token_candidate.Set( token ); - } - } - } - list.Inc(); - } - - if( token_candidate != KNullDesC ) - { - aNumber = token_candidate; - return ETrue; - } - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicyENListHandler::IsInListByNormalMode -// -// Checks if the number is in list by normal mode check. -// -// ----------------------------------------------------------------------------- -// -TBool CSosEnPolicyENListHandler::IsInListByNormalMode( - const TDesC& aNumber ) - { - TInt length = aNumber.Length(); - TInt place = iCurrentList.Find( aNumber ); // first number of aNumber - - // _DDPRINT( 4, "ENPolicy.SDM.IsInListNormal.ok.", place ); // debug print - - if ( place < 0 ) - { - // negative value is an error, not found! - // return immediately - return EFalse; - } - - TInt endOfMatch = place + length; // end of number + 1 - - // we check the begining - if ( place > 0 ) - { - // we are not in the begining of buffer, so we have to check - // char before that - if ( iCurrentList[ place -1 ] != KEnPolicySDNumberSeparator ) - { - // this was just a substring numbers before that - return EFalse; - } - } - - // beginning was ok, so we can continue - - // now checking the end - // there must be atleast one empty space in the end that - // we do the checking of number end. - if ( endOfMatch < ( iCurrentList.Length() - 2 ) ) - { - if ( iCurrentList[ endOfMatch ] != KEnPolicySDNumberSeparator ) - { - return EFalse; - } - } - - // if we get so far, its ok. - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicyENListHandler::ReadProductSpecificNumbers -// -// Reads product specific values from Central Repository. -// ----------------------------------------------------------------------------- -// -const TDesC& CSosEnPolicyENListHandler::ReadProductSpecificNumbers() - { - // This is done only once in bootup phase. - iProductSpecificList.Zero(); - - TInt err = KErrNone; - err = iRepository->Get( KDefaultEmergencyNumbersList, - iProductSpecificList ); - - if ( err != KErrNone ) - { - iProductSpecificList.Zero(); - } - - // _DDPRINT( 4, "ENPolicy.SDM.ReadPSN.list", iProductSpecificList ); - - return iProductSpecificList; - } - -// ----------------------------------------------------------------------------- -// CDosEmergencyNumberPolicy::HandleNotifyString -// -// Inherited from MCenRepNotifyHandlerCallback. -// ----------------------------------------------------------------------------- -// -void CSosEnPolicyENListHandler::HandleNotifyString( - TUint32 aId, const TDesC16& aNewValue ) - { - if( aId == KDefaultEmergencyNumbersList ) - { - iProductSpecificList.Zero(); - iProductSpecificList.Copy( aNewValue ); - - ClearCurrentList(); - AddToList( iProductSpecificList ); - } - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEnPolicySatRefresh.cpp --- a/phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEnPolicySatRefresh.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,186 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: This module contains the implementation of CSosEnPolicySatRefresh -* class member functions. -* -*/ - - - -// INCLUDE FILES -#include -#include "csosemergencynumberpolicyhandler.h" -#include "csosenpolicysatrefresh.h" - -#include -#include - -#include // Property values - -// Constants -_LIT( KENPolicyPanicCategory, "ENPolicyFault" ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSosEnPolicySatRefresh::CSosEnPolicySatRefresh -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSosEnPolicySatRefresh::CSosEnPolicySatRefresh( CSosEmergencyNumberPolicyHandler& aCSosEmergencyNumberPolicyHandler ): - CActive( EPriorityStandard ), iCSosEmergencyNumberPolicyHandler ( aCSosEmergencyNumberPolicyHandler ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicySatRefresh::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSosEnPolicySatRefresh::ConstructL() - { - TInt err = KErrNotSupported; - iSatSession = new ( ELeave ) RSatSession; - iSatRefresh = new ( ELeave ) RSatRefresh( *this ); - - err = iProperty.Attach( KPSUidStartup, KPSGlobalSystemState ); - __ASSERT_ALWAYS( err == KErrNone, User::Panic( - KENPolicyPanicCategory, EEnPolicyPanicCentralRepositoryConnectionFailure ) ); - IssueRequest(); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicySatRefresh::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSosEnPolicySatRefresh* CSosEnPolicySatRefresh::NewL( CSosEmergencyNumberPolicyHandler& aCSosEmergencyNumberPolicyHandler ) - { - CSosEnPolicySatRefresh* self = new (ELeave) CSosEnPolicySatRefresh( aCSosEmergencyNumberPolicyHandler ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// Destructor -CSosEnPolicySatRefresh::~CSosEnPolicySatRefresh() - { - if ( iSatRefresh ) - { - // Cancel notifications. - iSatRefresh->Cancel(); - // Close SubSession. - iSatRefresh->Close(); - } - delete iSatRefresh; - - if ( iSatSession ) - { - iSatSession->Close(); - } - delete iSatSession; - - Cancel(); - iProperty.Close(); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicySatRefresh::AllowRefresh -// Refresh query. Determines whether it allow the refresh to happen. -// ----------------------------------------------------------------------------- -// -TBool CSosEnPolicySatRefresh::AllowRefresh( TSatRefreshType /*aType*/, const TSatRefreshFiles& /*aFiles*/ ) - { - // Refresh is always allowed - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicySatRefresh::Refresh -// Notification of refresh. In this method the client should not close -// or cancel the RSatRefresh subsession. -// ----------------------------------------------------------------------------- -// -void CSosEnPolicySatRefresh::Refresh( TSatRefreshType /*aType*/, const TSatRefreshFiles& /*aFiles*/ ) - { - // Reload SIM Topics in case of refresh - iCSosEmergencyNumberPolicyHandler.CpsssmHandleSimStatusEvent( CSosEmergencyNumberPolicyHandler::ESosEnPolicySimEmergencyNumberRead ); - iSatRefresh->RefreshEFRead( EFalse ); - } - - -// ----------------------------------------------------------------------------- -// CSosEnPolicySimStatusMonitor::IssueRequest -// -// Issue notify request to System agent. -// ----------------------------------------------------------------------------- -// -void CSosEnPolicySatRefresh::IssueRequest() - { - iProperty.Subscribe( iStatus ); - SetActive(); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicySatRefresh::RunL -// -// Property event occurred. -// ----------------------------------------------------------------------------- -// -void CSosEnPolicySatRefresh::RunL() - { - TInt value; - iProperty.Get( KPSUidStartup, KPSGlobalSystemState, value ); - if ( ESwStateNormalRfOn == value || ESwStateNormalRfOff == value ) - { - switch ( iStatus.Int() ) - { - case KErrNotSupported: - case KErrCancel: - return; - case KErrNone: - { - iSatSession->ConnectL(); - iSatRefresh->OpenL( *iSatSession ); - TSatRefreshFiles file; - file.Append( KEccEf ); - iSatRefresh->NotifyFileChangeL( file ); - break; - } - default: - break; - } - } - else - { - IssueRequest(); - } - } - -// ----------------------------------------------------------------------------- -//CSosEnPolicySatRefresh::DoCancel -// -// Cancellation of notify. -// ----------------------------------------------------------------------------- -// -void CSosEnPolicySatRefresh::DoCancel() - { - iProperty.Cancel(); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEnPolicySimStatusMonitor.cpp --- a/phoneclientserver/EnPolicy/Src/SosEnPolicy/CSosEnPolicySimStatusMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,211 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: SIM Status Monitor. -* -*/ - - - -// INCLUDES -#include "csosenpolicysimstatusmonitor.h" -#include // Property values -#include - - - -// CONSTANTS -const TUint KENPolicySAConnectionRetryTime = 2000000; // 2s -const TInt KENPolicySAConnectionRetries = 3; - -_LIT( KENPolicyPanicCategory, "ENPolicyFault" ); - - -// ============================ MEMBER FUNCTIONS =============================== -// ----------------------------------------------------------------------------- -// CSosEnPolicySimStatusMonitor::CSosEnPolicySimStatusMonitor -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSosEnPolicySimStatusMonitor::CSosEnPolicySimStatusMonitor( - CSosEmergencyNumberPolicyHandler& aObserver ) : - CActive( EPriorityStandard ), - iObserver( aObserver ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicySimStatusMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSosEnPolicySimStatusMonitor* CSosEnPolicySimStatusMonitor::NewL( - CSosEmergencyNumberPolicyHandler& aObserver ) - { - CSosEnPolicySimStatusMonitor* self = new ( ELeave ) - CSosEnPolicySimStatusMonitor( aObserver ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicySimStatusMonitor::~CSosEnPolicySimStatusMonitor -// Destructor. -// ----------------------------------------------------------------------------- -// -CSosEnPolicySimStatusMonitor::~CSosEnPolicySimStatusMonitor() - { - Cancel(); - - iProperty.Close(); - - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicySimStatusMonitor::ConstructL -// -// Construction. Creates also connection to system agent. -// ----------------------------------------------------------------------------- -// -void CSosEnPolicySimStatusMonitor::ConstructL() - { - TInt err = KErrNotSupported; - for( TInt i = 0; i < KENPolicySAConnectionRetries; i++ ) - { - err = iProperty.Attach( KPSUidStartup, KPSSimStatus ); - if( err == KErrNone ) - { - i = KENPolicySAConnectionRetries; - } - else - { - // _DPRINT( 4, "ENPolicy.SimStatus.Attach.RETRY" ); - User::After( KENPolicySAConnectionRetryTime ); - } - } - //if connection not established. - __ASSERT_ALWAYS( err == KErrNone, User::Panic( - KENPolicyPanicCategory, EEnPolicyPanicCentralRepositoryConnectionFailure ) ); - IssueRequest(); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicySimStatusMonitor::DoCancel -// -// Cancellation of notify. -// ----------------------------------------------------------------------------- -// -void CSosEnPolicySimStatusMonitor::DoCancel() - { - iProperty.Cancel(); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicySimStatusMonitor::RunL -// -// SIM event occurred. -// Basically events make three kinds of responses. -// If there is an error in notify, nothing is made. Othervice, event -// may indicate that SIM is accessible or not. Depending on that, action is -// send for observer. -// ----------------------------------------------------------------------------- -// -void CSosEnPolicySimStatusMonitor::RunL() - { - TInt state = KErrGeneral; - - iProperty.Get( state ); - - // _DDPRINT( 4, "ENPolicy.SimStatus.status.e.", iStatus.Int() ); - // _DDPRINT( 4, "ENPolicy.SimStatus.status.", state ); - CSosEmergencyNumberPolicyHandler::TSosEnPolicySimEmergencyNumberAction - action = CSosEmergencyNumberPolicyHandler:: - ESosEnPolicySimEmergencyNumberClear; - switch ( iStatus.Int() ) - { - case KErrNotSupported: - case KErrCancel: - return; - case KErrNone: - { - if ( TranslateState( state ) ) - { - action = - CSosEmergencyNumberPolicyHandler:: - ESosEnPolicySimEmergencyNumberRead; - } - iObserver.CpsssmHandleSimStatusEvent( action ); - } - default: - break; - } - IssueRequest(); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicySimStatusMonitor::IsReadingAllowed -// -// Checks sim state from system agent -// ----------------------------------------------------------------------------- -// -TBool CSosEnPolicySimStatusMonitor::IsReadingAllowed() - { - TInt state = KErrGeneral; - - iProperty.Get( state ); - return TranslateState( state ); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicySimStatusMonitor::IssueRequest -// -// Issue notify request to System agent. -// ----------------------------------------------------------------------------- -// -void CSosEnPolicySimStatusMonitor::IssueRequest() - { - iProperty.Subscribe( iStatus ); - - SetActive(); - } - -// ----------------------------------------------------------------------------- -// CSosEnPolicySimStatusMonitor::TranslateState -// -// Translate the state information. -// ----------------------------------------------------------------------------- -// -TBool CSosEnPolicySimStatusMonitor::TranslateState( TInt aState ) - { - switch ( aState ) - { - case ESimUsable: - case ESimReadable: - return ETrue; - case ESimStatusUninitialized: - case ESimNotReady: - case ESimNotSupported: - case ESimNotPresent: - return EFalse; - default: - return EFalse; - } - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/eabi/dosenpolicyu.def --- a/phoneclientserver/EnPolicy/eabi/dosenpolicyu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - _Z12NewEnPolicyLv @ 1 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/eabi/sosenpolicyu.def --- a/phoneclientserver/EnPolicy/eabi/sosenpolicyu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -EXPORTS - _Z12NewEnPolicyLv @ 1 NONAME - _ZTI22CSosEnPolicySatRefresh @ 2 NONAME - _ZTV22CSosEnPolicySatRefresh @ 3 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/EnPolicy/rom/enpolicy.iby --- a/phoneclientserver/EnPolicy/rom/enpolicy.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Emergency number policy -* -*/ - - -#ifndef __ENPOLICY_IBY__ -#define __ENPOLICY_IBY__ - -#ifdef __EN_POLICY_DOS -file = ABI_DIR\BUILD_DIR\dosenpolicy.dll SHARED_LIB_DIR\dosenpolicy.dll -data=ZSYSTEM\install\dosenpolicy_stub.sis system\install\dosenpolicy_stub.sis -#else -file = ABI_DIR\BUILD_DIR\sosenpolicy.dll SHARED_LIB_DIR\sosenpolicy.dll -data=ZSYSTEM\install\sosenpolicy_stub.sis system\install\sosenpolicy_stub.sis -#endif - -#endif // __ENPOLICY_IBY__ - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/bwins/aiwdialdataU.DEF --- a/phoneclientserver/aiwdialdata/bwins/aiwdialdataU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -EXPORTS - ?AllowMatch@CAiwInternalDialData@@QBEHXZ @ 1 NONAME ; int CAiwInternalDialData::AllowMatch(void) const - ?Bearer@CAiwInternalDialData@@QBEABVTDesC8@@XZ @ 2 NONAME ; class TDesC8 const & CAiwInternalDialData::Bearer(void) const - ?CallType@CAiwDialData@@QBE?AW4TCallType@1@XZ @ 3 NONAME ; enum CAiwDialData::TCallType CAiwDialData::CallType(void) const - ?CallType@CAiwDialDataExt@@QBE?AW4TCallType@CAiwDialData@@XZ @ 4 NONAME ; enum CAiwDialData::TCallType CAiwDialDataExt::CallType(void) const - ?CallType@CAiwInternalDialData@@QBE?AW4TCallType@CAiwDialData@@XZ @ 5 NONAME ; enum CAiwDialData::TCallType CAiwInternalDialData::CallType(void) const - ?ContactLink@CAiwDialDataExt@@QBEABVTDesC8@@XZ @ 6 NONAME ; class TDesC8 const & CAiwDialDataExt::ContactLink(void) const - ?ContactLink@CAiwInternalDialData@@QBEABVTDesC8@@XZ @ 7 NONAME ; class TDesC8 const & CAiwInternalDialData::ContactLink(void) const - ?EndOtherCalls@CAiwInternalDialData@@QBEHXZ @ 8 NONAME ; int CAiwInternalDialData::EndOtherCalls(void) const - ?FillInParamListL@CAiwDialData@@QAEXAAVCAiwGenericParamList@@@Z @ 9 NONAME ; void CAiwDialData::FillInParamListL(class CAiwGenericParamList &) - ?FillInParamListL@CAiwDialDataExt@@QAEXAAVCAiwGenericParamList@@@Z @ 10 NONAME ; void CAiwDialDataExt::FillInParamListL(class CAiwGenericParamList &) - ?FillInParamListL@CAiwInternalDialData@@QAEXAAVCAiwGenericParamList@@@Z @ 11 NONAME ; void CAiwInternalDialData::FillInParamListL(class CAiwGenericParamList &) - ?InitiateCall@CAiwDialDataExt@@QBEHXZ @ 12 NONAME ; int CAiwDialDataExt::InitiateCall(void) const - ?InitiateCall@CAiwInternalDialData@@QBEHXZ @ 13 NONAME ; int CAiwInternalDialData::InitiateCall(void) const - ?Name@CAiwDialDataExt@@QBEABVTDesC16@@XZ @ 14 NONAME ; class TDesC16 const & CAiwDialDataExt::Name(void) const - ?Name@CAiwInternalDialData@@QBEABVTDesC16@@XZ @ 15 NONAME ; class TDesC16 const & CAiwInternalDialData::Name(void) const - ?NewL@CAiwDialData@@SAPAV1@XZ @ 16 NONAME ; class CAiwDialData * CAiwDialData::NewL(void) - ?NewL@CAiwDialDataExt@@SAPAV1@XZ @ 17 NONAME ; class CAiwDialDataExt * CAiwDialDataExt::NewL(void) - ?NewL@CAiwInternalDialData@@SAPAV1@ABVTDesC8@@@Z @ 18 NONAME ; class CAiwInternalDialData * CAiwInternalDialData::NewL(class TDesC8 const &) - ?NewL@CAiwInternalDialData@@SAPAV1@XZ @ 19 NONAME ; class CAiwInternalDialData * CAiwInternalDialData::NewL(void) - ?NewLC@CAiwDialData@@SAPAV1@XZ @ 20 NONAME ; class CAiwDialData * CAiwDialData::NewLC(void) - ?NewLC@CAiwDialDataExt@@SAPAV1@XZ @ 21 NONAME ; class CAiwDialDataExt * CAiwDialDataExt::NewLC(void) - ?NewLC@CAiwInternalDialData@@SAPAV1@ABVTDesC8@@@Z @ 22 NONAME ; class CAiwInternalDialData * CAiwInternalDialData::NewLC(class TDesC8 const &) - ?NewLC@CAiwInternalDialData@@SAPAV1@XZ @ 23 NONAME ; class CAiwInternalDialData * CAiwInternalDialData::NewLC(void) - ?PhoneNumber@CAiwDialData@@QBEABVTDesC16@@XZ @ 24 NONAME ; class TDesC16 const & CAiwDialData::PhoneNumber(void) const - ?PhoneNumber@CAiwDialDataExt@@QBEABVTDesC16@@XZ @ 25 NONAME ; class TDesC16 const & CAiwDialDataExt::PhoneNumber(void) const - ?PhoneNumber@CAiwInternalDialData@@QBEABVTDesC16@@XZ @ 26 NONAME ; class TDesC16 const & CAiwInternalDialData::PhoneNumber(void) const - ?Redial@CAiwDialDataExt@@QBEHXZ @ 27 NONAME ; int CAiwDialDataExt::Redial(void) const - ?Redial@CAiwInternalDialData@@QBEHXZ @ 28 NONAME ; int CAiwInternalDialData::Redial(void) const - ?RedialMaximumDuration@CAiwInternalDialData@@QBE?BVTTimeIntervalSeconds@@XZ @ 29 NONAME ; class TTimeIntervalSeconds const CAiwInternalDialData::RedialMaximumDuration(void) const - ?SATCall@CAiwInternalDialData@@QBEHXZ @ 30 NONAME ; int CAiwInternalDialData::SATCall(void) const - ?SetAllowMatch@CAiwInternalDialData@@QAEXH@Z @ 31 NONAME ; void CAiwInternalDialData::SetAllowMatch(int) - ?SetBearerL@CAiwInternalDialData@@QAEXABVTDesC8@@@Z @ 32 NONAME ; void CAiwInternalDialData::SetBearerL(class TDesC8 const &) - ?SetCallType@CAiwDialData@@QAEXW4TCallType@1@@Z @ 33 NONAME ; void CAiwDialData::SetCallType(enum CAiwDialData::TCallType) - ?SetCallType@CAiwDialDataExt@@QAEXW4TCallType@CAiwDialData@@@Z @ 34 NONAME ; void CAiwDialDataExt::SetCallType(enum CAiwDialData::TCallType) - ?SetCallType@CAiwInternalDialData@@QAEXW4TCallType@CAiwDialData@@@Z @ 35 NONAME ; void CAiwInternalDialData::SetCallType(enum CAiwDialData::TCallType) - ?SetContactLinkL@CAiwDialDataExt@@QAEXABVTDesC8@@@Z @ 36 NONAME ; void CAiwDialDataExt::SetContactLinkL(class TDesC8 const &) - ?SetContactLinkL@CAiwInternalDialData@@QAEXABVTDesC8@@@Z @ 37 NONAME ; void CAiwInternalDialData::SetContactLinkL(class TDesC8 const &) - ?SetEndOtherCalls@CAiwInternalDialData@@QAEXH@Z @ 38 NONAME ; void CAiwInternalDialData::SetEndOtherCalls(int) - ?SetInitiateCall@CAiwDialDataExt@@QAEXH@Z @ 39 NONAME ; void CAiwDialDataExt::SetInitiateCall(int) - ?SetInitiateCall@CAiwInternalDialData@@QAEXH@Z @ 40 NONAME ; void CAiwInternalDialData::SetInitiateCall(int) - ?SetNameL@CAiwDialDataExt@@QAEXABVTDesC16@@@Z @ 41 NONAME ; void CAiwDialDataExt::SetNameL(class TDesC16 const &) - ?SetNameL@CAiwInternalDialData@@QAEXABVTDesC16@@@Z @ 42 NONAME ; void CAiwInternalDialData::SetNameL(class TDesC16 const &) - ?SetPhoneNumberL@CAiwDialData@@QAEXABVTDesC16@@@Z @ 43 NONAME ; void CAiwDialData::SetPhoneNumberL(class TDesC16 const &) - ?SetPhoneNumberL@CAiwDialDataExt@@QAEXABVTDesC16@@@Z @ 44 NONAME ; void CAiwDialDataExt::SetPhoneNumberL(class TDesC16 const &) - ?SetPhoneNumberL@CAiwInternalDialData@@QAEXABVTDesC16@@@Z @ 45 NONAME ; void CAiwInternalDialData::SetPhoneNumberL(class TDesC16 const &) - ?SetRedial@CAiwDialDataExt@@QAEXH@Z @ 46 NONAME ; void CAiwDialDataExt::SetRedial(int) - ?SetRedial@CAiwInternalDialData@@QAEXH@Z @ 47 NONAME ; void CAiwInternalDialData::SetRedial(int) - ?SetRedialMaximumDuration@CAiwInternalDialData@@QAEXVTTimeIntervalSeconds@@@Z @ 48 NONAME ; void CAiwInternalDialData::SetRedialMaximumDuration(class TTimeIntervalSeconds) - ?SetSATCall@CAiwInternalDialData@@QAEXH@Z @ 49 NONAME ; void CAiwInternalDialData::SetSATCall(int) - ?SetShowNumber@CAiwDialDataExt@@QAEXH@Z @ 50 NONAME ; void CAiwDialDataExt::SetShowNumber(int) - ?SetShowNumber@CAiwInternalDialData@@QAEXH@Z @ 51 NONAME ; void CAiwInternalDialData::SetShowNumber(int) - ?SetSubAddressL@CAiwInternalDialData@@QAEXABVTDesC16@@@Z @ 52 NONAME ; void CAiwInternalDialData::SetSubAddressL(class TDesC16 const &) - ?SetWindowGroup@CAiwDialData@@QAEXH@Z @ 53 NONAME ; void CAiwDialData::SetWindowGroup(int) - ?SetWindowGroup@CAiwDialDataExt@@QAEXH@Z @ 54 NONAME ; void CAiwDialDataExt::SetWindowGroup(int) - ?SetWindowGroup@CAiwInternalDialData@@QAEXH@Z @ 55 NONAME ; void CAiwInternalDialData::SetWindowGroup(int) - ?ShowNumber@CAiwDialDataExt@@QBEHXZ @ 56 NONAME ; int CAiwDialDataExt::ShowNumber(void) const - ?ShowNumber@CAiwInternalDialData@@QBEHXZ @ 57 NONAME ; int CAiwInternalDialData::ShowNumber(void) const - ?SubAddress@CAiwInternalDialData@@QBEABVTDesC16@@XZ @ 58 NONAME ; class TDesC16 const & CAiwInternalDialData::SubAddress(void) const - ?WindowGroup@CAiwDialData@@QBEHXZ @ 59 NONAME ; int CAiwDialData::WindowGroup(void) const - ?WindowGroup@CAiwDialDataExt@@QBEHXZ @ 60 NONAME ; int CAiwDialDataExt::WindowGroup(void) const - ?WindowGroup@CAiwInternalDialData@@QBEHXZ @ 61 NONAME ; int CAiwInternalDialData::WindowGroup(void) const - ?SetUUIL@CAiwInternalDialData@@QAEXABVTDesC16@@@Z @ 62 NONAME ; void CAiwInternalDialData::SetUUIL(class TDesC16 const &) - ?UUI@CAiwInternalDialData@@QBEABVTDesC16@@XZ @ 63 NONAME ; class TDesC16 const & CAiwInternalDialData::UUI(void) const - ?ServiceId@CAiwInternalDialData@@QBEKXZ @ 64 NONAME ; unsigned long CAiwInternalDialData::ServiceId(void) const - ?SetServiceId@CAiwInternalDialData@@QAEXK@Z @ 65 NONAME ; void CAiwInternalDialData::SetServiceId(unsigned long) - ?ServiceId@CAiwDialDataExt@@QBEKXZ @ 66 NONAME ; unsigned long CAiwDialDataExt::ServiceId(void) const - ?SetServiceId@CAiwDialDataExt@@QAEXK@Z @ 67 NONAME ; void CAiwDialDataExt::SetServiceId(unsigned long) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/bwins/aiwdialdata_2_2U.DEF --- a/phoneclientserver/aiwdialdata/bwins/aiwdialdata_2_2U.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -EXPORTS - ?AllowMatch@CAiwInternalDialData@@QBEHXZ @ 1 NONAME ; int CAiwInternalDialData::AllowMatch(void) const - ?Bearer@CAiwInternalDialData@@QBEABVTDesC8@@XZ @ 2 NONAME ; class TDesC8 const & CAiwInternalDialData::Bearer(void) const - ?CallType@CAiwDialData@@QBE?AW4TCallType@1@XZ @ 3 NONAME ; enum CAiwDialData::TCallType CAiwDialData::CallType(void) const - ?CallType@CAiwDialDataExt@@QBE?AW4TCallType@CAiwDialData@@XZ @ 4 NONAME ; enum CAiwDialData::TCallType CAiwDialDataExt::CallType(void) const - ?CallType@CAiwInternalDialData@@QBE?AW4TCallType@CAiwDialData@@XZ @ 5 NONAME ; enum CAiwDialData::TCallType CAiwInternalDialData::CallType(void) const - ?ContactLink@CAiwDialDataExt@@QBEABVTDesC8@@XZ @ 6 NONAME ; class TDesC8 const & CAiwDialDataExt::ContactLink(void) const - ?ContactLink@CAiwInternalDialData@@QBEABVTDesC8@@XZ @ 7 NONAME ; class TDesC8 const & CAiwInternalDialData::ContactLink(void) const - ?EndOtherCalls@CAiwInternalDialData@@QBEHXZ @ 8 NONAME ; int CAiwInternalDialData::EndOtherCalls(void) const - ?FillInParamListL@CAiwDialData@@QAEXAAVCAiwGenericParamList@@@Z @ 9 NONAME ; void CAiwDialData::FillInParamListL(class CAiwGenericParamList &) - ?FillInParamListL@CAiwDialDataExt@@QAEXAAVCAiwGenericParamList@@@Z @ 10 NONAME ; void CAiwDialDataExt::FillInParamListL(class CAiwGenericParamList &) - ?FillInParamListL@CAiwInternalDialData@@QAEXAAVCAiwGenericParamList@@@Z @ 11 NONAME ; void CAiwInternalDialData::FillInParamListL(class CAiwGenericParamList &) - ?InitiateCall@CAiwDialDataExt@@QBEHXZ @ 12 NONAME ; int CAiwDialDataExt::InitiateCall(void) const - ?InitiateCall@CAiwInternalDialData@@QBEHXZ @ 13 NONAME ; int CAiwInternalDialData::InitiateCall(void) const - ?Name@CAiwDialDataExt@@QBEABVTDesC16@@XZ @ 14 NONAME ; class TDesC16 const & CAiwDialDataExt::Name(void) const - ?Name@CAiwInternalDialData@@QBEABVTDesC16@@XZ @ 15 NONAME ; class TDesC16 const & CAiwInternalDialData::Name(void) const - ?NewL@CAiwDialData@@SAPAV1@XZ @ 16 NONAME ; class CAiwDialData * CAiwDialData::NewL(void) - ?NewL@CAiwDialDataExt@@SAPAV1@XZ @ 17 NONAME ; class CAiwDialDataExt * CAiwDialDataExt::NewL(void) - ?NewL@CAiwInternalDialData@@SAPAV1@ABVTDesC8@@@Z @ 18 NONAME ; class CAiwInternalDialData * CAiwInternalDialData::NewL(class TDesC8 const &) - ?NewL@CAiwInternalDialData@@SAPAV1@XZ @ 19 NONAME ; class CAiwInternalDialData * CAiwInternalDialData::NewL(void) - ?NewLC@CAiwDialData@@SAPAV1@XZ @ 20 NONAME ; class CAiwDialData * CAiwDialData::NewLC(void) - ?NewLC@CAiwDialDataExt@@SAPAV1@XZ @ 21 NONAME ; class CAiwDialDataExt * CAiwDialDataExt::NewLC(void) - ?NewLC@CAiwInternalDialData@@SAPAV1@ABVTDesC8@@@Z @ 22 NONAME ; class CAiwInternalDialData * CAiwInternalDialData::NewLC(class TDesC8 const &) - ?NewLC@CAiwInternalDialData@@SAPAV1@XZ @ 23 NONAME ; class CAiwInternalDialData * CAiwInternalDialData::NewLC(void) - ?PhoneNumber@CAiwDialData@@QBEABVTDesC16@@XZ @ 24 NONAME ; class TDesC16 const & CAiwDialData::PhoneNumber(void) const - ?PhoneNumber@CAiwDialDataExt@@QBEABVTDesC16@@XZ @ 25 NONAME ; class TDesC16 const & CAiwDialDataExt::PhoneNumber(void) const - ?PhoneNumber@CAiwInternalDialData@@QBEABVTDesC16@@XZ @ 26 NONAME ; class TDesC16 const & CAiwInternalDialData::PhoneNumber(void) const - ?Redial@CAiwDialDataExt@@QBEHXZ @ 27 NONAME ; int CAiwDialDataExt::Redial(void) const - ?Redial@CAiwInternalDialData@@QBEHXZ @ 28 NONAME ; int CAiwInternalDialData::Redial(void) const - ?RedialMaximumDuration@CAiwInternalDialData@@QBE?BVTTimeIntervalSeconds@@XZ @ 29 NONAME ; class TTimeIntervalSeconds const CAiwInternalDialData::RedialMaximumDuration(void) const - ?SATCall@CAiwInternalDialData@@QBEHXZ @ 30 NONAME ; int CAiwInternalDialData::SATCall(void) const - ?SetAllowMatch@CAiwInternalDialData@@QAEXH@Z @ 31 NONAME ; void CAiwInternalDialData::SetAllowMatch(int) - ?SetBearerL@CAiwInternalDialData@@QAEXABVTDesC8@@@Z @ 32 NONAME ; void CAiwInternalDialData::SetBearerL(class TDesC8 const &) - ?SetCallType@CAiwDialData@@QAEXW4TCallType@1@@Z @ 33 NONAME ; void CAiwDialData::SetCallType(enum CAiwDialData::TCallType) - ?SetCallType@CAiwDialDataExt@@QAEXW4TCallType@CAiwDialData@@@Z @ 34 NONAME ; void CAiwDialDataExt::SetCallType(enum CAiwDialData::TCallType) - ?SetCallType@CAiwInternalDialData@@QAEXW4TCallType@CAiwDialData@@@Z @ 35 NONAME ; void CAiwInternalDialData::SetCallType(enum CAiwDialData::TCallType) - ?SetContactLinkL@CAiwDialDataExt@@QAEXABVTDesC8@@@Z @ 36 NONAME ; void CAiwDialDataExt::SetContactLinkL(class TDesC8 const &) - ?SetContactLinkL@CAiwInternalDialData@@QAEXABVTDesC8@@@Z @ 37 NONAME ; void CAiwInternalDialData::SetContactLinkL(class TDesC8 const &) - ?SetEndOtherCalls@CAiwInternalDialData@@QAEXH@Z @ 38 NONAME ; void CAiwInternalDialData::SetEndOtherCalls(int) - ?SetInitiateCall@CAiwDialDataExt@@QAEXH@Z @ 39 NONAME ; void CAiwDialDataExt::SetInitiateCall(int) - ?SetInitiateCall@CAiwInternalDialData@@QAEXH@Z @ 40 NONAME ; void CAiwInternalDialData::SetInitiateCall(int) - ?SetNameL@CAiwDialDataExt@@QAEXABVTDesC16@@@Z @ 41 NONAME ; void CAiwDialDataExt::SetNameL(class TDesC16 const &) - ?SetNameL@CAiwInternalDialData@@QAEXABVTDesC16@@@Z @ 42 NONAME ; void CAiwInternalDialData::SetNameL(class TDesC16 const &) - ?SetPhoneNumberL@CAiwDialData@@QAEXABVTDesC16@@@Z @ 43 NONAME ; void CAiwDialData::SetPhoneNumberL(class TDesC16 const &) - ?SetPhoneNumberL@CAiwDialDataExt@@QAEXABVTDesC16@@@Z @ 44 NONAME ; void CAiwDialDataExt::SetPhoneNumberL(class TDesC16 const &) - ?SetPhoneNumberL@CAiwInternalDialData@@QAEXABVTDesC16@@@Z @ 45 NONAME ; void CAiwInternalDialData::SetPhoneNumberL(class TDesC16 const &) - ?SetRedial@CAiwDialDataExt@@QAEXH@Z @ 46 NONAME ; void CAiwDialDataExt::SetRedial(int) - ?SetRedial@CAiwInternalDialData@@QAEXH@Z @ 47 NONAME ; void CAiwInternalDialData::SetRedial(int) - ?SetRedialMaximumDuration@CAiwInternalDialData@@QAEXVTTimeIntervalSeconds@@@Z @ 48 NONAME ; void CAiwInternalDialData::SetRedialMaximumDuration(class TTimeIntervalSeconds) - ?SetSATCall@CAiwInternalDialData@@QAEXH@Z @ 49 NONAME ; void CAiwInternalDialData::SetSATCall(int) - ?SetShowNumber@CAiwDialDataExt@@QAEXH@Z @ 50 NONAME ; void CAiwDialDataExt::SetShowNumber(int) - ?SetShowNumber@CAiwInternalDialData@@QAEXH@Z @ 51 NONAME ; void CAiwInternalDialData::SetShowNumber(int) - ?SetSubAddressL@CAiwInternalDialData@@QAEXABVTDesC16@@@Z @ 52 NONAME ; void CAiwInternalDialData::SetSubAddressL(class TDesC16 const &) - ?SetWindowGroup@CAiwDialData@@QAEXH@Z @ 53 NONAME ; void CAiwDialData::SetWindowGroup(int) - ?SetWindowGroup@CAiwDialDataExt@@QAEXH@Z @ 54 NONAME ; void CAiwDialDataExt::SetWindowGroup(int) - ?SetWindowGroup@CAiwInternalDialData@@QAEXH@Z @ 55 NONAME ; void CAiwInternalDialData::SetWindowGroup(int) - ?ShowNumber@CAiwDialDataExt@@QBEHXZ @ 56 NONAME ; int CAiwDialDataExt::ShowNumber(void) const - ?ShowNumber@CAiwInternalDialData@@QBEHXZ @ 57 NONAME ; int CAiwInternalDialData::ShowNumber(void) const - ?SubAddress@CAiwInternalDialData@@QBEABVTDesC16@@XZ @ 58 NONAME ; class TDesC16 const & CAiwInternalDialData::SubAddress(void) const - ?WindowGroup@CAiwDialData@@QBEHXZ @ 59 NONAME ; int CAiwDialData::WindowGroup(void) const - ?WindowGroup@CAiwDialDataExt@@QBEHXZ @ 60 NONAME ; int CAiwDialDataExt::WindowGroup(void) const - ?WindowGroup@CAiwInternalDialData@@QBEHXZ @ 61 NONAME ; int CAiwInternalDialData::WindowGroup(void) const - ?ServiceId@CAiwInternalDialData@@QBEKXZ @ 62 NONAME ; unsigned long CAiwInternalDialData::ServiceId(void) const - ?SetServiceId@CAiwInternalDialData@@QAEXK@Z @ 63 NONAME ; void CAiwInternalDialData::SetServiceId(unsigned long) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/eabi/aiwdialdataU.DEF --- a/phoneclientserver/aiwdialdata/eabi/aiwdialdataU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -EXPORTS - _ZN12CAiwDialData11SetCallTypeENS_9TCallTypeE @ 1 NONAME - _ZN12CAiwDialData14SetWindowGroupEi @ 2 NONAME - _ZN12CAiwDialData15SetPhoneNumberLERK7TDesC16 @ 3 NONAME - _ZN12CAiwDialData16FillInParamListLER20CAiwGenericParamList @ 4 NONAME - _ZN12CAiwDialData4NewLEv @ 5 NONAME - _ZN12CAiwDialData5NewLCEv @ 6 NONAME - _ZN15CAiwDialDataExt11SetCallTypeEN12CAiwDialData9TCallTypeE @ 7 NONAME - _ZN15CAiwDialDataExt14SetWindowGroupEi @ 8 NONAME - _ZN15CAiwDialDataExt15SetPhoneNumberLERK7TDesC16 @ 9 NONAME - _ZN15CAiwDialDataExt16FillInParamListLER20CAiwGenericParamList @ 10 NONAME - _ZN15CAiwDialDataExt4NewLEv @ 11 NONAME - _ZN15CAiwDialDataExt5NewLCEv @ 12 NONAME - _ZN20CAiwInternalDialData10SetBearerLERK6TDesC8 @ 13 NONAME - _ZN20CAiwInternalDialData10SetSATCallEi @ 14 NONAME - _ZN20CAiwInternalDialData11SetCallTypeEN12CAiwDialData9TCallTypeE @ 15 NONAME - _ZN20CAiwInternalDialData13SetAllowMatchEi @ 16 NONAME - _ZN20CAiwInternalDialData13SetShowNumberEi @ 17 NONAME - _ZN20CAiwInternalDialData14SetSubAddressLERK7TDesC16 @ 18 NONAME - _ZN20CAiwInternalDialData14SetWindowGroupEi @ 19 NONAME - _ZN20CAiwInternalDialData15SetContactLinkLERK6TDesC8 @ 20 NONAME - _ZN20CAiwInternalDialData15SetInitiateCallEi @ 21 NONAME - _ZN20CAiwInternalDialData15SetPhoneNumberLERK7TDesC16 @ 22 NONAME - _ZN20CAiwInternalDialData16FillInParamListLER20CAiwGenericParamList @ 23 NONAME - _ZN20CAiwInternalDialData16SetEndOtherCallsEi @ 24 NONAME - _ZN20CAiwInternalDialData24SetRedialMaximumDurationE20TTimeIntervalSeconds @ 25 NONAME - _ZN20CAiwInternalDialData4NewLERK6TDesC8 @ 26 NONAME - _ZN20CAiwInternalDialData4NewLEv @ 27 NONAME - _ZN20CAiwInternalDialData5NewLCERK6TDesC8 @ 28 NONAME - _ZN20CAiwInternalDialData5NewLCEv @ 29 NONAME - _ZN20CAiwInternalDialData8SetNameLERK7TDesC16 @ 30 NONAME - _ZN20CAiwInternalDialData9SetRedialEi @ 31 NONAME - _ZNK12CAiwDialData11PhoneNumberEv @ 32 NONAME - _ZNK12CAiwDialData11WindowGroupEv @ 33 NONAME - _ZNK12CAiwDialData8CallTypeEv @ 34 NONAME - _ZNK15CAiwDialDataExt11PhoneNumberEv @ 35 NONAME - _ZNK15CAiwDialDataExt11WindowGroupEv @ 36 NONAME - _ZNK15CAiwDialDataExt8CallTypeEv @ 37 NONAME - _ZNK20CAiwInternalDialData10AllowMatchEv @ 38 NONAME - _ZNK20CAiwInternalDialData10ShowNumberEv @ 39 NONAME - _ZNK20CAiwInternalDialData10SubAddressEv @ 40 NONAME - _ZNK20CAiwInternalDialData11ContactLinkEv @ 41 NONAME - _ZNK20CAiwInternalDialData11PhoneNumberEv @ 42 NONAME - _ZNK20CAiwInternalDialData11WindowGroupEv @ 43 NONAME - _ZNK20CAiwInternalDialData12InitiateCallEv @ 44 NONAME - _ZNK20CAiwInternalDialData13EndOtherCallsEv @ 45 NONAME - _ZNK20CAiwInternalDialData21RedialMaximumDurationEv @ 46 NONAME - _ZNK20CAiwInternalDialData4NameEv @ 47 NONAME - _ZNK20CAiwInternalDialData6BearerEv @ 48 NONAME - _ZNK20CAiwInternalDialData6RedialEv @ 49 NONAME - _ZNK20CAiwInternalDialData7SATCallEv @ 50 NONAME - _ZNK20CAiwInternalDialData8CallTypeEv @ 51 NONAME - _ZN15CAiwDialDataExt13SetShowNumberEi @ 52 NONAME - _ZN15CAiwDialDataExt15SetContactLinkLERK6TDesC8 @ 53 NONAME - _ZN15CAiwDialDataExt15SetInitiateCallEi @ 54 NONAME - _ZN15CAiwDialDataExt8SetNameLERK7TDesC16 @ 55 NONAME - _ZN15CAiwDialDataExt9SetRedialEi @ 56 NONAME - _ZNK15CAiwDialDataExt10ShowNumberEv @ 57 NONAME - _ZNK15CAiwDialDataExt11ContactLinkEv @ 58 NONAME - _ZNK15CAiwDialDataExt12InitiateCallEv @ 59 NONAME - _ZNK15CAiwDialDataExt4NameEv @ 60 NONAME - _ZNK15CAiwDialDataExt6RedialEv @ 61 NONAME - _ZN20CAiwInternalDialData7SetUUILERK7TDesC16 @ 62 NONAME - _ZNK20CAiwInternalDialData3UUIEv @ 63 NONAME - _ZN20CAiwInternalDialData12SetServiceIdEm @ 64 NONAME - _ZNK20CAiwInternalDialData9ServiceIdEv @ 65 NONAME - _ZN15CAiwDialDataExt12SetServiceIdEm @ 66 NONAME - _ZNK15CAiwDialDataExt9ServiceIdEv @ 67 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/eabi/aiwdialdata_2_2U.DEF --- a/phoneclientserver/aiwdialdata/eabi/aiwdialdata_2_2U.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -EXPORTS - _ZN12CAiwDialData11SetCallTypeENS_9TCallTypeE @ 1 NONAME - _ZN12CAiwDialData14SetWindowGroupEi @ 2 NONAME - _ZN12CAiwDialData15SetPhoneNumberLERK7TDesC16 @ 3 NONAME - _ZN12CAiwDialData16FillInParamListLER20CAiwGenericParamList @ 4 NONAME - _ZN12CAiwDialData4NewLEv @ 5 NONAME - _ZN12CAiwDialData5NewLCEv @ 6 NONAME - _ZN15CAiwDialDataExt11SetCallTypeEN12CAiwDialData9TCallTypeE @ 7 NONAME - _ZN15CAiwDialDataExt14SetWindowGroupEi @ 8 NONAME - _ZN15CAiwDialDataExt15SetPhoneNumberLERK7TDesC16 @ 9 NONAME - _ZN15CAiwDialDataExt16FillInParamListLER20CAiwGenericParamList @ 10 NONAME - _ZN15CAiwDialDataExt4NewLEv @ 11 NONAME - _ZN15CAiwDialDataExt5NewLCEv @ 12 NONAME - _ZN20CAiwInternalDialData10SetBearerLERK6TDesC8 @ 13 NONAME - _ZN20CAiwInternalDialData10SetSATCallEi @ 14 NONAME - _ZN20CAiwInternalDialData11SetCallTypeEN12CAiwDialData9TCallTypeE @ 15 NONAME - _ZN20CAiwInternalDialData13SetAllowMatchEi @ 16 NONAME - _ZN20CAiwInternalDialData13SetShowNumberEi @ 17 NONAME - _ZN20CAiwInternalDialData14SetSubAddressLERK7TDesC16 @ 18 NONAME - _ZN20CAiwInternalDialData14SetWindowGroupEi @ 19 NONAME - _ZN20CAiwInternalDialData15SetContactLinkLERK6TDesC8 @ 20 NONAME - _ZN20CAiwInternalDialData15SetInitiateCallEi @ 21 NONAME - _ZN20CAiwInternalDialData15SetPhoneNumberLERK7TDesC16 @ 22 NONAME - _ZN20CAiwInternalDialData16FillInParamListLER20CAiwGenericParamList @ 23 NONAME - _ZN20CAiwInternalDialData16SetEndOtherCallsEi @ 24 NONAME - _ZN20CAiwInternalDialData24SetRedialMaximumDurationE20TTimeIntervalSeconds @ 25 NONAME - _ZN20CAiwInternalDialData4NewLERK6TDesC8 @ 26 NONAME - _ZN20CAiwInternalDialData4NewLEv @ 27 NONAME - _ZN20CAiwInternalDialData5NewLCERK6TDesC8 @ 28 NONAME - _ZN20CAiwInternalDialData5NewLCEv @ 29 NONAME - _ZN20CAiwInternalDialData8SetNameLERK7TDesC16 @ 30 NONAME - _ZN20CAiwInternalDialData9SetRedialEi @ 31 NONAME - _ZNK12CAiwDialData11PhoneNumberEv @ 32 NONAME - _ZNK12CAiwDialData11WindowGroupEv @ 33 NONAME - _ZNK12CAiwDialData8CallTypeEv @ 34 NONAME - _ZNK15CAiwDialDataExt11PhoneNumberEv @ 35 NONAME - _ZNK15CAiwDialDataExt11WindowGroupEv @ 36 NONAME - _ZNK15CAiwDialDataExt8CallTypeEv @ 37 NONAME - _ZNK20CAiwInternalDialData10AllowMatchEv @ 38 NONAME - _ZNK20CAiwInternalDialData10ShowNumberEv @ 39 NONAME - _ZNK20CAiwInternalDialData10SubAddressEv @ 40 NONAME - _ZNK20CAiwInternalDialData11ContactLinkEv @ 41 NONAME - _ZNK20CAiwInternalDialData11PhoneNumberEv @ 42 NONAME - _ZNK20CAiwInternalDialData11WindowGroupEv @ 43 NONAME - _ZNK20CAiwInternalDialData12InitiateCallEv @ 44 NONAME - _ZNK20CAiwInternalDialData13EndOtherCallsEv @ 45 NONAME - _ZNK20CAiwInternalDialData21RedialMaximumDurationEv @ 46 NONAME - _ZNK20CAiwInternalDialData4NameEv @ 47 NONAME - _ZNK20CAiwInternalDialData6BearerEv @ 48 NONAME - _ZNK20CAiwInternalDialData6RedialEv @ 49 NONAME - _ZNK20CAiwInternalDialData7SATCallEv @ 50 NONAME - _ZNK20CAiwInternalDialData8CallTypeEv @ 51 NONAME - _ZN15CAiwDialDataExt13SetShowNumberEi @ 52 NONAME - _ZN15CAiwDialDataExt15SetContactLinkLERK6TDesC8 @ 53 NONAME - _ZN15CAiwDialDataExt15SetInitiateCallEi @ 54 NONAME - _ZN15CAiwDialDataExt8SetNameLERK7TDesC16 @ 55 NONAME - _ZN15CAiwDialDataExt9SetRedialEi @ 56 NONAME - _ZNK15CAiwDialDataExt10ShowNumberEv @ 57 NONAME - _ZNK15CAiwDialDataExt11ContactLinkEv @ 58 NONAME - _ZNK15CAiwDialDataExt12InitiateCallEv @ 59 NONAME - _ZNK15CAiwDialDataExt4NameEv @ 60 NONAME - _ZNK15CAiwDialDataExt6RedialEv @ 61 NONAME - _ZN20CAiwInternalDialData12SetServiceIdEm @ 62 NONAME - _ZNK20CAiwInternalDialData9ServiceIdEv @ 63 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/group/aiwdialdata_stub.SIS Binary file phoneclientserver/aiwdialdata/group/aiwdialdata_stub.SIS has changed diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/adv/aiwdialtest/Bmarm/aiwdialtestU.DEF --- a/phoneclientserver/aiwdialdata/tsrc/public/adv/aiwdialtest/Bmarm/aiwdialtestU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -EXPORTS - LibEntryL__Fv @ 1 NONAME R3UNUSED ; LibEntryL(void) - SetRequirements__FRP16CTestModuleParamRUl @ 2 NONAME R3UNUSED ; SetRequirements(CTestModuleParam *&, unsigned long &) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/adv/aiwdialtest/Bwins/aiwdialtestU.DEF --- a/phoneclientserver/aiwdialdata/tsrc/public/adv/aiwdialtest/Bwins/aiwdialtestU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -EXPORTS - ?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void) - ?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/adv/aiwdialtest/EABI/aiwdialtestU.def --- a/phoneclientserver/aiwdialdata/tsrc/public/adv/aiwdialtest/EABI/aiwdialtestU.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -EXPORTS - _Z9LibEntryLv @ 1 NONAME - _Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/adv/aiwdialtest/group/aiwdialtest_DoxyFile.txt --- a/phoneclientserver/aiwdialdata/tsrc/public/adv/aiwdialtest/group/aiwdialtest_DoxyFile.txt Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,222 +0,0 @@ -# Doxyfile 1.4.1 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = aiwdialtest -PROJECT_NUMBER = -OUTPUT_DIRECTORY = \aiwdialtest\ -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = YES -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = NO -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = NO -INHERIT_DOCS = YES -DISTRIBUTE_GROUP_DOC = NO -TAB_SIZE = 8 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = YES -OPTIMIZE_OUTPUT_JAVA = NO -SUBGROUPING = YES -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = NO -EXTRACT_STATIC = NO -EXTRACT_LOCAL_CLASSES = NO -EXTRACT_LOCAL_METHODS = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = YES -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = NO -SORT_BY_SCOPE_NAME = NO -GENERATE_TODOLIST = NO -GENERATE_TESTLIST = NO -GENERATE_BUGLIST = NO -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = YES -SHOW_DIRECTORIES = YES -FILE_VERSION_FILTER = -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = \aiwdialtest\ -FILE_PATTERNS = *.h \ - *.rh \ - *.hrh -RECURSIVE = YES -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = NO -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES -VERBATIM_HEADERS = YES -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = NO -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = NO -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = YES -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = YES -TOC_EXPAND = YES -DISABLE_INDEX = YES -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = YES -TREEVIEW_WIDTH = 250 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = NO -USE_PDFLATEX = NO -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = YES -RTF_OUTPUT = Doc -COMPACT_RTF = YES -RTF_HYPERLINKS = YES -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = YES -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = NONSHARABLE_CLASS -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = NO -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -GROUP_GRAPHS = YES -UML_LOOK = NO -TEMPLATE_RELATIONS = YES -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -CALL_GRAPH = NO -GRAPHICAL_HIERARCHY = YES -DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = -MAX_DOT_GRAPH_WIDTH = 1024 -MAX_DOT_GRAPH_HEIGHT = 1024 -MAX_DOT_GRAPH_DEPTH = 0 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = YES -DOT_CLEANUP = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/adv/aiwdialtest/src/aiwdialtestCases.cpp --- a/phoneclientserver/aiwdialdata/tsrc/public/adv/aiwdialtest/src/aiwdialtestCases.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,157 +0,0 @@ -/* -* Copyright (c) 2002 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: Implementation of Caiwdialtest class. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include -#include - -#include "aiwdialtest.h" - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// Caiwdialtest::Case -// Returns a test case by number. -// -// This function contains an array of all available test cases -// i.e pair of case name and test function. If case specified by parameter -// aCaseNumber is found from array, then that item is returned. -// -// The reason for this rather complicated function is to specify all the -// test cases only in one place. It is not necessary to understand how -// function pointers to class member functions works when adding new test -// cases. See function body for instructions how to add new test case. -// ----------------------------------------------------------------------------- -// -const TCaseInfo Caiwdialtest::Case ( - const TInt aCaseNumber ) const - { - - /** - * To add new test cases, implement new test case function and add new - * line to KCases array specify the name of the case and the function - * doing the test case - * In practice, do following - * 1) Make copy of existing test case function and change its name - * and functionality. Note that the function must be added to - * aiwdialtest.cpp file and to aiwdialtest.h - * header file. - * - * 2) Add entry to following KCases array either by using: - * - * 2.1: FUNCENTRY or ENTRY macro - * ENTRY macro takes two parameters: test case name and test case - * function name. - * - * FUNCENTRY macro takes only test case function name as a parameter and - * uses that as a test case name and test case function name. - * - * Or - * - * 2.2: OOM_FUNCENTRY or OOM_ENTRY macro. Note that these macros are used - * only with OOM (Out-Of-Memory) testing! - * - * OOM_ENTRY macro takes five parameters: test case name, test case - * function name, TBool which specifies is method supposed to be run using - * OOM conditions, TInt value for first heap memory allocation failure and - * TInt value for last heap memory allocation failure. - * - * OOM_FUNCENTRY macro takes test case function name as a parameter and uses - * that as a test case name, TBool which specifies is method supposed to be - * run using OOM conditions, TInt value for first heap memory allocation - * failure and TInt value for last heap memory allocation failure. - */ - - static TCaseInfoInternal const KCases[] = - { - // To add new test cases, add new items to this array - - // NOTE: When compiled to GCCE, there must be Classname:: - // declaration in front of the method name, e.g. - // Caiwdialtest::PrintTest. Otherwise the compiler - // gives errors. - - FUNCENTRY( Caiwdialtest::DialTestL ), - // Example how to use OOM functionality - //OOM_ENTRY( "Loop test with OOM", Caiwdialtest::LoopTest, ETrue, 2, 3), - //OOM_FUNCENTRY( Caiwdialtest::PrintTest, ETrue, 1, 3 ), - }; - - // Verify that case number is valid - if( (TUint) aCaseNumber >= sizeof( KCases ) / - sizeof( TCaseInfoInternal ) ) - { - // Invalid case, construct empty object - TCaseInfo null( (const TText*) L"" ); - null.iMethod = NULL; - null.iIsOOMTest = EFalse; - null.iFirstMemoryAllocation = 0; - null.iLastMemoryAllocation = 0; - return null; - } - - // Construct TCaseInfo object and return it - TCaseInfo tmp ( KCases[ aCaseNumber ].iCaseName ); - tmp.iMethod = KCases[ aCaseNumber ].iMethod; - tmp.iIsOOMTest = KCases[ aCaseNumber ].iIsOOMTest; - tmp.iFirstMemoryAllocation = KCases[ aCaseNumber ].iFirstMemoryAllocation; - tmp.iLastMemoryAllocation = KCases[ aCaseNumber ].iLastMemoryAllocation; - return tmp; - - } - -// ----------------------------------------------------------------------------- -// Test dialing a call. -// ----------------------------------------------------------------------------- -// -TInt Caiwdialtest::DialTestL( TTestResult& /*aResult*/ ) - { - CAiwDialData* dialData = CAiwDialData::NewLC(); - dialData->SetPhoneNumberL( *iPhoneNumber ); - - CAiwGenericParamList* list = CAiwGenericParamList::NewLC(); - dialData->FillInParamListL( *list ); - - CActiveScheduler* scheduler = new( ELeave )CActiveScheduler(); - CleanupStack::PushL( scheduler ); - CActiveScheduler::Install( scheduler ); - - - RCriteriaArray criterias; - _LIT8( KContentType, "*" ); - CAiwCriteriaItem* criteria = CAiwCriteriaItem::NewLC( KAiwCmdCall, KAiwCmdCall, KContentType ); - TUid uid; - uid.iUid = KAiwClassBase; - criteria->SetServiceClass( uid ); - criterias.AppendL( criteria ); - CleanupClose::PushL( criterias ); - - CAiwServiceHandler* service = CAiwServiceHandler::NewLC(); - service->AttachL( criterias ); - service->ExecuteServiceCmdL( KAiwCmdCall, *list, service->OutParamListL() ); - - CleanupStack::PopAndDestroy( 6, dialData ); - return KErrNone; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/adv/group/README.txt --- a/phoneclientserver/aiwdialdata/tsrc/public/adv/group/README.txt Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -aiwdialtest folder contains test for making a call using AIW Dial API. -init\aiwdialtest.ini can be used to configure the phonenumber where the aiwdialtest makes the call. \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/Bmarm/AiwDialDataTestsU.DEF --- a/phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/Bmarm/AiwDialDataTestsU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -EXPORTS - LibEntryL__Fv @ 1 NONAME R3UNUSED ; LibEntryL(void) - SetRequirements__FRP16CTestModuleParamRUl @ 2 NONAME R3UNUSED ; SetRequirements(CTestModuleParam *&, unsigned long &) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/Bwins/AiwDialDataTestsU.DEF --- a/phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/Bwins/AiwDialDataTestsU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -EXPORTS - ?LibEntryL@@YAPAVCTestModuleBase@@XZ @ 1 NONAME ; class CTestModuleBase * __cdecl LibEntryL(void) - ?SetRequirements@@YAHAAPAVCTestModuleParam@@AAK@Z @ 2 NONAME ; int __cdecl SetRequirements(class CTestModuleParam * &,unsigned long &) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/EABI/AiwDialDataTestsU.def --- a/phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/EABI/AiwDialDataTestsU.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -EXPORTS - _Z9LibEntryLv @ 1 NONAME - _Z15SetRequirementsRP16CTestModuleParamRm @ 2 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/group/AiwDialDataTests.mmp --- a/phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/group/AiwDialDataTests.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2002 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: MMP file for AiwDialDataTests component. -* -*/ - - -#if defined(__S60_) - // To get the OS_LAYER_SYSTEMINCLUDE-definition - #include -#endif - -TARGET AiwDialDataTests.dll -TARGETTYPE dll -UID 0x1000008D 0x101FB3E7 - -CAPABILITY ALL -TCB - - -DEFFILE AiwDialDataTests.def - -SOURCEPATH ../src -SOURCE AiwDialDataTests.cpp -SOURCE AiwDialDataTestsCases.cpp - -USERINCLUDE ../inc - -OS_LAYER_SYSTEMINCLUDE -APP_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib -LIBRARY stiftestinterface.lib -LIBRARY ServiceHandler.lib -LIBRARY aiwdialdata.lib - -LANG SC - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/group/AiwDialDataTests_DoxyFile.txt --- a/phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/group/AiwDialDataTests_DoxyFile.txt Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,222 +0,0 @@ -# Doxyfile 1.4.1 - -#--------------------------------------------------------------------------- -# Project related configuration options -#--------------------------------------------------------------------------- -PROJECT_NAME = AiwDialDataTests -PROJECT_NUMBER = -OUTPUT_DIRECTORY = \AiwDialDataTests\ -CREATE_SUBDIRS = NO -OUTPUT_LANGUAGE = English -USE_WINDOWS_ENCODING = YES -BRIEF_MEMBER_DESC = YES -REPEAT_BRIEF = YES -ABBREVIATE_BRIEF = -ALWAYS_DETAILED_SEC = NO -INLINE_INHERITED_MEMB = NO -FULL_PATH_NAMES = NO -STRIP_FROM_PATH = -STRIP_FROM_INC_PATH = -SHORT_NAMES = NO -JAVADOC_AUTOBRIEF = NO -MULTILINE_CPP_IS_BRIEF = NO -DETAILS_AT_TOP = NO -INHERIT_DOCS = YES -DISTRIBUTE_GROUP_DOC = NO -TAB_SIZE = 8 -ALIASES = -OPTIMIZE_OUTPUT_FOR_C = YES -OPTIMIZE_OUTPUT_JAVA = NO -SUBGROUPING = YES -#--------------------------------------------------------------------------- -# Build related configuration options -#--------------------------------------------------------------------------- -EXTRACT_ALL = YES -EXTRACT_PRIVATE = NO -EXTRACT_STATIC = NO -EXTRACT_LOCAL_CLASSES = NO -EXTRACT_LOCAL_METHODS = NO -HIDE_UNDOC_MEMBERS = NO -HIDE_UNDOC_CLASSES = NO -HIDE_FRIEND_COMPOUNDS = NO -HIDE_IN_BODY_DOCS = NO -INTERNAL_DOCS = YES -CASE_SENSE_NAMES = YES -HIDE_SCOPE_NAMES = NO -SHOW_INCLUDE_FILES = YES -INLINE_INFO = YES -SORT_MEMBER_DOCS = YES -SORT_BRIEF_DOCS = NO -SORT_BY_SCOPE_NAME = NO -GENERATE_TODOLIST = NO -GENERATE_TESTLIST = NO -GENERATE_BUGLIST = NO -GENERATE_DEPRECATEDLIST= YES -ENABLED_SECTIONS = -MAX_INITIALIZER_LINES = 30 -SHOW_USED_FILES = YES -SHOW_DIRECTORIES = YES -FILE_VERSION_FILTER = -#--------------------------------------------------------------------------- -# configuration options related to warning and progress messages -#--------------------------------------------------------------------------- -QUIET = NO -WARNINGS = YES -WARN_IF_UNDOCUMENTED = YES -WARN_IF_DOC_ERROR = YES -WARN_NO_PARAMDOC = NO -WARN_FORMAT = "$file:$line: $text" -WARN_LOGFILE = -#--------------------------------------------------------------------------- -# configuration options related to the input files -#--------------------------------------------------------------------------- -INPUT = \AiwDialDataTests\ -FILE_PATTERNS = *.h \ - *.rh \ - *.hrh -RECURSIVE = YES -EXCLUDE = -EXCLUDE_SYMLINKS = NO -EXCLUDE_PATTERNS = -EXAMPLE_PATH = -EXAMPLE_PATTERNS = -EXAMPLE_RECURSIVE = NO -IMAGE_PATH = -INPUT_FILTER = -FILTER_PATTERNS = -FILTER_SOURCE_FILES = NO -#--------------------------------------------------------------------------- -# configuration options related to source browsing -#--------------------------------------------------------------------------- -SOURCE_BROWSER = NO -INLINE_SOURCES = NO -STRIP_CODE_COMMENTS = YES -REFERENCED_BY_RELATION = YES -REFERENCES_RELATION = YES -VERBATIM_HEADERS = YES -#--------------------------------------------------------------------------- -# configuration options related to the alphabetical class index -#--------------------------------------------------------------------------- -ALPHABETICAL_INDEX = NO -COLS_IN_ALPHA_INDEX = 5 -IGNORE_PREFIX = -#--------------------------------------------------------------------------- -# configuration options related to the HTML output -#--------------------------------------------------------------------------- -GENERATE_HTML = NO -HTML_OUTPUT = html -HTML_FILE_EXTENSION = .html -HTML_HEADER = -HTML_FOOTER = -HTML_STYLESHEET = -HTML_ALIGN_MEMBERS = YES -GENERATE_HTMLHELP = YES -CHM_FILE = -HHC_LOCATION = -GENERATE_CHI = NO -BINARY_TOC = YES -TOC_EXPAND = YES -DISABLE_INDEX = YES -ENUM_VALUES_PER_LINE = 4 -GENERATE_TREEVIEW = YES -TREEVIEW_WIDTH = 250 -#--------------------------------------------------------------------------- -# configuration options related to the LaTeX output -#--------------------------------------------------------------------------- -GENERATE_LATEX = NO -LATEX_OUTPUT = latex -LATEX_CMD_NAME = latex -MAKEINDEX_CMD_NAME = makeindex -COMPACT_LATEX = NO -PAPER_TYPE = a4wide -EXTRA_PACKAGES = -LATEX_HEADER = -PDF_HYPERLINKS = NO -USE_PDFLATEX = NO -LATEX_BATCHMODE = NO -LATEX_HIDE_INDICES = NO -#--------------------------------------------------------------------------- -# configuration options related to the RTF output -#--------------------------------------------------------------------------- -GENERATE_RTF = YES -RTF_OUTPUT = Doc -COMPACT_RTF = YES -RTF_HYPERLINKS = YES -RTF_STYLESHEET_FILE = -RTF_EXTENSIONS_FILE = -#--------------------------------------------------------------------------- -# configuration options related to the man page output -#--------------------------------------------------------------------------- -GENERATE_MAN = NO -MAN_OUTPUT = man -MAN_EXTENSION = .3 -MAN_LINKS = NO -#--------------------------------------------------------------------------- -# configuration options related to the XML output -#--------------------------------------------------------------------------- -GENERATE_XML = NO -XML_OUTPUT = xml -XML_SCHEMA = -XML_DTD = -XML_PROGRAMLISTING = YES -#--------------------------------------------------------------------------- -# configuration options for the AutoGen Definitions output -#--------------------------------------------------------------------------- -GENERATE_AUTOGEN_DEF = NO -#--------------------------------------------------------------------------- -# configuration options related to the Perl module output -#--------------------------------------------------------------------------- -GENERATE_PERLMOD = NO -PERLMOD_LATEX = NO -PERLMOD_PRETTY = YES -PERLMOD_MAKEVAR_PREFIX = -#--------------------------------------------------------------------------- -# Configuration options related to the preprocessor -#--------------------------------------------------------------------------- -ENABLE_PREPROCESSING = YES -MACRO_EXPANSION = YES -EXPAND_ONLY_PREDEF = NO -SEARCH_INCLUDES = YES -INCLUDE_PATH = -INCLUDE_FILE_PATTERNS = -PREDEFINED = NONSHARABLE_CLASS -EXPAND_AS_DEFINED = -SKIP_FUNCTION_MACROS = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to external references -#--------------------------------------------------------------------------- -TAGFILES = -GENERATE_TAGFILE = -ALLEXTERNALS = NO -EXTERNAL_GROUPS = YES -PERL_PATH = /usr/bin/perl -#--------------------------------------------------------------------------- -# Configuration options related to the dot tool -#--------------------------------------------------------------------------- -CLASS_DIAGRAMS = YES -HIDE_UNDOC_RELATIONS = YES -HAVE_DOT = NO -CLASS_GRAPH = YES -COLLABORATION_GRAPH = YES -GROUP_GRAPHS = YES -UML_LOOK = NO -TEMPLATE_RELATIONS = YES -INCLUDE_GRAPH = YES -INCLUDED_BY_GRAPH = YES -CALL_GRAPH = NO -GRAPHICAL_HIERARCHY = YES -DIRECTORY_GRAPH = YES -DOT_IMAGE_FORMAT = png -DOT_PATH = -DOTFILE_DIRS = -MAX_DOT_GRAPH_WIDTH = 1024 -MAX_DOT_GRAPH_HEIGHT = 1024 -MAX_DOT_GRAPH_DEPTH = 0 -DOT_TRANSPARENT = NO -DOT_MULTI_TARGETS = NO -GENERATE_LEGEND = YES -DOT_CLEANUP = YES -#--------------------------------------------------------------------------- -# Configuration::additions related to the search engine -#--------------------------------------------------------------------------- -SEARCHENGINE = NO diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/group/aiwdialdatatests.pkg --- a/phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/group/aiwdialdatatests.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +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: -; -;File: SendUIAPITest.pkg; -; -;Auto-generated PKG file by Nokia PKG Wizard for CodeWarrior IDE - -;*Languages -&EN -; -;*Standard SIS file header. This section specifies the package name, -;application UID, and version/build numbers. Add the package TYPE here if needed. -#{"aiwdialdatatests"},(0x101FB3E7),1,0,1; -; - -;*Unique (Non-Localized) Vendor name -;This is used in combination with signing to prevent the unauthroized -;upgrade of a a package by someone other than the rightful vendor. -:"Nokia" - -;*Localized Vendor Name -;This specifies the localized vendor name(s) corresponding to language(s). -%{"Nokia Test EN"} - -;*Files To Copy... -"\epoc32\release\armv5\urel\AiwDialDataTests.dll"-"C:\sys\bin\AiwDialDataTests.dll" diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/group/bld.inf --- a/phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* -* Copyright (c) 2002 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: Build file for AiwDialDataTests component. -* -*/ - - - -PRJ_PLATFORMS -// specify the platforms your component needs to be built for here -// defaults to WINS MARM so you can ignore this if you just build these -DEFAULT - -PRJ_TESTEXPORTS -// NOTE: If using ARS requirements all export operations should be done under this. -// 'abld test export' - -PRJ_EXPORTS -// Specify the source file followed by its destination here -// copy will be used to copy the source file to its destination -// If there's no destination then the source file will be copied -// to the same name in /epoc32/include -// Example: -/* -/agnmodel/inc/AGMCOMON.H -*/ - -PRJ_TESTMMPFILES -// NOTE: If using ARS requirements .mmp file operation should be done under this. -// 'abld test build' -AiwDialDataTests.mmp - -PRJ_MMPFILES -// Specify the .mmp files required for building the important component -// releasables. -// -// Specify "tidy" if the component you need to build doesn't need to be -// released. Specify "ignore" if the MMP file exists but should be -// ignored. -// Example: -/* -/agnmodel/group/agnmodel.mmp -#if defined(MARM) -/agnmodel/group/agsvexe.mmp -#endif -*/ - - -// End of File \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/inc/AiwDialDataTests.h --- a/phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/inc/AiwDialDataTests.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,273 +0,0 @@ -/* -* Copyright (c) 2002 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: AiwDialDataTests test module. -* -*/ - - - -#ifndef AIWDIALDATATESTS_H -#define AIWDIALDATATESTS_H - -// INCLUDES -#include "StifTestModule.h" -#include - - -// Logging path -_LIT( KAiwDialDataTestsLogPath, "\\logs\\testframework\\AiwDialDataTests\\" ); -// Log file -_LIT( KAiwDialDataTestsLogFile, "AiwDialDataTests.txt" ); - - -#define GETPTR & -#define ENTRY(str,func) {_S(str), GETPTR func,0,0,0} -#define FUNCENTRY(func) {_S(#func), GETPTR func,0,0,0} -#define OOM_ENTRY(str,func,a,b,c) {_S(str), GETPTR func,a,b,c} -#define OOM_FUNCENTRY(func,a,b,c) {_S(#func), GETPTR func,a,b,c} - -// FORWARD DECLARATIONS -class CAiwDialDataTests; - -// DATA TYPES - -typedef TInt (CAiwDialDataTests::* TestFunction)(TTestResult&); - -// CLASS DECLARATION - -/** -* An internal structure containing a test case name and -* the pointer to function doing the test -* -* @lib ?library -* @since ?Series60_version -*/ -class TCaseInfoInternal - { - public: - const TText* iCaseName; - TestFunction iMethod; - TBool iIsOOMTest; - TInt iFirstMemoryAllocation; - TInt iLastMemoryAllocation; - }; - -// CLASS DECLARATION - -/** -* A structure containing a test case name and -* the pointer to function doing the test -* -* @lib ?library -* @since ?Series60_version -*/ -class TCaseInfo - { - public: - TPtrC iCaseName; - TestFunction iMethod; - TBool iIsOOMTest; - TInt iFirstMemoryAllocation; - TInt iLastMemoryAllocation; - - TCaseInfo( const TText* a ) : iCaseName( (TText*) a ) - { - }; - - }; - - -// CLASS DECLARATION - -/** -* This a AiwDialDataTests class. -* ?other_description_lines -* -* @lib ?library -* @since ?Series60_version -*/ -NONSHARABLE_CLASS(CAiwDialDataTests) : public CTestModuleBase - { - public: // Constructors and destructor - - - /** - * Two-phased constructor. - */ - static CAiwDialDataTests* NewL(); - - /** - * Destructor. - */ - virtual ~CAiwDialDataTests(); - - public: // New functions - - /** - * ?member_description. - * @since ?Series60_version - * @param ?arg1 ?description - * @return ?description - */ - //?type ?member_function( ?type ?arg1 ); - - public: // Functions from base classes - - /** - * From CTestModuleBase InitL is used to initialize the - * AiwDialDataTests. It is called once for every instance of - * TestModuleAiwDialDataTests after its creation. - * @since ?Series60_version - * @param aIniFile Initialization file for the test module (optional) - * @param aFirstTime Flag is true when InitL is executed for first - * created instance of AiwDialDataTests. - * @return Symbian OS error code - */ - TInt InitL( TFileName& aIniFile, TBool aFirstTime ); - - /** - * From CTestModuleBase GetTestCasesL is used to inquiry test cases - * from AiwDialDataTests. - * @since ?Series60_version - * @param aTestCaseFile Test case file (optional) - * @param aTestCases Array of TestCases returned to test framework - * @return Symbian OS error code - */ - TInt GetTestCasesL( const TFileName& aTestCaseFile, - RPointerArray& aTestCases ); - - /** - * From CTestModuleBase RunTestCaseL is used to run an individual - * test case. - * @since ?Series60_version - * @param aCaseNumber Test case number - * @param aTestCaseFile Test case file (optional) - * @param aResult Test case result returned to test framework (PASS/FAIL) - * @return Symbian OS error code (test case execution error, which is - * not reported in aResult parameter as test case failure). - */ - TInt RunTestCaseL( const TInt aCaseNumber, - const TFileName& aTestCaseFile, - TTestResult& aResult ); - - /** - * From CTestModuleBase; OOMTestQueryL is used to specify is particular - * test case going to be executed using OOM conditions - * @param aTestCaseFile Test case file (optional) - * @param aCaseNumber Test case number (optional) - * @param aFailureType OOM failure type (optional) - * @param aFirstMemFailure The first heap memory allocation failure value (optional) - * @param aLastMemFailure The last heap memory allocation failure value (optional) - * @return TBool - */ - virtual TBool OOMTestQueryL( const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */, - TOOMFailureType& aFailureType, - TInt& /* aFirstMemFailure */, - TInt& /* aLastMemFailure */ ); - - /** - * From CTestModuleBase; OOMTestInitializeL may be used to initialize OOM - * test environment - * @param aTestCaseFile Test case file (optional) - * @param aCaseNumber Test case number (optional) - * @return None - */ - virtual void OOMTestInitializeL( const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */ ); - - /** - * From CTestModuleBase; OOMHandleWarningL - * @param aTestCaseFile Test case file (optional) - * @param aCaseNumber Test case number (optional) - * @param aFailNextValue FailNextValue for OOM test execution (optional) - * @return None - * - * User may add implementation for OOM test warning handling. Usually no - * implementation is required. - */ - virtual void OOMHandleWarningL( const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */, - TInt& /* aFailNextValue */); - - /** - * From CTestModuleBase; OOMTestFinalizeL may be used to finalize OOM - * test environment - * @param aTestCaseFile Test case file (optional) - * @param aCaseNumber Test case number (optional) - * @return None - * - */ - virtual void OOMTestFinalizeL( const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */ ); - - - private: - - /** - * C++ default constructor. - */ - CAiwDialDataTests(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Function returning test case name and pointer to test case function. - * @since ?Series60_version - * @param aCaseNumber test case number - * @return TCaseInfo - */ - const TCaseInfo Case ( const TInt aCaseNumber ) const; - - /** - * Actual Hardcoded test case functions are listed below. - */ - - /** - * Tests CAiwDialData construction. - **/ - TInt ConstructionTestL( TTestResult& aResult ); - - /** - * Tests CAiwDialData setting and getting values. - */ - TInt SetAndGetTestL( TTestResult& aResult ); - - /** - * Tests CAiwDialDataExt construction. - */ - TInt ExtConstructionTestL( TTestResult& aResult ); - - /** - * Tests CAiwDialDataExt setting and getting values. - */ - TInt ExtSetAndGetTestL( TTestResult& aResult ); - - - private: // Data - // Pointer to test (function) to be executed - TestFunction iMethod; - - // Pointer to logger - CStifLogger * iLog; - - - }; - -#endif // AIWDIALDATATESTS_H - -// End of File \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/src/AiwDialDataTests.cpp --- a/phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/src/AiwDialDataTests.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,314 +0,0 @@ -/* -* Copyright (c) 2002 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: AiwDialDataTests class member functions -* -*/ - - - -// INCLUDE FILES -#include -#include "AiwDialDataTests.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CAiwDialDataTests::CAiwDialDataTests -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CAiwDialDataTests::CAiwDialDataTests() - { - - } - -// ----------------------------------------------------------------------------- -// CAiwDialDataTests::ConstructL -// Symbian 2nd phase constructor can leave. -// -// Note: If OOM test case uses STIF Logger, then STIF Logger must be created -// with static buffer size parameter (aStaticBufferSize). Otherwise Logger -// allocates memory from heap and therefore causes error situations with OOM -// testing. For more information about STIF Logger construction, see STIF Users -// Guide. -// ----------------------------------------------------------------------------- -// -void CAiwDialDataTests::ConstructL() - { - iLog = CStifLogger::NewL( KAiwDialDataTestsLogPath, - KAiwDialDataTestsLogFile); - - // Sample how to use logging - _LIT( KLogStart, "AiwDialDataTests logging starts!" ); - iLog->Log( KLogStart ); - - } - -// ----------------------------------------------------------------------------- -// CAiwDialDataTests::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CAiwDialDataTests* CAiwDialDataTests::NewL() - { - CAiwDialDataTests* self = new (ELeave) CAiwDialDataTests; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - - } - -// Destructor -CAiwDialDataTests::~CAiwDialDataTests() - { - delete iLog; - } - -// ----------------------------------------------------------------------------- -// CAiwDialDataTests::InitL -// InitL is used to initialize the Test Module. -// ----------------------------------------------------------------------------- -// -TInt CAiwDialDataTests::InitL( - TFileName& /*aIniFile*/, - TBool /*aFirstTime*/ ) - { - return KErrNone; - - } - -// ----------------------------------------------------------------------------- -// CAiwDialDataTests::GetTestCasesL -// GetTestCases is used to inquire test cases from the Test Module. Test -// cases are stored to array of test cases. The Test Framework will be -// the owner of the data in the RPointerArray after GetTestCases return -// and it does the memory deallocation. -// ----------------------------------------------------------------------------- -// -TInt CAiwDialDataTests::GetTestCasesL( - const TFileName& /*aConfig*/, - RPointerArray& aTestCases ) - { - - // Loop through all test cases and create new - // TTestCaseInfo items and append items to aTestCase array - for( TInt i = 0; Case(i).iMethod != NULL; i++ ) - { - - // Allocate new TTestCaseInfo from heap for a testcase definition. - TTestCaseInfo* newCase = new( ELeave ) TTestCaseInfo(); - - // PushL TTestCaseInfo to CleanupStack. - CleanupStack::PushL( newCase ); - - // Set number for the testcase. - // When the testcase is run, this comes as a parameter to RunTestCaseL. - newCase->iCaseNumber = i; - - // Set title for the test case. This is shown in UI to user. - newCase->iTitle.Copy( Case(i).iCaseName ); - - // Append TTestCaseInfo to the testcase array. After appended - // successfully the TTestCaseInfo object is owned (and freed) - // by the TestServer. - User::LeaveIfError(aTestCases.Append ( newCase ) ); - - // Pop TTestCaseInfo from the CleanupStack. - CleanupStack::Pop( newCase ); - - } - - return KErrNone; - - } - -// ----------------------------------------------------------------------------- -// CAiwDialDataTests::RunTestCaseL -// RunTestCaseL is used to run an individual test case specified -// by aTestCase. Test cases that can be run may be requested from -// Test Module by GetTestCases method before calling RunTestCase. -// ----------------------------------------------------------------------------- -// -TInt CAiwDialDataTests::RunTestCaseL( - const TInt aCaseNumber, - const TFileName& /*aConfig*/, - TTestResult& aResult ) - { - - // Return value - TInt execStatus = KErrNone; - - // Get the pointer to test case function - TCaseInfo tmp = Case ( aCaseNumber ); - - _LIT( KLogStartTC, "Starting testcase [%S]" ); - iLog->Log( KLogStartTC, &tmp.iCaseName); - - // Check that case number was valid - if ( tmp.iMethod != NULL ) - { - // Valid case was found, call it via function pointer - iMethod = tmp.iMethod; - execStatus = ( this->*iMethod )( aResult ); - } - else - { - // Valid case was not found, return error. - execStatus = KErrNotFound; - } - - // Return case execution status (not the result of the case execution) - return execStatus; - - } - -// ----------------------------------------------------------------------------- -// CAiwDialDataTests::OOMTestQueryL -// Used to check if a particular test case should be run in OOM conditions and -// which memory allocations should fail. -// ----------------------------------------------------------------------------- -// -TBool CAiwDialDataTests::OOMTestQueryL( - const TFileName& /* aTestCaseFile */, - const TInt aCaseNumber, - TOOMFailureType& /* aFailureType */, - TInt& aFirstMemFailure, - TInt& aLastMemFailure ) - { - _LIT( KLogOOMTestQueryL, "CAiwDialDataTests::OOMTestQueryL" ); - iLog->Log( KLogOOMTestQueryL ); - - aFirstMemFailure = Case( aCaseNumber ).iFirstMemoryAllocation; - aLastMemFailure = Case( aCaseNumber ).iLastMemoryAllocation; - - return Case( aCaseNumber ).iIsOOMTest; - - } - -// ----------------------------------------------------------------------------- -// CAiwDialDataTests::OOMTestInitializeL -// Used to perform the test environment setup for a particular OOM test case. -// Test Modules may use the initialization file to read parameters for Test -// Module initialization but they can also have their own configure file or -// some other routine to initialize themselves. -// -// NOTE: User may add implementation for OOM test environment initialization. -// Usually no implementation is required. -// ----------------------------------------------------------------------------- -// -void CAiwDialDataTests::OOMTestInitializeL( - const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */ ) - { - } - -// ----------------------------------------------------------------------------- -// CAiwDialDataTests::OOMHandleWarningL -// In some cases the heap memory allocation should be skipped, either due to -// problems in the OS code or components used by the code being tested, or even -// inside the tested components which are implemented this way on purpose (by -// design), so it is important to give the tester a way to bypass allocation -// failures. -// -// NOTE: User may add implementation for OOM test warning handling. Usually no -// implementation is required. -// ----------------------------------------------------------------------------- -// -void CAiwDialDataTests::OOMHandleWarningL( - const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */, - TInt& /* aFailNextValue */ ) - { - } - -// ----------------------------------------------------------------------------- -// CAiwDialDataTests::OOMTestFinalizeL -// Used to perform the test environment cleanup for a particular OOM test case. -// -// NOTE: User may add implementation for OOM test environment finalization. -// Usually no implementation is required. -// ----------------------------------------------------------------------------- -// -void CAiwDialDataTests::OOMTestFinalizeL( - const TFileName& /* aTestCaseFile */, - const TInt /* aCaseNumber */ ) - { - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// LibEntryL is a polymorphic Dll entry point -// Returns: CTestModuleBase*: Pointer to Test Module object -// ----------------------------------------------------------------------------- -// -EXPORT_C CTestModuleBase* LibEntryL() - { - return CAiwDialDataTests::NewL(); - - } - -// ----------------------------------------------------------------------------- -// SetRequirements handles test module parameters(implements evolution -// version 1 for test module's heap and stack sizes configuring). -// Returns: TInt: Symbian error code. -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt SetRequirements( CTestModuleParam*& /*aTestModuleParam*/, - TUint32& /*aParameterValid*/ ) - { - - /* --------------------------------- NOTE --------------------------------- - USER PANICS occurs in test thread creation when: - 1) "The panic occurs when the value of the stack size is negative." - 2) "The panic occurs if the minimum heap size specified is less - than KMinHeapSize". - KMinHeapSize: "Functions that require a new heap to be allocated will - either panic, or will reset the required heap size to this value if - a smaller heap size is specified". - 3) "The panic occurs if the minimum heap size specified is greater than - the maximum size to which the heap can grow". - Other: - 1) Make sure that your hardware or Symbian OS is supporting given sizes. - e.g. Hardware might support only sizes that are divisible by four. - ------------------------------- NOTE end ------------------------------- */ - - // Normally STIF uses default heap and stack sizes for test thread, see: - // KTestThreadMinHeap, KTestThreadMinHeap and KStackSize. - // If needed heap and stack sizes can be configured here by user. Remove - // comments and define sizes. - -/* - aParameterValid = KStifTestModuleParameterChanged; - - CTestModuleParamVer01* param = CTestModuleParamVer01::NewL(); - // Stack size - param->iTestThreadStackSize= 16384; // 16K stack - // Heap sizes - param->iTestThreadMinHeap = 4096; // 4K heap min - param->iTestThreadMaxHeap = 1048576;// 1M heap max - - aTestModuleParam = param; -*/ - return KErrNone; - - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/src/AiwDialDataTestsCases.cpp --- a/phoneclientserver/aiwdialdata/tsrc/public/basic/AiwDialDataTests/src/AiwDialDataTestsCases.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,244 +0,0 @@ -/* -* Copyright (c) 2002 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: Tests for domain AIWDialData API. -* -*/ - - - -// INCLUDE FILES -#include "AiwDialDataTests.h" - -#include -#include -#include -#include -// ============================= LOCAL FUNCTIONS =============================== - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CAiwDialDataTests::Case -// Returns a test case by number. -// -// This function contains an array of all available test cases -// i.e pair of case name and test function. If case specified by parameter -// aCaseNumber is found from array, then that item is returned. -// -// The reason for this rather complicated function is to specify all the -// test cases only in one place. It is not necessary to understand how -// function pointers to class member functions works when adding new test -// cases. See function body for instructions how to add new test case. -// ----------------------------------------------------------------------------- -// -const TCaseInfo CAiwDialDataTests::Case ( - const TInt aCaseNumber ) const - { - - /** - * To add new test cases, implement new test case function and add new - * line to KCases array specify the name of the case and the function - * doing the test case - * In practice, do following - * 1) Make copy of existing test case function and change its name - * and functionality. Note that the function must be added to - * AiwDialDataTests.cpp file and to AiwDialDataTests.h - * header file. - * - * 2) Add entry to following KCases array either by using: - * - * 2.1: FUNCENTRY or ENTRY macro - * ENTRY macro takes two parameters: test case name and test case - * function name. - * - * FUNCENTRY macro takes only test case function name as a parameter and - * uses that as a test case name and test case function name. - * - * Or - * - * 2.2: OOM_FUNCENTRY or OOM_ENTRY macro. Note that these macros are used - * only with OOM (Out-Of-Memory) testing! - * - * OOM_ENTRY macro takes five parameters: test case name, test case - * function name, TBool which specifies is method supposed to be run using - * OOM conditions, TInt value for first heap memory allocation failure and - * TInt value for last heap memory allocation failure. - * - * OOM_FUNCENTRY macro takes test case function name as a parameter and uses - * that as a test case name, TBool which specifies is method supposed to be - * run using OOM conditions, TInt value for first heap memory allocation - * failure and TInt value for last heap memory allocation failure. - */ - - static TCaseInfoInternal const KCases[] = - { - // To add new test cases, add new items to this array - - // NOTE: When compiled to GCCE, there must be Classname:: - // declaration in front of the method name, e.g. - // CAiwDialDataTests::PrintTest. Otherwise the compiler - // gives errors. - - FUNCENTRY( CAiwDialDataTests::ConstructionTestL ), - FUNCENTRY( CAiwDialDataTests::SetAndGetTestL ), - FUNCENTRY( CAiwDialDataTests::ExtConstructionTestL ), - FUNCENTRY( CAiwDialDataTests::ExtSetAndGetTestL ), - // Example how to use OOM functionality - //OOM_ENTRY( "Loop test with OOM", CAiwDialDataTests::LoopTest, ETrue, 2, 3), - //OOM_FUNCENTRY( CAiwDialDataTests::PrintTest, ETrue, 1, 3 ), - }; - - // Verify that case number is valid - if( (TUint) aCaseNumber >= sizeof( KCases ) / - sizeof( TCaseInfoInternal ) ) - { - // Invalid case, construct empty object - TCaseInfo null( (const TText*) L"" ); - null.iMethod = NULL; - null.iIsOOMTest = EFalse; - null.iFirstMemoryAllocation = 0; - null.iLastMemoryAllocation = 0; - return null; - } - - // Construct TCaseInfo object and return it - TCaseInfo tmp ( KCases[ aCaseNumber ].iCaseName ); - tmp.iMethod = KCases[ aCaseNumber ].iMethod; - tmp.iIsOOMTest = KCases[ aCaseNumber ].iIsOOMTest; - tmp.iFirstMemoryAllocation = KCases[ aCaseNumber ].iFirstMemoryAllocation; - tmp.iLastMemoryAllocation = KCases[ aCaseNumber ].iLastMemoryAllocation; - return tmp; - - } - -// ----------------------------------------------------------------------------- -// Tests CAiwDialData construction -// ----------------------------------------------------------------------------- -// -TInt CAiwDialDataTests::ConstructionTestL( TTestResult& /*aResult*/ ) - { - CAiwDialData* dialData = CAiwDialData::NewL(); - delete dialData; - - dialData = CAiwDialData::NewLC(); - - TL( dialData->PhoneNumber() == KNullDesC() ); - T1L( dialData->CallType(), CAiwDialData::EAIWVoice ); - T1L( dialData->WindowGroup(), 0 ); - - CAiwGenericParamList* list = CAiwGenericParamList::NewLC(); - dialData->FillInParamListL( *list ); - - CleanupStack::PopAndDestroy( 2, dialData ); - - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// Tests CAiwDialData setting and getting values. -// ----------------------------------------------------------------------------- -// -TInt CAiwDialDataTests::SetAndGetTestL( TTestResult& /*aResult*/ ) - { - _LIT( KPhoneNumber, "1234567890"); - - CAiwDialData* dialData = CAiwDialData::NewLC(); - - dialData->SetPhoneNumberL( KPhoneNumber ); - dialData->SetCallType( CAiwDialData::EAIWVideo ); - dialData->SetWindowGroup( 1 ); - - TL( dialData->PhoneNumber() == KPhoneNumber() ); - T1L( dialData->CallType(), CAiwDialData::EAIWVideo ); - T1L( dialData->WindowGroup(), 1 ); - - CAiwGenericParamList* list = CAiwGenericParamList::NewLC(); - dialData->FillInParamListL( *list ); - - CleanupStack::PopAndDestroy( 2, dialData ); - - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// Tests CAiwDialDataExt construction -// ----------------------------------------------------------------------------- -// -TInt CAiwDialDataTests::ExtConstructionTestL( TTestResult& /*aResult*/ ) - { - CAiwDialDataExt* dialData = CAiwDialDataExt::NewL(); - delete dialData; - - dialData = CAiwDialDataExt::NewLC(); - - TL( dialData->PhoneNumber() == KNullDesC() ); - T1L( dialData->CallType(), CAiwDialData::EAIWVoice ); - T1L( dialData->WindowGroup(), 0 ); - TL( !dialData->InitiateCall() ); - TL( dialData->Name() == KNullDesC() ); - T1L( dialData->Redial(), AIWDialDataExt::KAIWRedialDefault ); - TL( dialData->ShowNumber() ); - TL( dialData->ContactLink() == KNullDesC8() ); - - CAiwGenericParamList* list = CAiwGenericParamList::NewLC(); - dialData->FillInParamListL( *list ); - - CleanupStack::PopAndDestroy( 2, dialData ); - - return KErrNone; - - } - -// ----------------------------------------------------------------------------- -// Tests CAiwDialDataExt setting and getting values. -// ----------------------------------------------------------------------------- -// -TInt CAiwDialDataTests::ExtSetAndGetTestL( TTestResult& /*aResult*/ ) - { - _LIT( KPhoneNumber, "1234567890"); - _LIT8( KContactLink, "ContactLink"); - _LIT( KName, "Mr Smith" ); - - CAiwDialDataExt* dialData = CAiwDialDataExt::NewLC(); - - dialData->SetPhoneNumberL( KPhoneNumber ); - dialData->SetCallType( CAiwDialData::EAIWVideo ); - dialData->SetWindowGroup( 1 ); - dialData->SetInitiateCall( ETrue ); - dialData->SetNameL( KName ); - - dialData->SetRedial( AIWDialDataExt::KAIWRedialOff ); - dialData->SetShowNumber( EFalse ); - dialData->SetContactLinkL( KContactLink ); - - TL( dialData->PhoneNumber() == KPhoneNumber() ); - T1L( dialData->CallType(), CAiwDialData::EAIWVideo ); - T1L( dialData->WindowGroup(), 1 ); - TL( dialData->InitiateCall() ); - TL( dialData->Name() == KName() ); - T1L( dialData->Redial(), AIWDialDataExt::KAIWRedialOff ); - TL( !dialData->ShowNumber() ); - TL( dialData->ContactLink() == KContactLink() ); - - - CAiwGenericParamList* list = CAiwGenericParamList::NewLC(); - dialData->FillInParamListL( *list ); - - CleanupStack::PopAndDestroy( 2, dialData ); - - return KErrNone; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/dialutils/bwins/DialUtilsu.def --- a/phoneclientserver/dialutils/bwins/DialUtilsu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - ?CreateDialUtilsFactoryL@@YAPAVCDialUtilsFactory@@XZ @ 1 NONAME ; class CDialUtilsFactory * CreateDialUtilsFactoryL(void) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/dialutils/eabi/DialUtilsu.def --- a/phoneclientserver/dialutils/eabi/DialUtilsu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -EXPORTS - _Z23CreateDialUtilsFactoryLv @ 1 NONAME - _ZTI14CDialUtilsImpl @ 2 NONAME ; ## - _ZTI18CDialUtilsFactImpl @ 3 NONAME ; ## - _ZTV14CDialUtilsImpl @ 4 NONAME ; ## - _ZTV18CDialUtilsFactImpl @ 5 NONAME ; ## - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/dialutils/inc/DialUtilsFactImpl.h --- a/phoneclientserver/dialutils/inc/DialUtilsFactImpl.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the DialUtils factory interface. -* -*/ - - - -#ifndef DIALUTILSFACTIMPL_H -#define DIALUTILSFACTIMPL_H - - -// INCLUDES -#include - - -/** -* Implementation of the DialUtils factory. -* -* @lib DialUtils.lib -* @since 2.6 -*/ -class CDialUtilsFactImpl -: public CDialUtilsFactory - { - public: - - /** - * @see CDialUtilsFactory::CDialUtilsApiLD. - */ - CDialUtilsApi* CDialUtilsApiLD(); - - - private: - - /* - * Destructor - */ - ~CDialUtilsFactImpl(); - }; - - -#endif // DIALUTILSFACTIMPL_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/dialutils/inc/DialUtilsImpl.h --- a/phoneclientserver/dialutils/inc/DialUtilsImpl.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Provides implementation for DialUtils. -* -*/ - - -#ifndef DIALUTILSIMPL_H -#define DIALUTILSIMPL_H - -// INCLUDES -#include -#include - - -// FORWARD DECLARATIONS -class RSharedDataClient; -class CRepository; - - -// CONSTANTS - -// The prefix text. -typedef TBuf<10> TDiUtPrefixText; - - -// CLASS DECLARATION - -/** -* DialUtils implementation. -* -* @lib DialUtils.lib -* @since 2.6 -*/ -class CDialUtilsImpl -: public CDialUtilsApi - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @return an instance of DialUtilsImpl. - */ - static CDialUtilsImpl* NewL(); - - /** - * Destructor. - */ - virtual ~CDialUtilsImpl(); - - - public: // New functions - - /** - * Check and modify the phone number. - * - * @see CDialUtilsApi::CheckNumber. - */ - TInt CheckNumber( HBufC& aPhoneNumber ); - - - - private: - - /** - * C++ default constructor. - */ - CDialUtilsImpl(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Combine the given texts if needed. - * - * @param aPhoneNumber The number to be modified. - * @param aPrefixText The prefixText to be added - * to aPhoneNumber if needed. - */ - TInt CombineTexts( - TPtr aPhoneNumber, - const TDiUtPrefixText& aPrefixText ) const; - - - private: // Data - - // The shared data client. - RSharedDataClient* iSharedDataClient; - - // The central repository. - CRepository* iRepository; - }; - -#endif // DIALUTILSIMPL_H - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/dialutils/src/DialUtilsFactImpl.cpp --- a/phoneclientserver/dialutils/src/DialUtilsFactImpl.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the DialUtils factory interface. -* -*/ - - - -// INCLUDE FILES -#include -#include "dialutilsfactimpl.h" -#include "dialutilsimpl.h" - - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CDialUtilsFactImpl::CDialUtilsApiLD -// -// -// ----------------------------------------------------------------------------- -// -CDialUtilsApi* CDialUtilsFactImpl::CDialUtilsApiLD() - { - CleanupStack::PushL( this ); - - CDialUtilsImpl* dialutils = CDialUtilsImpl::NewL(); - CleanupStack::PopAndDestroy( this ); - return dialutils; - } - - -// ----------------------------------------------------------------------------- -// CDialUtilsFactImpl::~CDialUtilsFactImpl -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CDialUtilsFactImpl::~CDialUtilsFactImpl() - { - } - - - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// CreateDialUtilsFactoryL -// -// Creates DialUtilsFactory. This is only exported function. -// Returns: CDialUtilsFactory*: DialUtils Factory instance. -// ----------------------------------------------------------------------------- -// -EXPORT_C CDialUtilsFactory* CreateDialUtilsFactoryL() - { - return new ( ELeave ) CDialUtilsFactImpl; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/dialutils/src/DialUtilsImpl.cpp --- a/phoneclientserver/dialutils/src/DialUtilsImpl.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,223 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Implementation of DialUtils. -* -*/ - - - -// INCLUDE FILES - -#include // Feature Manager. -#include "dialutilsimpl.h" // Interface. - -#include // Central repository -#include // Settings Central Repository keys. - -// CONSTANTS - -// Prefix change Off. See SharedDataKeys.h and SettingsInternalCRKeys.h -const TInt KDiUtPrefixChangeOff = 0; -// Prefix change On. See SharedDataKeys.h and SettingsInternalCRKeys.h -const TInt KDiUtPrefixChangeOn = 1; - -// International prefix. -_LIT( KDiUtIntPrefix, "+" ); -// International prefix. -_LIT( KDiUtJapanPrefix, "+81" ); -// Zero prefix. -_LIT( KDiUtZeroPrefix, "0" ); - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CDialUtilsImpl::CDialUtilsImpl -// -// C++ default constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -CDialUtilsImpl::CDialUtilsImpl() - { - } - - -// ----------------------------------------------------------------------------- -// CDialUtilsImpl::ConstructL -// -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CDialUtilsImpl::ConstructL() - { - // Sets up TLS, must be done before FeatureManager is used. - FeatureManager::InitializeLibL(); - - iRepository = CRepository::NewL( KCRUidTelephonySettings ); - } - - -// ----------------------------------------------------------------------------- -// CDialUtilsImpl::NewL -// -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CDialUtilsImpl* CDialUtilsImpl::NewL() - { - CDialUtilsImpl* self = new( ELeave ) CDialUtilsImpl; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - - -// ----------------------------------------------------------------------------- -// CDialUtilsImpl::~CDialUtilsImpl -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CDialUtilsImpl::~CDialUtilsImpl() - { - delete iRepository; - - // Frees the TLS! Must be done after FeatureManager is used. - FeatureManager::UnInitializeLib(); - } - - - -// ----------------------------------------------------------------------------- -// CDialUtilsImpl::CheckNumber -// -// -// ----------------------------------------------------------------------------- -// -TInt CDialUtilsImpl::CheckNumber( HBufC& aPhoneNumber ) - { - TInt err = KErrNone; - TBool checkPrefix = - FeatureManager::FeatureSupported( KFeatureIdJapanPrefixChange ); - - if ( checkPrefix ) - { - TInt prefixMode = KDiUtPrefixChangeOff; // Default: Off. - - if ( !err ) - { - err = iRepository->Get( - KSettingsDialPrefixChangeMode, - prefixMode ); - - if ( !err ) - { - // Shared data information is ok, so act according to it. - switch ( prefixMode ) - { - case KDiUtPrefixChangeOff: - { - // Nothing needs to be done, so let the phone number to - // be unchanged and just break. - break; - } - - case KDiUtPrefixChangeOn: - { - TDiUtPrefixText prefixText; - - err = iRepository->Get( - KSettingsDialPrefixText, - prefixText ); - - if ( !err ) - { - err = CombineTexts( aPhoneNumber.Des(), prefixText ); - } - break; - } - - default: - // Should never happen, value is corrupted. - err = KErrCorrupt; - break; - } - } - } - } - return err; - } - - -// ----------------------------------------------------------------------------- -// CDialUtilsImpl::CombineTexts -// -// -// ----------------------------------------------------------------------------- -// -TInt CDialUtilsImpl::CombineTexts( - TPtr aPhoneNumber, - const TDiUtPrefixText& aPrefixText ) const - { - TInt err = KErrNone; - - TInt beginning = 0; // The beginning for replacement. - TInt replaceLength = 0; // The string length to be replaced. - TInt location = KErrNotFound; // The location of searched string. - - // Try to find Japan prefix. - location = aPhoneNumber.Find( KDiUtJapanPrefix ); - if ( location == beginning ) - { - // The string was found, so make replacement. - // Safe because zeroPrefix < KDiUtJapanPrefix. - replaceLength = KDiUtJapanPrefix().Length(); - aPhoneNumber.Replace( beginning, replaceLength, KDiUtZeroPrefix ); - } - else - { - // Try to find international prefix. - location = aPhoneNumber.Find( KDiUtIntPrefix ); - if ( location == beginning ) - { - replaceLength = KDiUtIntPrefix().Length(); - // The string was found, so try to make replacement. - const TInt phoneNumLength = aPhoneNumber.Length(); - const TInt prefixLength = aPrefixText.Length(); - - TInt stringLength = - ( phoneNumLength + prefixLength - replaceLength ); - - if ( aPhoneNumber.MaxLength() >= stringLength ) - { - // There is enough space to make this replace. - aPhoneNumber.Replace( beginning, replaceLength, aPrefixText ); - } - else - { - // There is no space to combine the strings, so inform it. - err = KErrOverflow; - } - } - } - - return err; - } - - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/dialutils/src/DialUtilsMain.cpp --- a/phoneclientserver/dialutils/src/DialUtilsMain.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 2004 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: Global functions for DialUtils. -* -*/ - - - -// INCLUDE FILES -#include - - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - - -// ----------------------------------------------------------------------------- -// E32Dll -// -// Returns always KErrNone. -// ----------------------------------------------------------------------------- -// -GLDEF_C TInt E32Dll( TDllReason ) - { - return KErrNone; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/inc/CPhCltDialer.h --- a/phoneclientserver/inc/CPhCltDialer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* Copyright (c) 2002 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: It is dialer class. -* -*/ - - -#ifndef CPHCLTDIALER_H -#define CPHCLTDIALER_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class CPhCltDialerDlg; - -// CLASS DECLARATION - -/** -* It is dialer class. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class CPhCltDialer - : public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @return Pointer to created CPhCltDialer instance. - */ - IMPORT_C static CPhCltDialer* NewL(); - - /** - * Destructor. - */ - ~CPhCltDialer(); - - - public: // New functions - - /** - * Dial parameters. - * - * @return Returns dial data. - */ - IMPORT_C CPhCltExtPhoneDialData& DialData(); - - /** - * Performs dialing with the dial data. - */ - IMPORT_C void ExecuteLD(); - - - private: - - /** - * C++ constructor. - */ - CPhCltDialer(); - - /** - * Symbian OS constructor. - */ - void ConstructL(); - - /** - * Cleanup action. Clears iDestroyed & iDialDlg. - */ - static void DoClear( TAny* aAny ); - - - private: // Data - - // Pointer to boolean indicating if this has been destroyed already. - TBool* iDestroyed; - - // Dialer dialog - CPhCltDialerDlg* iDialDlg; - - }; - -#endif // CPHCLTDIALER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/inc/CPhCltExtPhoneBase.h --- a/phoneclientserver/inc/CPhCltExtPhoneBase.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,118 +0,0 @@ -/* -* Copyright (c) 2002 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: It defines dial interface for phone client. -* -*/ - - -#ifndef CPHCLTEXTPHONEBASE_H -#define CPHCLTEXTPHONEBASE_H - -// INCLUDES -#include -#include "phclttypes.h" - -// FORWARD DECLARATIONS -class MPhCltExtPhoneObserver; -class CPhCltExtPhoneDialData; - -// CLASS DECLARATION - -/** -* It defines dial interface for phone client. -* -* Usage: -* -* To dial, you must have a string of characters from set -* { 0, 1, 2, .. 9, #, *, +, p, P, w, W }. It is the only -* mandatory parameter. String may also contain other characters, -* but then only a note is displayed. So you should proceed as follows: -* 1. Check that string is acceptable. -* (application specific grammar) -* 2. If not, stop. Otherwise continue. -* 3. Convert to string acceptable by phoneclient. -* Note PhCltUtils class may help. -* 4. Dial using the class. -* -* Note that dialling does not always mean creating a call. -* (E.g. *#43# makes phone to interrogate status of call waiting.) -* -* In order to dial, you need instance of CPhCltExtPhoneBase. You -* can create one as follows: -* iExtCall = CPhCltExtPhoneBase::NewL( this ); -* (the parameter is pointer to observer) -* -* Then you must fill dial parameters to instance of TPhCltExtPhoneDialData. -* (you can read more details from its header) -* -* TPhCltExtPhoneDialData data; -* data.SetTelephoneNumber( .. ); -* .. -* -* And finally, you can dial. Note that the method is asynchronous and -* observer will be informed when phone starts dialing. -* -* iExtCall->DialL( data ); -* -* Finally, you can delete the instance. If dialing is ongoing, this should -* be done after observer has been informed. You can also delete before that, -* but then the request might also be canceled. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class CPhCltExtPhoneBase : public CActive - { - public: // Constructors and destructor - - /** - * Create an instance that implements the interface. - * - * @param aObserver It is the observer for the instance. - * @return Returns the created instance. - */ - IMPORT_C static CPhCltExtPhoneBase* NewL( - MPhCltExtPhoneObserver* aObserver ); - - - public: // New fuctions - - - /** - * Makes a new call. This is the preferred way of dialling! - * - * @param aData The object containing the parameters for - * the dial request. - */ - virtual void DialL( CPhCltExtPhoneDialData& aData ) = 0; - - - protected: - - /** - * C++ constructor. - */ - CPhCltExtPhoneBase( MPhCltExtPhoneObserver* aObserver ); - - - protected: // Data - - // Observer to handle events. - MPhCltExtPhoneObserver* iObserver; - - }; - -#endif // CPHCLTEXTPHONEBASE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/inc/CPhCltExtPhoneDialData.h --- a/phoneclientserver/inc/CPhCltExtPhoneDialData.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,575 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: It defines dial data. -* -*/ - - -#ifndef CPHCLTEXTPHONEDIALDATA_H -#define CPHCLTEXTPHONEDIALDATA_H - - -// INCLUDES -#include -#include -#include -#include "phclttypes.h" -#include // Phone Client Notify API - - -// Other constants used in TPhCltExtPhoneDialData ( default values ) -const TBool KPhCltDefaultAllowMatch = ETrue; // Match is allowed -const TBool KPhCltDefaultNumberEntry = EFalse; // No return to number entry. -const TInt KPhCltDefaultNumberType = -1; // No number type. - - -// CONSTANTS -//None. - - -// FORWARD DECLARATIONS -//None - -// CLASS DECLARATION -/** -* It defines the structure containing dial information. -* -* Fields: -* -* window group - When call is ended, set window group is actived. -* -* show number - Permission to show number. ETrue if it is allowed. -* -* redial - Automatic redial override. -* -* name - Name corresponding to number. Name must be defined -* if shown number equals to EFalse. -* contact link - Contact link. you should put always when you are dialing -* from phonebook contact. -* tel number - String that is to be dialled. -* number fields are supported. -* allow match - Permission to allow match. ETrue if match is to be done. -* If you are dialing from sim pd or fdn, then this should -* be EFalse. -* number entry - Returns whether to return to the number entry on failure -* -* end other calls - Information if the existing calls are ended before -* this new one is made. -* Not mandatory. Set only if you know that the call is an -* emergency call. -* subaddress - The calling party subaddress. Supports SAT features. -* Defined in ITU-T I.330 and 3GPP TS 11.14. -* SATCall - Set whether this is SAT originated call or not. -* Supports SAT features. -* bearer - Bearer capabilities. Supports SAT features. -* -* CallType - The type of the call, i.e. voice (default) or video. -* -* SendKey - Call made with SendKey, optional. -* -* Redial maximum duration - Automatic redial maximum duration -* -* Initiate call - true if iniate call false otherwise -* -* UUI - User to user information sent on call setup phase. -* -* @lib phoneclient.lib -* @since 3.2 -*/ -/** -* Dial data set for PhoneClient. -* -* @lib ServiceHandler.lib -* @since Series 60 3.2 -*/ -NONSHARABLE_CLASS( CPhCltExtPhoneDialData ): public CPhCltDialData - { - - public: - /* - * TBools combined to one uint. - * - * EPhCltCallFlagsDefault - * Default flags, if nothing is not specified. - * EPhCltCallFlagsAllowNumberShowing - * Number showing is allowed. - * EPhCltCallFlagsReturnToNumberEntryOnFailure - * Return to Number Entry if there is an error. - * EPhCltCallFlagsAllowPersonalDirectoryMatching - * The number is matched to Personal Directory. - * EPhCltCallFlagsEndBeforeDial - * Other calls are ended before the new one is done. - * EPhCltCallFlagsSAT - * If set means that SAT has originated the call. - * EPhCltCallFlagsVideoCall - * If set means that this is video call. - * Otherwise means normal, i.e. voice call. - * EPhCltCallFlagsVoIPCall - * If set means that this is VoIP call. - * Otherwise means normal, i.e. voice call. - * EPhCltCallFlagsSendKey - * If set means that call made with SendKey. - */ - enum TPhCltCallFlags - { - EPhCltCallFlagsDefault = 0x0000, - EPhCltCallFlagsAllowNumberShowing = 0x0001, - EPhCltCallFlagsReturnToNumberEntryOnFailure = 0x0002, - EPhCltCallFlagsAllowPersonalDirectoryMatching = 0x0004, - EPhCltCallFlagsEndBeforeDial = 0x0008, - EPhCltCallFlagsSAT = 0x0020, - EPhCltCallFlagsVideoCall = 0x0040, - EPhCltCallFlagsVoIPCall = 0x0080, - EPhCltCallFlagsSendKey = 0x0100 - }; - - /** - * Two-phased constructor. - */ - IMPORT_C static CPhCltExtPhoneDialData* NewL(); - - /** - * Two-phased constructor. - */ - IMPORT_C static CPhCltExtPhoneDialData* NewLC(); - - - /** - * Two-phased constructor. - */ - IMPORT_C static CPhCltExtPhoneDialData* NewL( const TDesC8& aPackage ); - - /** - * Two-phased constructor. - */ - IMPORT_C static CPhCltExtPhoneDialData* NewLC( const TDesC8& aPackage ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CPhCltExtPhoneDialData(); - - public: // New functions - - /** - * Fills the parameter list. - * @since Series 60 3.2 - * @param aInParamList In parameter used with CAiwService. - */ - IMPORT_C HBufC8* PackLC(); - - - // Calculates dialdata package size - IMPORT_C TInt CalculatePackageSize() const; - - // Sets dial data parameters to CPhCltExtPhoneDialData object - void SetParamsL( const TDesC8& aPackage ); - - - public: // Access - Getters - - - /** - * Defines if mathing is allowed. - * @since Series 60 3.2 - * @return Returns the allow match setting information. - */ - IMPORT_C TBool AllowMatch() const; - - /** - * Bearer capability. - * @since Series 60 3.2 - * @return Returns bearer capability. - */ - IMPORT_C const TPhCltBearerCapability& Bearer() const; - - /** - * Gives the current call type. - * @since Series 60 3.2 - * @return Current call type. - */ - IMPORT_C TPhCltCallType CallType() const ; - - /** - * Contact link field. - * @since Series 60 3.2 - * @return Returns contack link item. - */ - IMPORT_C const TDesC8& ContactLink() const; - - - /** - * End other calls param. - * @since Series 60 3.2 - * @return Returns ETrue if other calls will be terminated. - * EFalse if calls are not terminated. - */ - IMPORT_C TBool EndOtherCalls() const; - - /** - * Intiate Call - * @since Series 60 3.2 - * @return Returns ETrue if call is itiate call EFalse otherwise - */ - IMPORT_C TBool InitiateCall() const; - - /** - * Name. - * @since Series 60 3.2 - * @return Returns name. - */ - IMPORT_C const TPhCltNameBuffer& Name() const; - - - /** - * Redial information. - * @since Series 60 3.2 - * @return Return the redial status, - */ - IMPORT_C TInt Redial() const; - - /** - * Redial maximum duration - * @since Series 60 3.2 - * @return Returns redial max duration. - */ - IMPORT_C const TTimeIntervalSeconds RedialMaximumDuration() const; - - - /** - * Return in failure. - * @since Series 60 3.2 - * @return Returns whether to return to the number entry. - */ - //IMPORT_C TBool ReturnToNumberEntryOnFailure() const; - - /** - * SAT Call. - * @since Series 60 3.2 - * @return Returns ETrue if SAT call EFalse if not. - */ - IMPORT_C TBool SATCall() const; - - /** - * SendKey pressed. - * @since Series 60 3.2 - * @return Return ETrue if SendKey used. - */ - IMPORT_C TBool SendKeyPressed() const; - - /** - * Show Number. - * @since Series 60 3.2 - * @return Returns the number visibility. - */ - IMPORT_C TBool ShowNumber() const; - - /** - * Sub address. - * @since Series 60 3.2 - * @return Returns SAT call sub address. - */ - IMPORT_C const TPhCltSubAddress& SubAddress() const; - - /** - * Gives the current phone number. - * @since Series 60 3.2 - * @return Telephone number. - */ - IMPORT_C const TPhCltTelephoneNumber& TelephoneNumber() const; - - /** - * Gives the current window group id. - * @since Series 60 3.2 - * @return Window group id. - */ - IMPORT_C TInt WindowGroup() const; - - /** - * Gives the user to user information. - * @since S60 v3.2 - * @return User to user information. - */ - IMPORT_C const TDesC& UUI() const; - - public: // Access - Setters - - /** - * Set whether the name entered in SetName should be matched - * against the personal directory. - * @since Series 60 3.2 - * This should be set EFalse only if phone number has not been - * taken from phonebook. - * - * @param aAllowMatch Whether to allow matches. - */ - IMPORT_C void SetAllowMatch( TBool aAllowMatch ); - - /** - * Set the bearer capability. - * @since Series 60 3.2 - * @param aBearer The bearer capabilities as defined in GSM 04.08. - * @leaves KErrArgument if aBearer's length is longer than KAiwBearerLength - */ - IMPORT_C void SetBearerL( const TPhCltBearerCapability& aBearer ); - - /** - * Sets call type. - * @since Series 60 3.2 - * @param aCallType calls' type. - */ - IMPORT_C void SetCallType( TPhCltCallType aCallType ); - - /** - * Set contact link. - * @since Series 60 3.2 - * @param aContactLink Contact link information. - */ - IMPORT_C void SetContactLinkL( const TDesC8& aContactLink ); - - - /** - * Set parameter for end other calls. - * @since Series 60 3.2 - * If this is set to ETrue, other calls will be terminated before - * dial. Default is EFalse. - * @param aEndCalls Are the other calls ended. - */ - IMPORT_C void SetEndOtherCalls( TBool aEndCalls ); - - /** - * Set Initiate call Etrue or EFalse - *@since Series 60 3.2 - * @param aInitCall ETrue if call is intiate call - */ - IMPORT_C void SetInitiateCall( TBool aInitCall ); - - - /** - * Set the name of the person who is to be called. - * @since Series 60 3.2 - * @param aName The name of the person being called. - * @leaves KErrArgument if aName length is over 50 characters. - */ - IMPORT_C void SetNameL( const TPhCltNameBuffer& aName ); - - - /** - * Change the redial mode. - * @since Series 60 3.2 - * @param aRedial The new redial status - */ - - IMPORT_C void SetRedial( TInt aRedial ); - - /** - * Set redial max duration. - * @since Series 60 3.2 - * @param aDuration redial max duration. - */ - IMPORT_C void SetRedialMaximumDuration( TTimeIntervalSeconds aMaximumRedialDuration ); - - - /** - * Set whether to return to number entry. - * - * @param aReturn Whether to return to the number entry editor. - */ - IMPORT_C void SetReturnToNumberEntryOnFailure( TBool aReturn ); - - /** - * Set wheteher this is a SAT originated call or not. - * If this function is not called, the originator is assumed to - * be other than SAT. - * @since Series 60 3.2 - * @param aSATCall ETrue if SAT originated the call, EFalse otherwise. - */ - IMPORT_C void SetSATCall( TBool aSATCall ); - - - /** - * Set the value of SendKey. - * @since Series 60 3.2 - * @param aSendKey The value of SendKey. - */ - IMPORT_C void SetSendKeyPressed( TBool aSendKey ); - - /** - * Set the number visibility in the phone app. - * @since Series 60 3.2 - * If this is set to EFalse, then number is not shown or written to - * log event. - * @param aShowNumber Whether or not to show the number. - */ - IMPORT_C void SetShowNumber( TBool aShowNumber ); - - /** - * Set the calling party subaddress. - * Defined in ITU-T I.330 and 3GPP TS 11.14. - * @since Series 60 3.2 - * @param aSubAddress The calling party subaddress. - * @leaves KErrArgument if aSubAddress length is longer than - * KAiwSubAddressLength - */ - IMPORT_C void SetSubAddressL( const TPhCltSubAddress& aSubAddress ); - - /** - * Sets the phone number. - * @since Series 60 3.2 - * @param aNumber Phone number, which maximum length is - * KMaximumPhoneNumberLength. - * @leaves KErrArgument if aPhoneNumber length is over KMaximumPhoneNumberLength - */ - IMPORT_C void SetTelephoneNumber( const TPhCltTelephoneNumber& aNumber ); - - /** - * Sets the window group identifier. When call is ended, set window group is actived. - * @since Series 60 3.2 - * @param aWindowGroup Window group id. - */ - IMPORT_C void SetWindowGroup( TInt aWindowGroup ); - - /** - * Set the value of xSP Service Id. - * - * @param aServiceId The value of Service Id. - */ - IMPORT_C void SetServiceId( TUint32 aServiceId ); - - - /** - * Service Id. VoIP2.2 implementation - * @return Return service id or zero. - */ - IMPORT_C TUint32 ServiceId() const; - - - /** - * Sets user to user information. Maximum length is - * KPhCltUUILength. - * @param aUUI User to user information. - * @since S60 v3.2 - */ - IMPORT_C void SetUUIL( const TDesC& aUUI ); - - - - - - // Constructors - - private: - - /** - * C++ default constructor. - * @since Series 60 3.2 - */ - CPhCltExtPhoneDialData(); - - /** - * By default Symbian 2nd phase constructor is private. - * @since Series 60 3.2 - */ - void ConstructL(); - - /** - * By default Symbian 2nd phase constructor is private. - * @since Series 60 3.2 - * @param aPackage including dial data - */ - void ConstructL( const TDesC8& aPackage ); - - - //Private functions - - private: - /** - * Calculates variable descriptor size - * @since Series 60 3.2 - * @param aDescriptor which size is calculated - */ - TInt CalculateDescriptorSize( const TDesC& aDescriptor ) const; - - /** - * Calculates variable descriptor size - * @since Series 60 3.2 - * @param aDescriptor which size is calculated - */ - TInt CalculateDescriptorSize( const TDesC8& aDescriptor ) const; - - /** - * Read descriptor value from stream - * @since Series 60 3.2 - * @param aStream used stream - * @param aDescriptor which is read from stream - */ - void ReadDescriptorFromStreamL( RDesReadStream& aStream, HBufC8*& aDescriptor ); - - /** - * Read descriptor value from stream - * @since Series 60 3.2 - * @param aStream used stream - * @param aDescriptor which is read from stream - */ - void ReadDescriptorFromStreamL( RDesReadStream& aStream, HBufC*& aDescriptor ); - - /** - * Write descriptor value to stream - * @since Series 60 3.2 - * @param aStream used stream - * @param aDescriptor which value is write to stream - */ - void WriteDescriptorToStreamL( RDesWriteStream& aStream, const TDesC8& aDescriptor ); - - /** - * Write descriptor value to stream - * @since Series 60 3.2 - * @param aStream used stream - * @param aDescriptor which value is write to stream - */ - void WriteDescriptorToStreamL( RDesWriteStream& aStream, const TDesC& aDescriptor ); - - - /** - * Copy descriptor value to member descriptor - * @since Series 60 3.2 - * @param aSource which is as copy source - * @param aMemberDescriptor is as copy destination - */ - void CopyDescriptorToMemberDescriptorL( const TDesC& aSource, HBufC*& aMemberDescriptor ); - - /** - * Copy descriptor value to member descriptor - * @since Series 60 3.2 - * @param aSource which is as copy source - * @param aMemberDescriptor is as copy destination - */ - void CopyDescriptorToMemberDescriptorL( const TDesC8& aSource, HBufC8*& aMemberDescriptor ); - - - /** - * Check descriptor max length - * Leaves with KErrArgument if aDescriptorLength is greated that aMaxAllowedDescriptorLenght - * @since Series 60 3.2 - * @param aDescriptorLength is descriptor length - * @param aMaxAllowedDescriptorLength maximum allowed descriptor length - */ - void CheckDescriptorMaxLengthL( TInt aDescriptorLength, TInt aMaxAllowedDescriptorLength ) const; - - - }; - -#endif // CPHCLTEXTPHONEDIALDATA_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/inc/MPhCltExtPhoneObserver.h --- a/phoneclientserver/inc/MPhCltExtPhoneObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2002 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: It defines the interface for the observers of -* the CPhCltExtPhoneBase. -* -*/ - - -#ifndef MPHCLTEXTPHONEOBSERVER_H -#define MPHCLTEXTPHONEOBSERVER_H - -// CLASS DECLARATION - -/** -* Defines the interface for the observers of the CPhCltExtPhoneBase. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class MPhCltExtPhoneObserver - { - public: // New functions - - /** - * It is called whenever client's dial request is completed. - * - * @param aStatus It is the status of the operation. - * <0 means Symbian OS error code. - */ - virtual void HandleDialL( const TInt aStatus ) = 0; - - }; - -#endif // MPHCLTEXTPHONEOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/inc/RPhCltEmergencyCall.h --- a/phoneclientserver/inc/RPhCltEmergencyCall.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,233 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Client side access to emergency call -* -*/ - - -#ifndef RPhCltEmergencyCall_H -#define RPhCltEmergencyCall_H - -// INCLUDES -#include -#include "phclttypes.h" -#include "rphcltserver.h" - -/** -* Emergency number query mode -*/ -enum TPhCltEmergencyNumberQueryMode - { - EPhCltEmergencyNumberQueryModeNormal = 0, // Normal mode - EPhCltEmergencyNumberQueryModeAdvanced, // advanced mode - EPhCltEmergencyNumberQueryModeNormalWriteback // Same as "normal", but writes back emergency number - }; - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* Client side access to emergency call -* -* @lib phoneclient.lib -* @since Series60_1.0 -*/ -class RPhCltEmergencyCall : public RSubSessionBase - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - RPhCltEmergencyCall(); - - - public: // New functions - - /** - * Opens the subsession. - * - * @param aServer It is the session of which subsession this is. - * @return Returns error code. - */ - TInt Open( RPhCltServer& aServer ); - - /** - * Closes the subsession. - */ - void Close(); - - - public: - - /** - * Returns information whether the number specified was an emergency number. - * - * @param aNumber Number to be queried. aNumber might contain prefix (SS code) - * and/or postfix (DTMF part). - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltEmergencyNumber, which is equivalent to a - * TBuf< KPhCltEmergencyNumberSize > where - * KPhCltEmergencyNumberSize is defined as 100. - * - * @param aIsEmergencyNumber If ETrue, then the aNumber - * parameter included emergency number. - * @return Returns error code of the success of the operation. - */ - TInt IsEmergencyPhoneNumber( - const TDesC& aNumber, - TBool& aIsEmergencyNumber ); - - /** - * Method can be used to check if the number specified contains - * a valid emergency number in the end of the number. - * - * @param aNumber Number to be queried, matched emergency number - * is returned in this parameter. - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltTelephoneNumberwhich is equivalent to a - * TBuf< KPhCltTelephoneNumberLength > where - * KPhCltTelephoneNumberLength is defined as 100. - * - * @param aIsEmergencyNumber If ETrue, then the aNumber parameter - * was emergency number. - * @return Returns error code of the success of the operation. - */ - TInt FindEmergencyPhoneNumber( - TDes& aNumber, - TBool& aIsEmergencyNumber ); - - /** - * Initiates an emergency call. - * - * @param aReqStatus On return, KErrNone if the emergency call successfully reaches - * the connected state. If the call set-up fails, the function - * member will complete with an error. - * - * @param aNumber Emergency number to be dialed (optional). - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltEmergencyNumber,which is equivalent to a - * TBuf< KPhCltEmergencyNumberSize > where - * KPhCltEmergencyNumberSize is defined as 100. - * - * If the aNumber parameter supplies an "empty" buffer - * the call is created either dialing the default emergency - * phone number or use the SET UP EMERGENCY request - * that does not contain a dialling number. - * - * @pre IsActive() returns EFalse, otherwise leaves with KErrInUse. - */ - void DialEmergencyCall( TRequestStatus& aReqStatus, TDesC8& aNumber ); - - /** - * Cancels an emergency call. - * - */ - void CancelDialEmergencyCall(); - - /** - * Returns information whether the number specified was an emergency - * number and also returns the plain emergency number. - * - * @param aNumber Number to be queried.aNumber might contain prefix (SS code) - * and/or postfix (DTMF part). - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltEmergencyNumberwhich is equivalent to a - * TBuf< KPhCltEmergencyNumberSize > where - * KPhCltEmergencyNumberSize is defined as 100. - * - * @param aMatchedEmergencyNumber Matched emergencynumber without prefix or - * postfix is returned in this parameter. The aMatchedEmergencyNumber - * parameter should be a buffer and the clients are - * provided with atypedef called TPhCltEmergencyNumber, - * which is equivalent to a TBuf< KPhCltEmergencyNumberSize > - * where KPhCltEmergencyNumberSize is defined as 100. - * - * @param aIsEmergencyNumber If ETrue, then the aNumber - * parameter included emergency number. - * - * @return Returns error code of the success of the operation. - */ - TInt IsEmergencyPhoneNumber( - const TDesC& aNumber, - TDes& aMatchedEmergencyNumber, - TBool& aIsEmergencyNumber ); - - private: - - /** - * Extract telephone number from string. If EFalse is returned - * then aString does not contain valid emergency number - * - * @param aString string from which those characters are removed. - * - * @return ETrue - aString can be emergency number and aString - * contains a telephone number - * EFalse - aString cannot be emergency number and aString - * does not contain a number that can be emergency number - */ - TBool ExtractTelephoneNumber( TDes& aString ); - - /** - * Finds start of dtmf string in string. - * - * @param aString Telephone number - * - * @return Index where dtmf string starts or KErrNotFound if no - * dtmf found. - * - */ - TInt FindStartOfDtmfString( const TDesC& aString ); - - /** - * Removes CLIR ss code from beginning of the string if CLIR is - * found from string. - * - * @param aString Telephone number - */ - void RemoveCLIR( TDes& aString ); - - /** - * Removes DTMF string from string. - * - * @param aString Telephone number. - */ - void RemoveDTMF( TDes& aString ); - - /** - * Executes checks to given phone number to find out if it is a valid - * emergency number. - * - * @param aString Telephone number - * @param aIsEmergencyNumber If ETrue, then the aNumber parameter - * was a valid emergency number. - * - * @return Returns error code of the success of the operation. - * - */ - TInt ValidateNumber( TDes& aString, TBool& aIsEmergencyNumber, - const TBool aWriteEmergencyNumBack ); - - - - }; - -#endif // RPhCltEmergencyCall_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Bmarm/PHONECLIENTU.DEF --- a/phoneclientserver/phoneclient/Bmarm/PHONECLIENTU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -EXPORTS - __9RPhCltIhf @ 1 NONAME R3UNUSED ; RPhCltIhf::RPhCltIhf(void) - AppStarting__10RPhCltUssd @ 2 NONAME R3UNUSED ; RPhCltUssd::AppStarting(void) - AppTerminating__10RPhCltUssd23TPhCltUssdAppExitReason @ 3 NONAME R3UNUSED ; RPhCltUssd::AppTerminating(TPhCltUssdAppExitReason) - AppToBackground__10RPhCltUssd @ 4 NONAME R3UNUSED ; RPhCltUssd::AppToBackground(void) - AppToForeground__10RPhCltUssd @ 5 NONAME R3UNUSED ; RPhCltUssd::AppToForeground(void) - CancelNotifyCallAttempt__C16RPhCltCallNotify @ 6 NONAME R3UNUSED ; RPhCltCallNotify::CancelNotifyCallAttempt(void) const - CancelNotifyPhoneStatusRequest__C16RPhCltCallNotify @ 7 NONAME R3UNUSED ; RPhCltCallNotify::CancelNotifyPhoneStatusRequest(void) const - CancelReportPhoneStatus__C16RPhCltCallNotify @ 8 NONAME R3UNUSED ; RPhCltCallNotify::CancelReportPhoneStatus(void) const - CancelSend__10RPhCltUssd @ 9 NONAME R3UNUSED ; RPhCltUssd::CancelSend(void) - CleanupEmergencyListPushL__21RPhCltEmergencyNumberRt13RPointerArray1Z24CPhCltEmergencyTelNumber @ 10 NONAME R3UNUSED ; RPhCltEmergencyNumber::CleanupEmergencyListPushL(RPointerArray &) - Close__10RPhCltUssd @ 11 NONAME R3UNUSED ; RPhCltUssd::Close(void) - Close__16RPhCltCallNotify @ 12 NONAME R3UNUSED ; RPhCltCallNotify::Close(void) - Close__18RPhCltResourceFile @ 13 NONAME R3UNUSED ; RPhCltResourceFile::Close(void) - Close__21RPhCltEmergencyNumber @ 14 NONAME R3UNUSED ; RPhCltEmergencyNumber::Close(void) - Close__9RPhCltIhf @ 15 NONAME R3UNUSED ; RPhCltIhf::Close(void) - Connect__12RPhCltServeri @ 16 NONAME R3UNUSED ; RPhCltServer::Connect(int) - ContactId__C22TPhCltExtPhoneDialData @ 17 NONAME R3UNUSED ; TPhCltExtPhoneDialData::ContactId(void) const - CreateAll__12RPhCltServerR14TRequestStatus @ 18 NONAME R3UNUSED ; RPhCltServer::CreateAll(TRequestStatus &) - DialData__12CPhCltDialer @ 19 NONAME R3UNUSED ; CPhCltDialer::DialData(void) - DialL__18CPhCltExtPhoneBaseRCt4TBuf1i50i @ 20 NONAME R3UNUSED ; CPhCltExtPhoneBase::DialL(TBuf<50> const &, int) - EmergencyNumberListLC__21RPhCltEmergencyNumberi @ 21 NONAME R3UNUSED ; RPhCltEmergencyNumber::EmergencyNumberListLC(int) - EndOtherCalls__C22TPhCltExtPhoneDialData @ 22 NONAME R3UNUSED ; TPhCltExtPhoneDialData::EndOtherCalls(void) const - ExecuteLD__12CPhCltDialer @ 23 NONAME R3UNUSED ; CPhCltDialer::ExecuteLD(void) - ExternalizeL__C24CPhCltEmergencyTelNumberR12RWriteStream @ 24 NONAME R3UNUSED ; CPhCltEmergencyTelNumber::ExternalizeL(RWriteStream &) const - InternalizeL__24CPhCltEmergencyTelNumberR11RReadStream @ 25 NONAME R3UNUSED ; CPhCltEmergencyTelNumber::InternalizeL(RReadStream &) - IsEmergenyPhoneNumber__21RPhCltEmergencyNumberRCt4TBuf1i50Ri30TPhCltEmergencyNumberQueryMode @ 26 NONAME ; RPhCltEmergencyNumber::IsEmergenyPhoneNumber(TBuf<50> const &, int &, TPhCltEmergencyNumberQueryMode) - IsValidChar__10PhCltUtilsG5TChar @ 27 NONAME R3UNUSED ; PhCltUtils::IsValidChar(TChar) - MCC__C24CPhCltEmergencyTelNumber @ 28 NONAME R3UNUSED ; CPhCltEmergencyTelNumber::MCC(void) const - MNC__C24CPhCltEmergencyTelNumber @ 29 NONAME R3UNUSED ; CPhCltEmergencyTelNumber::MNC(void) const - Name__C22TPhCltExtPhoneDialData @ 30 NONAME R3UNUSED ; TPhCltExtPhoneDialData::Name(void) const - NewLC__24CPhCltEmergencyTelNumber @ 31 NONAME R3UNUSED ; CPhCltEmergencyTelNumber::NewLC(void) - NewL__10CPhCltUssdi @ 32 NONAME R3UNUSED ; CPhCltUssd::NewL(int) - NewL__12CPhCltDialer @ 33 NONAME R3UNUSED ; CPhCltDialer::NewL(void) - NewL__18CPhCltExtPhoneBaseP22MPhCltExtPhoneObserver @ 34 NONAME R3UNUSED ; CPhCltExtPhoneBase::NewL(MPhCltExtPhoneObserver *) - NotifyCallAttempt__16RPhCltCallNotifyR14TRequestStatusR5TDes8 @ 35 NONAME R3UNUSED ; RPhCltCallNotify::NotifyCallAttempt(TRequestStatus &, TDes8 &) - NotifyPhoneStatusRequest__16RPhCltCallNotifyR14TRequestStatus @ 36 NONAME R3UNUSED ; RPhCltCallNotify::NotifyPhoneStatusRequest(TRequestStatus &) - NumberType__C22TPhCltExtPhoneDialData @ 37 NONAME R3UNUSED ; TPhCltExtPhoneDialData::NumberType(void) const - OpenL__18RPhCltResourceFileR7CCoeEnv @ 38 NONAME R3UNUSED ; RPhCltResourceFile::OpenL(CCoeEnv &) - Open__10RPhCltUssdR12RPhCltServer @ 39 NONAME R3UNUSED ; RPhCltUssd::Open(RPhCltServer &) - Open__16RPhCltCallNotifyR12RPhCltServer @ 40 NONAME R3UNUSED ; RPhCltCallNotify::Open(RPhCltServer &) - Open__21RPhCltEmergencyNumberR12RPhCltServer @ 41 NONAME R3UNUSED ; RPhCltEmergencyNumber::Open(RPhCltServer &) - Open__9RPhCltIhfR12RPhCltServeri @ 42 NONAME R3UNUSED ; RPhCltIhf::Open(RPhCltServer &, int) - Redial__C22TPhCltExtPhoneDialData @ 43 NONAME R3UNUSED ; TPhCltExtPhoneDialData::Redial(void) const - RemoveInvalidChars__10PhCltUtilsR6TDes16 @ 44 NONAME R3UNUSED ; PhCltUtils::RemoveInvalidChars(TDes16 &) - ReportPhoneStatus__16RPhCltCallNotifyR14TRequestStatusi @ 45 NONAME R3UNUSED ; RPhCltCallNotify::ReportPhoneStatus(TRequestStatus &, int) - RespondClient__16RPhCltCallNotifyi @ 46 NONAME R3UNUSED ; RPhCltCallNotify::RespondClient(int) - ReturnToNumberEntryOnFailure__C22TPhCltExtPhoneDialData @ 47 NONAME R3UNUSED ; TPhCltExtPhoneDialData::ReturnToNumberEntryOnFailure(void) const - SendUssdCancel__10CPhCltUssd @ 48 NONAME R3UNUSED ; CPhCltUssd::SendUssdCancel(void) - SendUssd__10CPhCltUssdRC6TDesC8 @ 49 NONAME R3UNUSED ; CPhCltUssd::SendUssd(TDesC8 const &) - SendUssd__10CPhCltUssdRC6TDesC8T1 @ 50 NONAME R3UNUSED ; CPhCltUssd::SendUssd(TDesC8 const &, TDesC8 const &) - SendUssd__10CPhCltUssdRC7TDesC16 @ 51 NONAME R3UNUSED ; CPhCltUssd::SendUssd(TDesC16 const &) - SendUssd__10RPhCltUssdR14TRequestStatusRC6TDesC8T2 @ 52 NONAME ; RPhCltUssd::SendUssd(TRequestStatus &, TDesC8 const &, TDesC8 const &) - SetAllowMatch__22TPhCltExtPhoneDialDatai @ 53 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetAllowMatch(int) - SetContactId__22TPhCltExtPhoneDialDatal @ 54 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetContactId(long) - SetEndOtherCalls__22TPhCltExtPhoneDialDatai @ 55 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetEndOtherCalls(int) - SetIhfMode__9RPhCltIhfii @ 56 NONAME R3UNUSED ; RPhCltIhf::SetIhfMode(int, int) - SetL__24CPhCltEmergencyTelNumberRCt4TBuf1i50UsUs @ 57 NONAME ; CPhCltEmergencyTelNumber::SetL(TBuf<50> const &, unsigned short, unsigned short) - SetName__22TPhCltExtPhoneDialDataRCt4TBuf1i50 @ 58 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetName(TBuf<50> const &) - SetNumberType__22TPhCltExtPhoneDialDatai @ 59 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetNumberType(int) - SetRedial__22TPhCltExtPhoneDialDatai @ 60 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetRedial(int) - SetReturnToNumberEntryOnFailure__22TPhCltExtPhoneDialDatai @ 61 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetReturnToNumberEntryOnFailure(int) - SetShowNumber__22TPhCltExtPhoneDialDatai @ 62 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetShowNumber(int) - SetTelephoneNumber__22TPhCltExtPhoneDialDataRCt4TBuf1i50 @ 63 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetTelephoneNumber(TBuf<50> const &) - SetWindowGroup__22TPhCltExtPhoneDialDatai @ 64 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetWindowGroup(int) - ShowNumber__C22TPhCltExtPhoneDialData @ 65 NONAME R3UNUSED ; TPhCltExtPhoneDialData::ShowNumber(void) const - StartUssdEditor__C10RPhCltUssd @ 66 NONAME R3UNUSED ; RPhCltUssd::StartUssdEditor(void) const - TelNumber__C24CPhCltEmergencyTelNumber @ 67 NONAME R3UNUSED ; CPhCltEmergencyTelNumber::TelNumber(void) const - TelephoneNumber__C22TPhCltExtPhoneDialData @ 68 NONAME R3UNUSED ; TPhCltExtPhoneDialData::TelephoneNumber(void) const - WindowGroupId__C22TPhCltExtPhoneDialData @ 69 NONAME R3UNUSED ; TPhCltExtPhoneDialData::WindowGroupId(void) const - "_._10CPhCltUssd" @ 70 NONAME R3UNUSED ; CPhCltUssd::~CPhCltUssd(void) - "_._24CPhCltEmergencyTelNumber" @ 71 NONAME R3UNUSED ; CPhCltEmergencyTelNumber::~CPhCltEmergencyTelNumber(void) - __10RPhCltUssd @ 72 NONAME R3UNUSED ; RPhCltUssd::RPhCltUssd(void) - __12RPhCltServer @ 73 NONAME R3UNUSED ; RPhCltServer::RPhCltServer(void) - __16RPhCltCallNotify @ 74 NONAME R3UNUSED ; RPhCltCallNotify::RPhCltCallNotify(void) - __18RPhCltResourceFile @ 75 NONAME R3UNUSED ; RPhCltResourceFile::RPhCltResourceFile(void) - __21RPhCltEmergencyNumber @ 76 NONAME R3UNUSED ; RPhCltEmergencyNumber::RPhCltEmergencyNumber(void) - __22TPhCltExtPhoneDialData @ 77 NONAME R3UNUSED ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(void) - __22TPhCltExtPhoneDialDataRCt4TBuf1i50T1li @ 78 NONAME ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(TBuf<50> const &, TBuf<50> const &, long, int) - __22TPhCltExtPhoneDialDataRCt4TBuf1i50i @ 79 NONAME R3UNUSED ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(TBuf<50> const &, int) - __22TPhCltExtPhoneDialDataRCt4TBuf1i50l @ 80 NONAME R3UNUSED ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(TBuf<50> const &, long) - __22TPhCltExtPhoneDialDataRCt4TBuf1i50li @ 81 NONAME ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(TBuf<50> const &, long, int) - AllowMatch__C22TPhCltExtPhoneDialData @ 82 NONAME R3UNUSED ; TPhCltExtPhoneDialData::AllowMatch(void) const - SetIhfModeFromPhone__9RPhCltIhfii @ 83 NONAME R3UNUSED ; RPhCltIhf::SetIhfModeFromPhone(int, int) - NewL__19CPhCltUssdSatClienti @ 84 NONAME R3UNUSED ; CPhCltUssdSatClient::NewL(int) - SendSatMessage__19CPhCltUssdSatClientRC7TDesC16R6TDes16RiRQ219CPhCltUssdSatClient9TPhCltDcs @ 85 NONAME ; CPhCltUssdSatClient::SendSatMessage(TDesC16 const &, TDes16 &, int &, CPhCltUssdSatClient::TPhCltDcs &) - "_._19CPhCltUssdSatClient" @ 86 NONAME R3UNUSED ; CPhCltUssdSatClient::~CPhCltUssdSatClient(void) - SetEmergency__22TPhCltExtPhoneDialDatai @ 87 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetEmergency(int) - SetSubAddress__22TPhCltExtPhoneDialDataRCt4TBuf1i21 @ 88 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetSubAddress(TBuf<21> const &) - SetSATCall__22TPhCltExtPhoneDialDatai @ 89 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetSATCall(int) - SetBearer__22TPhCltExtPhoneDialDataRCt5TBuf81i14 @ 90 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetBearer(TBuf8<14> const &) - Emergency__C22TPhCltExtPhoneDialData @ 91 NONAME R3UNUSED ; TPhCltExtPhoneDialData::Emergency(void) const - SubAddress__C22TPhCltExtPhoneDialData @ 92 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SubAddress(void) const - SATCall__C22TPhCltExtPhoneDialData @ 93 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SATCall(void) const - Bearer__C22TPhCltExtPhoneDialData @ 94 NONAME R3UNUSED ; TPhCltExtPhoneDialData::Bearer(void) const - AsIPCStruct__C22TPhCltExtPhoneDialDataR14TPhCltCallArgs @ 95 NONAME R3UNUSED ; TPhCltExtPhoneDialData::AsIPCStruct(TPhCltCallArgs &) const - CallType__C22TPhCltExtPhoneDialData @ 96 NONAME R3UNUSED ; TPhCltExtPhoneDialData::CallType(void) const - SetCallType__22TPhCltExtPhoneDialData14TPhCltCallType @ 97 NONAME R3UNUSED ; TPhCltExtPhoneDialData::SetCallType(TPhCltCallType) - IsEmergencyPhoneNumber__21RPhCltEmergencyNumberRt4TBuf1i50Ri30TPhCltEmergencyNumberQueryMode @ 98 NONAME ; RPhCltEmergencyNumber::IsEmergencyPhoneNumber(TBuf<50> &, int &, TPhCltEmergencyNumberQueryMode) - SendSatMessageCancel__19CPhCltUssdSatClient @ 99 NONAME R3UNUSED ; CPhCltUssdSatClient::SendSatMessageCancel(void) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Bwins/PHONECLIENTU.DEF --- a/phoneclientserver/phoneclient/Bwins/PHONECLIENTU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,103 +0,0 @@ -EXPORTS - ??0RPhCltCallNotify@@QAE@XZ @ 1 NONAME ; RPhCltCallNotify::RPhCltCallNotify(void) - ??0RPhCltEmergencyNumber@@QAE@XZ @ 2 NONAME ; RPhCltEmergencyNumber::RPhCltEmergencyNumber(void) - ??0RPhCltIhf@@QAE@XZ @ 3 NONAME ; RPhCltIhf::RPhCltIhf(void) - ??0RPhCltResourceFile@@QAE@XZ @ 4 NONAME ; RPhCltResourceFile::RPhCltResourceFile(void) - ??0RPhCltServer@@QAE@XZ @ 5 NONAME ; RPhCltServer::RPhCltServer(void) - ??0RPhCltUssd@@QAE@XZ @ 6 NONAME ; RPhCltUssd::RPhCltUssd(void) - ??0TPhCltExtPhoneDialData@@QAE@ABV?$TBuf@$0DC@@@ABV?$TBuf@$0GE@@@JH@Z @ 7 NONAME ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(class TBuf<50> const &, class TBuf<100> const &, long, int) - ??0TPhCltExtPhoneDialData@@QAE@ABV?$TBuf@$0GE@@@H@Z @ 8 NONAME ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(class TBuf<100> const &, int) - ??0TPhCltExtPhoneDialData@@QAE@ABV?$TBuf@$0GE@@@J@Z @ 9 NONAME ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(class TBuf<100> const &, long) - ??0TPhCltExtPhoneDialData@@QAE@ABV?$TBuf@$0GE@@@JH@Z @ 10 NONAME ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(class TBuf<100> const &, long, int) - ??0TPhCltExtPhoneDialData@@QAE@XZ @ 11 NONAME ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(void) - ??1CPhCltEmergencyTelNumber@@UAE@XZ @ 12 NONAME ; CPhCltEmergencyTelNumber::~CPhCltEmergencyTelNumber(void) - ??1CPhCltUssd@@UAE@XZ @ 13 NONAME ; CPhCltUssd::~CPhCltUssd(void) - ??1CPhCltUssdSatClient@@UAE@XZ @ 14 NONAME ; CPhCltUssdSatClient::~CPhCltUssdSatClient(void) - ?AllowMatch@TPhCltExtPhoneDialData@@QBEHXZ @ 15 NONAME ; int TPhCltExtPhoneDialData::AllowMatch(void) const - ?AppStarting@RPhCltUssd@@IAEHXZ @ 16 NONAME ; int RPhCltUssd::AppStarting(void) - ?AppTerminating@RPhCltUssd@@IAEHW4TPhCltUssdAppExitReason@@@Z @ 17 NONAME ; int RPhCltUssd::AppTerminating(enum TPhCltUssdAppExitReason) - ?AppToBackground@RPhCltUssd@@IAEHXZ @ 18 NONAME ; int RPhCltUssd::AppToBackground(void) - ?AppToForeground@RPhCltUssd@@IAEHXZ @ 19 NONAME ; int RPhCltUssd::AppToForeground(void) - ?AsIPCStruct@TPhCltExtPhoneDialData@@QBEXAAVTPhCltCallArgs@@@Z @ 20 NONAME ; void TPhCltExtPhoneDialData::AsIPCStruct(class TPhCltCallArgs &) const - ?Bearer@TPhCltExtPhoneDialData@@QBEABV?$TBuf8@$0O@@@XZ @ 21 NONAME ; class TBuf8<14> const & TPhCltExtPhoneDialData::Bearer(void) const - ?CallType@TPhCltExtPhoneDialData@@QBE?AW4TPhCltCallType@@XZ @ 22 NONAME ; enum TPhCltCallType TPhCltExtPhoneDialData::CallType(void) const - ?CancelNotifyCallAttempt@RPhCltCallNotify@@QBEXXZ @ 23 NONAME ; void RPhCltCallNotify::CancelNotifyCallAttempt(void) const - ?CancelNotifyPhoneStatusRequest@RPhCltCallNotify@@QBEXXZ @ 24 NONAME ; void RPhCltCallNotify::CancelNotifyPhoneStatusRequest(void) const - ?CancelReportPhoneStatus@RPhCltCallNotify@@QBEXXZ @ 25 NONAME ; void RPhCltCallNotify::CancelReportPhoneStatus(void) const - ?CancelSend@RPhCltUssd@@QAEXXZ @ 26 NONAME ; void RPhCltUssd::CancelSend(void) - ?Close@RPhCltCallNotify@@QAEXXZ @ 27 NONAME ; void RPhCltCallNotify::Close(void) - ?Close@RPhCltEmergencyNumber@@QAEXXZ @ 28 NONAME ; void RPhCltEmergencyNumber::Close(void) - ?Close@RPhCltIhf@@QAEXXZ @ 29 NONAME ; void RPhCltIhf::Close(void) - ?Close@RPhCltResourceFile@@QAEXXZ @ 30 NONAME ; void RPhCltResourceFile::Close(void) - ?Close@RPhCltUssd@@QAEXXZ @ 31 NONAME ; void RPhCltUssd::Close(void) - ?Connect@RPhCltServer@@QAEHH@Z @ 32 NONAME ; int RPhCltServer::Connect(int) - ?ContactId@TPhCltExtPhoneDialData@@QBEJXZ @ 33 NONAME ; long TPhCltExtPhoneDialData::ContactId(void) const - ?CreateAll@RPhCltServer@@QAEXAAVTRequestStatus@@@Z @ 34 NONAME ; void RPhCltServer::CreateAll(class TRequestStatus &) - ?DialData@CPhCltDialer@@QAEAAVTPhCltExtPhoneDialData@@XZ @ 35 NONAME ; class TPhCltExtPhoneDialData & CPhCltDialer::DialData(void) - ?Emergency@TPhCltExtPhoneDialData@@QBEHXZ @ 36 NONAME ; int TPhCltExtPhoneDialData::Emergency(void) const - ?EndOtherCalls@TPhCltExtPhoneDialData@@QBEHXZ @ 37 NONAME ; int TPhCltExtPhoneDialData::EndOtherCalls(void) const - ?ExecuteLD@CPhCltDialer@@QAEXXZ @ 38 NONAME ; void CPhCltDialer::ExecuteLD(void) - ?ExternalizeL@CPhCltEmergencyTelNumber@@QBEXAAVRWriteStream@@@Z @ 39 NONAME ; void CPhCltEmergencyTelNumber::ExternalizeL(class RWriteStream &) const - ?InternalizeL@CPhCltEmergencyTelNumber@@QAEXAAVRReadStream@@@Z @ 40 NONAME ; void CPhCltEmergencyTelNumber::InternalizeL(class RReadStream &) - ?IsEmergencyPhoneNumber@RPhCltEmergencyNumber@@QAEHAAV?$TBuf@$0GE@@@AAHW4TPhCltEmergencyNumberQueryMode@@@Z @ 41 NONAME ; int RPhCltEmergencyNumber::IsEmergencyPhoneNumber(class TBuf<100> &, int &, enum TPhCltEmergencyNumberQueryMode) - ?IsEmergenyPhoneNumber@RPhCltEmergencyNumber@@QAEHABV?$TBuf@$0GE@@@AAHW4TPhCltEmergencyNumberQueryMode@@@Z @ 42 NONAME ; int RPhCltEmergencyNumber::IsEmergenyPhoneNumber(class TBuf<100> const &, int &, enum TPhCltEmergencyNumberQueryMode) - ?IsValidChar@PhCltUtils@@SAHVTChar@@@Z @ 43 NONAME ; int PhCltUtils::IsValidChar(class TChar) - ?MCC@CPhCltEmergencyTelNumber@@QBEGXZ @ 44 NONAME ; unsigned short CPhCltEmergencyTelNumber::MCC(void) const - ?MNC@CPhCltEmergencyTelNumber@@QBEGXZ @ 45 NONAME ; unsigned short CPhCltEmergencyTelNumber::MNC(void) const - ?Name@TPhCltExtPhoneDialData@@QBEABV?$TBuf@$0DC@@@XZ @ 46 NONAME ; class TBuf<50> const & TPhCltExtPhoneDialData::Name(void) const - ?NewL@CPhCltDialer@@SAPAV1@XZ @ 47 NONAME ; class CPhCltDialer * CPhCltDialer::NewL(void) - ?NewL@CPhCltExtPhoneBase@@SAPAV1@PAVMPhCltExtPhoneObserver@@@Z @ 48 NONAME ; class CPhCltExtPhoneBase * CPhCltExtPhoneBase::NewL(class MPhCltExtPhoneObserver *) - ?NewL@CPhCltUssd@@SAPAV1@H@Z @ 49 NONAME ; class CPhCltUssd * CPhCltUssd::NewL(int) - ?NewL@CPhCltUssdSatClient@@SAPAV1@H@Z @ 50 NONAME ; class CPhCltUssdSatClient * CPhCltUssdSatClient::NewL(int) - ?NewLC@CPhCltEmergencyTelNumber@@SAPAV1@XZ @ 51 NONAME ; class CPhCltEmergencyTelNumber * CPhCltEmergencyTelNumber::NewLC(void) - ?NotifyCallAttempt@RPhCltCallNotify@@QAEXAAVTRequestStatus@@AAVTDes8@@@Z @ 52 NONAME ; void RPhCltCallNotify::NotifyCallAttempt(class TRequestStatus &, class TDes8 &) - ?NotifyPhoneStatusRequest@RPhCltCallNotify@@QAEXAAVTRequestStatus@@@Z @ 53 NONAME ; void RPhCltCallNotify::NotifyPhoneStatusRequest(class TRequestStatus &) - ?NumberType@TPhCltExtPhoneDialData@@QBEHXZ @ 54 NONAME ; int TPhCltExtPhoneDialData::NumberType(void) const - ?Open@RPhCltCallNotify@@QAEHAAVRPhCltServer@@@Z @ 55 NONAME ; int RPhCltCallNotify::Open(class RPhCltServer &) - ?Open@RPhCltEmergencyNumber@@QAEHAAVRPhCltServer@@@Z @ 56 NONAME ; int RPhCltEmergencyNumber::Open(class RPhCltServer &) - ?Open@RPhCltIhf@@QAEHAAVRPhCltServer@@H@Z @ 57 NONAME ; int RPhCltIhf::Open(class RPhCltServer &, int) - ?Open@RPhCltUssd@@QAEHAAVRPhCltServer@@@Z @ 58 NONAME ; int RPhCltUssd::Open(class RPhCltServer &) - ?OpenL@RPhCltResourceFile@@QAEXAAVCCoeEnv@@@Z @ 59 NONAME ; void RPhCltResourceFile::OpenL(class CCoeEnv &) - ?Redial@TPhCltExtPhoneDialData@@QBEHXZ @ 60 NONAME ; int TPhCltExtPhoneDialData::Redial(void) const - ?RemoveInvalidChars@PhCltUtils@@SAXAAVTDes16@@@Z @ 61 NONAME ; void PhCltUtils::RemoveInvalidChars(class TDes16 &) - ?RemoveURIPrefixdAndDomainChars@PhCltUtils@@SAXAAVTDes16@@@Z @ 62 NONAME ; void PhCltUtils::RemoveURIPrefixdAndDomainChars(class TDes16 &) - ?ReportPhoneStatus@RPhCltCallNotify@@QAEXAAVTRequestStatus@@H@Z @ 63 NONAME ; void RPhCltCallNotify::ReportPhoneStatus(class TRequestStatus &, int) - ?RespondClient@RPhCltCallNotify@@QAEHH@Z @ 64 NONAME ; int RPhCltCallNotify::RespondClient(int) - ?ReturnToNumberEntryOnFailure@TPhCltExtPhoneDialData@@QBEHXZ @ 65 NONAME ; int TPhCltExtPhoneDialData::ReturnToNumberEntryOnFailure(void) const - ?SATCall@TPhCltExtPhoneDialData@@QBEHXZ @ 66 NONAME ; int TPhCltExtPhoneDialData::SATCall(void) const - ?SendSatMessage@CPhCltUssdSatClient@@QAEHABVTDesC16@@EAAVTDes16@@AAHAAE@Z @ 67 NONAME ; int CPhCltUssdSatClient::SendSatMessage(class TDesC16 const &, unsigned char, class TDes16 &, int &, unsigned char &) - ?SendSatMessageCancel@CPhCltUssdSatClient@@QAEXXZ @ 68 NONAME ; void CPhCltUssdSatClient::SendSatMessageCancel(void) - ?SendUssd@CPhCltUssd@@QAEHABVTDesC16@@@Z @ 69 NONAME ; int CPhCltUssd::SendUssd(class TDesC16 const &) - ?SendUssd@CPhCltUssd@@QAEHABVTDesC8@@@Z @ 70 NONAME ; int CPhCltUssd::SendUssd(class TDesC8 const &) - ?SendUssd@CPhCltUssd@@QAEHABVTDesC8@@E@Z @ 71 NONAME ; int CPhCltUssd::SendUssd(class TDesC8 const &, unsigned char) - ?SendUssd@RPhCltUssd@@QAEXAAVTRequestStatus@@ABVTDesC8@@1@Z @ 72 NONAME ; void RPhCltUssd::SendUssd(class TRequestStatus &, class TDesC8 const &, class TDesC8 const &) - ?SendUssdCancel@CPhCltUssd@@QAEXXZ @ 73 NONAME ; void CPhCltUssd::SendUssdCancel(void) - ?SetAllowMatch@TPhCltExtPhoneDialData@@QAEXH@Z @ 74 NONAME ; void TPhCltExtPhoneDialData::SetAllowMatch(int) - ?SetBearer@TPhCltExtPhoneDialData@@QAEXABV?$TBuf8@$0O@@@@Z @ 75 NONAME ; void TPhCltExtPhoneDialData::SetBearer(class TBuf8<14> const &) - ?SetCallType@TPhCltExtPhoneDialData@@QAEXW4TPhCltCallType@@@Z @ 76 NONAME ; void TPhCltExtPhoneDialData::SetCallType(enum TPhCltCallType) - ?SetContactId@TPhCltExtPhoneDialData@@QAEXJ@Z @ 77 NONAME ; void TPhCltExtPhoneDialData::SetContactId(long) - ?SetEmergency@TPhCltExtPhoneDialData@@QAEXH@Z @ 78 NONAME ; void TPhCltExtPhoneDialData::SetEmergency(int) - ?SetEndOtherCalls@TPhCltExtPhoneDialData@@QAEXH@Z @ 79 NONAME ; void TPhCltExtPhoneDialData::SetEndOtherCalls(int) - ?SetIhfMode@RPhCltIhf@@QAEHHH@Z @ 80 NONAME ; int RPhCltIhf::SetIhfMode(int, int) - ?SetIhfModeFromPhone@RPhCltIhf@@QAEHHH@Z @ 81 NONAME ; int RPhCltIhf::SetIhfModeFromPhone(int, int) - ?SetL@CPhCltEmergencyTelNumber@@QAEXABV?$TBuf@$0GE@@@GG@Z @ 82 NONAME ; void CPhCltEmergencyTelNumber::SetL(class TBuf<100> const &, unsigned short, unsigned short) - ?SetName@TPhCltExtPhoneDialData@@QAEXABV?$TBuf@$0DC@@@@Z @ 83 NONAME ; void TPhCltExtPhoneDialData::SetName(class TBuf<50> const &) - ?SetNumberType@TPhCltExtPhoneDialData@@QAEXH@Z @ 84 NONAME ; void TPhCltExtPhoneDialData::SetNumberType(int) - ?SetRedial@TPhCltExtPhoneDialData@@QAEXH@Z @ 85 NONAME ; void TPhCltExtPhoneDialData::SetRedial(int) - ?SetReturnToNumberEntryOnFailure@TPhCltExtPhoneDialData@@QAEXH@Z @ 86 NONAME ; void TPhCltExtPhoneDialData::SetReturnToNumberEntryOnFailure(int) - ?SetSATCall@TPhCltExtPhoneDialData@@QAEXH@Z @ 87 NONAME ; void TPhCltExtPhoneDialData::SetSATCall(int) - ?SetShowNumber@TPhCltExtPhoneDialData@@QAEXH@Z @ 88 NONAME ; void TPhCltExtPhoneDialData::SetShowNumber(int) - ?SetSubAddress@TPhCltExtPhoneDialData@@QAEXABV?$TBuf@$0BF@@@@Z @ 89 NONAME ; void TPhCltExtPhoneDialData::SetSubAddress(class TBuf<21> const &) - ?SetTelephoneNumber@TPhCltExtPhoneDialData@@QAEXABV?$TBuf@$0GE@@@@Z @ 90 NONAME ; void TPhCltExtPhoneDialData::SetTelephoneNumber(class TBuf<100> const &) - ?SetWindowGroup@TPhCltExtPhoneDialData@@QAEXH@Z @ 91 NONAME ; void TPhCltExtPhoneDialData::SetWindowGroup(int) - ?ShowNumber@TPhCltExtPhoneDialData@@QBEHXZ @ 92 NONAME ; int TPhCltExtPhoneDialData::ShowNumber(void) const - ?StartUssdEditor@RPhCltUssd@@QBEHXZ @ 93 NONAME ; int RPhCltUssd::StartUssdEditor(void) const - ?SubAddress@TPhCltExtPhoneDialData@@QBEABV?$TBuf@$0BF@@@XZ @ 94 NONAME ; class TBuf<21> const & TPhCltExtPhoneDialData::SubAddress(void) const - ?TelNumber@CPhCltEmergencyTelNumber@@QBEABVTDesC16@@XZ @ 95 NONAME ; class TDesC16 const & CPhCltEmergencyTelNumber::TelNumber(void) const - ?TelephoneNumber@TPhCltExtPhoneDialData@@QBEABV?$TBuf@$0GE@@@XZ @ 96 NONAME ; class TBuf<100> const & TPhCltExtPhoneDialData::TelephoneNumber(void) const - ?WindowGroupId@TPhCltExtPhoneDialData@@QBEHXZ @ 97 NONAME ; int TPhCltExtPhoneDialData::WindowGroupId(void) const - ?SendKeyPressed@TPhCltExtPhoneDialData@@QBEHXZ @ 98 NONAME ; int TPhCltExtPhoneDialData::SendKeyPressed(void) const - ?SetSendKeyPressed@TPhCltExtPhoneDialData@@QAEXH@Z @ 99 NONAME ; void TPhCltExtPhoneDialData::SetSendKeyPressed(int) - ?RedialMaximumDuration@TPhCltExtPhoneDialData@@QBE?AVTTimeIntervalSeconds@@XZ @ 100 NONAME ; class TTimeIntervalSeconds TPhCltExtPhoneDialData::RedialMaximumDuration(void) const - ?SetRedialMaximumDuration@TPhCltExtPhoneDialData@@QAEXVTTimeIntervalSeconds@@@Z @ 101 NONAME ; void TPhCltExtPhoneDialData::SetRedialMaximumDuration(class TTimeIntervalSeconds) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Bwins/PHONECLIENT_AiwExtU.DEF --- a/phoneclientserver/phoneclient/Bwins/PHONECLIENT_AiwExtU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -EXPORTS - ??0RPhCltResourceFile@@QAE@XZ @ 1 NONAME ; RPhCltResourceFile::RPhCltResourceFile(void) - ??0RPhCltServer@@QAE@XZ @ 2 NONAME ; RPhCltServer::RPhCltServer(void) - ??1CPhCltCallNotify@@UAE@XZ @ 3 NONAME ; CPhCltCallNotify::~CPhCltCallNotify(void) - ??1CPhCltExtPhoneDialData@@UAE@XZ @ 4 NONAME ; CPhCltExtPhoneDialData::~CPhCltExtPhoneDialData(void) - ??1CPhCltUssdSatClient@@UAE@XZ @ 5 NONAME ; CPhCltUssdSatClient::~CPhCltUssdSatClient(void) - ?AllowMatch@CPhCltExtPhoneDialData@@UBEHXZ @ 6 NONAME ; int CPhCltExtPhoneDialData::AllowMatch(void) const - ?Bearer@CPhCltExtPhoneDialData@@UBEABV?$TBuf8@$0O@@@XZ @ 7 NONAME ; class TBuf8<14> const & CPhCltExtPhoneDialData::Bearer(void) const - ?CalculatePackageSize@CPhCltExtPhoneDialData@@QBEHXZ @ 8 NONAME ; int CPhCltExtPhoneDialData::CalculatePackageSize(void) const - ?CallType@CPhCltExtPhoneDialData@@UBE?AW4TPhCltCallType@@XZ @ 9 NONAME ; enum TPhCltCallType CPhCltExtPhoneDialData::CallType(void) const - ?CancelNotifyDialRequest@CPhCltCallNotify@@QAEXXZ @ 10 NONAME ; void CPhCltCallNotify::CancelNotifyDialRequest(void) - ?CancelNotifyComHandCommand@CPhCltCallNotify@@QBEXXZ @ 11 NONAME ; void CPhCltCallNotify::CancelNotifyComHandCommand(void) const - ?CancelNotifyEmergencyCall@CPhCltCallNotify@@QBEXXZ @ 12 NONAME ; void CPhCltCallNotify::CancelNotifyEmergencyCall(void) const - ?Close@CPhCltCallNotify@@QAEXXZ @ 13 NONAME ; void CPhCltCallNotify::Close(void) - ?Close@RPhCltResourceFile@@QAEXXZ @ 14 NONAME ; void RPhCltResourceFile::Close(void) - ?Connect@RPhCltServer@@QAEHH@Z @ 15 NONAME ; int RPhCltServer::Connect(int) - ?ContactLink@CPhCltExtPhoneDialData@@UBEABVTDesC8@@XZ @ 16 NONAME ; class TDesC8 const & CPhCltExtPhoneDialData::ContactLink(void) const - ?CreateAll@RPhCltServer@@QAEXAAVTRequestStatus@@@Z @ 17 NONAME ; void RPhCltServer::CreateAll(class TRequestStatus &) - ?EndOtherCalls@CPhCltExtPhoneDialData@@UBEHXZ @ 18 NONAME ; int CPhCltExtPhoneDialData::EndOtherCalls(void) const - ?InitiateCall@CPhCltExtPhoneDialData@@UBEHXZ @ 19 NONAME ; int CPhCltExtPhoneDialData::InitiateCall(void) const - ?IsValidChar@PhCltUtils@@SAHVTChar@@@Z @ 20 NONAME ; int PhCltUtils::IsValidChar(class TChar) - ?Name@CPhCltExtPhoneDialData@@UBEABV?$TBuf@$0DC@@@XZ @ 21 NONAME ; class TBuf<50> const & CPhCltExtPhoneDialData::Name(void) const - ?NewL@CPhCltCallNotify@@SAPAV1@XZ @ 22 NONAME ; class CPhCltCallNotify * CPhCltCallNotify::NewL(void) - ?NewL@CPhCltCommandHandler@@SAPAV1@XZ @ 23 NONAME ; class CPhCltCommandHandler * CPhCltCommandHandler::NewL(void) - ?NewL@CPhCltEmergencyCall@@SAPAV1@PAVMPhCltEmergencyCallObserver@@@Z @ 24 NONAME ; class CPhCltEmergencyCall * CPhCltEmergencyCall::NewL(class MPhCltEmergencyCallObserver *) - ?NewL@CPhCltExtPhoneBase@@SAPAV1@PAVMPhCltExtPhoneObserver@@@Z @ 25 NONAME ; class CPhCltExtPhoneBase * CPhCltExtPhoneBase::NewL(class MPhCltExtPhoneObserver *) - ?NewL@CPhCltExtPhoneDialData@@SAPAV1@ABVTDesC8@@@Z @ 26 NONAME ; class CPhCltExtPhoneDialData * CPhCltExtPhoneDialData::NewL(class TDesC8 const &) - ?NewL@CPhCltExtPhoneDialData@@SAPAV1@XZ @ 27 NONAME ; class CPhCltExtPhoneDialData * CPhCltExtPhoneDialData::NewL(void) - ?NewL@CPhCltImageHandler@@SAPAV1@XZ @ 28 NONAME ; class CPhCltImageHandler * CPhCltImageHandler::NewL(void) - ?NewL@CPhCltMessenger@@SAPAV1@ABVTUid@@ABH@Z @ 29 NONAME ; class CPhCltMessenger * CPhCltMessenger::NewL(class TUid const &, int const &) - ?NewL@CPhCltUssd@@SAPAV1@H@Z @ 30 NONAME ; class CPhCltUssd * CPhCltUssd::NewL(int) - ?NewL@CPhCltUssdInt@@SAPAV1@H@Z @ 31 NONAME ; class CPhCltUssdInt * CPhCltUssdInt::NewL(int) - ?NewL@CPhCltUssdSatClient@@SAPAV1@H@Z @ 32 NONAME ; class CPhCltUssdSatClient * CPhCltUssdSatClient::NewL(int) - ?NewLC@CPhCltExtPhoneDialData@@SAPAV1@ABVTDesC8@@@Z @ 33 NONAME ; class CPhCltExtPhoneDialData * CPhCltExtPhoneDialData::NewLC(class TDesC8 const &) - ?NewLC@CPhCltExtPhoneDialData@@SAPAV1@XZ @ 34 NONAME ; class CPhCltExtPhoneDialData * CPhCltExtPhoneDialData::NewLC(void) - ?NotifyDialRequest@CPhCltCallNotify@@QAEXPAVMPhCltDialRequestObserver@@@Z @ 35 NONAME ; void CPhCltCallNotify::NotifyDialRequest(class MPhCltDialRequestObserver *) - ?NotifyComHandCommand@CPhCltCallNotify@@QAEXPAVMPhCltComHandRequestObserver@@AAVTDes8@@@Z @ 36 NONAME ; void CPhCltCallNotify::NotifyComHandCommand( class MPhCltComHandRequestObserver *) - ?NotifyEmergencyCall@CPhCltCallNotify@@QAEXPAVMPhCltDialEmergencyRequestObserver@@AAVTDesC16@@@Z @ 37 NONAME ; void CPhCltCallNotify::NotifyEmergencyCall(class MPhCltDialEmergencyRequestObserver *, class TDesC16 &) - ?Open@CPhCltCallNotify@@QAEHAAVRPhCltServer@@@Z @ 38 NONAME ; int CPhCltCallNotify::Open(class RPhCltServer &) - ?OpenL@RPhCltResourceFile@@QAEXAAVCCoeEnv@@@Z @ 39 NONAME ; void RPhCltResourceFile::OpenL(class CCoeEnv &) - ?PackLC@CPhCltExtPhoneDialData@@QAEPAVHBufC8@@XZ @ 40 NONAME ; class HBufC8 * CPhCltExtPhoneDialData::PackLC(void) - ?Redial@CPhCltExtPhoneDialData@@UBEHXZ @ 41 NONAME ; int CPhCltExtPhoneDialData::Redial(void) const - ?RedialMaximumDuration@CPhCltExtPhoneDialData@@UBE?BVTTimeIntervalSeconds@@XZ @ 42 NONAME ; class TTimeIntervalSeconds const CPhCltExtPhoneDialData::RedialMaximumDuration(void) const - ?RemoveInvalidChars@PhCltUtils@@SAXAAVTDes16@@@Z @ 43 NONAME ; void PhCltUtils::RemoveInvalidChars(class TDes16 &) - ?RemoveURIPrefixdAndDomainChars@PhCltUtils@@SAXAAVTDes16@@@Z @ 44 NONAME ; void PhCltUtils::RemoveURIPrefixdAndDomainChars(class TDes16 &) - ?RespondClient@CPhCltCallNotify@@QAEHH@Z @ 45 NONAME ; int CPhCltCallNotify::RespondClient(int) - ?RespondComHandClient@CPhCltCallNotify@@QAEHH@Z @ 46 NONAME ; int CPhCltCallNotify::RespondComHandClient(int) - ?RespondEmergencyToClient@CPhCltCallNotify@@QAEHH@Z @ 47 NONAME ; int CPhCltCallNotify::RespondEmergencyToClient(int) - ?SATCall@CPhCltExtPhoneDialData@@UBEHXZ @ 48 NONAME ; int CPhCltExtPhoneDialData::SATCall(void) const - ?SendKeyPressed@CPhCltExtPhoneDialData@@UBEHXZ @ 49 NONAME ; int CPhCltExtPhoneDialData::SendKeyPressed(void) const - ?SendSatMessage@CPhCltUssdSatClient@@QAEHABVTDesC16@@EAAVTDes16@@AAHAAE@Z @ 50 NONAME ; int CPhCltUssdSatClient::SendSatMessage(class TDesC16 const &, unsigned char, class TDes16 &, int &, unsigned char &) - ?SendSatMessageCancel@CPhCltUssdSatClient@@QAEXXZ @ 51 NONAME ; void CPhCltUssdSatClient::SendSatMessageCancel(void) - ?ServiceId@CPhCltExtPhoneDialData@@UBEKXZ @ 52 NONAME ; unsigned long CPhCltExtPhoneDialData::ServiceId(void) const - ?SetAllowMatch@CPhCltExtPhoneDialData@@UAEXH@Z @ 53 NONAME ; void CPhCltExtPhoneDialData::SetAllowMatch(int) - ?SetBearerL@CPhCltExtPhoneDialData@@UAEXABV?$TBuf8@$0O@@@@Z @ 54 NONAME ; void CPhCltExtPhoneDialData::SetBearerL(class TBuf8<14> const &) - ?SetCallType@CPhCltExtPhoneDialData@@UAEXW4TPhCltCallType@@@Z @ 55 NONAME ; void CPhCltExtPhoneDialData::SetCallType(enum TPhCltCallType) - ?SetContactLinkL@CPhCltExtPhoneDialData@@UAEXABVTDesC8@@@Z @ 56 NONAME ; void CPhCltExtPhoneDialData::SetContactLinkL(class TDesC8 const &) - ?SetEndOtherCalls@CPhCltExtPhoneDialData@@UAEXH@Z @ 57 NONAME ; void CPhCltExtPhoneDialData::SetEndOtherCalls(int) - ?SetInitiateCall@CPhCltExtPhoneDialData@@UAEXH@Z @ 58 NONAME ; void CPhCltExtPhoneDialData::SetInitiateCall(int) - ?SetNameL@CPhCltExtPhoneDialData@@UAEXABV?$TBuf@$0DC@@@@Z @ 59 NONAME ; void CPhCltExtPhoneDialData::SetNameL(class TBuf<50> const &) - ?SetRedial@CPhCltExtPhoneDialData@@UAEXH@Z @ 60 NONAME ; void CPhCltExtPhoneDialData::SetRedial(int) - ?SetRedialMaximumDuration@CPhCltExtPhoneDialData@@UAEXVTTimeIntervalSeconds@@@Z @ 61 NONAME ; void CPhCltExtPhoneDialData::SetRedialMaximumDuration(class TTimeIntervalSeconds) - ?SetSATCall@CPhCltExtPhoneDialData@@UAEXH@Z @ 62 NONAME ; void CPhCltExtPhoneDialData::SetSATCall(int) - ?SetSendKeyPressed@CPhCltExtPhoneDialData@@UAEXH@Z @ 63 NONAME ; void CPhCltExtPhoneDialData::SetSendKeyPressed(int) - ?SetServiceId@CPhCltExtPhoneDialData@@UAEXK@Z @ 64 NONAME ; void CPhCltExtPhoneDialData::SetServiceId(unsigned long) - ?SetShowNumber@CPhCltExtPhoneDialData@@UAEXH@Z @ 65 NONAME ; void CPhCltExtPhoneDialData::SetShowNumber(int) - ?SetSubAddressL@CPhCltExtPhoneDialData@@UAEXABV?$TBuf@$0BF@@@@Z @ 66 NONAME ; void CPhCltExtPhoneDialData::SetSubAddressL(class TBuf<21> const &) - ?SetTelephoneNumber@CPhCltExtPhoneDialData@@UAEXABV?$TBuf@$0GE@@@@Z @ 67 NONAME ; void CPhCltExtPhoneDialData::SetTelephoneNumber(class TBuf<100> const &) - ?SetUUIL@CPhCltExtPhoneDialData@@UAEXABVTDesC16@@@Z @ 68 NONAME ; void CPhCltExtPhoneDialData::SetUUIL(class TDesC16 const &) - ?SetWindowGroup@CPhCltExtPhoneDialData@@UAEXH@Z @ 69 NONAME ; void CPhCltExtPhoneDialData::SetWindowGroup(int) - ?ShowNumber@CPhCltExtPhoneDialData@@UBEHXZ @ 70 NONAME ; int CPhCltExtPhoneDialData::ShowNumber(void) const - ?SubAddress@CPhCltExtPhoneDialData@@UBEABV?$TBuf@$0BF@@@XZ @ 71 NONAME ; class TBuf<21> const & CPhCltExtPhoneDialData::SubAddress(void) const - ?TelephoneNumber@CPhCltExtPhoneDialData@@UBEABV?$TBuf@$0GE@@@XZ @ 72 NONAME ; class TBuf<100> const & CPhCltExtPhoneDialData::TelephoneNumber(void) const - ?UUI@CPhCltExtPhoneDialData@@UBEABVTDesC16@@XZ @ 73 NONAME ; class TDesC16 const & CPhCltExtPhoneDialData::UUI(void) const - ?WindowGroup@CPhCltExtPhoneDialData@@UBEHXZ @ 74 NONAME ; int CPhCltExtPhoneDialData::WindowGroup(void) const - - - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Bwins/PHONECLIENT_AiwU.DEF --- a/phoneclientserver/phoneclient/Bwins/PHONECLIENT_AiwU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -EXPORTS - ??0RPhCltIhf@@QAE@XZ @ 1 NONAME ; RPhCltIhf::RPhCltIhf(void) - ??0RPhCltResourceFile@@QAE@XZ @ 2 NONAME ; RPhCltResourceFile::RPhCltResourceFile(void) - ??0RPhCltServer@@QAE@XZ @ 3 NONAME ; RPhCltServer::RPhCltServer(void) - ??0RPhCltUssd@@QAE@XZ @ 4 NONAME ; RPhCltUssd::RPhCltUssd(void) - ??1CPhCltCallNotify@@UAE@XZ @ 5 NONAME ; CPhCltCallNotify::~CPhCltCallNotify(void) - ??1CPhCltExtPhoneDialData@@UAE@XZ @ 6 NONAME ; CPhCltExtPhoneDialData::~CPhCltExtPhoneDialData(void) - ??1CPhCltUssd@@UAE@XZ @ 7 NONAME ; CPhCltUssd::~CPhCltUssd(void) - ??1CPhCltUssdSatClient@@UAE@XZ @ 8 NONAME ; CPhCltUssdSatClient::~CPhCltUssdSatClient(void) - ?AllowMatch@CPhCltExtPhoneDialData@@QBEHXZ @ 9 NONAME ; int CPhCltExtPhoneDialData::AllowMatch(void) const - ?AppStarting@RPhCltUssd@@IAEHXZ @ 10 NONAME ; int RPhCltUssd::AppStarting(void) - ?AppTerminating@RPhCltUssd@@IAEHW4TPhCltUssdAppExitReason@@@Z @ 11 NONAME ; int RPhCltUssd::AppTerminating(enum TPhCltUssdAppExitReason) - ?AppToBackground@RPhCltUssd@@IAEHXZ @ 12 NONAME ; int RPhCltUssd::AppToBackground(void) - ?AppToForeground@RPhCltUssd@@IAEHXZ @ 13 NONAME ; int RPhCltUssd::AppToForeground(void) - ?Bearer@CPhCltExtPhoneDialData@@QBEABV?$TBuf8@$0O@@@XZ @ 14 NONAME ; class TBuf8<14> const & CPhCltExtPhoneDialData::Bearer(void) const - ?CalculatePackageSize@CPhCltExtPhoneDialData@@QBEHXZ @ 15 NONAME ; int CPhCltExtPhoneDialData::CalculatePackageSize(void) const - ?CallType@CPhCltExtPhoneDialData@@QBE?AW4TPhCltCallType@@XZ @ 16 NONAME ; enum TPhCltCallType CPhCltExtPhoneDialData::CallType(void) const - ?CancelNotifyCallAttempt@CPhCltCallNotify@@QBEXXZ @ 17 NONAME ; void CPhCltCallNotify::CancelNotifyCallAttempt(void) const - ?CancelNotifyEmergencyCall@CPhCltCallNotify@@QBEXXZ @ 18 NONAME ; void CPhCltCallNotify::CancelNotifyEmergencyCall(void) const - ?CancelSend@RPhCltUssd@@QAEXXZ @ 19 NONAME ; void RPhCltUssd::CancelSend(void) - ?Close@CPhCltCallNotify@@QAEXXZ @ 20 NONAME ; void CPhCltCallNotify::Close(void) - ?Close@RPhCltIhf@@QAEXXZ @ 21 NONAME ; void RPhCltIhf::Close(void) - ?Close@RPhCltResourceFile@@QAEXXZ @ 22 NONAME ; void RPhCltResourceFile::Close(void) - ?Close@RPhCltUssd@@QAEXXZ @ 23 NONAME ; void RPhCltUssd::Close(void) - ?Connect@RPhCltServer@@QAEHH@Z @ 24 NONAME ; int RPhCltServer::Connect(int) - ?ContactLink@CPhCltExtPhoneDialData@@QBEABVTDesC8@@XZ @ 25 NONAME ; class TDesC8 const & CPhCltExtPhoneDialData::ContactLink(void) const - ?CreateAll@RPhCltServer@@QAEXAAVTRequestStatus@@@Z @ 26 NONAME ; void RPhCltServer::CreateAll(class TRequestStatus &) - ?EndOtherCalls@CPhCltExtPhoneDialData@@QBEHXZ @ 27 NONAME ; int CPhCltExtPhoneDialData::EndOtherCalls(void) const - ?InitiateCall@CPhCltExtPhoneDialData@@QBEHXZ @ 28 NONAME ; int CPhCltExtPhoneDialData::InitiateCall(void) const - ?IsValidChar@PhCltUtils@@SAHVTChar@@@Z @ 29 NONAME ; int PhCltUtils::IsValidChar(class TChar) - ?Name@CPhCltExtPhoneDialData@@QBEABV?$TBuf@$0DC@@@XZ @ 30 NONAME ; class TBuf<50> const & CPhCltExtPhoneDialData::Name(void) const - ?NewL@CPhCltCallNotify@@SAPAV1@XZ @ 31 NONAME ; class CPhCltCallNotify * CPhCltCallNotify::NewL(void) - ?NewL@CPhCltEmergencyCall@@SAPAV1@PAVMPhCltEmergencyCallObserver@@@Z @ 32 NONAME ; class CPhCltEmergencyCall * CPhCltEmergencyCall::NewL(class MPhCltEmergencyCallObserver *) - ?NewL@CPhCltExtPhoneBase@@SAPAV1@PAVMPhCltExtPhoneObserver@@@Z @ 33 NONAME ; class CPhCltExtPhoneBase * CPhCltExtPhoneBase::NewL(class MPhCltExtPhoneObserver *) - ?NewL@CPhCltExtPhoneDialData@@SAPAV1@ABVTDesC8@@@Z @ 34 NONAME ; class CPhCltExtPhoneDialData * CPhCltExtPhoneDialData::NewL(class TDesC8 const &) - ?NewL@CPhCltExtPhoneDialData@@SAPAV1@XZ @ 35 NONAME ; class CPhCltExtPhoneDialData * CPhCltExtPhoneDialData::NewL(void) - ?NewL@CPhCltUssd@@SAPAV1@H@Z @ 36 NONAME ; class CPhCltUssd * CPhCltUssd::NewL(int) - ?NewL@CPhCltUssdSatClient@@SAPAV1@H@Z @ 37 NONAME ; class CPhCltUssdSatClient * CPhCltUssdSatClient::NewL(int) - ?NewLC@CPhCltExtPhoneDialData@@SAPAV1@ABVTDesC8@@@Z @ 38 NONAME ; class CPhCltExtPhoneDialData * CPhCltExtPhoneDialData::NewLC(class TDesC8 const &) - ?NewLC@CPhCltExtPhoneDialData@@SAPAV1@XZ @ 39 NONAME ; class CPhCltExtPhoneDialData * CPhCltExtPhoneDialData::NewLC(void) - ?NotifyCallAttempt@CPhCltCallNotify@@QAEXAAVTRequestStatus@@AAVCPhCltExtPhoneDialData@@@Z @ 40 NONAME ; void CPhCltCallNotify::NotifyCallAttempt(class TRequestStatus &, class CPhCltExtPhoneDialData &) - ?NotifyEmergencyCall@CPhCltCallNotify@@QAEXAAVTRequestStatus@@AAVTDesC16@@@Z @ 41 NONAME ; void CPhCltCallNotify::NotifyEmergencyCall(class TRequestStatus &, class TDesC16 &) - ?Open@CPhCltCallNotify@@QAEHAAVRPhCltServer@@@Z @ 42 NONAME ; int CPhCltCallNotify::Open(class RPhCltServer &) - ?Open@RPhCltIhf@@QAEHAAVRPhCltServer@@H@Z @ 43 NONAME ; int RPhCltIhf::Open(class RPhCltServer &, int) - ?Open@RPhCltUssd@@QAEHAAVRPhCltServer@@@Z @ 44 NONAME ; int RPhCltUssd::Open(class RPhCltServer &) - ?OpenL@RPhCltResourceFile@@QAEXAAVCCoeEnv@@@Z @ 45 NONAME ; void RPhCltResourceFile::OpenL(class CCoeEnv &) - ?PackLC@CPhCltExtPhoneDialData@@QAEPAVHBufC8@@XZ @ 46 NONAME ; class HBufC8 * CPhCltExtPhoneDialData::PackLC(void) - ?Redial@CPhCltExtPhoneDialData@@QBEHXZ @ 47 NONAME ; int CPhCltExtPhoneDialData::Redial(void) const - ?RedialMaximumDuration@CPhCltExtPhoneDialData@@QBE?BVTTimeIntervalSeconds@@XZ @ 48 NONAME ; class TTimeIntervalSeconds const CPhCltExtPhoneDialData::RedialMaximumDuration(void) const - ?RemoveInvalidChars@PhCltUtils@@SAXAAVTDes16@@@Z @ 49 NONAME ; void PhCltUtils::RemoveInvalidChars(class TDes16 &) - ?RemoveURIPrefixdAndDomainChars@PhCltUtils@@SAXAAVTDes16@@@Z @ 50 NONAME ; void PhCltUtils::RemoveURIPrefixdAndDomainChars(class TDes16 &) - ?RespondClient@CPhCltCallNotify@@QAEHH@Z @ 51 NONAME ; int CPhCltCallNotify::RespondClient(int) - ?RespondEmergencyToClient@CPhCltCallNotify@@QAEHH@Z @ 52 NONAME ; int CPhCltCallNotify::RespondEmergencyToClient(int) - ?SATCall@CPhCltExtPhoneDialData@@QBEHXZ @ 53 NONAME ; int CPhCltExtPhoneDialData::SATCall(void) const - ?SendKeyPressed@CPhCltExtPhoneDialData@@QBEHXZ @ 54 NONAME ; int CPhCltExtPhoneDialData::SendKeyPressed(void) const - ?SendSatMessage@CPhCltUssdSatClient@@QAEHABVTDesC16@@EAAVTDes16@@AAHAAE@Z @ 55 NONAME ; int CPhCltUssdSatClient::SendSatMessage(class TDesC16 const &, unsigned char, class TDes16 &, int &, unsigned char &) - ?SendSatMessageCancel@CPhCltUssdSatClient@@QAEXXZ @ 56 NONAME ; void CPhCltUssdSatClient::SendSatMessageCancel(void) - ?SendUssd@CPhCltUssd@@QAEHABVTDesC16@@@Z @ 57 NONAME ; int CPhCltUssd::SendUssd(class TDesC16 const &) - ?SendUssd@CPhCltUssd@@QAEHABVTDesC8@@@Z @ 58 NONAME ; int CPhCltUssd::SendUssd(class TDesC8 const &) - ?SendUssd@CPhCltUssd@@QAEHABVTDesC8@@E@Z @ 59 NONAME ; int CPhCltUssd::SendUssd(class TDesC8 const &, unsigned char) - ?SendUssd@RPhCltUssd@@QAEXAAVTRequestStatus@@ABVTDesC8@@1@Z @ 60 NONAME ; void RPhCltUssd::SendUssd(class TRequestStatus &, class TDesC8 const &, class TDesC8 const &) - ?SendUssdCancel@CPhCltUssd@@QAEXXZ @ 61 NONAME ; void CPhCltUssd::SendUssdCancel(void) - ?SetAllowMatch@CPhCltExtPhoneDialData@@QAEXH@Z @ 62 NONAME ; void CPhCltExtPhoneDialData::SetAllowMatch(int) - ?SetBearerL@CPhCltExtPhoneDialData@@QAEXABV?$TBuf8@$0O@@@@Z @ 63 NONAME ; void CPhCltExtPhoneDialData::SetBearerL(class TBuf8<14> const &) - ?SetCallType@CPhCltExtPhoneDialData@@QAEXW4TPhCltCallType@@@Z @ 64 NONAME ; void CPhCltExtPhoneDialData::SetCallType(enum TPhCltCallType) - ?SetContactLinkL@CPhCltExtPhoneDialData@@QAEXABVTDesC8@@@Z @ 65 NONAME ; void CPhCltExtPhoneDialData::SetContactLinkL(class TDesC8 const &) - ?SetEndOtherCalls@CPhCltExtPhoneDialData@@QAEXH@Z @ 66 NONAME ; void CPhCltExtPhoneDialData::SetEndOtherCalls(int) - ?SetIhfMode@RPhCltIhf@@QAEHHH@Z @ 67 NONAME ; int RPhCltIhf::SetIhfMode(int, int) - ?SetIhfModeFromPhone@RPhCltIhf@@QAEHHH@Z @ 68 NONAME ; int RPhCltIhf::SetIhfModeFromPhone(int, int) - ?SetInitiateCall@CPhCltExtPhoneDialData@@QAEXH@Z @ 69 NONAME ; void CPhCltExtPhoneDialData::SetInitiateCall(int) - ?SetNameL@CPhCltExtPhoneDialData@@QAEXABV?$TBuf@$0DC@@@@Z @ 70 NONAME ; void CPhCltExtPhoneDialData::SetNameL(class TBuf<50> const &) - ?SetRedial@CPhCltExtPhoneDialData@@QAEXH@Z @ 71 NONAME ; void CPhCltExtPhoneDialData::SetRedial(int) - ?SetRedialMaximumDuration@CPhCltExtPhoneDialData@@QAEXVTTimeIntervalSeconds@@@Z @ 72 NONAME ; void CPhCltExtPhoneDialData::SetRedialMaximumDuration(class TTimeIntervalSeconds) - ?SetSATCall@CPhCltExtPhoneDialData@@QAEXH@Z @ 73 NONAME ; void CPhCltExtPhoneDialData::SetSATCall(int) - ?SetSendKeyPressed@CPhCltExtPhoneDialData@@QAEXH@Z @ 74 NONAME ; void CPhCltExtPhoneDialData::SetSendKeyPressed(int) - ?SetShowNumber@CPhCltExtPhoneDialData@@QAEXH@Z @ 75 NONAME ; void CPhCltExtPhoneDialData::SetShowNumber(int) - ?SetSubAddressL@CPhCltExtPhoneDialData@@QAEXABV?$TBuf@$0BF@@@@Z @ 76 NONAME ; void CPhCltExtPhoneDialData::SetSubAddressL(class TBuf<21> const &) - ?SetTelephoneNumber@CPhCltExtPhoneDialData@@QAEXABV?$TBuf@$0GE@@@@Z @ 77 NONAME ; void CPhCltExtPhoneDialData::SetTelephoneNumber(class TBuf<100> const &) - ?SetWindowGroup@CPhCltExtPhoneDialData@@QAEXH@Z @ 78 NONAME ; void CPhCltExtPhoneDialData::SetWindowGroup(int) - ?ShowNumber@CPhCltExtPhoneDialData@@QBEHXZ @ 79 NONAME ; int CPhCltExtPhoneDialData::ShowNumber(void) const - ?StartUssdEditor@RPhCltUssd@@QBEHXZ @ 80 NONAME ; int RPhCltUssd::StartUssdEditor(void) const - ?SubAddress@CPhCltExtPhoneDialData@@QBEABV?$TBuf@$0BF@@@XZ @ 81 NONAME ; class TBuf<21> const & CPhCltExtPhoneDialData::SubAddress(void) const - ?TelephoneNumber@CPhCltExtPhoneDialData@@QBEABV?$TBuf@$0GE@@@XZ @ 82 NONAME ; class TBuf<100> const & CPhCltExtPhoneDialData::TelephoneNumber(void) const - ?WindowGroup@CPhCltExtPhoneDialData@@QBEHXZ @ 83 NONAME ; int CPhCltExtPhoneDialData::WindowGroup(void) const - ?ServiceId@CPhCltExtPhoneDialData@@QBEKXZ @ 84 NONAME ; unsigned long CPhCltExtPhoneDialData::ServiceId(void) const - ?SetServiceId@CPhCltExtPhoneDialData@@QAEXK@Z @ 85 NONAME ; void CPhCltExtPhoneDialData::SetServiceId(unsigned long) - ?SetUUIL@CPhCltExtPhoneDialData@@QAEXABVTDesC16@@@Z @ 86 NONAME ; void CPhCltExtPhoneDialData::SetUUIL(class TDesC16 const &) - ?UUI@CPhCltExtPhoneDialData@@QBEABVTDesC16@@XZ @ 87 NONAME ; class TDesC16 const & CPhCltExtPhoneDialData::UUI(void) const - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Bwins/PHONECLIENT_ExtU.DEF --- a/phoneclientserver/phoneclient/Bwins/PHONECLIENT_ExtU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -EXPORTS - ??0RPhCltCallNotify@@QAE@XZ @ 1 NONAME ; RPhCltCallNotify::RPhCltCallNotify(void) - ??0RPhCltEmergencyNumber@@QAE@XZ @ 2 NONAME ; RPhCltEmergencyNumber::RPhCltEmergencyNumber(void) - ??0RPhCltIhf@@QAE@XZ @ 3 NONAME ; RPhCltIhf::RPhCltIhf(void) - ??0RPhCltResourceFile@@QAE@XZ @ 4 NONAME ; RPhCltResourceFile::RPhCltResourceFile(void) - ??0RPhCltServer@@QAE@XZ @ 5 NONAME ; RPhCltServer::RPhCltServer(void) - ??0TPhCltExtPhoneDialData@@QAE@ABV?$TBuf@$0DC@@@ABV?$TBuf@$0GE@@@JH@Z @ 6 NONAME ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(class TBuf<50> const &, class TBuf<100> const &, long, int) - ??0TPhCltExtPhoneDialData@@QAE@ABV?$TBuf@$0GE@@@H@Z @ 7 NONAME ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(class TBuf<100> const &, int) - ??0TPhCltExtPhoneDialData@@QAE@ABV?$TBuf@$0GE@@@J@Z @ 8 NONAME ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(class TBuf<100> const &, long) - ??0TPhCltExtPhoneDialData@@QAE@ABV?$TBuf@$0GE@@@JH@Z @ 9 NONAME ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(class TBuf<100> const &, long, int) - ??0TPhCltExtPhoneDialData@@QAE@XZ @ 10 NONAME ; TPhCltExtPhoneDialData::TPhCltExtPhoneDialData(void) - ??1CPhCltEmergencyTelNumber@@UAE@XZ @ 11 NONAME ; CPhCltEmergencyTelNumber::~CPhCltEmergencyTelNumber(void) - ??1CPhCltUssdSatClient@@UAE@XZ @ 12 NONAME ; CPhCltUssdSatClient::~CPhCltUssdSatClient(void) - ?AllowMatch@TPhCltExtPhoneDialData@@QBEHXZ @ 13 NONAME ; int TPhCltExtPhoneDialData::AllowMatch(void) const - ?AsIPCStruct@TPhCltExtPhoneDialData@@QBEXAAVTPhCltCallArgs@@@Z @ 14 NONAME ; void TPhCltExtPhoneDialData::AsIPCStruct(class TPhCltCallArgs &) const - ?Bearer@TPhCltExtPhoneDialData@@QBEABV?$TBuf8@$0O@@@XZ @ 15 NONAME ; class TBuf8<14> const & TPhCltExtPhoneDialData::Bearer(void) const - ?CallType@TPhCltExtPhoneDialData@@QBE?AW4TPhCltCallType@@XZ @ 16 NONAME ; enum TPhCltCallType TPhCltExtPhoneDialData::CallType(void) const - ?CancelNotifyCallAttempt@RPhCltCallNotify@@QBEXXZ @ 17 NONAME ; void RPhCltCallNotify::CancelNotifyCallAttempt(void) const - ?CancelNotifyComHandCommand@RPhCltCallNotify@@QBEXXZ @ 18 NONAME ; void RPhCltCallNotify::CancelNotifyComHandCommand(void) const - ?Close@RPhCltCallNotify@@QAEXXZ @ 19 NONAME ; void RPhCltCallNotify::Close(void) - ?Close@RPhCltEmergencyNumber@@QAEXXZ @ 20 NONAME ; void RPhCltEmergencyNumber::Close(void) - ?Close@RPhCltIhf@@QAEXXZ @ 21 NONAME ; void RPhCltIhf::Close(void) - ?Close@RPhCltResourceFile@@QAEXXZ @ 22 NONAME ; void RPhCltResourceFile::Close(void) - ?Connect@RPhCltServer@@QAEHH@Z @ 23 NONAME ; int RPhCltServer::Connect(int) - ?ContactId@TPhCltExtPhoneDialData@@QBEJXZ @ 24 NONAME ; long TPhCltExtPhoneDialData::ContactId(void) const - ?CreateAll@RPhCltServer@@QAEXAAVTRequestStatus@@@Z @ 25 NONAME ; void RPhCltServer::CreateAll(class TRequestStatus &) - ?DialData@CPhCltDialer@@QAEAAVTPhCltExtPhoneDialData@@XZ @ 26 NONAME ; class TPhCltExtPhoneDialData & CPhCltDialer::DialData(void) - ?Emergency@TPhCltExtPhoneDialData@@QBEHXZ @ 27 NONAME ; int TPhCltExtPhoneDialData::Emergency(void) const - ?EndOtherCalls@TPhCltExtPhoneDialData@@QBEHXZ @ 28 NONAME ; int TPhCltExtPhoneDialData::EndOtherCalls(void) const - ?ExecuteLD@CPhCltDialer@@QAEXXZ @ 29 NONAME ; void CPhCltDialer::ExecuteLD(void) - ?ExternalizeL@CPhCltEmergencyTelNumber@@QBEXAAVRWriteStream@@@Z @ 30 NONAME ; void CPhCltEmergencyTelNumber::ExternalizeL(class RWriteStream &) const - ?InternalizeL@CPhCltEmergencyTelNumber@@QAEXAAVRReadStream@@@Z @ 31 NONAME ; void CPhCltEmergencyTelNumber::InternalizeL(class RReadStream &) - ?IsEmergencyPhoneNumber@RPhCltEmergencyNumber@@QAEHAAV?$TBuf@$0GE@@@AAHW4TPhCltEmergencyNumberQueryMode@@@Z @ 32 NONAME ; int RPhCltEmergencyNumber::IsEmergencyPhoneNumber(class TBuf<100> &, int &, enum TPhCltEmergencyNumberQueryMode) - ?IsEmergenyPhoneNumber@RPhCltEmergencyNumber@@QAEHABV?$TBuf@$0GE@@@AAHW4TPhCltEmergencyNumberQueryMode@@@Z @ 33 NONAME ; int RPhCltEmergencyNumber::IsEmergenyPhoneNumber(class TBuf<100> const &, int &, enum TPhCltEmergencyNumberQueryMode) - ?IsValidChar@PhCltUtils@@SAHVTChar@@@Z @ 34 NONAME ; int PhCltUtils::IsValidChar(class TChar) - ?MCC@CPhCltEmergencyTelNumber@@QBEGXZ @ 35 NONAME ; unsigned short CPhCltEmergencyTelNumber::MCC(void) const - ?MNC@CPhCltEmergencyTelNumber@@QBEGXZ @ 36 NONAME ; unsigned short CPhCltEmergencyTelNumber::MNC(void) const - ?Name@TPhCltExtPhoneDialData@@QBEABV?$TBuf@$0DC@@@XZ @ 37 NONAME ; class TBuf<50> const & TPhCltExtPhoneDialData::Name(void) const - ?NewL@CPhCltCommandHandler@@SAPAV1@XZ @ 38 NONAME ; class CPhCltCommandHandler * CPhCltCommandHandler::NewL(void) - ?NewL@CPhCltDialer@@SAPAV1@XZ @ 39 NONAME ; class CPhCltDialer * CPhCltDialer::NewL(void) - ?NewL@CPhCltExtPhoneBase@@SAPAV1@PAVMPhCltExtPhoneObserver@@@Z @ 40 NONAME ; class CPhCltExtPhoneBase * CPhCltExtPhoneBase::NewL(class MPhCltExtPhoneObserver *) - ?NewL@CPhCltImageHandler@@SAPAV1@XZ @ 41 NONAME ; class CPhCltImageHandler * CPhCltImageHandler::NewL(void) - ?NewL@CPhCltMessenger@@SAPAV1@ABVTUid@@ABH@Z @ 42 NONAME ; class CPhCltMessenger * CPhCltMessenger::NewL(class TUid const &, int const &) - ?NewL@CPhCltUssd@@SAPAV1@H@Z @ 43 NONAME ; class CPhCltUssd * CPhCltUssd::NewL(int) - ?NewL@CPhCltUssdInt@@SAPAV1@H@Z @ 44 NONAME ; class CPhCltUssdInt * CPhCltUssdInt::NewL(int) - ?NewL@CPhCltUssdSatClient@@SAPAV1@H@Z @ 45 NONAME ; class CPhCltUssdSatClient * CPhCltUssdSatClient::NewL(int) - ?NewLC@CPhCltEmergencyTelNumber@@SAPAV1@XZ @ 46 NONAME ; class CPhCltEmergencyTelNumber * CPhCltEmergencyTelNumber::NewLC(void) - ?NotifyCallAttempt@RPhCltCallNotify@@QAEXAAVTRequestStatus@@AAVTDes8@@@Z @ 47 NONAME ; void RPhCltCallNotify::NotifyCallAttempt(class TRequestStatus &, class TDes8 &) - ?NotifyComHandCommand@RPhCltCallNotify@@QAEXAAVTRequestStatus@@AAVTDes8@@@Z @ 48 NONAME ; void RPhCltCallNotify::NotifyComHandCommand(class TRequestStatus &, class TDes8 &) - ?NumberType@TPhCltExtPhoneDialData@@QBEHXZ @ 49 NONAME ; int TPhCltExtPhoneDialData::NumberType(void) const - ?Open@RPhCltCallNotify@@QAEHAAVRPhCltServer@@@Z @ 50 NONAME ; int RPhCltCallNotify::Open(class RPhCltServer &) - ?Open@RPhCltEmergencyNumber@@QAEHAAVRPhCltServer@@@Z @ 51 NONAME ; int RPhCltEmergencyNumber::Open(class RPhCltServer &) - ?Open@RPhCltIhf@@QAEHAAVRPhCltServer@@H@Z @ 52 NONAME ; int RPhCltIhf::Open(class RPhCltServer &, int) - ?OpenL@RPhCltResourceFile@@QAEXAAVCCoeEnv@@@Z @ 53 NONAME ; void RPhCltResourceFile::OpenL(class CCoeEnv &) - ?Redial@TPhCltExtPhoneDialData@@QBEHXZ @ 54 NONAME ; int TPhCltExtPhoneDialData::Redial(void) const - ?RedialMaximumDuration@TPhCltExtPhoneDialData@@QBE?AVTTimeIntervalSeconds@@XZ @ 55 NONAME ; class TTimeIntervalSeconds TPhCltExtPhoneDialData::RedialMaximumDuration(void) const - ?RemoveInvalidChars@PhCltUtils@@SAXAAVTDes16@@@Z @ 56 NONAME ; void PhCltUtils::RemoveInvalidChars(class TDes16 &) - ?RemoveURIPrefixdAndDomainChars@PhCltUtils@@SAXAAVTDes16@@@Z @ 57 NONAME ; void PhCltUtils::RemoveURIPrefixdAndDomainChars(class TDes16 &) - ?RespondClient@RPhCltCallNotify@@QAEHH@Z @ 58 NONAME ; int RPhCltCallNotify::RespondClient(int) - ?RespondComHandClient@RPhCltCallNotify@@QAEHH@Z @ 59 NONAME ; int RPhCltCallNotify::RespondComHandClient(int) - ?ReturnToNumberEntryOnFailure@TPhCltExtPhoneDialData@@QBEHXZ @ 60 NONAME ; int TPhCltExtPhoneDialData::ReturnToNumberEntryOnFailure(void) const - ?SATCall@TPhCltExtPhoneDialData@@QBEHXZ @ 61 NONAME ; int TPhCltExtPhoneDialData::SATCall(void) const - ?SendKeyPressed@TPhCltExtPhoneDialData@@QBEHXZ @ 62 NONAME ; int TPhCltExtPhoneDialData::SendKeyPressed(void) const - ?SendSatMessage@CPhCltUssdSatClient@@QAEHABVTDesC16@@EAAVTDes16@@AAHAAE@Z @ 63 NONAME ; int CPhCltUssdSatClient::SendSatMessage(class TDesC16 const &, unsigned char, class TDes16 &, int &, unsigned char &) - ?SendSatMessageCancel@CPhCltUssdSatClient@@QAEXXZ @ 64 NONAME ; void CPhCltUssdSatClient::SendSatMessageCancel(void) - ?SetAllowMatch@TPhCltExtPhoneDialData@@QAEXH@Z @ 65 NONAME ; void TPhCltExtPhoneDialData::SetAllowMatch(int) - ?SetBearer@TPhCltExtPhoneDialData@@QAEXABV?$TBuf8@$0O@@@@Z @ 66 NONAME ; void TPhCltExtPhoneDialData::SetBearer(class TBuf8<14> const &) - ?SetCallType@TPhCltExtPhoneDialData@@QAEXW4TPhCltCallType@@@Z @ 67 NONAME ; void TPhCltExtPhoneDialData::SetCallType(enum TPhCltCallType) - ?SetContactId@TPhCltExtPhoneDialData@@QAEXJ@Z @ 68 NONAME ; void TPhCltExtPhoneDialData::SetContactId(long) - ?SetEmergency@TPhCltExtPhoneDialData@@QAEXH@Z @ 69 NONAME ; void TPhCltExtPhoneDialData::SetEmergency(int) - ?SetEndOtherCalls@TPhCltExtPhoneDialData@@QAEXH@Z @ 70 NONAME ; void TPhCltExtPhoneDialData::SetEndOtherCalls(int) - ?SetIhfMode@RPhCltIhf@@QAEHHH@Z @ 71 NONAME ; int RPhCltIhf::SetIhfMode(int, int) - ?SetIhfModeFromPhone@RPhCltIhf@@QAEHHH@Z @ 72 NONAME ; int RPhCltIhf::SetIhfModeFromPhone(int, int) - ?SetL@CPhCltEmergencyTelNumber@@QAEXABV?$TBuf@$0GE@@@GG@Z @ 73 NONAME ; void CPhCltEmergencyTelNumber::SetL(class TBuf<100> const &, unsigned short, unsigned short) - ?SetName@TPhCltExtPhoneDialData@@QAEXABV?$TBuf@$0DC@@@@Z @ 74 NONAME ; void TPhCltExtPhoneDialData::SetName(class TBuf<50> const &) - ?SetNumberType@TPhCltExtPhoneDialData@@QAEXH@Z @ 75 NONAME ; void TPhCltExtPhoneDialData::SetNumberType(int) - ?SetRedial@TPhCltExtPhoneDialData@@QAEXH@Z @ 76 NONAME ; void TPhCltExtPhoneDialData::SetRedial(int) - ?SetRedialMaximumDuration@TPhCltExtPhoneDialData@@QAEXVTTimeIntervalSeconds@@@Z @ 77 NONAME ; void TPhCltExtPhoneDialData::SetRedialMaximumDuration(class TTimeIntervalSeconds) - ?SetReturnToNumberEntryOnFailure@TPhCltExtPhoneDialData@@QAEXH@Z @ 78 NONAME ; void TPhCltExtPhoneDialData::SetReturnToNumberEntryOnFailure(int) - ?SetSATCall@TPhCltExtPhoneDialData@@QAEXH@Z @ 79 NONAME ; void TPhCltExtPhoneDialData::SetSATCall(int) - ?SetSendKeyPressed@TPhCltExtPhoneDialData@@QAEXH@Z @ 80 NONAME ; void TPhCltExtPhoneDialData::SetSendKeyPressed(int) - ?SetShowNumber@TPhCltExtPhoneDialData@@QAEXH@Z @ 81 NONAME ; void TPhCltExtPhoneDialData::SetShowNumber(int) - ?SetSubAddress@TPhCltExtPhoneDialData@@QAEXABV?$TBuf@$0BF@@@@Z @ 82 NONAME ; void TPhCltExtPhoneDialData::SetSubAddress(class TBuf<21> const &) - ?SetTelephoneNumber@TPhCltExtPhoneDialData@@QAEXABV?$TBuf@$0GE@@@@Z @ 83 NONAME ; void TPhCltExtPhoneDialData::SetTelephoneNumber(class TBuf<100> const &) - ?SetWindowGroup@TPhCltExtPhoneDialData@@QAEXH@Z @ 84 NONAME ; void TPhCltExtPhoneDialData::SetWindowGroup(int) - ?ShowNumber@TPhCltExtPhoneDialData@@QBEHXZ @ 85 NONAME ; int TPhCltExtPhoneDialData::ShowNumber(void) const - ?SubAddress@TPhCltExtPhoneDialData@@QBEABV?$TBuf@$0BF@@@XZ @ 86 NONAME ; class TBuf<21> const & TPhCltExtPhoneDialData::SubAddress(void) const - ?TelNumber@CPhCltEmergencyTelNumber@@QBEABVTDesC16@@XZ @ 87 NONAME ; class TDesC16 const & CPhCltEmergencyTelNumber::TelNumber(void) const - ?TelephoneNumber@TPhCltExtPhoneDialData@@QBEABV?$TBuf@$0GE@@@XZ @ 88 NONAME ; class TBuf<100> const & TPhCltExtPhoneDialData::TelephoneNumber(void) const - ?WindowGroupId@TPhCltExtPhoneDialData@@QBEHXZ @ 89 NONAME ; int TPhCltExtPhoneDialData::WindowGroupId(void) const - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Data/PhoneClient.rss --- a/phoneclientserver/phoneclient/Data/PhoneClient.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,227 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: This file contains all the resources for the module. -* -*/ - - -// RESOURCE IDENTIFIER -NAME PhCl - -// INCLUDES - -#include -#include -#include "phoneclient.hrh" -#include "eikon.rsg" -#include -#include -#include -#include - -// RESOURCE DEFINITIONS - -//---------------------------------------------------- -// -// RSS_SIGNATURE -// -// -//---------------------------------------------------- -// -RESOURCE RSS_SIGNATURE { } - - -//---------------------------------------------------- -// -// TBUF -// -// -//---------------------------------------------------- -// -RESOURCE TBUF { buf="phoneclient"; } - - -//---------------------------------------------------- -// -// r_softkey_quit -// -// -//---------------------------------------------------- -// -RESOURCE CBA r_softkey_quit - { - buttons = - { - CBA_BUTTON {}, - CBA_BUTTON {id=EAknSoftkeyClose; txt=text_softkey_quit;} - }; - } - - -//---------------------------------------------------- -// -// r_text_unconfirmed -// -// -//---------------------------------------------------- -// -RESOURCE TBUF r_text_unconfirmed - { - buf = text_unconfirmed; - } - - -//---------------------------------------------------- -// -// r_text_not_done -// -// -//---------------------------------------------------- -// -RESOURCE TBUF r_text_not_done - { - buf = text_not_done; - } - - -//---------------------------------------------------- -// -// r_text_not_allowed -// -// -//---------------------------------------------------- -// -RESOURCE TBUF r_text_not_allowed - { - buf = text_not_allowed; - } - - -//---------------------------------------------------- -// -// r_text_result_unknown -// -// -//---------------------------------------------------- -// -RESOURCE TBUF r_text_result_unknown - { - buf = text_result_unknown; - } - - -//---------------------------------------------------- -// -// r_text_done -// -// -//---------------------------------------------------- -// -RESOURCE TBUF r_text_done - { - buf = text_done; - } - - -//---------------------------------------------------- -// -// r_text_no_service -// -// -//---------------------------------------------------- -// -RESOURCE TBUF r_text_no_service - { - buf = text_no_service; - } - - -//---------------------------------------------------- -// -// r_text_offline -// -// -//---------------------------------------------------- -// -RESOURCE TBUF r_text_offline - { - buf = qtn_offline_not_possible; - } - - -//---------------------------------------------------- -// -// r_text_sending -// -// -//---------------------------------------------------- -// -RESOURCE TBUF r_text_sending - { - buf = text_sending; - } - - -// --------------------------------------------------------- -// -// r_phclt_softkeys_empty -// -// Empty softkeys; note that AVKON empty softkey -// resource can not be used, because flags are needed. -// -// --------------------------------------------------------- -// -RESOURCE CBA r_phclt_softkeys_empty - { - flags = EAknCBAFlagRespondWhenInvisible; - - buttons = - { - CBA_BUTTON - { - id = EAknSoftkeyEmpty; - txt = text_softkey_empty; - }, - CBA_BUTTON - { - id = EAknSoftkeyEmpty; - txt = text_softkey_empty; - } - }; - } - - -// --------------------------------------------------------- -// -// r_phclt_blank_dlg -// -// --------------------------------------------------------- -// -RESOURCE DIALOG r_phclt_blank_dlg - { - flags = ( EEikDialogFlagNoDrag | - EEikDialogFlagNoTitleBar | - EEikDialogFlagFillAppClientRect | - EEikDialogFlagCbaButtons | - EEikDialogFlagWait ); - - buttons = r_phclt_softkeys_empty; - - items = - { - }; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Data/PhoneClient_stub.pkg --- a/phoneclientserver/phoneclient/Data/PhoneClient_stub.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +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: For packing phoneclient stub. -; -; Languages -&EN - -; Header -#{"PhoneClient"}, (0x1000084F), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\PhoneClient.dll" -""-"z:\resource\PhoneClient.rsc" diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Data/Phoneclient_stub.SIS Binary file phoneclientserver/phoneclient/Data/Phoneclient_stub.SIS has changed diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/EABI/PHONECLIENT_AiwExtU.DEF --- a/phoneclientserver/phoneclient/EABI/PHONECLIENT_AiwExtU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,92 +0,0 @@ -EXPORTS - _ZN10CPhCltUssd4NewLEi @ 1 NONAME - _ZN10PhCltUtils11IsValidCharE5TChar @ 2 NONAME - _ZN10PhCltUtils18RemoveInvalidCharsER6TDes16 @ 3 NONAME - _ZN10PhCltUtils30RemoveURIPrefixdAndDomainCharsER6TDes16 @ 4 NONAME - _ZN12RPhCltServer7ConnectEi @ 5 NONAME - _ZN12RPhCltServer9CreateAllER14TRequestStatus @ 6 NONAME - _ZN12RPhCltServerC1Ev @ 7 NONAME - _ZN12RPhCltServerC2Ev @ 8 NONAME - _ZN13CPhCltUssdInt4NewLEi @ 9 NONAME - _ZN15CPhCltMessenger4NewLERK4TUidRKi @ 10 NONAME - _ZN16CPhCltCallNotify13RespondClientEi @ 11 NONAME - _ZN16CPhCltCallNotify17NotifyDialRequestEP25MPhCltDialRequestObserver @ 12 NONAME - _ZN16CPhCltCallNotify19NotifyEmergencyCallEP34MPhCltDialEmergencyRequestObserverR7TDesC16 @ 13 NONAME - _ZN16CPhCltCallNotify20NotifyComHandCommandEP28MPhCltComHandRequestObserverR5TDes8 @ 14 NONAME - _ZN16CPhCltCallNotify20RespondComHandClientEi @ 15 NONAME - _ZN16CPhCltCallNotify24RespondEmergencyToClientEi @ 16 NONAME - _ZN16CPhCltCallNotify4NewLEv @ 17 NONAME - _ZN16CPhCltCallNotify4OpenER12RPhCltServer @ 18 NONAME - _ZN16CPhCltCallNotify5CloseEv @ 19 NONAME - _ZN16CPhCltCallNotifyD0Ev @ 20 NONAME - _ZN16CPhCltCallNotifyD1Ev @ 21 NONAME - _ZN16CPhCltCallNotifyD2Ev @ 22 NONAME - _ZN18CPhCltExtPhoneBase4NewLEP22MPhCltExtPhoneObserver @ 23 NONAME - _ZN18CPhCltImageHandler4NewLEv @ 24 NONAME - _ZN18RPhCltResourceFile5CloseEv @ 25 NONAME - _ZN18RPhCltResourceFile5OpenLER7CCoeEnv @ 26 NONAME - _ZN18RPhCltResourceFileC1Ev @ 27 NONAME - _ZN18RPhCltResourceFileC2Ev @ 28 NONAME - _ZN19CPhCltEmergencyCall4NewLEP27MPhCltEmergencyCallObserver @ 29 NONAME - _ZN19CPhCltUssdSatClient14SendSatMessageERK7TDesC16hR6TDes16RiRh @ 30 NONAME - _ZN19CPhCltUssdSatClient20SendSatMessageCancelEv @ 31 NONAME - _ZN19CPhCltUssdSatClient4NewLEi @ 32 NONAME - _ZN19CPhCltUssdSatClientD0Ev @ 33 NONAME - _ZN19CPhCltUssdSatClientD1Ev @ 34 NONAME - _ZN19CPhCltUssdSatClientD2Ev @ 35 NONAME - _ZN20CPhCltCommandHandler4NewLEv @ 36 NONAME - _ZN22CPhCltExtPhoneDialData10SetBearerLERK5TBuf8ILi14EE @ 37 NONAME - _ZN22CPhCltExtPhoneDialData10SetSATCallEi @ 38 NONAME - _ZN22CPhCltExtPhoneDialData11SetCallTypeE14TPhCltCallType @ 39 NONAME - _ZN22CPhCltExtPhoneDialData12SetServiceIdEm @ 40 NONAME - _ZN22CPhCltExtPhoneDialData13SetAllowMatchEi @ 41 NONAME - _ZN22CPhCltExtPhoneDialData13SetShowNumberEi @ 42 NONAME - _ZN22CPhCltExtPhoneDialData14SetSubAddressLERK4TBufILi21EE @ 43 NONAME - _ZN22CPhCltExtPhoneDialData14SetWindowGroupEi @ 44 NONAME - _ZN22CPhCltExtPhoneDialData15SetContactLinkLERK6TDesC8 @ 45 NONAME - _ZN22CPhCltExtPhoneDialData15SetInitiateCallEi @ 46 NONAME - _ZN22CPhCltExtPhoneDialData16SetEndOtherCallsEi @ 47 NONAME - _ZN22CPhCltExtPhoneDialData17SetSendKeyPressedEi @ 48 NONAME - _ZN22CPhCltExtPhoneDialData18SetTelephoneNumberERK4TBufILi100EE @ 49 NONAME - _ZN22CPhCltExtPhoneDialData24SetRedialMaximumDurationE20TTimeIntervalSeconds @ 50 NONAME - _ZN22CPhCltExtPhoneDialData4NewLERK6TDesC8 @ 51 NONAME - _ZN22CPhCltExtPhoneDialData4NewLEv @ 52 NONAME - _ZN22CPhCltExtPhoneDialData5NewLCERK6TDesC8 @ 53 NONAME - _ZN22CPhCltExtPhoneDialData5NewLCEv @ 54 NONAME - _ZN22CPhCltExtPhoneDialData6PackLCEv @ 55 NONAME - _ZN22CPhCltExtPhoneDialData7SetUUILERK7TDesC16 @ 56 NONAME - _ZN22CPhCltExtPhoneDialData8SetNameLERK4TBufILi50EE @ 57 NONAME - _ZN22CPhCltExtPhoneDialData9SetRedialEi @ 58 NONAME - _ZN22CPhCltExtPhoneDialDataD0Ev @ 59 NONAME - _ZN22CPhCltExtPhoneDialDataD1Ev @ 60 NONAME - _ZN22CPhCltExtPhoneDialDataD2Ev @ 61 NONAME - _ZN16CPhCltCallNotify23CancelNotifyDialRequestEv @ 62 NONAME - _ZNK16CPhCltCallNotify25CancelNotifyEmergencyCallEv @ 63 NONAME - _ZNK16CPhCltCallNotify26CancelNotifyComHandCommandEv @ 64 NONAME - _ZNK22CPhCltExtPhoneDialData10AllowMatchEv @ 65 NONAME - _ZNK22CPhCltExtPhoneDialData10ShowNumberEv @ 66 NONAME - _ZNK22CPhCltExtPhoneDialData10SubAddressEv @ 67 NONAME - _ZNK22CPhCltExtPhoneDialData11ContactLinkEv @ 68 NONAME - _ZNK22CPhCltExtPhoneDialData11WindowGroupEv @ 69 NONAME - _ZNK22CPhCltExtPhoneDialData12InitiateCallEv @ 70 NONAME - _ZNK22CPhCltExtPhoneDialData13EndOtherCallsEv @ 71 NONAME - _ZNK22CPhCltExtPhoneDialData14SendKeyPressedEv @ 72 NONAME - _ZNK22CPhCltExtPhoneDialData15TelephoneNumberEv @ 73 NONAME - _ZNK22CPhCltExtPhoneDialData20CalculatePackageSizeEv @ 74 NONAME - _ZNK22CPhCltExtPhoneDialData21RedialMaximumDurationEv @ 75 NONAME - _ZNK22CPhCltExtPhoneDialData3UUIEv @ 76 NONAME - _ZNK22CPhCltExtPhoneDialData4NameEv @ 77 NONAME - _ZNK22CPhCltExtPhoneDialData6BearerEv @ 78 NONAME - _ZNK22CPhCltExtPhoneDialData6RedialEv @ 79 NONAME - _ZNK22CPhCltExtPhoneDialData7SATCallEv @ 80 NONAME - _ZNK22CPhCltExtPhoneDialData8CallTypeEv @ 81 NONAME - _ZNK22CPhCltExtPhoneDialData9ServiceIdEv @ 82 NONAME - _ZTI13CPhCltUssdImp @ 83 NONAME ; ## - _ZTI16CPhCltCallNotify @ 84 NONAME ; ## - _ZTI19CPhCltUssdSatClient @ 85 NONAME ; ## - _ZTV13CPhCltUssdImp @ 86 NONAME ; ## - _ZTV16CPhCltCallNotify @ 87 NONAME ; ## - _ZTV19CPhCltUssdSatClient @ 88 NONAME ; ## - _ZTIN32CPhCltImageHandlerImplementation13CVtImageSaverE @ 89 NONAME ; ## - _ZTVN32CPhCltImageHandlerImplementation13CVtImageSaverE @ 90 NONAME ; ## - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/EABI/PHONECLIENT_AiwU.DEF --- a/phoneclientserver/phoneclient/EABI/PHONECLIENT_AiwU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -EXPORTS - _ZN10CPhCltUssd14SendUssdCancelEv @ 1 NONAME - _ZN10CPhCltUssd4NewLEi @ 2 NONAME - _ZN10CPhCltUssd8SendUssdERK6TDesC8 @ 3 NONAME - _ZN10CPhCltUssd8SendUssdERK6TDesC8h @ 4 NONAME - _ZN10CPhCltUssd8SendUssdERK7TDesC16 @ 5 NONAME - _ZN10CPhCltUssdD0Ev @ 6 NONAME - _ZN10CPhCltUssdD1Ev @ 7 NONAME - _ZN10CPhCltUssdD2Ev @ 8 NONAME - _ZN10PhCltUtils11IsValidCharE5TChar @ 9 NONAME - _ZN10PhCltUtils18RemoveInvalidCharsER6TDes16 @ 10 NONAME - _ZN10PhCltUtils30RemoveURIPrefixdAndDomainCharsER6TDes16 @ 11 NONAME - _ZN10RPhCltUssd10CancelSendEv @ 12 NONAME - _ZN10RPhCltUssd11AppStartingEv @ 13 NONAME - _ZN10RPhCltUssd14AppTerminatingE23TPhCltUssdAppExitReason @ 14 NONAME - _ZN10RPhCltUssd15AppToBackgroundEv @ 15 NONAME - _ZN10RPhCltUssd15AppToForegroundEv @ 16 NONAME - _ZN10RPhCltUssd4OpenER12RPhCltServer @ 17 NONAME - _ZN10RPhCltUssd5CloseEv @ 18 NONAME - _ZN10RPhCltUssd8SendUssdER14TRequestStatusRK6TDesC8S4_ @ 19 NONAME - _ZN10RPhCltUssdC1Ev @ 20 NONAME - _ZN10RPhCltUssdC2Ev @ 21 NONAME - _ZN12RPhCltServer7ConnectEi @ 22 NONAME - _ZN12RPhCltServer9CreateAllER14TRequestStatus @ 23 NONAME - _ZN12RPhCltServerC1Ev @ 24 NONAME - _ZN12RPhCltServerC2Ev @ 25 NONAME - _ZN16CPhCltCallNotify13RespondClientEi @ 26 NONAME - _ZN16CPhCltCallNotify17NotifyCallAttemptER14TRequestStatusR22CPhCltExtPhoneDialData @ 27 NONAME - _ZN16CPhCltCallNotify19NotifyEmergencyCallER14TRequestStatusR7TDesC16 @ 28 NONAME - _ZN16CPhCltCallNotify24RespondEmergencyToClientEi @ 29 NONAME - _ZN16CPhCltCallNotify4NewLEv @ 30 NONAME - _ZN16CPhCltCallNotify4OpenER12RPhCltServer @ 31 NONAME - _ZN16CPhCltCallNotify5CloseEv @ 32 NONAME - _ZN16CPhCltCallNotifyD0Ev @ 33 NONAME - _ZN16CPhCltCallNotifyD1Ev @ 34 NONAME - _ZN16CPhCltCallNotifyD2Ev @ 35 NONAME - _ZN18CPhCltExtPhoneBase4NewLEP22MPhCltExtPhoneObserver @ 36 NONAME - _ZN18RPhCltResourceFile5CloseEv @ 37 NONAME - _ZN18RPhCltResourceFile5OpenLER7CCoeEnv @ 38 NONAME - _ZN18RPhCltResourceFileC1Ev @ 39 NONAME - _ZN18RPhCltResourceFileC2Ev @ 40 NONAME - _ZN19CPhCltEmergencyCall4NewLEP27MPhCltEmergencyCallObserver @ 41 NONAME - _ZN19CPhCltUssdSatClient14SendSatMessageERK7TDesC16hR6TDes16RiRh @ 42 NONAME - _ZN19CPhCltUssdSatClient20SendSatMessageCancelEv @ 43 NONAME - _ZN19CPhCltUssdSatClient4NewLEi @ 44 NONAME - _ZN19CPhCltUssdSatClientD0Ev @ 45 NONAME - _ZN19CPhCltUssdSatClientD1Ev @ 46 NONAME - _ZN19CPhCltUssdSatClientD2Ev @ 47 NONAME - _ZN22CPhCltExtPhoneDialData10SetBearerLERK5TBuf8ILi14EE @ 48 NONAME - _ZN22CPhCltExtPhoneDialData10SetSATCallEi @ 49 NONAME - _ZN22CPhCltExtPhoneDialData11SetCallTypeE14TPhCltCallType @ 50 NONAME - _ZN22CPhCltExtPhoneDialData13SetAllowMatchEi @ 51 NONAME - _ZN22CPhCltExtPhoneDialData13SetShowNumberEi @ 52 NONAME - _ZN22CPhCltExtPhoneDialData14SetSubAddressLERK4TBufILi21EE @ 53 NONAME - _ZN22CPhCltExtPhoneDialData14SetWindowGroupEi @ 54 NONAME - _ZN22CPhCltExtPhoneDialData15SetContactLinkLERK6TDesC8 @ 55 NONAME - _ZN22CPhCltExtPhoneDialData15SetInitiateCallEi @ 56 NONAME - _ZN22CPhCltExtPhoneDialData16SetEndOtherCallsEi @ 57 NONAME - _ZN22CPhCltExtPhoneDialData17SetSendKeyPressedEi @ 58 NONAME - _ZN22CPhCltExtPhoneDialData18SetTelephoneNumberERK4TBufILi100EE @ 59 NONAME - _ZN22CPhCltExtPhoneDialData24SetRedialMaximumDurationE20TTimeIntervalSeconds @ 60 NONAME - _ZN22CPhCltExtPhoneDialData4NewLERK6TDesC8 @ 61 NONAME - _ZN22CPhCltExtPhoneDialData4NewLEv @ 62 NONAME - _ZN22CPhCltExtPhoneDialData5NewLCERK6TDesC8 @ 63 NONAME - _ZN22CPhCltExtPhoneDialData5NewLCEv @ 64 NONAME - _ZN22CPhCltExtPhoneDialData6PackLCEv @ 65 NONAME - _ZN22CPhCltExtPhoneDialData8SetNameLERK4TBufILi50EE @ 66 NONAME - _ZN22CPhCltExtPhoneDialData9SetRedialEi @ 67 NONAME - _ZN22CPhCltExtPhoneDialDataD0Ev @ 68 NONAME - _ZN22CPhCltExtPhoneDialDataD1Ev @ 69 NONAME - _ZN22CPhCltExtPhoneDialDataD2Ev @ 70 NONAME - _ZN9RPhCltIhf10SetIhfModeEii @ 71 NONAME - _ZN9RPhCltIhf19SetIhfModeFromPhoneEii @ 72 NONAME - _ZN9RPhCltIhf4OpenER12RPhCltServeri @ 73 NONAME - _ZN9RPhCltIhf5CloseEv @ 74 NONAME - _ZN9RPhCltIhfC1Ev @ 75 NONAME - _ZN9RPhCltIhfC2Ev @ 76 NONAME - _ZNK10RPhCltUssd15StartUssdEditorEv @ 77 NONAME - _ZNK16CPhCltCallNotify23CancelNotifyCallAttemptEv @ 78 NONAME - _ZNK16CPhCltCallNotify25CancelNotifyEmergencyCallEv @ 79 NONAME - _ZNK22CPhCltExtPhoneDialData10AllowMatchEv @ 80 NONAME - _ZNK22CPhCltExtPhoneDialData10ShowNumberEv @ 81 NONAME - _ZNK22CPhCltExtPhoneDialData10SubAddressEv @ 82 NONAME - _ZNK22CPhCltExtPhoneDialData11ContactLinkEv @ 83 NONAME - _ZNK22CPhCltExtPhoneDialData11WindowGroupEv @ 84 NONAME - _ZNK22CPhCltExtPhoneDialData12InitiateCallEv @ 85 NONAME - _ZNK22CPhCltExtPhoneDialData13EndOtherCallsEv @ 86 NONAME - _ZNK22CPhCltExtPhoneDialData14SendKeyPressedEv @ 87 NONAME - _ZNK22CPhCltExtPhoneDialData15TelephoneNumberEv @ 88 NONAME - _ZNK22CPhCltExtPhoneDialData20CalculatePackageSizeEv @ 89 NONAME - _ZNK22CPhCltExtPhoneDialData21RedialMaximumDurationEv @ 90 NONAME - _ZNK22CPhCltExtPhoneDialData4NameEv @ 91 NONAME - _ZNK22CPhCltExtPhoneDialData6BearerEv @ 92 NONAME - _ZNK22CPhCltExtPhoneDialData6RedialEv @ 93 NONAME - _ZNK22CPhCltExtPhoneDialData7SATCallEv @ 94 NONAME - _ZNK22CPhCltExtPhoneDialData8CallTypeEv @ 95 NONAME - _ZTI10CPhCltUssd @ 96 NONAME ; ## - _ZTI16CPhCltCallNotify @ 97 NONAME ; ## - _ZTI19CPhCltUssdSatClient @ 98 NONAME ; ## - _ZTV10CPhCltUssd @ 99 NONAME ; ## - _ZTV16CPhCltCallNotify @ 100 NONAME ; ## - _ZTV19CPhCltUssdSatClient @ 101 NONAME ; ## - _ZN22CPhCltExtPhoneDialData12SetServiceIdEm @ 102 NONAME - _ZNK22CPhCltExtPhoneDialData9ServiceIdEv @ 103 NONAME - _ZN22CPhCltExtPhoneDialData7SetUUILERK7TDesC16 @ 104 NONAME - _ZNK22CPhCltExtPhoneDialData3UUIEv @ 105 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/EABI/PHONECLIENT_ExtU.DEF --- a/phoneclientserver/phoneclient/EABI/PHONECLIENT_ExtU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -EXPORTS - _ZN10CPhCltUssd4NewLEi @ 1 NONAME - _ZN10PhCltUtils11IsValidCharE5TChar @ 2 NONAME - _ZN10PhCltUtils18RemoveInvalidCharsER6TDes16 @ 3 NONAME - _ZN10PhCltUtils30RemoveURIPrefixdAndDomainCharsER6TDes16 @ 4 NONAME - _ZN12CPhCltDialer4NewLEv @ 5 NONAME - _ZN12CPhCltDialer8DialDataEv @ 6 NONAME - _ZN12CPhCltDialer9ExecuteLDEv @ 7 NONAME - _ZN12RPhCltServer7ConnectEi @ 8 NONAME - _ZN12RPhCltServer9CreateAllER14TRequestStatus @ 9 NONAME - _ZN12RPhCltServerC1Ev @ 10 NONAME - _ZN12RPhCltServerC2Ev @ 11 NONAME - _ZN13CPhCltUssdInt4NewLEi @ 12 NONAME - _ZN15CPhCltMessenger4NewLERK4TUidRKi @ 13 NONAME - _ZN16RPhCltCallNotify13RespondClientEi @ 14 NONAME - _ZN16RPhCltCallNotify17NotifyCallAttemptER14TRequestStatusR5TDes8 @ 15 NONAME - _ZN16RPhCltCallNotify20NotifyComHandCommandER14TRequestStatusR5TDes8 @ 16 NONAME - _ZN16RPhCltCallNotify20RespondComHandClientEi @ 17 NONAME - _ZN16RPhCltCallNotify4OpenER12RPhCltServer @ 18 NONAME - _ZN16RPhCltCallNotify5CloseEv @ 19 NONAME - _ZN16RPhCltCallNotifyC1Ev @ 20 NONAME - _ZN16RPhCltCallNotifyC2Ev @ 21 NONAME - _ZN18CPhCltExtPhoneBase4NewLEP22MPhCltExtPhoneObserver @ 22 NONAME - _ZN18CPhCltImageHandler4NewLEv @ 23 NONAME - _ZN18RPhCltResourceFile5CloseEv @ 24 NONAME - _ZN18RPhCltResourceFile5OpenLER7CCoeEnv @ 25 NONAME - _ZN18RPhCltResourceFileC1Ev @ 26 NONAME - _ZN18RPhCltResourceFileC2Ev @ 27 NONAME - _ZN19CPhCltUssdSatClient14SendSatMessageERK7TDesC16hR6TDes16RiRh @ 28 NONAME - _ZN19CPhCltUssdSatClient20SendSatMessageCancelEv @ 29 NONAME - _ZN19CPhCltUssdSatClient4NewLEi @ 30 NONAME - _ZN19CPhCltUssdSatClientD0Ev @ 31 NONAME - _ZN19CPhCltUssdSatClientD1Ev @ 32 NONAME - _ZN19CPhCltUssdSatClientD2Ev @ 33 NONAME - _ZN20CPhCltCommandHandler4NewLEv @ 34 NONAME - _ZN21RPhCltEmergencyNumber21IsEmergenyPhoneNumberERK4TBufILi100EERi30TPhCltEmergencyNumberQueryMode @ 35 NONAME - _ZN21RPhCltEmergencyNumber22IsEmergencyPhoneNumberER4TBufILi100EERi30TPhCltEmergencyNumberQueryMode @ 36 NONAME - _ZN21RPhCltEmergencyNumber4OpenER12RPhCltServer @ 37 NONAME - _ZN21RPhCltEmergencyNumber5CloseEv @ 38 NONAME - _ZN21RPhCltEmergencyNumberC1Ev @ 39 NONAME - _ZN21RPhCltEmergencyNumberC2Ev @ 40 NONAME - _ZN22TPhCltExtPhoneDialData10SetSATCallEi @ 41 NONAME - _ZN22TPhCltExtPhoneDialData11SetCallTypeE14TPhCltCallType @ 42 NONAME - _ZN22TPhCltExtPhoneDialData12SetContactIdEl @ 43 NONAME - _ZN22TPhCltExtPhoneDialData12SetEmergencyEi @ 44 NONAME - _ZN22TPhCltExtPhoneDialData13SetAllowMatchEi @ 45 NONAME - _ZN22TPhCltExtPhoneDialData13SetNumberTypeEi @ 46 NONAME - _ZN22TPhCltExtPhoneDialData13SetShowNumberEi @ 47 NONAME - _ZN22TPhCltExtPhoneDialData13SetSubAddressERK4TBufILi21EE @ 48 NONAME - _ZN22TPhCltExtPhoneDialData14SetWindowGroupEi @ 49 NONAME - _ZN22TPhCltExtPhoneDialData16SetEndOtherCallsEi @ 50 NONAME - _ZN22TPhCltExtPhoneDialData17SetSendKeyPressedEi @ 51 NONAME - _ZN22TPhCltExtPhoneDialData18SetTelephoneNumberERK4TBufILi100EE @ 52 NONAME - _ZN22TPhCltExtPhoneDialData24SetRedialMaximumDurationE20TTimeIntervalSeconds @ 53 NONAME - _ZN22TPhCltExtPhoneDialData31SetReturnToNumberEntryOnFailureEi @ 54 NONAME - _ZN22TPhCltExtPhoneDialData7SetNameERK4TBufILi50EE @ 55 NONAME - _ZN22TPhCltExtPhoneDialData9SetBearerERK5TBuf8ILi14EE @ 56 NONAME - _ZN22TPhCltExtPhoneDialData9SetRedialEi @ 57 NONAME - _ZN22TPhCltExtPhoneDialDataC1ERK4TBufILi100EEi @ 58 NONAME - _ZN22TPhCltExtPhoneDialDataC1ERK4TBufILi100EEl @ 59 NONAME - _ZN22TPhCltExtPhoneDialDataC1ERK4TBufILi100EEli @ 60 NONAME - _ZN22TPhCltExtPhoneDialDataC1ERK4TBufILi50EERKS0_ILi100EEli @ 61 NONAME - _ZN22TPhCltExtPhoneDialDataC1Ev @ 62 NONAME - _ZN22TPhCltExtPhoneDialDataC2ERK4TBufILi100EEi @ 63 NONAME - _ZN22TPhCltExtPhoneDialDataC2ERK4TBufILi100EEl @ 64 NONAME - _ZN22TPhCltExtPhoneDialDataC2ERK4TBufILi100EEli @ 65 NONAME - _ZN22TPhCltExtPhoneDialDataC2ERK4TBufILi50EERKS0_ILi100EEli @ 66 NONAME - _ZN22TPhCltExtPhoneDialDataC2Ev @ 67 NONAME - _ZN24CPhCltEmergencyTelNumber12InternalizeLER11RReadStream @ 68 NONAME - _ZN24CPhCltEmergencyTelNumber4SetLERK4TBufILi100EEtt @ 69 NONAME - _ZN24CPhCltEmergencyTelNumber5NewLCEv @ 70 NONAME - _ZN24CPhCltEmergencyTelNumberD0Ev @ 71 NONAME - _ZN24CPhCltEmergencyTelNumberD1Ev @ 72 NONAME - _ZN24CPhCltEmergencyTelNumberD2Ev @ 73 NONAME - _ZN9RPhCltIhf10SetIhfModeEii @ 74 NONAME - _ZN9RPhCltIhf19SetIhfModeFromPhoneEii @ 75 NONAME - _ZN9RPhCltIhf4OpenER12RPhCltServeri @ 76 NONAME - _ZN9RPhCltIhf5CloseEv @ 77 NONAME - _ZN9RPhCltIhfC1Ev @ 78 NONAME - _ZN9RPhCltIhfC2Ev @ 79 NONAME - _ZNK16RPhCltCallNotify23CancelNotifyCallAttemptEv @ 80 NONAME - _ZNK16RPhCltCallNotify26CancelNotifyComHandCommandEv @ 81 NONAME - _ZNK22TPhCltExtPhoneDialData10AllowMatchEv @ 82 NONAME - _ZNK22TPhCltExtPhoneDialData10NumberTypeEv @ 83 NONAME - _ZNK22TPhCltExtPhoneDialData10ShowNumberEv @ 84 NONAME - _ZNK22TPhCltExtPhoneDialData10SubAddressEv @ 85 NONAME - _ZNK22TPhCltExtPhoneDialData11AsIPCStructER14TPhCltCallArgs @ 86 NONAME - _ZNK22TPhCltExtPhoneDialData13EndOtherCallsEv @ 87 NONAME - _ZNK22TPhCltExtPhoneDialData13WindowGroupIdEv @ 88 NONAME - _ZNK22TPhCltExtPhoneDialData14SendKeyPressedEv @ 89 NONAME - _ZNK22TPhCltExtPhoneDialData15TelephoneNumberEv @ 90 NONAME - _ZNK22TPhCltExtPhoneDialData21RedialMaximumDurationEv @ 91 NONAME - _ZNK22TPhCltExtPhoneDialData28ReturnToNumberEntryOnFailureEv @ 92 NONAME - _ZNK22TPhCltExtPhoneDialData4NameEv @ 93 NONAME - _ZNK22TPhCltExtPhoneDialData6BearerEv @ 94 NONAME - _ZNK22TPhCltExtPhoneDialData6RedialEv @ 95 NONAME - _ZNK22TPhCltExtPhoneDialData7SATCallEv @ 96 NONAME - _ZNK22TPhCltExtPhoneDialData8CallTypeEv @ 97 NONAME - _ZNK22TPhCltExtPhoneDialData9ContactIdEv @ 98 NONAME - _ZNK22TPhCltExtPhoneDialData9EmergencyEv @ 99 NONAME - _ZNK24CPhCltEmergencyTelNumber12ExternalizeLER12RWriteStream @ 100 NONAME - _ZNK24CPhCltEmergencyTelNumber3MCCEv @ 101 NONAME - _ZNK24CPhCltEmergencyTelNumber3MNCEv @ 102 NONAME - _ZNK24CPhCltEmergencyTelNumber9TelNumberEv @ 103 NONAME - _ZTI12CPhCltDialer @ 104 NONAME ; ## - _ZTI13CPhCltUssdImp @ 105 NONAME ; ## - _ZTI19CPhCltUssdSatClient @ 106 NONAME ; ## - _ZTI24CPhCltEmergencyTelNumber @ 107 NONAME ; ## - _ZTV12CPhCltDialer @ 108 NONAME ; ## - _ZTV13CPhCltUssdImp @ 109 NONAME ; ## - _ZTV19CPhCltUssdSatClient @ 110 NONAME ; ## - _ZTV24CPhCltEmergencyTelNumber @ 111 NONAME ; ## - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/EABI/PhoneClientU.DEF --- a/phoneclientserver/phoneclient/EABI/PhoneClientU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,128 +0,0 @@ -EXPORTS - _ZN10CPhCltUssd14SendUssdCancelEv @ 1 NONAME - _ZN10CPhCltUssd4NewLEi @ 2 NONAME - _ZN10CPhCltUssd8SendUssdERK6TDesC8 @ 3 NONAME - _ZN10CPhCltUssd8SendUssdERK6TDesC8h @ 4 NONAME - _ZN10CPhCltUssd8SendUssdERK7TDesC16 @ 5 NONAME - _ZN10CPhCltUssdD0Ev @ 6 NONAME - _ZN10CPhCltUssdD1Ev @ 7 NONAME - _ZN10CPhCltUssdD2Ev @ 8 NONAME - _ZN10PhCltUtils11IsValidCharE5TChar @ 9 NONAME - _ZN10PhCltUtils18RemoveInvalidCharsER6TDes16 @ 10 NONAME - _ZN10PhCltUtils30RemoveURIPrefixdAndDomainCharsER6TDes16 @ 11 NONAME - _ZN10RPhCltUssd10CancelSendEv @ 12 NONAME - _ZN10RPhCltUssd11AppStartingEv @ 13 NONAME - _ZN10RPhCltUssd14AppTerminatingE23TPhCltUssdAppExitReason @ 14 NONAME - _ZN10RPhCltUssd15AppToBackgroundEv @ 15 NONAME - _ZN10RPhCltUssd15AppToForegroundEv @ 16 NONAME - _ZN10RPhCltUssd4OpenER12RPhCltServer @ 17 NONAME - _ZN10RPhCltUssd5CloseEv @ 18 NONAME - _ZN10RPhCltUssd8SendUssdER14TRequestStatusRK6TDesC8S4_ @ 19 NONAME - _ZN10RPhCltUssdC1Ev @ 20 NONAME - _ZN10RPhCltUssdC2Ev @ 21 NONAME - _ZN12CPhCltDialer4NewLEv @ 22 NONAME - _ZN12CPhCltDialer8DialDataEv @ 23 NONAME - _ZN12CPhCltDialer9ExecuteLDEv @ 24 NONAME - _ZN12RPhCltServer7ConnectEi @ 25 NONAME - _ZN12RPhCltServer9CreateAllER14TRequestStatus @ 26 NONAME - _ZN12RPhCltServerC1Ev @ 27 NONAME - _ZN12RPhCltServerC2Ev @ 28 NONAME - _ZN16RPhCltCallNotify13RespondClientEi @ 29 NONAME - _ZN16RPhCltCallNotify17NotifyCallAttemptER14TRequestStatusR5TDes8 @ 30 NONAME - _ZN16RPhCltCallNotify17ReportPhoneStatusER14TRequestStatusi @ 31 NONAME - _ZN16RPhCltCallNotify24NotifyPhoneStatusRequestER14TRequestStatus @ 32 NONAME - _ZN16RPhCltCallNotify4OpenER12RPhCltServer @ 33 NONAME - _ZN16RPhCltCallNotify5CloseEv @ 34 NONAME - _ZN16RPhCltCallNotifyC1Ev @ 35 NONAME - _ZN16RPhCltCallNotifyC2Ev @ 36 NONAME - _ZN18CPhCltExtPhoneBase4NewLEP22MPhCltExtPhoneObserver @ 37 NONAME - _ZN18RPhCltResourceFile5CloseEv @ 38 NONAME - _ZN18RPhCltResourceFile5OpenLER7CCoeEnv @ 39 NONAME - _ZN18RPhCltResourceFileC1Ev @ 40 NONAME - _ZN18RPhCltResourceFileC2Ev @ 41 NONAME - _ZN19CPhCltUssdSatClient14SendSatMessageERK7TDesC16hR6TDes16RiRh @ 42 NONAME - _ZN19CPhCltUssdSatClient20SendSatMessageCancelEv @ 43 NONAME - _ZN19CPhCltUssdSatClient4NewLEi @ 44 NONAME - _ZN19CPhCltUssdSatClientD0Ev @ 45 NONAME - _ZN19CPhCltUssdSatClientD1Ev @ 46 NONAME - _ZN19CPhCltUssdSatClientD2Ev @ 47 NONAME - _ZN21RPhCltEmergencyNumber21IsEmergenyPhoneNumberERK4TBufILi100EERi30TPhCltEmergencyNumberQueryMode @ 48 NONAME - _ZN21RPhCltEmergencyNumber22IsEmergencyPhoneNumberER4TBufILi100EERi30TPhCltEmergencyNumberQueryMode @ 49 NONAME - _ZN21RPhCltEmergencyNumber4OpenER12RPhCltServer @ 50 NONAME - _ZN21RPhCltEmergencyNumber5CloseEv @ 51 NONAME - _ZN21RPhCltEmergencyNumberC1Ev @ 52 NONAME - _ZN21RPhCltEmergencyNumberC2Ev @ 53 NONAME - _ZN22TPhCltExtPhoneDialData10SetSATCallEi @ 54 NONAME - _ZN22TPhCltExtPhoneDialData11SetCallTypeE14TPhCltCallType @ 55 NONAME - _ZN22TPhCltExtPhoneDialData12SetContactIdEl @ 56 NONAME - _ZN22TPhCltExtPhoneDialData12SetEmergencyEi @ 57 NONAME - _ZN22TPhCltExtPhoneDialData13SetAllowMatchEi @ 58 NONAME - _ZN22TPhCltExtPhoneDialData13SetNumberTypeEi @ 59 NONAME - _ZN22TPhCltExtPhoneDialData13SetShowNumberEi @ 60 NONAME - _ZN22TPhCltExtPhoneDialData13SetSubAddressERK4TBufILi21EE @ 61 NONAME - _ZN22TPhCltExtPhoneDialData14SetWindowGroupEi @ 62 NONAME - _ZN22TPhCltExtPhoneDialData16SetEndOtherCallsEi @ 63 NONAME - _ZN22TPhCltExtPhoneDialData18SetTelephoneNumberERK4TBufILi100EE @ 64 NONAME - _ZN22TPhCltExtPhoneDialData31SetReturnToNumberEntryOnFailureEi @ 65 NONAME - _ZN22TPhCltExtPhoneDialData7SetNameERK4TBufILi50EE @ 66 NONAME - _ZN22TPhCltExtPhoneDialData9SetBearerERK5TBuf8ILi14EE @ 67 NONAME - _ZN22TPhCltExtPhoneDialData9SetRedialEi @ 68 NONAME - _ZN22TPhCltExtPhoneDialDataC1ERK4TBufILi100EEi @ 69 NONAME - _ZN22TPhCltExtPhoneDialDataC1ERK4TBufILi100EEl @ 70 NONAME - _ZN22TPhCltExtPhoneDialDataC1ERK4TBufILi100EEli @ 71 NONAME - _ZN22TPhCltExtPhoneDialDataC1ERK4TBufILi50EERKS0_ILi100EEli @ 72 NONAME - _ZN22TPhCltExtPhoneDialDataC1Ev @ 73 NONAME - _ZN22TPhCltExtPhoneDialDataC2ERK4TBufILi100EEi @ 74 NONAME - _ZN22TPhCltExtPhoneDialDataC2ERK4TBufILi100EEl @ 75 NONAME - _ZN22TPhCltExtPhoneDialDataC2ERK4TBufILi100EEli @ 76 NONAME - _ZN22TPhCltExtPhoneDialDataC2ERK4TBufILi50EERKS0_ILi100EEli @ 77 NONAME - _ZN22TPhCltExtPhoneDialDataC2Ev @ 78 NONAME - _ZN24CPhCltEmergencyTelNumber12InternalizeLER11RReadStream @ 79 NONAME - _ZN24CPhCltEmergencyTelNumber4SetLERK4TBufILi100EEtt @ 80 NONAME - _ZN24CPhCltEmergencyTelNumber5NewLCEv @ 81 NONAME - _ZN24CPhCltEmergencyTelNumberD0Ev @ 82 NONAME - _ZN24CPhCltEmergencyTelNumberD1Ev @ 83 NONAME - _ZN24CPhCltEmergencyTelNumberD2Ev @ 84 NONAME - _ZN9RPhCltIhf10SetIhfModeEii @ 85 NONAME - _ZN9RPhCltIhf19SetIhfModeFromPhoneEii @ 86 NONAME - _ZN9RPhCltIhf4OpenER12RPhCltServeri @ 87 NONAME - _ZN9RPhCltIhf5CloseEv @ 88 NONAME - _ZN9RPhCltIhfC1Ev @ 89 NONAME - _ZN9RPhCltIhfC2Ev @ 90 NONAME - _ZNK10RPhCltUssd15StartUssdEditorEv @ 91 NONAME - _ZNK16RPhCltCallNotify23CancelNotifyCallAttemptEv @ 92 NONAME - _ZNK16RPhCltCallNotify23CancelReportPhoneStatusEv @ 93 NONAME - _ZNK16RPhCltCallNotify30CancelNotifyPhoneStatusRequestEv @ 94 NONAME - _ZNK22TPhCltExtPhoneDialData10AllowMatchEv @ 95 NONAME - _ZNK22TPhCltExtPhoneDialData10NumberTypeEv @ 96 NONAME - _ZNK22TPhCltExtPhoneDialData10ShowNumberEv @ 97 NONAME - _ZNK22TPhCltExtPhoneDialData10SubAddressEv @ 98 NONAME - _ZNK22TPhCltExtPhoneDialData11AsIPCStructER14TPhCltCallArgs @ 99 NONAME - _ZNK22TPhCltExtPhoneDialData13EndOtherCallsEv @ 100 NONAME - _ZNK22TPhCltExtPhoneDialData13WindowGroupIdEv @ 101 NONAME - _ZNK22TPhCltExtPhoneDialData15TelephoneNumberEv @ 102 NONAME - _ZNK22TPhCltExtPhoneDialData28ReturnToNumberEntryOnFailureEv @ 103 NONAME - _ZNK22TPhCltExtPhoneDialData4NameEv @ 104 NONAME - _ZNK22TPhCltExtPhoneDialData6BearerEv @ 105 NONAME - _ZNK22TPhCltExtPhoneDialData6RedialEv @ 106 NONAME - _ZNK22TPhCltExtPhoneDialData7SATCallEv @ 107 NONAME - _ZNK22TPhCltExtPhoneDialData8CallTypeEv @ 108 NONAME - _ZNK22TPhCltExtPhoneDialData9ContactIdEv @ 109 NONAME - _ZNK22TPhCltExtPhoneDialData9EmergencyEv @ 110 NONAME - _ZNK24CPhCltEmergencyTelNumber12ExternalizeLER12RWriteStream @ 111 NONAME - _ZNK24CPhCltEmergencyTelNumber3MCCEv @ 112 NONAME - _ZNK24CPhCltEmergencyTelNumber3MNCEv @ 113 NONAME - _ZNK24CPhCltEmergencyTelNumber9TelNumberEv @ 114 NONAME - _ZTI10CPhCltUssd @ 115 NONAME ; ## - _ZTI12CPhCltDialer @ 116 NONAME ; ## - _ZTI19CPhCltUssdSatClient @ 117 NONAME ; ## - _ZTI24CPhCltEmergencyTelNumber @ 118 NONAME ; ## - _ZTV10CPhCltUssd @ 119 NONAME ; ## - _ZTV12CPhCltDialer @ 120 NONAME ; ## - _ZTV19CPhCltUssdSatClient @ 121 NONAME ; ## - _ZTV24CPhCltEmergencyTelNumber @ 122 NONAME ; ## - _ZN22TPhCltExtPhoneDialData17SetSendKeyPressedEi @ 123 NONAME - _ZNK22TPhCltExtPhoneDialData14SendKeyPressedEv @ 124 NONAME - _ZN22TPhCltExtPhoneDialData24SetRedialMaximumDurationE20TTimeIntervalSeconds @ 125 NONAME - _ZNK22TPhCltExtPhoneDialData21RedialMaximumDurationEv @ 126 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Group/PhoneClient.mmp --- a/phoneclientserver/phoneclient/Group/PhoneClient.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,140 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Phone Client DLL defines the API for Phone server. -* -*/ - -#include -#include - -// Capability assignment. -CAPABILITY CAP_CLIENT_DLL - -// Assign Vendor ID. -VENDORID VID_DEFAULT - -TARGET phoneclient.dll -TARGETTYPE dll -UID 0x1000008d 0x1000084F - -SOURCEPATH ../src/notifier/notifier_aiw -SOURCE cphcltcallnotify.cpp -SOURCE rphcltcallnotify.cpp -SOURCE cphcltdialrequestmonitor.cpp -SOURCE cphcltdialemergencyrequestmonitor.cpp -SOURCE cphcltcomhandrequestmonitor.cpp - - -SOURCEPATH ../src/extcall/extcall_aiw -SOURCE rphcltextcall.cpp -SOURCE cphcltextphonedialdata.cpp -SOURCE cphcltdialdata.cpp - -SOURCEPATH ../src/extcallwrapper/extcallwrapper_aiw -SOURCE cphcltextphone.cpp -SOURCE cphcltextphonebase.cpp - -SOURCEPATH ../src/ussd/ussd_ext -SOURCE rphcltussd.cpp - -SOURCEPATH ../src/ussdwrapper -SOURCE cphcltussdrequesthandler.cpp - -SOURCE cphcltussdsatclient.cpp - -SOURCE cphcltussdint.cpp -SOURCE cphcltussdimp.cpp -SOURCE cphcltussdext.cpp - -SOURCE cphcltussdnotecontroller.cpp - -SOURCEPATH ../src/emergencynumber/emergencynumber_aiw -SOURCE cphcltemergencycall.cpp -SOURCE rphcltemergencycall.cpp -SOURCE cphcltemergencycallimpl.cpp - -SOURCEPATH ../src/session -SOURCE rphcltserver.cpp - -SOURCEPATH ../src -SOURCE phcltutils.cpp -SOURCE rphcltresourcefile.cpp - -SOURCEPATH ../src/commandhandler -SOURCE cphcltcommandhandler.cpp -SOURCE cphcltcomhandimplementation.cpp -SOURCE rphcltcommandhandler.cpp -SOURCEPATH ../src/imagehandler -SOURCE cphcltimagehandler.cpp -SOURCE cphcltbaseimageparams.cpp -SOURCE cphcltoperatorlogocontainer.cpp -SOURCE cphcltimagehandlerimplementation.cpp -SOURCE rphcltimagehandler.cpp -SOURCEPATH ../src/messenger -SOURCE cphcltmessenger.cpp -SOURCE rphcltmessenger.cpp -SOURCE cphcltmessengerimplementation.cpp - - - -SOURCEPATH ../src - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE ../../../inc -SYSTEMINCLUDE /epoc32/include/mw/hb/hbwidgets -SYSTEMINCLUDE /epoc32/include/mw/hb/hbcore -SYSTEMINCLUDE /epoc32/include/platform/mw/loc -SYSTEMINCLUDE /epoc32/include/platform/mw/loc/sc - -USERINCLUDE ../inc/extcall/extcall_aiw -USERINCLUDE ../inc/notifier/notifier_aiw -USERINCLUDE ../inc/extcallwrapper/extcallwrapper_aiw -USERINCLUDE ../inc/emergencynumber/emergencynumber_aiw - -USERINCLUDE ../inc/session -USERINCLUDE ../inc/sharedclientserver - -USERINCLUDE ../inc/ussdwrapper/ussd_ext -USERINCLUDE ../inc/ussd/ussd_ext -USERINCLUDE ../inc/commandhandler -USERINCLUDE ../inc/imagehandler -USERINCLUDE ../inc/messenger -USERINCLUDE ../inc/ussdwrapper -USERINCLUDE ../inc - - -LIBRARY euser.lib -LIBRARY aknnotify.lib -LIBRARY cone.lib -LIBRARY estor.lib -LIBRARY commonengine.lib -LIBRARY eikdlg.lib -LIBRARY eikcoctl.lib -LIBRARY etelmm.lib -LIBRARY gsmu.lib -LIBRARY efsrv.lib -LIBRARY charconv.lib -LIBRARY fbscli.lib -LIBRARY hbwidgets.lib -LIBRARY flogger.lib -LIBRARY hbcore.lib - - -#ifdef WINSCW - DEFFILE ../bwins/phoneclient_aiwext.def -#else - DEFFILE ../eabi/phoneclient_aiwext.def -#endif - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Group/bld.inf --- a/phoneclientserver/phoneclient/Group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: build file for PhoneClient. -* -*/ - -#include - -PRJ_PLATFORMS -DEFAULT - - -PRJ_EXPORTS - - ../inc/emergencynumber/emergencynumber_aiw/rphcltemergencycall.h |../../inc/rphcltemergencycall.h - ../inc/misc/telservicesinternalcrkeys.h |../../../inc/telservicesinternalcrkeys.h - ../inc/misc/telservicesvariant.hrh |../../../inc/telservicesvariant.hrh - ../inc/extcall/extcall_aiw/cphcltextphonedialdata.h |../../inc/cphcltextphonedialdata.h - ../inc/extcallwrapper/extcallwrapper_aiw/mphcltextphoneobserver.h |../../inc/mphcltextphoneobserver.h - ../inc/extcallwrapper/extcallwrapper_aiw/cphcltextphonebase.h |../../inc/cphcltextphonebase.h - ../inc/extcallwrapper/extcallwrapper_aiw/cphcltdialer.h |../../inc/cphcltdialer.h - -../data/phoneclient_stub.sis /epoc32/data/z/system/install/phoneclient_stub.sis - -// IBY files -../rom/phoneclient.iby CORE_MW_LAYER_IBY_EXPORT_PATH(phoneclient.iby) - -// Generic configuration interface for component cenrep settings -../conf/telephonyservices.confml MW_LAYER_CONFML(telephonyservices.confml) -../conf/telephonyservices_102029ac.crml MW_LAYER_CRML(telephonyservices_102029ac.crml) -../conf/telephonyservices_102078f1.crml MW_LAYER_CRML(telephonyservices_102078f1.crml) - -PRJ_MMPFILES -../group/phoneclient.mmp - -PRJ_TESTMMPFILES -// specify the .mmp files required for building any test programs here - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/CommandHandler/CPhCltComHandImplementation.h --- a/phoneclientserver/phoneclient/Inc/CommandHandler/CPhCltComHandImplementation.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -/* -* Copyright (c) 2003-2005 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: Implementation of the PhCltExtension interface. -* -*/ - - - -#ifndef CPHCLTCOMHANDLIMPLEMENTATION_H -#define CPHCLTCOMHANDLIMPLEMENTATION_H - - -// INCLUDES - -#include "rphcltcommandhandler.h" -#include "rphcltcommandhandlernotify.h" -#include "rphcltserver.h" - - -// CLASS DECLARATION - -/** -* Implementation of the CPhCltCommandHandler interface. -* -* -* @lib PhoneClient.lib -* @since 3.2 -*/ -NONSHARABLE_CLASS( CPhCltCommandHandlerImplementation ) -: public CPhCltCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhCltCommandHandlerImplementation* NewL(); - - - /** - * Destructor. - */ - virtual ~CPhCltCommandHandlerImplementation(); - - - public: // Functions from base classes - - /** - * @see CPhCltCommandHandler. - */ - void Atd( - TRequestStatus& aStatus, - const TPhCltTelephoneNumber& aTelephoneNumber ); - - - /** - * @see CPhCltCommandHandler. - */ - void Ata( - TRequestStatus& aStatus ); - - - /** - * @see CPhCltCommandHandler. - */ - void Chld( - TRequestStatus& aStatus, - const TPhCltChldCommand aChldCommand, - const TUint aCallNumber ); - - - /** - * @see CPhCltCommandHandler. - */ - void Chup( - TRequestStatus& aStatus ); - - - /** - * @see CPhCltCommandHandler. - */ - void Vts( - TRequestStatus& aStatus, - const TPhCltDtmfTone aDtmfTone, - const TPhCltDtmfAction aAction ); - - /** - * @see CPhCltCommandHandler. - */ - void CancelAsyncRequest( - const TPhCltComHandCommand aReqToCancel ); - - /** - * @see CPhCltCommandHandler. - */ - void MuteMicrophone( TRequestStatus& aStatus, const TBool aMute ); - - /** - * @see CPhCltCommandHandler. - */ - void MuteRingingTone( TRequestStatus& aStatus ); - - private: - - /** - * C++ constructor. - */ - CPhCltCommandHandlerImplementation(); - - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - - private: // Data - - // The command handler to perform requests. - RPhCltCommandHandler iCommandHandler; - - //RPhCltServer class instance creates phonesession - RPhCltServer iServer; - - }; - - -#endif // CPHCLTCOMHANDLIMPLEMENTATION_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/CommandHandler/RPhCltCommandHandler.h --- a/phoneclientserver/phoneclient/Inc/CommandHandler/RPhCltCommandHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,186 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: This class is used to perform command handler originated -* commands. -* -*/ - - -#ifndef RPHCLTCOMMANDHANDLER_H -#define RPHCLTCOMMANDHANDLER_H - - -// INCLUDES -#include -#include -//#include "cphcltcommandhandlernotify.h" -#include "cphcltcommandhandler.h" - -// FORWARD DECLARATIONS -class RPhCltServer; - -// CLASS DECLARATION - -/** -* PhoneClient command handler interface. -* The user of this API has to take care that there is only at most one -* request, i.e. function call, ongoing (active) at the time. However, the -* corresponding Cancel method can be called while request is ongoing. -* -* @lib PhoneClient.lib -* @since 3.2 - -*/ -class RPhCltCommandHandler -: public RSubSessionBase - { - public: // Constructors and destructor - - /** - * Constructor. - */ - RPhCltCommandHandler(); - - - public: // New functions - - /** - * Open subsession to server. - * - * @param aServer Pre-opened server session. - * @return Symbian OS error code of the success of the opening. - */ - TInt Open( RPhCltServer& aServer ); - - - /** - * Close subsession. - */ - void Close(); - - /** - * Dial. Only voice call is supported. - * - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - * @param aTelephoneNumber The telephony number . - */ - - void Atd( - TRequestStatus& aStatus, - const TPhCltTelephoneNumber& aTelephoneNumber ); - - - /** - * Answer the call. - * Does not need response according to specification. - * - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - * KErrNotReady if there is no call to be answered. - */ - void Ata( - TRequestStatus& aStatus ); - - - /** - * Call hold and multiparty handling. - * - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - * @param aChldCommand The command to be performed. - * @param aCallNumber The call number where the command specified in - * aChldCommand is targeted. - * Not used currently. - */ - void Chld( - TRequestStatus& aStatus, - const TPhCltChldCommand aChldCommand, - const TUint aCallNumber ); - - - /** - * Hang up current call. - * Does not need response according to specification. - * - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - */ - void Chup( - TRequestStatus& aStatus ); - - - /** - * DTMF sending, starting and stopping in same function. - * Does not need response according to specification. - * - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - * @param aDtmfTone The DTMF tone to be sent. - * @param aActivation Desired DTMF action. - */ - void Vts( - TRequestStatus& aStatus, - const TPhCltDtmfTone aDtmfTone, - const TPhCltDtmfAction aAction ); - - /** - * Cancel the ongoing asynchronous request. - * - * @param aReqToCancel The request to be canceled. - */ - void CancelAsyncRequest( - const TPhCltComHandCommand aReqToCancel ); - - /** - * Mute Microphone. - * - * @since 2.8 - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - * @param aMute ETrue if Mic Mute is set on. - */ - void MuteMicrophone( - TRequestStatus& aStatus, - const TBool aMute ); - - - /** - * Mute RingingTone. - * - * @since 2.8 - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - */ - void MuteRingingTone( - TRequestStatus& aStatus ); - - private: - - // Prohibit copy constructor if not deriving from CBase. - RPhCltCommandHandler( const RPhCltCommandHandler& ); - - // Prohibit assigment operator if not deriving from CBase. - RPhCltCommandHandler& operator=( const RPhCltCommandHandler& ); - - - private: // Data - - // Command handler arguments. - TPckgBuf< TPhCltComHandCommandParameters > iComHandParams; - }; - -#endif // RPHCLTCOMMANDHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/CommandHandler/RPhCltCommandHandlerNotify.h --- a/phoneclientserver/phoneclient/Inc/CommandHandler/RPhCltCommandHandlerNotify.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Observer getting notifications about -* command handler requests from Phone Server. -* -*/ - -#ifndef RPHCLTCOMMANDHANDLERNOTIFY_H -#define RPHCLTCOMMANDHANDLERNOTIFY_H - -// INCLUDES -#include - - -// FORWARD DECLARATIONS -class RPhCltServer; - - -// CLASS DECLARATION - -/** -* Observer getting notifications about command handler requests -* from Phone Server. -* -* @lib PhoneClient.lib -* @since 3.2 -*/ -class RPhCltCommandHandlerNotify -: public RSubSessionBase - { - public: // Constructors and destructors. - - /** - * Constructor. - */ - RPhCltCommandHandlerNotify(); - - - public: // New functions - - /** - * Open subsession to server. - * - * @param aServer Pre-opened server session. - * @return Symbian OS error code of the success of the opening. - */ - TInt Open( RPhCltServer& aServer ); - - - /** - * Close subsession. - */ - void Close(); - - - /** - * Notifies when a Command handler request arrives. - * - * @param aStatus Status to be changed when command handler request - * has arrived. - * @param aCommandArgs Command argument storage place. - * That is, packaged version of class - * TPhCltComHandCommandParameters. - */ - void NotifyComHandCommand( - TRequestStatus& aStatus, - TDes8& aCommandArgs ); - - - /** - * Cancel pending command handler request notification. - */ - void CancelNotifyComHandCommand() const; - - - /** - * Respond to client's command handler request. - * - * @param aResultCode Result of the response - * (previous function execution). - * @return KErrNone if respond succeeded, otherwise Symbian error code. - */ - TInt RespondClient( const TInt aResultCode ); - - - private: - - // Prohibit copy constructor if not deriving from CBase. - RPhCltCommandHandlerNotify( const RPhCltCommandHandlerNotify& ); - - // Prohibit assigment operator if not deriving from CBase. - RPhCltCommandHandlerNotify& operator=( - const RPhCltCommandHandlerNotify& ); - - }; - -#endif // RPHCLTCOMMANDHANDLERNOTIFY_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/EmergencyNumber/CPhCltEmergencyTelNumber.h --- a/phoneclientserver/phoneclient/Inc/EmergencyNumber/CPhCltEmergencyTelNumber.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* -* Copyright (c) 2002 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: Emergency Telephony Number -* -*/ - - -#ifndef CPHCLTEMERGENCYTELNUMBER_H -#define CPHCLTEMERGENCYTELNUMBER_H - -// INCLUDES -#include -#include "phclttypes.h" -#include "rphcltserver.h" - -// CLASS DECLARATION - -/** -* Emergency Telephony Number. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class CPhCltEmergencyTelNumber : public CBase - { - public: - - /** - * Two-phased constructor. - * - * @return Pointer to created CPhCltEmergencyTelNumber instance. - */ - IMPORT_C static CPhCltEmergencyTelNumber* NewLC(); - - /** - * Destructor. - */ - IMPORT_C ~CPhCltEmergencyTelNumber(); - - - public: // [In|Ex]ternalize - - /** - * Read an emergency number from a stream. - * - * @param aStream The stream from which the emergency number is read. - */ - IMPORT_C void InternalizeL( RReadStream& aStream ); - - /** - * Write an emergency number to a stream. - * - * @param aStream The stream where the emergency number is written. - */ - IMPORT_C void ExternalizeL( RWriteStream& aStream ) const; - - - public: // Access - - /** - * Return the phone number. - * - * @return The telephony number field of the emergency number. - */ - IMPORT_C const TDesC& TelNumber() const; - - /** - * Return the MNC field. - * - * @return The MNC field of the emergency number. - */ - IMPORT_C TUint16 MNC() const; - - /** - * Return the MCC field. - * - * @return The MCC field of the emergency number. - */ - IMPORT_C TUint16 MCC() const; - - /** - * Set details of the emergency number. - * - * @param aNumber Telephony number field of the emergency number. - * @param aMNC MNC field of the emergency number. - * @param aMCC MCC field of the emergency number. - */ - IMPORT_C void SetL( - const TPhCltTelephoneNumber& aNumber, - TUint16 aMNC, - TUint16 aMCC ); - - - private: - - // MNC field of the emergency number. - TUint16 iFieldMNC; - - // MCC field of the emergency number. - TUint16 iFieldMCC; - - // Telephony number field of the emergency number. - HBufC* iTelNumber; - - }; - - -#endif // CPHCLTEMERGENCYTELNUMBER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/EmergencyNumber/EmergencyNumber_Aiw/CPhCltEmergencyCallImpl.h --- a/phoneclientserver/phoneclient/Inc/EmergencyNumber/EmergencyNumber_Aiw/CPhCltEmergencyCallImpl.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Client side access to emergency call -* -*/ - - -#ifndef CPHCLTEMERGENCYCALLIMPL_H -#define CPHCLTEMERGENCYCALLIMPL_H - -// INCLUDES -#include -#include "rphcltserver.h" -#include "cphcltemergencycall.h" -#include "rphcltemergencycall.h" - - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* Client side access to emergency call -* -* @lib phoneclient.lib -* @since Series60_1.0 -*/ -NONSHARABLE_CLASS( CPhCltEmergencyCallImpl ) : public CPhCltEmergencyCall - { - public: // Constructors and destructors. - - static CPhCltEmergencyCallImpl* NewL( - MPhCltEmergencyCallObserver* aObserver ); - - /** - * Destructor. - */ - virtual ~CPhCltEmergencyCallImpl(); - - public: // Emergency number API - - /** - * @See CPhCltEmergencyCall - */ - virtual TInt IsEmergencyPhoneNumber( - const TDesC& aNumber, - TBool& aIsEmergencyNumber ); - - /** - * @See CPhCltEmergencyCall - */ - virtual TInt FindEmergencyPhoneNumber( - TDes& aNumber, - TBool& aIsEmergencyNumber ); - - /** - * @See CPhCltEmergencyCall - */ - virtual void DialEmergencyCallL( const TDesC& aNumber ); - - /** - * @See CPhCltEmergencyCall - */ - virtual TInt IsEmergencyPhoneNumber( - const TDesC& aNumber, - TDes& aMatchedEmergencyNumber, - TBool& aIsEmergencyNumber ); - - private: - - /** - * C++ constructor. - */ - CPhCltEmergencyCallImpl( MPhCltEmergencyCallObserver* aObserver ); - - /** - * Symbian OS constructor. - */ - void ConstructL(); - - /** - * From CActive, it is called when object is active and - * request has been processed. - */ - void RunL(); - - /** - * From CActive, calcels pending request. - */ - void DoCancel(); - - /** - * Check that active object is not active and subsession - * before attempting a dial - */ - void DialEmergencyPreconditionCheckL(); - - private: - - // RClass instance - RPhCltEmergencyCall iEmergencyCall; - - // wrapper for emergencynumber - TPtrC8 iEmergencyCallNumberPtr; - - //RPhCltServer - RPhCltServer iServer; - - //EmergencyCallNumber - TPhCltEmergencyNumber iEmergencyCallNumber; - }; - -#endif // CPHCLTEMERGENCYCALLIMPL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/EmergencyNumber/EmergencyNumber_Aiw/RPhCltEmergencyCall.h --- a/phoneclientserver/phoneclient/Inc/EmergencyNumber/EmergencyNumber_Aiw/RPhCltEmergencyCall.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,233 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Client side access to emergency call -* -*/ - - -#ifndef RPhCltEmergencyCall_H -#define RPhCltEmergencyCall_H - -// INCLUDES -#include -#include "phclttypes.h" -#include "rphcltserver.h" - -/** -* Emergency number query mode -*/ -enum TPhCltEmergencyNumberQueryMode - { - EPhCltEmergencyNumberQueryModeNormal = 0, // Normal mode - EPhCltEmergencyNumberQueryModeAdvanced, // advanced mode - EPhCltEmergencyNumberQueryModeNormalWriteback // Same as "normal", but writes back emergency number - }; - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* Client side access to emergency call -* -* @lib phoneclient.lib -* @since Series60_1.0 -*/ -class RPhCltEmergencyCall : public RSubSessionBase - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - RPhCltEmergencyCall(); - - - public: // New functions - - /** - * Opens the subsession. - * - * @param aServer It is the session of which subsession this is. - * @return Returns error code. - */ - TInt Open( RPhCltServer& aServer ); - - /** - * Closes the subsession. - */ - void Close(); - - - public: - - /** - * Returns information whether the number specified was an emergency number. - * - * @param aNumber Number to be queried. aNumber might contain prefix (SS code) - * and/or postfix (DTMF part). - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltEmergencyNumber, which is equivalent to a - * TBuf< KPhCltEmergencyNumberSize > where - * KPhCltEmergencyNumberSize is defined as 100. - * - * @param aIsEmergencyNumber If ETrue, then the aNumber - * parameter included emergency number. - * @return Returns error code of the success of the operation. - */ - TInt IsEmergencyPhoneNumber( - const TDesC& aNumber, - TBool& aIsEmergencyNumber ); - - /** - * Method can be used to check if the number specified contains - * a valid emergency number in the end of the number. - * - * @param aNumber Number to be queried, matched emergency number - * is returned in this parameter. - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltTelephoneNumberwhich is equivalent to a - * TBuf< KPhCltTelephoneNumberLength > where - * KPhCltTelephoneNumberLength is defined as 100. - * - * @param aIsEmergencyNumber If ETrue, then the aNumber parameter - * was emergency number. - * @return Returns error code of the success of the operation. - */ - TInt FindEmergencyPhoneNumber( - TDes& aNumber, - TBool& aIsEmergencyNumber ); - - /** - * Initiates an emergency call. - * - * @param aReqStatus On return, KErrNone if the emergency call successfully reaches - * the connected state. If the call set-up fails, the function - * member will complete with an error. - * - * @param aNumber Emergency number to be dialed (optional). - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltEmergencyNumber,which is equivalent to a - * TBuf< KPhCltEmergencyNumberSize > where - * KPhCltEmergencyNumberSize is defined as 100. - * - * If the aNumber parameter supplies an "empty" buffer - * the call is created either dialing the default emergency - * phone number or use the SET UP EMERGENCY request - * that does not contain a dialling number. - * - * @pre IsActive() returns EFalse, otherwise leaves with KErrInUse. - */ - void DialEmergencyCall( TRequestStatus& aReqStatus, TDesC8& aNumber ); - - /** - * Cancels an emergency call. - * - */ - void CancelDialEmergencyCall(); - - /** - * Returns information whether the number specified was an emergency - * number and also returns the plain emergency number. - * - * @param aNumber Number to be queried.aNumber might contain prefix (SS code) - * and/or postfix (DTMF part). - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltEmergencyNumberwhich is equivalent to a - * TBuf< KPhCltEmergencyNumberSize > where - * KPhCltEmergencyNumberSize is defined as 100. - * - * @param aMatchedEmergencyNumber Matched emergencynumber without prefix or - * postfix is returned in this parameter. The aMatchedEmergencyNumber - * parameter should be a buffer and the clients are - * provided with atypedef called TPhCltEmergencyNumber, - * which is equivalent to a TBuf< KPhCltEmergencyNumberSize > - * where KPhCltEmergencyNumberSize is defined as 100. - * - * @param aIsEmergencyNumber If ETrue, then the aNumber - * parameter included emergency number. - * - * @return Returns error code of the success of the operation. - */ - TInt IsEmergencyPhoneNumber( - const TDesC& aNumber, - TDes& aMatchedEmergencyNumber, - TBool& aIsEmergencyNumber ); - - private: - - /** - * Extract telephone number from string. If EFalse is returned - * then aString does not contain valid emergency number - * - * @param aString string from which those characters are removed. - * - * @return ETrue - aString can be emergency number and aString - * contains a telephone number - * EFalse - aString cannot be emergency number and aString - * does not contain a number that can be emergency number - */ - TBool ExtractTelephoneNumber( TDes& aString ); - - /** - * Finds start of dtmf string in string. - * - * @param aString Telephone number - * - * @return Index where dtmf string starts or KErrNotFound if no - * dtmf found. - * - */ - TInt FindStartOfDtmfString( const TDesC& aString ); - - /** - * Removes CLIR ss code from beginning of the string if CLIR is - * found from string. - * - * @param aString Telephone number - */ - void RemoveCLIR( TDes& aString ); - - /** - * Removes DTMF string from string. - * - * @param aString Telephone number. - */ - void RemoveDTMF( TDes& aString ); - - /** - * Executes checks to given phone number to find out if it is a valid - * emergency number. - * - * @param aString Telephone number - * @param aIsEmergencyNumber If ETrue, then the aNumber parameter - * was a valid emergency number. - * - * @return Returns error code of the success of the operation. - * - */ - TInt ValidateNumber( TDes& aString, TBool& aIsEmergencyNumber, - const TBool aWriteEmergencyNumBack ); - - - - }; - -#endif // RPhCltEmergencyCall_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/EmergencyNumber/RPhCltEmergencyNumber.h --- a/phoneclientserver/phoneclient/Inc/EmergencyNumber/RPhCltEmergencyNumber.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Client side access to emergency number information -* -*/ - - - -#ifndef RPHCLTEMERGENCYNUMBER_H -#define RPHCLTEMERGENCYNUMBER_H - -// INCLUDES -#include "phclttypes.h" -#include "rphcltserver.h" -#include - -// FORWARD DECLARATIONS - -/** -* Emergency number query mode -*/ -enum TPhCltEmergencyNumberQueryMode - { - EPhCltEmergencyNumberQueryModeNormal = 0, // Normal mode - EPhCltEmergencyNumberQueryModeAdvanced // advanced mode - }; - -// CLASS DECLARATION - -/** -* Client side access to emergency number information -* -* @lib phoneclient.lib -* @since Series60_1.0 -*/ -class RPhCltEmergencyNumber : public RSubSessionBase - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - IMPORT_C RPhCltEmergencyNumber(); - - - public: // New functions - - /** - * Opens the subsession. - * - * @param aServer It is the session of which subsession this is. - * @return Returns error code. - */ - IMPORT_C TInt Open( RPhCltServer& aServer ); - - /** - * Closes the subsession. - */ - IMPORT_C void Close(); - - - public: // Emergency number API - - /** - * Returns information whether the number specified would initiate - * an emergency call. - * - * @param aNumber Number to be queried. - * @param aIsEmergencyNumber If ETrue, then the aNumber parameter - * was emergency number. - * @param aMode Emergency number query mode, default: normal. - * @return Returns error code of the success of the operation. - */ - IMPORT_C TInt IsEmergenyPhoneNumber( - const TPhCltTelephoneNumber& aNumber, - TBool& aIsEmergencyNumber, - TPhCltEmergencyNumberQueryMode aMode = - EPhCltEmergencyNumberQueryModeNormal ); - - /** - * Returns information whether the number specified would initiate - * an emergency call. - * - * @param aNumber Number to be queried, matched emergency number is - * returned if a correct emergency number is found at - * the last of the number. - * @param aIsEmergencyNumber If ETrue, then the aNumber parameter - * was emergency number. - * @param aMode Emergency number query mode, default: normal. - * @return Returns error code of the success of the operation. - */ - IMPORT_C TInt IsEmergencyPhoneNumber( - TPhCltTelephoneNumber& aNumber, - TBool& aIsEmergencyNumber, - TPhCltEmergencyNumberQueryMode aMode = - EPhCltEmergencyNumberQueryModeNormal ); - - - - private: - - // Internal cleanup support - static void CleanupEmergencyList( TAny* aList ); - - }; - -#endif // RPHCLTEMERGENCYNUMBER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/ExtCall/ExtCall_Aiw/CPhCltExtPhoneDialData.h --- a/phoneclientserver/phoneclient/Inc/ExtCall/ExtCall_Aiw/CPhCltExtPhoneDialData.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,575 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: It defines dial data. -* -*/ - - -#ifndef CPHCLTEXTPHONEDIALDATA_H -#define CPHCLTEXTPHONEDIALDATA_H - - -// INCLUDES -#include -#include -#include -#include "phclttypes.h" -#include // Phone Client Notify API - - -// Other constants used in TPhCltExtPhoneDialData ( default values ) -const TBool KPhCltDefaultAllowMatch = ETrue; // Match is allowed -const TBool KPhCltDefaultNumberEntry = EFalse; // No return to number entry. -const TInt KPhCltDefaultNumberType = -1; // No number type. - - -// CONSTANTS -//None. - - -// FORWARD DECLARATIONS -//None - -// CLASS DECLARATION -/** -* It defines the structure containing dial information. -* -* Fields: -* -* window group - When call is ended, set window group is actived. -* -* show number - Permission to show number. ETrue if it is allowed. -* -* redial - Automatic redial override. -* -* name - Name corresponding to number. Name must be defined -* if shown number equals to EFalse. -* contact link - Contact link. you should put always when you are dialing -* from phonebook contact. -* tel number - String that is to be dialled. -* number fields are supported. -* allow match - Permission to allow match. ETrue if match is to be done. -* If you are dialing from sim pd or fdn, then this should -* be EFalse. -* number entry - Returns whether to return to the number entry on failure -* -* end other calls - Information if the existing calls are ended before -* this new one is made. -* Not mandatory. Set only if you know that the call is an -* emergency call. -* subaddress - The calling party subaddress. Supports SAT features. -* Defined in ITU-T I.330 and 3GPP TS 11.14. -* SATCall - Set whether this is SAT originated call or not. -* Supports SAT features. -* bearer - Bearer capabilities. Supports SAT features. -* -* CallType - The type of the call, i.e. voice (default) or video. -* -* SendKey - Call made with SendKey, optional. -* -* Redial maximum duration - Automatic redial maximum duration -* -* Initiate call - true if iniate call false otherwise -* -* UUI - User to user information sent on call setup phase. -* -* @lib phoneclient.lib -* @since 3.2 -*/ -/** -* Dial data set for PhoneClient. -* -* @lib ServiceHandler.lib -* @since Series 60 3.2 -*/ -NONSHARABLE_CLASS( CPhCltExtPhoneDialData ): public CPhCltDialData - { - - public: - /* - * TBools combined to one uint. - * - * EPhCltCallFlagsDefault - * Default flags, if nothing is not specified. - * EPhCltCallFlagsAllowNumberShowing - * Number showing is allowed. - * EPhCltCallFlagsReturnToNumberEntryOnFailure - * Return to Number Entry if there is an error. - * EPhCltCallFlagsAllowPersonalDirectoryMatching - * The number is matched to Personal Directory. - * EPhCltCallFlagsEndBeforeDial - * Other calls are ended before the new one is done. - * EPhCltCallFlagsSAT - * If set means that SAT has originated the call. - * EPhCltCallFlagsVideoCall - * If set means that this is video call. - * Otherwise means normal, i.e. voice call. - * EPhCltCallFlagsVoIPCall - * If set means that this is VoIP call. - * Otherwise means normal, i.e. voice call. - * EPhCltCallFlagsSendKey - * If set means that call made with SendKey. - */ - enum TPhCltCallFlags - { - EPhCltCallFlagsDefault = 0x0000, - EPhCltCallFlagsAllowNumberShowing = 0x0001, - EPhCltCallFlagsReturnToNumberEntryOnFailure = 0x0002, - EPhCltCallFlagsAllowPersonalDirectoryMatching = 0x0004, - EPhCltCallFlagsEndBeforeDial = 0x0008, - EPhCltCallFlagsSAT = 0x0020, - EPhCltCallFlagsVideoCall = 0x0040, - EPhCltCallFlagsVoIPCall = 0x0080, - EPhCltCallFlagsSendKey = 0x0100 - }; - - /** - * Two-phased constructor. - */ - IMPORT_C static CPhCltExtPhoneDialData* NewL(); - - /** - * Two-phased constructor. - */ - IMPORT_C static CPhCltExtPhoneDialData* NewLC(); - - - /** - * Two-phased constructor. - */ - IMPORT_C static CPhCltExtPhoneDialData* NewL( const TDesC8& aPackage ); - - /** - * Two-phased constructor. - */ - IMPORT_C static CPhCltExtPhoneDialData* NewLC( const TDesC8& aPackage ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CPhCltExtPhoneDialData(); - - public: // New functions - - /** - * Fills the parameter list. - * @since Series 60 3.2 - * @param aInParamList In parameter used with CAiwService. - */ - IMPORT_C HBufC8* PackLC(); - - - // Calculates dialdata package size - IMPORT_C TInt CalculatePackageSize() const; - - // Sets dial data parameters to CPhCltExtPhoneDialData object - void SetParamsL( const TDesC8& aPackage ); - - - public: // Access - Getters - - - /** - * Defines if mathing is allowed. - * @since Series 60 3.2 - * @return Returns the allow match setting information. - */ - IMPORT_C TBool AllowMatch() const; - - /** - * Bearer capability. - * @since Series 60 3.2 - * @return Returns bearer capability. - */ - IMPORT_C const TPhCltBearerCapability& Bearer() const; - - /** - * Gives the current call type. - * @since Series 60 3.2 - * @return Current call type. - */ - IMPORT_C TPhCltCallType CallType() const ; - - /** - * Contact link field. - * @since Series 60 3.2 - * @return Returns contack link item. - */ - IMPORT_C const TDesC8& ContactLink() const; - - - /** - * End other calls param. - * @since Series 60 3.2 - * @return Returns ETrue if other calls will be terminated. - * EFalse if calls are not terminated. - */ - IMPORT_C TBool EndOtherCalls() const; - - /** - * Intiate Call - * @since Series 60 3.2 - * @return Returns ETrue if call is itiate call EFalse otherwise - */ - IMPORT_C TBool InitiateCall() const; - - /** - * Name. - * @since Series 60 3.2 - * @return Returns name. - */ - IMPORT_C const TPhCltNameBuffer& Name() const; - - - /** - * Redial information. - * @since Series 60 3.2 - * @return Return the redial status, - */ - IMPORT_C TInt Redial() const; - - /** - * Redial maximum duration - * @since Series 60 3.2 - * @return Returns redial max duration. - */ - IMPORT_C const TTimeIntervalSeconds RedialMaximumDuration() const; - - - /** - * Return in failure. - * @since Series 60 3.2 - * @return Returns whether to return to the number entry. - */ - //IMPORT_C TBool ReturnToNumberEntryOnFailure() const; - - /** - * SAT Call. - * @since Series 60 3.2 - * @return Returns ETrue if SAT call EFalse if not. - */ - IMPORT_C TBool SATCall() const; - - /** - * SendKey pressed. - * @since Series 60 3.2 - * @return Return ETrue if SendKey used. - */ - IMPORT_C TBool SendKeyPressed() const; - - /** - * Show Number. - * @since Series 60 3.2 - * @return Returns the number visibility. - */ - IMPORT_C TBool ShowNumber() const; - - /** - * Sub address. - * @since Series 60 3.2 - * @return Returns SAT call sub address. - */ - IMPORT_C const TPhCltSubAddress& SubAddress() const; - - /** - * Gives the current phone number. - * @since Series 60 3.2 - * @return Telephone number. - */ - IMPORT_C const TPhCltTelephoneNumber& TelephoneNumber() const; - - /** - * Gives the current window group id. - * @since Series 60 3.2 - * @return Window group id. - */ - IMPORT_C TInt WindowGroup() const; - - /** - * Gives the user to user information. - * @since S60 v3.2 - * @return User to user information. - */ - IMPORT_C const TDesC& UUI() const; - - public: // Access - Setters - - /** - * Set whether the name entered in SetName should be matched - * against the personal directory. - * @since Series 60 3.2 - * This should be set EFalse only if phone number has not been - * taken from phonebook. - * - * @param aAllowMatch Whether to allow matches. - */ - IMPORT_C void SetAllowMatch( TBool aAllowMatch ); - - /** - * Set the bearer capability. - * @since Series 60 3.2 - * @param aBearer The bearer capabilities as defined in GSM 04.08. - * @leaves KErrArgument if aBearer's length is longer than KAiwBearerLength - */ - IMPORT_C void SetBearerL( const TPhCltBearerCapability& aBearer ); - - /** - * Sets call type. - * @since Series 60 3.2 - * @param aCallType calls' type. - */ - IMPORT_C void SetCallType( TPhCltCallType aCallType ); - - /** - * Set contact link. - * @since Series 60 3.2 - * @param aContactLink Contact link information. - */ - IMPORT_C void SetContactLinkL( const TDesC8& aContactLink ); - - - /** - * Set parameter for end other calls. - * @since Series 60 3.2 - * If this is set to ETrue, other calls will be terminated before - * dial. Default is EFalse. - * @param aEndCalls Are the other calls ended. - */ - IMPORT_C void SetEndOtherCalls( TBool aEndCalls ); - - /** - * Set Initiate call Etrue or EFalse - *@since Series 60 3.2 - * @param aInitCall ETrue if call is intiate call - */ - IMPORT_C void SetInitiateCall( TBool aInitCall ); - - - /** - * Set the name of the person who is to be called. - * @since Series 60 3.2 - * @param aName The name of the person being called. - * @leaves KErrArgument if aName length is over 50 characters. - */ - IMPORT_C void SetNameL( const TPhCltNameBuffer& aName ); - - - /** - * Change the redial mode. - * @since Series 60 3.2 - * @param aRedial The new redial status - */ - - IMPORT_C void SetRedial( TInt aRedial ); - - /** - * Set redial max duration. - * @since Series 60 3.2 - * @param aDuration redial max duration. - */ - IMPORT_C void SetRedialMaximumDuration( TTimeIntervalSeconds aMaximumRedialDuration ); - - - /** - * Set whether to return to number entry. - * - * @param aReturn Whether to return to the number entry editor. - */ - IMPORT_C void SetReturnToNumberEntryOnFailure( TBool aReturn ); - - /** - * Set wheteher this is a SAT originated call or not. - * If this function is not called, the originator is assumed to - * be other than SAT. - * @since Series 60 3.2 - * @param aSATCall ETrue if SAT originated the call, EFalse otherwise. - */ - IMPORT_C void SetSATCall( TBool aSATCall ); - - - /** - * Set the value of SendKey. - * @since Series 60 3.2 - * @param aSendKey The value of SendKey. - */ - IMPORT_C void SetSendKeyPressed( TBool aSendKey ); - - /** - * Set the number visibility in the phone app. - * @since Series 60 3.2 - * If this is set to EFalse, then number is not shown or written to - * log event. - * @param aShowNumber Whether or not to show the number. - */ - IMPORT_C void SetShowNumber( TBool aShowNumber ); - - /** - * Set the calling party subaddress. - * Defined in ITU-T I.330 and 3GPP TS 11.14. - * @since Series 60 3.2 - * @param aSubAddress The calling party subaddress. - * @leaves KErrArgument if aSubAddress length is longer than - * KAiwSubAddressLength - */ - IMPORT_C void SetSubAddressL( const TPhCltSubAddress& aSubAddress ); - - /** - * Sets the phone number. - * @since Series 60 3.2 - * @param aNumber Phone number, which maximum length is - * KMaximumPhoneNumberLength. - * @leaves KErrArgument if aPhoneNumber length is over KMaximumPhoneNumberLength - */ - IMPORT_C void SetTelephoneNumber( const TPhCltTelephoneNumber& aNumber ); - - /** - * Sets the window group identifier. When call is ended, set window group is actived. - * @since Series 60 3.2 - * @param aWindowGroup Window group id. - */ - IMPORT_C void SetWindowGroup( TInt aWindowGroup ); - - /** - * Set the value of xSP Service Id. - * - * @param aServiceId The value of Service Id. - */ - IMPORT_C void SetServiceId( TUint32 aServiceId ); - - - /** - * Service Id. VoIP2.2 implementation - * @return Return service id or zero. - */ - IMPORT_C TUint32 ServiceId() const; - - - /** - * Sets user to user information. Maximum length is - * KPhCltUUILength. - * @param aUUI User to user information. - * @since S60 v3.2 - */ - IMPORT_C void SetUUIL( const TDesC& aUUI ); - - - - - - // Constructors - - private: - - /** - * C++ default constructor. - * @since Series 60 3.2 - */ - CPhCltExtPhoneDialData(); - - /** - * By default Symbian 2nd phase constructor is private. - * @since Series 60 3.2 - */ - void ConstructL(); - - /** - * By default Symbian 2nd phase constructor is private. - * @since Series 60 3.2 - * @param aPackage including dial data - */ - void ConstructL( const TDesC8& aPackage ); - - - //Private functions - - private: - /** - * Calculates variable descriptor size - * @since Series 60 3.2 - * @param aDescriptor which size is calculated - */ - TInt CalculateDescriptorSize( const TDesC& aDescriptor ) const; - - /** - * Calculates variable descriptor size - * @since Series 60 3.2 - * @param aDescriptor which size is calculated - */ - TInt CalculateDescriptorSize( const TDesC8& aDescriptor ) const; - - /** - * Read descriptor value from stream - * @since Series 60 3.2 - * @param aStream used stream - * @param aDescriptor which is read from stream - */ - void ReadDescriptorFromStreamL( RDesReadStream& aStream, HBufC8*& aDescriptor ); - - /** - * Read descriptor value from stream - * @since Series 60 3.2 - * @param aStream used stream - * @param aDescriptor which is read from stream - */ - void ReadDescriptorFromStreamL( RDesReadStream& aStream, HBufC*& aDescriptor ); - - /** - * Write descriptor value to stream - * @since Series 60 3.2 - * @param aStream used stream - * @param aDescriptor which value is write to stream - */ - void WriteDescriptorToStreamL( RDesWriteStream& aStream, const TDesC8& aDescriptor ); - - /** - * Write descriptor value to stream - * @since Series 60 3.2 - * @param aStream used stream - * @param aDescriptor which value is write to stream - */ - void WriteDescriptorToStreamL( RDesWriteStream& aStream, const TDesC& aDescriptor ); - - - /** - * Copy descriptor value to member descriptor - * @since Series 60 3.2 - * @param aSource which is as copy source - * @param aMemberDescriptor is as copy destination - */ - void CopyDescriptorToMemberDescriptorL( const TDesC& aSource, HBufC*& aMemberDescriptor ); - - /** - * Copy descriptor value to member descriptor - * @since Series 60 3.2 - * @param aSource which is as copy source - * @param aMemberDescriptor is as copy destination - */ - void CopyDescriptorToMemberDescriptorL( const TDesC8& aSource, HBufC8*& aMemberDescriptor ); - - - /** - * Check descriptor max length - * Leaves with KErrArgument if aDescriptorLength is greated that aMaxAllowedDescriptorLenght - * @since Series 60 3.2 - * @param aDescriptorLength is descriptor length - * @param aMaxAllowedDescriptorLength maximum allowed descriptor length - */ - void CheckDescriptorMaxLengthL( TInt aDescriptorLength, TInt aMaxAllowedDescriptorLength ) const; - - - }; - -#endif // CPHCLTEXTPHONEDIALDATA_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/ExtCall/ExtCall_Aiw/RPhCltCallNotify.h --- a/phoneclientserver/phoneclient/Inc/ExtCall/ExtCall_Aiw/RPhCltCallNotify.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,143 +0,0 @@ -/* -* Copyright (c) 2002 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: RCallNotify observer getting notifications about call requests -* from Phone Server. -* -*/ - -#ifndef RPHCLTCALLNOTIFY_H -#define RPHCLTCALLNOTIFY_H - -// INCLUDES -#include - - -// FORWARD DECLARATIONS -class RPhCltServer; -class CPhCltExtPhoneDialData; - -// CLASS DECLARATION - -/** -* RCallNotify observer getting notifications about call requests -* from Phone Server. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class RPhCltCallNotify : public RSubSessionBase - { - public: // Constructors and destructors. - - /** - * Constructor. - */ - RPhCltCallNotify(); - - - public: // New functions - - /** - * Open subsession to server. - * - * @param aServer Pre-opened server session. - * @return Symbian OS error code of the success of the opening. - */ - TInt Open( RPhCltServer& aServer ); - - /** - * Close subsession. - */ - void Close(); - - /** - * Notifies when a call request arrives. - * - * @param aStatus Status to be changed when call request have arrived. - * @param aDatalength Dial data length. - */ - void NotifyCallAttempt( - TRequestStatus& aStatus, - TPckg< TInt >& aDataLength ); - /** - * Cancel pending call attempt notification. - */ - void CancelNotifyCallAttempt() const; - - /** - * Respond to client request to make a call - * - * @param aResultCode Result of the response. - */ - TInt RespondClient( const TInt aResultCode ); - - void GetDialData( TDes8& aData ); - - /** - * Notifies when a emergency call request arrives. - * - * @param aStatus Status to be changed when call request have arrived. - * @param aEmergencyNumber - * - */ - void NotifyEmergencyCall( - TRequestStatus& aStatus, - TDes8& aEmergencyNumber - ); - /** - * Cancel pending call attempt notification. - */ - void CancelNotifyEmergencyCall() const; - - /** - * Respond to client request to make a emergency call - * - * @param aResultCode Result of the response. - * @return Symbian OS error code of the success of the opening. - */ - TInt RespondEmergencyToClient( const TInt aResultCode ); - - /** - * Notifies when a Command handler request arrives. - * - * @param aStatus Status to be changed when command handler request - * has arrived. - * @param aCommandArgs Command argument storage place. - * That is, packaged version of class - * TPhCltComHandCommandParameters. - */ - void NotifyComHandCommand( - TRequestStatus& aStatus, - TDes8& aCommandArgs ); - - /** - * Cancel pending command handler request notification. - */ - void CancelNotifyComHandCommand() const; - - /** - * Respond to client's command handler request. - * - * @param aResultCode Result of the response - * (previous function execution). - * @return KErrNone if respond succeeded, otherwise Symbian error code. - */ - TInt RespondComHandClient( const TInt aResultCode ); - - }; - - -#endif // RPHCLTCALLNOTIFY_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/ExtCall/ExtCall_Aiw/RPhCltExtCall.h --- a/phoneclientserver/phoneclient/Inc/ExtCall/ExtCall_Aiw/RPhCltExtCall.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -/* -* Copyright (c) 2002 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: It is the client side remote class of call subsession object. -* -*/ - - -#ifndef RPHCLTEXTCALL_H -#define RPHCLTEXTCALL_H - -// INCLUDES -#include -#include "phclttypes.h" -#include "rphcltserver.h" - -// FORWARD DECLARATIONS -class CPhCltExtPhoneDialData; - -// CLASS DECLARATION - -/** -* It is the client side remote class of call subsession object. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class RPhCltExtCall : public RSubSessionBase - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - RPhCltExtCall(); - - - public: // New functions - - /** - * Opens the subsession. - * - * @param aServer It is the session of which subsession this is. - * @return Returns error code. - */ - TInt Open( RPhCltServer& aServer ); - - /** - * Closes the subsession. - */ - void Close(); - - /** - * Makes a call (asynchronous). - * - * @param aStatus It is used to notify the completion of the request. - * Then it indicates the success/failure of the operation. - * @param aData The object containing the dial parameters - * @param aLength dial data package length - */ - void Dial( - TRequestStatus& aStatus, - TDesC8& aData, TInt aLength ); - - /** - * Cancels the dialling request. - */ - void CancelDial() const; - - private: - - // By default, prohibit copy constructor - RPhCltExtCall( const RPhCltExtCall& ); - // Prohibit assigment operator - RPhCltExtCall& operator= ( const RPhCltExtCall& ); - - - - - - private: // Data - - - - }; -#endif // RPHCLTEXTCALL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/ExtCall/RPhCltExtCall.h --- a/phoneclientserver/phoneclient/Inc/ExtCall/RPhCltExtCall.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,117 +0,0 @@ -/* -* Copyright (c) 2002 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: It is the client side remote class of call subsession object. -* -*/ - - -#ifndef RPHCLTEXTCALL_H -#define RPHCLTEXTCALL_H - -// INCLUDES -#include -#include "phclttypes.h" -#include "rphcltserver.h" - -// FORWARD DECLARATIONS -class TPhCltExtPhoneDialData; - -// CLASS DECLARATION - -/** -* It is the client side remote class of call subsession object. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class RPhCltExtCall : public RSubSessionBase - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - RPhCltExtCall(); - - - public: // New functions - - /** - * Opens the subsession. - * - * @param aServer It is the session of which subsession this is. - * @return Returns error code. - */ - TInt Open( RPhCltServer& aServer ); - - /** - * Closes the subsession. - */ - void Close(); - - /** - * Makes a call (asynchronous). - * - * @param aStatus It is used to notify the completion of the request. - * Then it indicates the success/failure of the - * operation. - * @param aNumber It is the number to be dialled. - * @param aName The name to show in UI. - * @param aWindowGroupId It is the id of the window group to be brought - * foreground after the call has been ended. - * @param aRedial Redial settings - * @param aContactId Contact Id to be asked from the phonebook. - * @param aAllowNumberShowing Is it allowed to show the number? - */ - void Dial( - TRequestStatus& aStatus, - const TPhCltTelephoneNumber& aNumber, - const TPhCltNameBuffer& aName, - const TInt aWindowGroupId, - const TInt aRedial, - const TPhCltContactId aContactId, - const TBool aAllowNumberShowing ); - - /** - * Makes a call (asynchronous). - * - * @param aStatus It is used to notify the completion of the request. - * Then it indicates the success/failure of the operation. - * @param aData The object containing the dial parameters - */ - void Dial( - TRequestStatus& aStatus, - const TPhCltExtPhoneDialData& aData); - - /** - * Cancels the dialling request. - */ - void CancelDial() const; - - private: - - // By default, prohibit copy constructor - RPhCltExtCall( const RPhCltExtCall& ); - // Prohibit assigment operator - RPhCltExtCall& operator= ( const RPhCltExtCall& ); - - private: // Data - - // Call arguments. - TPckgBuf< TPhCltCallArgs > iArgs; - }; - -#endif // RPHCLTEXTCALL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/ExtCall/TPhCltExtPhoneDialData.h --- a/phoneclientserver/phoneclient/Inc/ExtCall/TPhCltExtPhoneDialData.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,475 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: It defines dial data. -* -*/ - - -#ifndef TPHCLTEXTPHONEDIALDATA_H -#define TPHCLTEXTPHONEDIALDATA_H - - -// INCLUDES -#include "phclttypes.h" - -// Constant used as window group id to indicate that we wish to go to idle. -const TInt KPhCltGoToIdle = 0; - -// Constants used in Redial parameter -const TInt KPhCltRedialDefault = -1; // Default redial. -const TInt KPhCltRedialOff = -2; // Redial is off. -const TInt KPhCltRedialWithDefaultTime = -3; // Redial on, with default time. -const TInt KPhCltRedial = 0; // Forced redial. - -// Other constants used in TPhCltExtPhoneDialData ( default values ) -const TBool KPhCltDefaultAllowMatch = ETrue; // Match is allowed -const TBool KPhCltDefaultNumberEntry = EFalse; // No return to number entry. -const TInt KPhCltDefaultNumberType = -1; // No number type. - -// CLASS DECLARATION - -/** -* It defines the structure containing dial information. -* -* Fields: -* -* window group - When call is ended, set window group is actived. -* show number - Permission to show number. ETrue iff it is allowed. -* redial - Automatic redial override. -* name - Name corresponding to number. Name must be defined -* if shown number equals to EFalse. -* contact id - Contact id. you should put always when you are dialing -* from phonebook contact. -* tel number - String that is to be dialled. -* number type - Number type override. See PbkFields.hrh. Only phone -* number fields are supported. -* allow match - Permission to allow match. ETrue iff match is to be done. -* If you are dialing from sim pd or fdn, then this should -* be EFalse. -* number entry - not used. -* end other calls - Information if the existing calls are ended before -* this new one is made. -* emergency - Information whether this is an emergency call or not. -* Not mandatory. Set only if you know that the call is an -* emergency call. -* subaddress - The calling party subaddress. Supports SAT features. -* Defined in ITU-T I.330 and 3GPP TS 11.14. -* SATCall - Set whether this is SAT originated call or not. -* Supports SAT features. -* bearer - Bearer capabilities. Supports SAT features. -* -* CallType - The type of the call, i.e. voice (default) or video. -* -* SendKey - Call made with SendKey, optional. -* -* Redial maximum duration - Automatic redial maximum duration -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class TPhCltExtPhoneDialData - { - public: - - /** - * Construct a dial data package - */ - IMPORT_C TPhCltExtPhoneDialData(); - - /** - * Construct a dial data package - * - * @param aNumber Number to be used in this package. - * @param aContactId Contact ID to be used in this package. - */ - IMPORT_C TPhCltExtPhoneDialData( - const TPhCltTelephoneNumber& aNumber, - TPhCltContactId aContactId ); - - /** - * Construct a dial data package - * - * @param aNumber Number to be used in the package. - * @param aWindowGroupId Windoww Group ID to be used in this package. - */ - IMPORT_C TPhCltExtPhoneDialData( - const TPhCltTelephoneNumber& aNumber, - TInt aWindowGroupId ); - - /** - * Construct a dial data package - * - * @param aNumber Number to be used in the package. - * @param aContactId Contact ID to be used in this package. - * @param aWindowGroupId Windoww Group ID to be used in this package. - */ - IMPORT_C TPhCltExtPhoneDialData( - const TPhCltTelephoneNumber& aNumber, - TPhCltContactId aContactId, - TInt aWindowGroupId ); - - /** - * Construct a dial data package - * - * @param aName Name to be used in the package. - * @param aNumber Number to be used in the package. - * @param aContactId Contact ID to be used in this package. - * @param aWindowGroupId Windoww Group ID to be used in this package. - */ - IMPORT_C TPhCltExtPhoneDialData( - const TPhCltNameBuffer& aName, - const TPhCltTelephoneNumber& aNumber, - TPhCltContactId aContactId, - TInt aWindowGroupId ); - - - public: // Access - Setters - - /** - * Set the window group of requesting application. - * - * @param aWindowGroupId The window group identifier. - */ - IMPORT_C void SetWindowGroup( TInt aWindowGroupId ); - - /** - * Set the number visibility in the phone app. - * - * If this is set to EFalse, then number is not shown or written to - * log event. - * - * @param aShowNumber Whether or not to show the number. - */ - IMPORT_C void SetShowNumber( TBool aShowNumber ); - - /** - * Change the redial mode. - * - * @param aRedial The new redial status - */ - IMPORT_C void SetRedial( TInt aRedial ); - - /** - * Set the value of RedialMaximumDuration. - * - * @param aMaxDuration The value of duration in seconds. - */ - IMPORT_C void SetRedialMaximumDuration( TTimeIntervalSeconds aMaximumRedialDuration ); - - /** - * Set the name of the person who is to be called. - * - * @param aName The name of the person being called. - */ - IMPORT_C void SetName( const TPhCltNameBuffer& aName ); - - /** - * Set the contact Id of the person being called. - * - * @param aContactId The contacts model contact id of the person being - * called. - */ - IMPORT_C void SetContactId( TPhCltContactId aContactId ); - - /** - * Set the number of the person to be called. - * This is mandatory. - * - * @param aNumber The number of the person being called. - */ - IMPORT_C void SetTelephoneNumber( - const TPhCltTelephoneNumber& aNumber ); - - /** - * Set whether to return to number entry. - * - * @param aReturn Whether to return to the number entry editor. - */ - IMPORT_C void SetReturnToNumberEntryOnFailure( TBool aReturn ); - - /** - * Set whether the name entered in SetName should be matched - * against the personal directory (=phonebook). - * - * This should be set EFalse only if phone number has not been - * taken from phonebook. - * - * @param aAllowMatch Whether to allow matches. - */ - IMPORT_C void SetAllowMatch( TBool aAllowMatch ); - - /** - * Set the number type. - * - * See PbkFields.hrh. Only phone number fields are supported. - * - * @param aNumberType The number type. - */ - IMPORT_C void SetNumberType( TInt aNumberType ); - - /** - * Set parameter for end other calls. - * - * If this is set to ETrue, other calls will be terminated before - * dial. Default is EFalse. - * - * @param aEndCalls Are the other calls ended. - */ - IMPORT_C void SetEndOtherCalls( TBool aEndCalls ); - - /** - * Set whether this is known to be an emergency call or not. - * If this function is not called, it is assumed that the call - * is not an emergency call. However, in Phone application side it is - * checked whether the call actually is an emergency call or not before - * dialing. - * - * @param aEmergency - * ETrue if the call is known to be an emergency call. - * EFalse if the call is not known to be an emergency call - * (default). - */ - IMPORT_C void SetEmergency( TBool aEmergency ); - - /** - * Set the calling party subaddress. - * Defined in ITU-T I.330 and 3GPP TS 11.14. - * - * @param aSubAddress The calling party subaddress. - */ - IMPORT_C void SetSubAddress( const TPhCltSubAddress& aSubAddress ); - - /** - * Set wheteher this is a SAT originated call or not. - * If this function is not called, the originator is assumed to - * be other than SAT. - * - * @param aSATCall ETrue if SAT originated the call, EFalse otherwise. - */ - IMPORT_C void SetSATCall( TBool aSATCall ); - - /** - * Set the bearer capability. - * - * @param aBearer The bearer capabilities as defined in GSM 04.08. - */ - IMPORT_C void SetBearer( const TPhCltBearerCapability& aBearer ); - - /** - * Set the call type. - * - * @param aCallType The call type. - */ - IMPORT_C void SetCallType( TPhCltCallType aCallType ); - - /** - * Set the value of SendKey. - * - * @param aSendKey The value of SendKey. - */ - IMPORT_C void SetSendKeyPressed( TBool aSendKey ); - - - public: // Access - Getters - - /** - * Return the window group id. - * - * @return Returns KPhCltGoToIdle if no id has previously been specified. - */ - IMPORT_C TInt WindowGroupId() const; - - /** - * Redial information. - * - * @return Return the redial status, - */ - IMPORT_C TInt Redial() const; - - /** - * Automatic redial maximum duration . - * - * @return value of duration in seconds. - */ - IMPORT_C TTimeIntervalSeconds RedialMaximumDuration( ) const; - - /** - * Number type. - * - * @return Return the number type. - */ - IMPORT_C TInt NumberType() const; - - /** - * Return in failure. - * - * @return Returns whether to return to the number entry. - */ - IMPORT_C TBool ReturnToNumberEntryOnFailure() const; - - /** - * Is match allowed. - * - * @return Returns the allow match setting. - */ - IMPORT_C TBool AllowMatch() const; - - /** - * Number showing. - * - * @return Returns the number visibility. - */ - IMPORT_C TBool ShowNumber() const; - - /** - * Name - * - * @return Return the name of the recipient. - */ - IMPORT_C const TPhCltNameBuffer& Name() const; - - /** - * Contact ID - * - * @return Returns the contact id or KPhCltNoContact if none specified. - */ - IMPORT_C TPhCltContactId ContactId() const; - - /** - * Telephone number - * - * @return Returns the telephone number. - */ - IMPORT_C const TPhCltTelephoneNumber& TelephoneNumber() const; - - /** - * End other calls - * - * @return Returns ETrue if other calls should be ended before dial. - */ - IMPORT_C TBool EndOtherCalls() const; - - /** - * Emergency status (is emergency call or not). - * - * @return Returns ETrue if the call is emergency call. - * EFalse if the call is not emergency call. - */ - IMPORT_C TBool Emergency() const; - - /** - * Calling party subaddress. - * - * @return Returns the calling party subaddress. - */ - IMPORT_C const TPhCltSubAddress& SubAddress() const; - - /** - * SAT call information. - * - * @return Returns ETrue if SAT is the originator of the call. - * EFalse otherwise. - */ - IMPORT_C TBool SATCall( ) const; - - /** - * Bearer capability. - * - * @return Returns the bearer capabilities as defined in GSM 04.08. - */ - IMPORT_C const TPhCltBearerCapability& Bearer( ) const; - - /** - * Call type. - * - * @return Return the call type. - */ - IMPORT_C TPhCltCallType CallType() const; - - /** - * SendKey pressed. - * - * @return Return ETrue if SendKey used. - */ - IMPORT_C TBool SendKeyPressed() const; - - - public: - - /** - * Returns the call argumets through the parameter. - * - * @param aReturn The call arguments are stored here. - */ - IMPORT_C void AsIPCStruct( TPhCltCallArgs& aReturn ) const; - - - private: // Member data - - // The window group identifier storage. - TInt iWindowGroup; - - // The new redial status storage. - TInt iRedial; - - //Automatic redial maximum duration - TTimeIntervalSeconds iRedialMaximumDuration; - - // The number type information storage. - TInt iNumberType; - - // The number visibility information storage. - TBool iShowNumber; - - // Return to the number entry editor information storage. - TBool iReturnToNumberEntryOnFailure; - - // Allow match information storage. - TBool iAllowMatch; - - // The name information storage. - TPhCltNameBuffer iName; - - // The contact ID storage. - TPhCltContactId iContactId; - - // Telephony number storage. - TPhCltTelephoneNumber iTelNumber; - - // Information storage of the other call termination. - TBool iEndOtherCalls; - - // The emergency call information. - TBool iEmergencyCall; - - // The calling party subaddress. - TPhCltSubAddress iSubAddress; - - // The information whether this is SAT originated call or not. - TBool iSATCall; - - // The bearer capability. - TPhCltBearerCapability iBearer; - - // Call type. - TPhCltCallType iCallType; - - // SendKey - TBool iSendKey; - - }; - -#endif // TPHCLTEXTPHONEDIALDATA_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltDialer.h --- a/phoneclientserver/phoneclient/Inc/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltDialer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* Copyright (c) 2002 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: It is dialer class. -* -*/ - - -#ifndef CPHCLTDIALER_H -#define CPHCLTDIALER_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class CPhCltDialerDlg; - -// CLASS DECLARATION - -/** -* It is dialer class. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class CPhCltDialer - : public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @return Pointer to created CPhCltDialer instance. - */ - IMPORT_C static CPhCltDialer* NewL(); - - /** - * Destructor. - */ - ~CPhCltDialer(); - - - public: // New functions - - /** - * Dial parameters. - * - * @return Returns dial data. - */ - IMPORT_C CPhCltExtPhoneDialData& DialData(); - - /** - * Performs dialing with the dial data. - */ - IMPORT_C void ExecuteLD(); - - - private: - - /** - * C++ constructor. - */ - CPhCltDialer(); - - /** - * Symbian OS constructor. - */ - void ConstructL(); - - /** - * Cleanup action. Clears iDestroyed & iDialDlg. - */ - static void DoClear( TAny* aAny ); - - - private: // Data - - // Pointer to boolean indicating if this has been destroyed already. - TBool* iDestroyed; - - // Dialer dialog - CPhCltDialerDlg* iDialDlg; - - }; - -#endif // CPHCLTDIALER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltDialerDlg.h --- a/phoneclientserver/phoneclient/Inc/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltDialerDlg.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/* -* Copyright (c) 2002 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: It is dialer class. -* -*/ - - -#ifndef CPHCLTDIALERDLG_H -#define CPHCLTDIALERDLG_H - -// INCLUDES -#include -#include "mphcltextphoneobserver.h" -#include "cphcltextphonebase.h" -#include - -// FORWARD DECLARATIONS -class CPhCltExtPhoneBase; - -// CLASS DECLARATION - -/** -* It is dialer class. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -NONSHARABLE_CLASS( CPhCltDialerDlg ) - : public CEikDialog, - private MPhCltExtPhoneObserver - { - public: // Constructors and destructor - - /** - * Destructor. - */ - ~CPhCltDialerDlg(); - - - public: // New functions - - /** - * Dial parameters. - * - * @returns Returns dial data. - */ - CPhCltExtPhoneDialData& DialData(); - - /** - * Dial using given information. - */ - void ExecuteDialLD(); - - - private: - - /** - * From CEikDialog, called before layout. - */ - void PreLayoutDynInitL(); - - /** - * From CEikDialog, called after layout. - */ - void PostLayoutDynInitL(); - - /** - * Check if it's ok to exit. - */ - TBool OkToExitL( TInt aButtonId ); - - /** - * From CEikDialog, draw. - */ - void Draw( const TRect& aRect ) const; - - /** - * From MPhCltExtPhoneObserver, handles status of dial. - * - * @param aStatus status. - */ - void HandleDialL( const TInt aStatus ); - - - private: // Data - - // Pointer to error. - TInt* iError; - - // Reference to dial data. - CPhCltExtPhoneDialData* iData; - - // Instance of phone client. - CPhCltExtPhoneBase* iPhoneClient; - - }; - -#endif // CPHCLTDIALERDLG_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltExtPhone.h --- a/phoneclientserver/phoneclient/Inc/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltExtPhone.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +0,0 @@ -/* -* Copyright (c) 2002 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: It is the class for active object for making calls. -* -*/ - - -#ifndef CPHCLTEXTPHONE_H -#define CPHCLTEXTPHONE_H - -// INCLUDES -#include -#include "cphcltextphonebase.h" -#include "rphcltserver.h" -#include "rphcltextcall.h" - - -// FORWARD DECLARATIONS -class MPhCltExtPhoneObserver; - - -// CLASS DECLARATION - -/** -* It is the class for active object for making calls. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -NONSHARABLE_CLASS( CPhCltExtPhone ) - : public CPhCltExtPhoneBase - { - public: // Constructors and destructor - /** - * Two-phased constructor. - * - * @param aObserver It is the observer for the instance. - * @return Pointer to created CPhCltExtPhone instance. - */ - static CPhCltExtPhone* NewL( MPhCltExtPhoneObserver* aObserver ); - - /** - * Destructor. - */ - ~CPhCltExtPhone(); - - - public: // From baseclass - - - /** - * From CPhCltExtPhoneBase, Makes a new call. - * - * @param aData The populated dialing data. - */ - virtual void DialL( CPhCltExtPhoneDialData& aData ); - - - private: - - /** - * C++ constructor. - */ - CPhCltExtPhone( MPhCltExtPhoneObserver* aObserver ); - - /** - * Symbian OS constructor. - */ - void ConstructL(); - - /** - * From CActive, it is called when object is active and - * request has been processed. - */ - void RunL(); - - /** - * From CActive, calcels pending request. - */ - void DoCancel(); - - /** - * Check that suitable preconditions have been satisified - * before attempting a dial - */ - void DialPreconditionCheckL(); - - - private: // Data - - // Enumeration for the dialing operation modes. - enum TMode - { - EIdle, // In idle state. - EDialling // In dialling state. - }; - - // Status information of the phone. - // Not used. Just for BC. - TPckgBuf< TInt > iPhoneStatus; - - // Call instance to perform dialing. - RPhCltExtCall iCall; - - // Server that is used in dialing. - RPhCltServer iServer; - - // Mode of the dialing operation. - TMode iMode; - - /* - * Package needs to member variable because it is possible that client - * has high priority and in this case it is possible that package is deleted - * too early. - */ - HBufC8* iPackage; - - }; - -#endif // CPHCLTEXTPHONE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltExtPhoneBase.h --- a/phoneclientserver/phoneclient/Inc/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltExtPhoneBase.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,118 +0,0 @@ -/* -* Copyright (c) 2002 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: It defines dial interface for phone client. -* -*/ - - -#ifndef CPHCLTEXTPHONEBASE_H -#define CPHCLTEXTPHONEBASE_H - -// INCLUDES -#include -#include "phclttypes.h" - -// FORWARD DECLARATIONS -class MPhCltExtPhoneObserver; -class CPhCltExtPhoneDialData; - -// CLASS DECLARATION - -/** -* It defines dial interface for phone client. -* -* Usage: -* -* To dial, you must have a string of characters from set -* { 0, 1, 2, .. 9, #, *, +, p, P, w, W }. It is the only -* mandatory parameter. String may also contain other characters, -* but then only a note is displayed. So you should proceed as follows: -* 1. Check that string is acceptable. -* (application specific grammar) -* 2. If not, stop. Otherwise continue. -* 3. Convert to string acceptable by phoneclient. -* Note PhCltUtils class may help. -* 4. Dial using the class. -* -* Note that dialling does not always mean creating a call. -* (E.g. *#43# makes phone to interrogate status of call waiting.) -* -* In order to dial, you need instance of CPhCltExtPhoneBase. You -* can create one as follows: -* iExtCall = CPhCltExtPhoneBase::NewL( this ); -* (the parameter is pointer to observer) -* -* Then you must fill dial parameters to instance of TPhCltExtPhoneDialData. -* (you can read more details from its header) -* -* TPhCltExtPhoneDialData data; -* data.SetTelephoneNumber( .. ); -* .. -* -* And finally, you can dial. Note that the method is asynchronous and -* observer will be informed when phone starts dialing. -* -* iExtCall->DialL( data ); -* -* Finally, you can delete the instance. If dialing is ongoing, this should -* be done after observer has been informed. You can also delete before that, -* but then the request might also be canceled. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class CPhCltExtPhoneBase : public CActive - { - public: // Constructors and destructor - - /** - * Create an instance that implements the interface. - * - * @param aObserver It is the observer for the instance. - * @return Returns the created instance. - */ - IMPORT_C static CPhCltExtPhoneBase* NewL( - MPhCltExtPhoneObserver* aObserver ); - - - public: // New fuctions - - - /** - * Makes a new call. This is the preferred way of dialling! - * - * @param aData The object containing the parameters for - * the dial request. - */ - virtual void DialL( CPhCltExtPhoneDialData& aData ) = 0; - - - protected: - - /** - * C++ constructor. - */ - CPhCltExtPhoneBase( MPhCltExtPhoneObserver* aObserver ); - - - protected: // Data - - // Observer to handle events. - MPhCltExtPhoneObserver* iObserver; - - }; - -#endif // CPHCLTEXTPHONEBASE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/ExtCallWrapper/ExtCallWrapper_Aiw/MPhCltExtPhoneObserver.h --- a/phoneclientserver/phoneclient/Inc/ExtCallWrapper/ExtCallWrapper_Aiw/MPhCltExtPhoneObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2002 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: It defines the interface for the observers of -* the CPhCltExtPhoneBase. -* -*/ - - -#ifndef MPHCLTEXTPHONEOBSERVER_H -#define MPHCLTEXTPHONEOBSERVER_H - -// CLASS DECLARATION - -/** -* Defines the interface for the observers of the CPhCltExtPhoneBase. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class MPhCltExtPhoneObserver - { - public: // New functions - - /** - * It is called whenever client's dial request is completed. - * - * @param aStatus It is the status of the operation. - * <0 means Symbian OS error code. - */ - virtual void HandleDialL( const TInt aStatus ) = 0; - - }; - -#endif // MPHCLTEXTPHONEOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/Ihf/RPhCltIhf.h --- a/phoneclientserver/phoneclient/Inc/Ihf/RPhCltIhf.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/* -* Copyright (c) 2002 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: Session for Ihf mode handling in phone client. -* -*/ - -#ifndef RPHCLTIHF_H -#define RPHCLTIHF_H - -// INCLUDES -#include // ETel - -#include "phclttypes.h" - -// FORWARD DECLARATIONS -class RWsSession; -class RPhCltServer; - -// CLASS DECLARATION -/** -* Session for Ihf mode handling in phone client. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class RPhCltIhf : public RSubSessionBase - { - - public: // Constructors and destructor - - /** - * Constructor. - */ - IMPORT_C RPhCltIhf(); - - - public: // New functions - - /** - * Creates a subsession with the phone server. - * - * @param aServer Pre-opened server session. - * @param aPriority Priority for the active object handling notify - * events. Not used. - * @return Symbian OS standard error code. - */ - IMPORT_C TInt Open( - RPhCltServer& aServer, - TInt aPriority = CActive::EPriorityStandard ); - - /** - * Closes the subsession. Cancels all notify requests. - * Remember to call this to a connected session in some point. - */ - IMPORT_C void Close(); - - - public: // API - - /** - * Set Ihf mode - * - * @param aMode ETrue to set IHF mode on, otherwise set IHF mode off - * @param aShowNote ETrue if the IHF activation/deactivation note - * should be shown - * @return Standard Symbian OS error code. Note, if the note can't be - * shown, the system will not return any error code. The error - * code just means the IHF mode changing is failed. If aMode is - * same as current IHF mode of the system, KErrAlreadyExist will - * be returned. - * If the headset or other audio accessory is connected, then - * IHF mode can't be activated, and KErrAccessDenied will be - * returned. - */ - IMPORT_C TInt SetIhfMode( - TBool aMode, - TBool aShowNote = EFalse ); - - /** - * Set Ihf mode for Phone application only. - * - * @param aMode ETrue to set IHF mode on, otherwise set IHF mode off - * @param aShowNote ETrue if the IHF activation/deactivation note should - * be shown - * @return Standard Symbian OS error code. Note, if the note can't be - * shown, the system will not return any error code. The error - * code just means the IHF mode changing is failed. If aMode is - * same as current IHF mode of the system, KErrAlreadyExist will - * be returned. - * If the headset or other audio accessory is connected, then IHF - * mode can't be activated, and KErrAccessDenied will be - * returned. - */ - IMPORT_C TInt SetIhfModeFromPhone( - TBool aMode, - TBool aShowNote = EFalse ); - - }; - -#endif // RPHCLTIHF_H diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/ImageHandler/CPhCltImageHandlerImplementation.h --- a/phoneclientserver/phoneclient/Inc/ImageHandler/CPhCltImageHandlerImplementation.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,168 +0,0 @@ -/* -* Copyright (c) 2004-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: Implementation of the PhCltExtension Image handler interface. -* -*/ - - - -#ifndef CPHCLTIMAGEHANDLERIMPLEMENTATION_H -#define CPHCLTIMAGEHANDLERIMPLEMENTATION_H - - -// INCLUDES -#include -#include "rphcltimagehandler.h" -#include "rphcltserver.h" - -/** -* Implementation of image handler interface. -* -* @lib PhoneClient.lib -* @since Series60 3.2 -*/ -NONSHARABLE_CLASS ( CPhCltImageHandlerImplementation ) -: public CPhCltImageHandler, public MPhCltImageObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhCltImageHandlerImplementation* NewL(); - - /** - * Destructor. - */ - ~CPhCltImageHandlerImplementation(); - - public: // Functions from base classes - - /** - * @see CPhCltImageHandler. - */ - TInt SaveImages( CPhCltImageParams& aParams ); - - /** - * @see CPhCltImageHandler. - */ - TInt LoadImages( CPhCltImageParams*& aParams ); - - /** - * @see CPhCltImageHandler::CPhCltBaseImageParamsL(). - */ - virtual CPhCltImageParams* - CPhCltBaseImageParamsL( const TPhCltImageType aType ); - - /** - * @see CPhCltImageHandler::OpenDefaultVtImage(). - */ - virtual TInt OpenDefaultVtImage( RFile& aFile ); - - /** - * @see CPhCltImageHandler::SaveVtImage() - */ - virtual void SaveVtImageL( MPhCltImageObserver& aObserver, - const TDesC& aImagePath ); - - /** - * @see CPhCltImageHandler::CancelSaveVtImage - */ - virtual void CancelSaveVtImage(); - - /** - * @see CPhCltImageHandler::OpenVtImage() - */ - virtual TInt OpenVtImage( RFile& aFile ); - - public: // from MPhCltImageObserver - - virtual void HandleImageSaveCompleteL( TInt aResult ); - - private: - - /** - * C++ constructor. - */ - CPhCltImageHandlerImplementation(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Common code for opening default and user defined image. - */ - TInt OpenVtImageCommon( - RFile& aFile, - const TBool aDefaultImage ); - - /** - * Internal class for handling asynchronous image saving. - */ - class CVtImageSaver : public CActive - { - public: - - /** Saves VT image. Deletes itself after observer callback - * or cancellation */ - static CVtImageSaver* SaveLD( - MPhCltImageObserver& aObserver, - RPhCltImageHandler& aHandler, - const TDesC& aImagePath ); - - private: - CVtImageSaver( - MPhCltImageObserver& aObserver, - RPhCltImageHandler& aHandler ); - - ~CVtImageSaver(); - - private: - void DoSave( const TDesC& aImagePath ); - - private: // from CActive - - /** handles observer callback */ - void RunL(); - - /** */ - void DoCancel(); - - private: - - MPhCltImageObserver& iObserver; - RPhCltImageHandler& iHandler; - }; - - private: // Data - RPhCltImageHandler iStillHandler; - - //RPhCltServer class instance creates phonesession - RPhCltServer iServer; - - // Observer for async image saving - MPhCltImageObserver* iObserver; - - // not owned - CVtImageSaver* iVtImageSaver; - - - }; - -#endif // CPHCLTIMAGEHANDLERIMPLEMENTATION_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/ImageHandler/CPhCltOperatorLogoContainer.h --- a/phoneclientserver/phoneclient/Inc/ImageHandler/CPhCltOperatorLogoContainer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Operator logo container. -* -*/ - -#ifndef CPHCLTOPERATORLOGOCONTAINER_H -#define CPHCLTOPERATORLOGOCONTAINER_H - -// INCLUDES -#include -#include - -// CLASS DECLARATION - -/** -* Image handler Subsession. -* -* @since Series60 3.0 -*/ -NONSHARABLE_CLASS( CPhCltOperatorLogoContainer ) : public CBase - { - public: // Constructors and destructor - - /** - * Destructor. - */ - ~CPhCltOperatorLogoContainer(); - - /** - * Constructor. - * @param aCountryCode country code for operator logo - * @param aNetworkCode network code for operator logo - * @param aBitmap bitmap to store. - */ - CPhCltOperatorLogoContainer( - const TPhCltCountryCode aCountryCode, - const TPhCltNetworkCode aNetworkCode, - const TPhCltExtOperatorLogoType aLogoType, - CFbsBitmap* aBitmap ); - - // Stored image. - CFbsBitmap* iBitmap; - - // Operator logo country code. - TPhCltCountryCode iCountryCode; - - // Operator logo network code. - TPhCltNetworkCode iNetworkCode; - - // Operator logo type. - TPhCltExtOperatorLogoType iLogoType; - }; - -#endif // CPHCLTOPERATORLOGOCONTAINER_H - -// End of file. \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/ImageHandler/RPhCltImageHandler.h --- a/phoneclientserver/phoneclient/Inc/ImageHandler/RPhCltImageHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,148 +0,0 @@ -/* -* Copyright (c) 2004-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: PhoneServer interface for image handling. -* -*/ - -#ifndef RPHCLTIMAGEHANDLER_H -#define RPHCLTIMAGEHANDLER_H - -// INCLUDES -#include -#include -#include "cphcltoperatorlogocontainer.h" -#include "cphcltbaseimageparams.h" - - -// FORWARD DECLARATIONS -class RPhCltServer; - - -/** -* PhoneServer interface for image handling. -* -* @lib PhoneClient.lib -* @since S60 v3.2 -*/ -class RPhCltImageHandler -: public RSubSessionBase - { - public: // Constructors and destructors. - - /** - * Constructor. - */ - RPhCltImageHandler(); - - public: // New functions. - - /** - * Open subsession to server. - * - * @param aServer Pre-opened server session. - * @return Symbian OS error code of the success of the opening. - */ - TInt Open( RPhCltServer& aServer ); - - /** - * Close subsession. - */ - void Close(); - - /** - * Save image(s). - * - * @param aParam An array of bitmap handles passed. - * @return KErrNone if successful, Symbian error code otherwise. - */ - TInt SaveImages( CPhCltImageParams& aParams ); - - /** - * Load image(s). - * - * @param aParam An array of bitmap handles passed. - * @return KErrNone if successful, Symbian error code otherwise. - */ - TInt LoadImages( CPhCltImageParams*& aParams ); - - /** - * Saves VT still image. - */ - void SaveVtImage( TRequestStatus& aStatus, const TDesC& aFilePath ); - - /** - * Cancels image saving - */ - void CancelSaveVtImage(); - - /** - * Opens VT still image file. Returns file handle that can be - * used with AdoptFromServer. - * @param aFileHandle file handle - * @param aOpenDefault if true, opens predefined, if false opens - * user defined image file. - */ - TInt OpenVtImage( TInt& aFileHandle, const TBool aOpenDefault = EFalse ); - - private: - - // Prohibit copy constructor if not deriving from CBase. - RPhCltImageHandler( const RPhCltImageHandler& ); - - // Prohibit assigment operator if not deriving from CBase. - RPhCltImageHandler& operator=( - const RPhCltImageHandler& ); - - private: // New functions. - - /** - * Finalizes image load. - * @param aImages handle array - * @return Symbian error code. - */ - TInt FinalizeLoad( TPckgBuf< TPhCltImageArray >& aImages ); - - /** - * Creates a copy of image. - * @param aImages handle array - * @return copied bitmap. - */ - CFbsBitmap* CreateBitMapL( const TInt aHandle ); - - /** - * Ducplicates vt still images. - * @param aImages handle array - */ - void CopyStillsL( TPhCltImageArray& aImages ); - - /** - * Duplicates operator logos. - * @param aImages handle array - */ - void CopyLogosL( TPhCltImageArray& aImages ); - - - private: // Data - - // Duplicated VT images. - RPointerArray iVTBitMaps; - - // Duplicated operator logos. - RPointerArray iOperatorLogos; - - }; - -#endif // RPHCLTIMAGEHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/Messenger/CPhCltMessengerImplementation.h --- a/phoneclientserver/phoneclient/Inc/Messenger/CPhCltMessengerImplementation.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Implementation of the PhCltExtension Messenger interface. -* -*/ - - - -#ifndef CPhCltMessengerIMPLEMENTATION_H -#define CPhCltMessengerIMPLEMENTATION_H - - -// INCLUDES -#include -#include "rphcltmessenger.h" -#include "rphcltserver.h" - -/** -* Implementation of the CPhCltMessenger interface. -* -* -* @lib PhoneClient.lib -* @since 3.2 -*/ -NONSHARABLE_CLASS( CPhCltMessengerImplementation ) -: public CPhCltMessenger - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhCltMessengerImplementation* NewL( const TUid& aCategoryUid, - const TInt& aDefaultMessageSize = KPhCltDefMesSize ); - - - /** - * Destructor. - */ - ~CPhCltMessengerImplementation(); - - - public: // Functions from base classes - - /** - * @see CPhCltMessenger::Receive(). - */ - void Receive( - TRequestStatus& aStatus, - TInt& aMessageSize, - TDes8& aMessagePayload ); - - - /** - * @see CPhCltMessenger::Send(). - */ - void Send( - TRequestStatus& aStatus, - const TDesC8& aMessagePayload ); - - - /** - * @see CPhCltMessenger::CancelRequest(). - */ - void CancelRequest( const TPhCltMessengerRequest& aRequest ); - - - /** - * @see CPhCltMessenger::Skip(). - */ - void Skip(); - - - private: - - /** - * C++ constructor. - */ - CPhCltMessengerImplementation(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( const TUid& aCategoryUid, - const TInt& aDefaultMessageSize ); - - private: // Data - - // The messenger to perform requests. - RPhCltMessenger iMessenger; - - //RPhCltServer class instance creates phonesession - RPhCltServer iServer; - }; - - -#endif // CPhCltMessengerIMPLEMENTATION_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/Messenger/RPhCltMessenger.h --- a/phoneclientserver/phoneclient/Inc/Messenger/RPhCltMessenger.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,148 +0,0 @@ -/* -* Copyright (c) 2004 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: This class is used to perform messenger originated commands. -* -*/ - - -#ifndef RPhCltMessenger_H -#define RPhCltMessenger_H - - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class RPhCltServer; - - -/** -* Messenger interface: provides two-way communication between -* two or more clients. -* -* @lib PhoneClient.lib -* @since 3.2 -* -*/ -class RPhCltMessenger -: public RSubSessionBase - { - public: // Constructors and destructor - - /** - * Constructor. - */ - RPhCltMessenger(); - - /** - * Desstructor. - */ - ~RPhCltMessenger(); - - - public: - - /** - * Open session ready to be sending and receiving messages. - * - * @param aServer Pre-opened server session. - * @param aCategoryUid Category of messages to be sent or received. - * Note that there can be many kinds of message uids - * below one category uid. - * @param aDefaultMessageSize The default size of the messages to be sent - * or received, In bytes. Can be bigger than - * KPhCltDefMesSize, but then functionality - * is not guaranteed. - * @return Error code. KErrNone if successful. - */ - TInt Open( - RPhCltServer& aServer, - const TUid& aCategoryUid, - const TInt& aDefaultMessageSize ); - - - /** - * Closes the session. - */ - void Close(); - - - /** - * Receives next message. No memory is allocated during the operation of - * this method. - * - * @param aStatus This request will be completed once message has been - * received. - * @param aMessageSize Tells the size of the received message. If smaller - * than the size of the aMessagePayload, then only the beginning - * of the received message is copied to aMessagePayload. - * - * @param aMessagePayload Payload of the message. Contains the TUid at - * the beginning of the message when completed. - */ - void Receive( - TRequestStatus& aStatus, - TInt& aMessageSize, - TDes8& aMessagePayload ); - - - /** - * Sends message. This is completed only after message has been - * delivered to receiver. - * No memory is allocated during the operation of this method. - * - * @param aStatus This request will be completed once message has been - * sent. - * @param aMessagePayload Payload of the message. - */ - void Send( - TRequestStatus& aStatus, - const TDesC8& aMessagePayload ); - - - /** - * Cancel request. This method should only be called during destruction - * to make sure that messages are not missed. - * - * @param aRequest request to be canceled. - */ - void CancelRequest( const TPhCltMessengerRequest& aRequest ); - - - /** - * Skip one message. This method should be called only if Receive - * indicates that there is not enough space in aMessagePayload. - * Of course, you should attempt to recover, i.e. call Receive with big - * enough aMessagePayload buffer before calling this method. - */ - void Skip(); - - - private: // Data - - // Container for received message size. - TPtr8 iReceiveMessageSize; - - // Used in Receive and Send methods to contain the parameters. - TPhCltMessengerParameters iMessengerParameters; - - // The packaged version of the iMessengerParameters. - TPckg< TPhCltMessengerParameters > iMesParPckg; - - }; - -#endif // RPhCltMessenger_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/Notifier/Notifier_Aiw/cphcltcomhandrequestmonitor.h --- a/phoneclientserver/phoneclient/Inc/Notifier/Notifier_Aiw/cphcltcomhandrequestmonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -/* -* Copyright (c) 2002 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: CPhCltComHandRequestMonitor observer getting notifications about -* command handling requests from Phone Server. -* -*/ - -#ifndef CPHCLTCOMHANDREQUESTMONITOR_H -#define CPHCLTCOMHANDREQUESTMONITOR_H - -// INCLUDES -#include -#include - - -// FORWARD DECLARATIONS -class RPhCltServer; -class CPhCltDialData; -class MPhCltComHandRequestObserver; -class CPhCltExtPhoneDialData; -class RPhCltCallNotify; - -// CLASS DECLARATION - -/** -* CCallNotify observer getting notifications about call requests -* from Phone Server. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -NONSHARABLE_CLASS( CPhCltComHandRequestMonitor ) : public CActive - { - public: // Constructors and destructors. - - - static CPhCltComHandRequestMonitor* NewL(RPhCltCallNotify& aCltNotify); - - /** - * Destructor. - */ - virtual ~CPhCltComHandRequestMonitor(); - - public: // New functions - - - - /** - * Notifies when a Command handler request arrives. - * - * @param aStatus Status to be changed when command handler request - * has arrived. - * @param aCommandArgs Command argument storage place. - * That is, packaged version of class - * TPhCltComHandCommandParameters. - */ - void NotifyComHandCommand( - MPhCltComHandRequestObserver* , - TDes8& aCommandArgs ); - - - /** - * Respond to client's command handler request. - * - * @param aResultCode Result of the response - * (previous function execution). - * @return KErrNone if respond succeeded, otherwise Symbian error code. - */ - TInt RespondComHandClient( const TInt aResultCode ); - - - private: - - /* - * Constructor. - */ - CPhCltComHandRequestMonitor(RPhCltCallNotify& aCallNotify); - - - private: // Functions from base classes - - /** - * From CActive. - * Called when send request is completed. - */ - void RunL(); - - - /** - * From CActive. - * Called when active request is canceled. - */ - void DoCancel(); - - private: - - //RClass instance - RPhCltCallNotify& iCallNotify; - - - // Pointer to dial observer - MPhCltComHandRequestObserver* iObserver; - - }; - - -#endif // CPHCLTCOMHANDREQUESTMONITOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/Notifier/Notifier_Aiw/cphcltdialemergencyrequestmonitor.h --- a/phoneclientserver/phoneclient/Inc/Notifier/Notifier_Aiw/cphcltdialemergencyrequestmonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/* -* Copyright (c) 2002 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: CPhCltDialEmergencyRequestMonitor observer getting notifications about call requests -* from Phone Server. -* -*/ - -#ifndef CPHCLTDIALEMERGENCYREQUESTMONITOR_H -#define CPHCLTDIALEMERGENCYREQUESTMONITOR_H - -// INCLUDES -#include -#include - - -// FORWARD DECLARATIONS -class RPhCltServer; -class RPhCltCallNotify; -class MPhCltDialEmergencyRequestObserver; - - -// CLASS DECLARATION - -/** -* CCallNotify observer getting notifications about call requests -* from Phone Server. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -NONSHARABLE_CLASS( CPhCltDialEmergencyRequestMonitor ): public CActive - { - public: // Constructors and destructors. - - - static CPhCltDialEmergencyRequestMonitor* NewL(RPhCltCallNotify& aCltNotify); - - /** - * Destructor. - */ - virtual ~CPhCltDialEmergencyRequestMonitor(); - - public: // New functions - - - /** - * Notifies when a emergency call request arrives. - * - * @param aStatus Status to be changed when call request have arrived. - */ - void NotifyEmergencyCall( - MPhCltDialEmergencyRequestObserver* aObserver, - TDesC& aEmergencyNumber ); - - - /** - * Respond to client request to make emergency call - * - * @param aResultCode Result of the response. - */ - TInt RespondEmergencyToClient( const TInt aResultCode ); - - - private: - - /* - * Constructor. - */ - CPhCltDialEmergencyRequestMonitor(RPhCltCallNotify& aCallNotify); - - - private: // Functions from base classes - - /** - * From CActive. - * Called when send request is completed. - */ - void RunL(); - - /** - * From CActive. - * Called when RunL leaves. - */ - TInt RunError(TInt aError); - - /** - * From CActive. - * Called when active request is canceled. - */ - void DoCancel(); - - private: - - //RClass instance - RPhCltCallNotify& iCallNotify; - - //Pointer to emergencynumber - TPtr8 iEmergencyCallNumberPtr; - - // Pointer to dial observer - MPhCltDialEmergencyRequestObserver* iObserver; - - }; - - -#endif // CPHCLTDIALEMERGENCYREQUESTMONITOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/Notifier/Notifier_Aiw/cphcltdialrequestmonitor.h --- a/phoneclientserver/phoneclient/Inc/Notifier/Notifier_Aiw/cphcltdialrequestmonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* -* Copyright (c) 2002 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: CPhCltDialRequestMonitor observer getting notifications about call requests -* from Phone Server. -* -*/ - -#ifndef CPHCLTDIALREQUESTMONITOR_H -#define CPHCLTDIALREQUESTMONITOR_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class RPhCltServer; -class CPhCltDialData; -class MPhCltDialRequestObserver; -class CPhCltExtPhoneDialData; -class MPhCltComHandRequestObserver; -class RPhCltCallNotify; - -// CLASS DECLARATION - -/** -* CCallNotify observer getting notifications about call requests -* from Phone Server. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -NONSHARABLE_CLASS( CPhCltDialRequestMonitor ): public CActive - { - public: // Constructors and destructors. - - - static CPhCltDialRequestMonitor* NewL(RPhCltCallNotify& aCallNotify); - - /** - * Destructor. - */ - virtual ~CPhCltDialRequestMonitor(); - - public: // New functions - - - /** - * Notify dial requests through given observer. - * @param aObserver dial request observer - */ - void NotifyDialRequest( - MPhCltDialRequestObserver* aObserver ); - - /** - * Respond to client request to make a call - * - * @param aResultCode Result of the response. - */ - TInt RespondClient( const TInt aResultCode ); - - - private: - - /* - * Constructor. - */ - CPhCltDialRequestMonitor(RPhCltCallNotify& aCallNotify); - - - private: // Functions from base classes - - /** - * From CActive. - * Called when send request is completed. - */ - void RunL(); - - /** - * From CActive. - * Called when RunL leaves. - */ - TInt RunError(TInt aError); - - /** - * From CActive. - * Called when active request is canceled. - */ - void DoCancel(); - - private: - - //RClass instance - RPhCltCallNotify& iCallNotify; - - //Used to get dial data length from server - TInt iDialDataLength; - - //Package buffer for dial data length - TPckg< TInt > iDataLengthPckg; - - - // Pointer to dial observer - MPhCltDialRequestObserver* iObserver; - - }; - - -#endif // CPhCLTDIALREQUESTMONITOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/RPhCltResourceFile.h --- a/phoneclientserver/phoneclient/Inc/RPhCltResourceFile.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 2002 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: It is phoneclient resource file loader. -* -*/ - - -#ifndef RPHCLTRESOURCEFILE_H -#define RPHCLTRESOURCEFILE_H - -// INCLUDES -#include - - -// FORWARD DECLARATIONS -class CCoeEnv; -class RConeResourceLoader; - - -// CLASS DECLARATION - -/** -* It is PhoneClient resource file loader. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class RPhCltResourceFile - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - IMPORT_C RPhCltResourceFile(); - - - public: // New functions - - /** - * Opens resource file. - * - * Note: Panics if you try to reopen. - * - * @param aEnv Coe env. - */ - IMPORT_C void OpenL( CCoeEnv& aEnv ); - - /** - * Closes resource file. - */ - IMPORT_C void Close(); - - - public: // Functions from base classes - - // Prohibit copy constructor if not deriving from CBase. - RPhCltResourceFile( const RPhCltResourceFile& ); - // Prohibit assigment operator if not deriving from CBase. - RPhCltResourceFile& operator= ( const RPhCltResourceFile& ); - - - private: // Data - - // Resource file loader. - RConeResourceLoader* iLoader; - - }; - -#endif // RPHCLTRESOURCEFILE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/Session/PhoneClient.hrh --- a/phoneclientserver/phoneclient/Inc/Session/PhoneClient.hrh Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -/* -* Copyright (c) 2002 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: PhoneClient resource header file. -* Contains common definitions for menu id:s -* -*/ - - -#ifndef PHONECLIENT_HRH -#define PHONECLIENT_HRH - -// The PhoneClient USSD note ids. -enum TPhCliUssdNotes - { - EPhCliUssdRequestingNote = 1 - }; - -#endif // PHONECLIENT_HRH diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/SharedClientServer/PhCltClientServer.h --- a/phoneclientserver/phoneclient/Inc/SharedClientServer/PhCltClientServer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,303 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Common constants. -* -*/ - - -#ifndef PHCLTCLIENTSERVER_H -#define PHCLTCLIENTSERVER_H - - - -// INCLUDES -#include -#ifdef SYMBIAN_OLD_EXPORT_LOCATION // Include should be removed when flag disabled from builds -#include -#endif -#include -#include - -// CONSTANTS - - -// Server startup related -const TUid KPhCltServerUid = { 0x10000850 }; // from PhoneServer.mmp -_LIT( PHONE_SERVER_NAME, "Phone Server" ); - -_LIT( KPhServerPathAndNameWINS, "PhoneServer" ); -_LIT( KPhServerPathAndNameMARM, "PhoneServer.exe" ); - -_LIT( KPhServerThreadName, "PhoneServerThread" ); -_LIT( KPhServerThreadNameFormat, "0x%8x" ); -const TInt KPhMaxServerThreadNameLength = 30; -const TUint KDefaultHeapSize = 0x10000; - -const TUid KUssdSecureId = { 0x10005955 }; -const TUid KSatSecureId = { 0x1000A833 }; -const TUid KPhoneSecureId = { 0x100058b3 }; -#if defined(__WINSCW__) -const TUid KEunitExeRunnerId = {0x20000fb3 }; // To enable module testing using EUnit -#endif // __WINSCW__ - -// Phone client panic code - when the client is panicked by the server -_LIT( KPhClientPanicCategory, "PhoneClient" ); - -// Resource file for USSD part. -_LIT( KPhClientAndServerResourceFileName, "PhoneServer" ); -_LIT( KPhCltServerZDrive, "z:" ); - -_LIT( KPhClientAndServerResourceFileExtensionWild, ".R??" ); -_LIT( KPhClientAndServerResourceFileExtensionNoWild, ".RSC" ); -const TInt KPhSrvMagicResourceFileSignature = 0; - -// PhoneClient resource file. -_LIT( KPhCltResourceFileNameAndPath, "phoneclient.rsc" ); - -// The max amount of encoded USSD octects. -const TInt KPhCltUssdMax7BitCharacterOctets = - RMobileUssdMessaging::KGsmUssdDataSize; // 160 -// The max amount of characters to be encoded as USSD octects. -const TInt KPhCltUssdMax8BitCharacters = - ( KPhCltUssdMax7BitCharacterOctets * 8 ) / 7; // 182 - - -// DATA TYPES - -// Server initiated Client Panics - when the client is -// mis-using the server API -enum TPhCltServerInitiatedPanic - { - EPhCltServerInitiatedPanicInvalidRequest = 0, // Request is invalid. - EPhCltServerInitiatedPanicInvalidHandle, // Handle is invalid. - EPhCltServerInitiatedPanicBadDescriptor, // Descriptor is invalid. - // Session request is inappropriate. - EPhCltServerInitiatedPanicInappropriateSessionRequest, - // The active object or request is already active. - EPhCltServerInitiatedPanicRequestAlreadyActive, - // The request is not active. - EPhCltServerInitiatedPanicRequestNotActive, - - // From ussd - EPhCltServerInitiatedPanicNotAssigned, // Not assigned. - EPhCltServerInitiatedPanicNotConnected, // Connection not established. - // The handler is missing. - EPhCltServerInitiatedPanicNotifyHandlerMissing, - EPhCltServerInitiatedPanicWaitingIsUsed, // Waiting is used. - // - EPhCltServerInitiatedPanicLast // Keep as last. - }; - -// Opcodes used in message passing between Phone Client and Phone Server. -enum TPhCltServerRequest - { - /** - * ----> FROM RPhCltExtCall - */ - EPhoneServerExtCallSubSessionOpen = 0, // Open ExtCall subsession. - EPhoneServerExtCallSubSessionClose, // Close ExtCall subsession. - EPhoneServerExtCallSubSessionMakeCall, // Make a call. - EPhoneServerExtCallSubSessionMakeCallCancel, // Cancel call creation. - - /** - * ----> FROM RPhCltCallNotify - */ - EPhoneServerNotifySubSessionOpen = 100, // Open notify subsession. - EPhoneServerNotifySubSessionClose, // Close notify subsession. - // Notify call request attempt. - EPhoneServerNotifySubSessionNotifyCallRequest, - // Notify call request canceling. - EPhoneServerNotifySubSessionNotifyCallRequestCancel, - // Notify call status request. - EPhoneServerNotifySubSessionNotifyStatusRequest, - // Notify call status request cancel. - EPhoneServerNotifySubSessionNotifyStatusRequestCancel, - // Report phone status. - EPhoneServerNotifySubSessionReportPhoneStatus, - // Report phone status cancel. - EPhoneServerNotifySubSessionReportPhoneStatusCancel, - // Report the result of the call. - EPhoneServerNotifySubSessionReportCallResult, - // Notify dial data - EPhoneServerNotifySubSessionDialData, - - - /** - * ----> FROM RPhCltUssd - */ - EPhoneServerUSSDSubSessionOpen = 200, // Open USSD subsession. - EPhoneServerUSSDSubSessionClose, // Close USSD subsession. - EPhoneServerUSSDSubSessionSendMessage, // Send USSD message. - EPhoneServerUSSDSubSessionSendMessageCancel,// Cancel USSD message sending. - EPhoneServerUSSDSubSessionStartEditing, // Start Service command editor. - EPhoneServerUSSDSubSessionAppStarting, // SCE is starting. - EPhoneServerUSSDSubSessionAppTerminating, // SCE is terminating. - EPhoneServerUSSDSubSessionAppToForeground, // SCE comes to foreground. - EPhoneServerUSSDSubSessionAppToBackground, // SCE goes to background. - EPhoneServerUSSDSubSessionStartSAT, // SAT session is started. - EPhoneServerUSSDSubSessionStopSAT, // Stop SAT session. - - /** - * ----> FROM RPhCltEmergencyNumber - */ - EPhoneServerEmergencyNumberSubSessionOpen = 300, // Open EN subsession. - EPhoneServerEmergencyNumberSubSessionClose, // Close EN subsession. - // Check is the number emergency number or not. - EPhoneServerEmergencyNumberSubSessionIsEmergencyNumber, - EPhoneServerEmergencyNumberSubsessionEmergencyDial, - EPhoneServerEmergencyNumberSubsessionEmergencyDialCancel, - /** - * ---> FROM RPhCltIhf - */ - EPhoneServerIhfSubSessionOpen = 400, // Open IHF subsession. - EPhoneServerIhfSubSessionClose, // Close IHF subsession. - EPhoneServerIhfSubSessionSetMode, // Set IHF mode. - EPhoneServerIhfSubSessionSetModeFromPhone, // Set IHF mode from Phone app. - - /** - * ----> Other - */ - EPhoneCreateAll = 500, // Create all subsessions - - // - EPhoneServerLast, // Keep as last for PhoneClient. - - /** - * ----> Base for Phone Client extensions, that may be defined in some other - * header file. - */ - EPhoneServerExtensionBase = 600, - - /** - * ----> FROM RPhCltEmergencyCallNotify - */ - //EPhoneServerNotifyEmergencySubSessionOpen, - EPhoneServerNotifyEmergencySubSessionOpen = 1500, // Open notify subsession. - EPhoneServerNotifyEmergencySubSessionClose, // Close notify subsession. - // Notify call request attempt. - EPhoneServerNotifyEmergencySubSessionNotifyCallRequest, - // Notify call request canceling. - EPhoneServerNotifyEmergencySubSessionNotifyCallRequestCancel, - // Report the result of the call. - EPhoneServerNotifyEmergencySubSessionReportCallResult - - - - }; - - /** -* Opcodes used in message passing between Phone Client and Phone Server. -*/ -enum TPhCltComHandServerRequest - { - /** - * ---> FROM RPhCltCommandHandler - */ - // Open command handler subsession. - EPhoneServerComHandSubSessionOpen = EPhoneServerExtensionBase, - EPhoneServerComHandSubSessionClose, // Close comhand subsession. - EPhoneServerComHandSubSessionAtd, // Atd. - EPhoneServerComHandSubSessionAta, // Ata. - EPhoneServerComHandSubSessionChld, // Chld. - EPhoneServerComHandSubSessionChup, // Chup. - EPhoneServerComHandSubSessionVts, // Vts. - EPhoneServerComHandSubSessionCancel, // Cancel ongoing request. - EPhoneServerComHandSubSessionMuteMic, // MuteMic - EPhoneServerComHandSubSessionMuteRingingTone, // MuteRingingTone - - /** - * ----> FROM RPhCltCommandHandlerNotify - */ - // Open command handler notify subsession. - EPhoneServerComHandNotifySubSessionOpen = EPhoneServerExtensionBase + 100, - // Close command handler notify subsession. - EPhoneServerComHandNotifySubSessionClose, - // Notify command handler request attempt. - EPhoneServerComHandNotifySubSessionComHandRequest, - // Notify command handler request canceling. - EPhoneServerComHandNotifySubSessionComHandRequestCancel, - // Report the result of the command handler request. - EPhoneServerComHandNotifySubSessionReportComHandResult, - // - EPhoneServerComHandLast // Keep as last. - }; - -/** -* Opcodes used in message passing between -* Phone Client Extension Messenger and Phone Server. -*/ -enum TPhCltMessengerServerRequest - { - /** - * ---> FROM RPhCltMessenger - * @since 2.6 - */ - // Open Messenger subsession. - EPhoneServerMessengerSubSessionOpen = EPhoneServerExtensionBase + 200, - // Construct (reserve memory for) opened subsession. - EPhoneServerMessengerSubSessionConstruct, - EPhoneServerMessengerSubSessionClose, // Close Messenger subsession. - EPhoneServerMessengerSubSessionReceive, // Receive. - EPhoneServerMessengerSubSessionSend, // Send. - EPhoneServerMessengerSubSessionCancel, // CancelRequest. - EPhoneServerMessengerSubSessionSkip, // Skip. - - EPhoneServerMessengerLast // Keep as last. - }; - -/** -* Opcodes used in message passing between -* Phone Client Extension and Phone Server. -* Image handling specific. -* -* @since Series 60 3.0 -*/ - -enum TPhCltImageHandlerRequest - { - EPhoneServerImageHandlerSubSessionOpen = EPhoneServerExtensionBase + 300, - EPhoneServerImageHandlerSubSessionClose, // Closes image handler subsession. - EPhoneServerImageHandlerSubSessionSave, // SaveImages (deprecated for VT) - EPhoneServerImageHandlerSubSessionLoad, // LoadImages (deprecated for VT) - EPhoneServerImageHandlerSubSessionCommitLoad, // Finalize load operation - EPhoneServerSaveVtImage, // saves VT image file - EPhoneServerOpenVtImage, // opens VT image file - EPhoneServerSaveVtImageCancel - }; - - - - /** -* Enumerates fixed operator logo indexes. -* -* @since Series60 3.2 -* -* EPhCltOperatorLogoIndex - only one logo at a time. -* EPhCltCountryCode - logo specific country code. -* EPhCltNetworkCode - logo specific country code. -* EPhCltLogoTypeIndex - logo type -*/ -enum TPhCltExtOperatorLogoIndexes - { - EPhCltExtIndexNotSet = -1, - EPhCltExtOperatorLogoIndex = 0, - EPhCltExtCountryCodeIndex, - EPhCltExtNetworkCodeIndex, - EPhCltExtLogoTypeIndex - }; - - -#endif // PHCLTCLIENTSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/Ussd/ussd_ext/rphcltussd.h --- a/phoneclientserver/phoneclient/Inc/Ussd/ussd_ext/rphcltussd.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,156 +0,0 @@ -/* -* Copyright (c) 2002 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: USSD subsession. -* -*/ - - -#ifndef RPHCLTUSSD_H -#define RPHCLTUSSD_H - -// INCLUDES -#include -#include -#include - - -// FORWARD DECLARATIONS -class RPhCltServer; - - -// CLASS DECLARATION - -/** -* USSD subsession. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class RPhCltUssd : public RSubSessionBase - { - - public: // New functions - - /** - * Constructor. - */ - RPhCltUssd(); - - /** - * Creates a subsession with the phone server. - * - * @param aServer Pre-opened PhCltServer session. - * @return Symbian OS standard error code. - */ - TInt Open( RPhCltServer& aServer ); - - /** - * Closes the session. Cancels all notify requests. - * Remember to call this to a connected session in some point. - */ - void Close(); - - //------------------From app and phone idle----------------------- - - /** - * Tells server to start sending the given string. - * - * @param aReqStatus Status request to be completed after sending. - * @param aMsgData The 7-bit buffer. - * @param aMsgAttribute Send definitions. - */ - void SendUssd( - TRequestStatus& aReqStatus, - const TDesC8& aMsgData, - const TDesC8& aMsgAttribute ); - - /** - * Informs the server that the active object taking care of notify - * events has issued Cancel() so server can delete all notifys/events - * concerning it and sent a cancel signal. - */ - void CancelSend(); - - //---------------From msg center------------------- - - /** - * Starts editor. Creates own window server session. - * - * @return Error code. - */ - TInt StartUssdEditor() const ; - - - // ------------ For SAT ------------------- - - /** - * Starts SAT session. - * - * @param aStatus Completed status. - * @param aReceiveMessage Received message. - * @param aShowNotesAndDcs Contains the information of note showing, - * ( Phone Client -> Phone Server ) and - * The used dcs in received message - * ( Phone Server -> Phone Client ). - */ - void StartSAT( - TRequestStatus& aStatus, - TDes& aReceiveMessage, - TPckg< TUint >& aShowNotesAndDcs ); - - /** - * Cancels SAT session. - */ - void StopSAT(); - - - - //--------------------- From app ------------------------------ - - /** - * UI informs that it is been created - * - * @return Error code. - */ - TInt AppStarting(); - - /** - * UI informs that it is terminating. - * - * @param aExitReason The reason why the application was terminated. - * @return Error code. - */ - TInt AppTerminating( - TPhCltUssdAppExitReason aExitReason ); - - /** - * UI informs that it is brougth to foreground. - * - * @return Should the editor be emptied? - */ - TBool AppToForeground(); - - /** - * UI informs that it is gone background. - * - * @return Error code. - */ - TInt AppToBackground(); - - - - - }; - -#endif // RPHCLTUSSD_H diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/UssdWrapper/CPhCltUssdNoteController.h --- a/phoneclientserver/phoneclient/Inc/UssdWrapper/CPhCltUssdNoteController.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,128 +0,0 @@ -/* -* Copyright (c) 2009-2010 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: Encapsulates an active object used in controlling notes. -* -*/ - - -#ifndef CPHCLTUSSDNOTECONTROLLER_H -#define CPHCLTUSSDNOTECONTROLLER_H - -// INCLUDES -#include -#include -#include "mphcltussdnotecontrollercallback.h" -#include "cphcltussdcommonconstant.h" - - -// CLASS DECLARATION - -/** -* Encapsulates an active object used in controlling notes. -* -* @lib phoneclient.lib -*/ -NONSHARABLE_CLASS( CPhCltUssdNoteController ) : public CBase, - public MHbDeviceProgressDialogObserver - { - public: // Constructor and destructor - - /** - * Two-phased constructor. - * - * @param aCallBack a callback to be notified events from note controller. - * @param aPriority active object priority. - * @return Pointer to created CPhCltUssdImp instance. - */ - static CPhCltUssdNoteController* NewL( - MPhCltUssdNoteControllerCallBack& aCallBack ); - - /** - * Destructor. - */ - ~CPhCltUssdNoteController(); - - public: - - /** - * Shows global Information note. - */ - void ShowGlobalInformationNoteL( const TPhCltUssdInformationType aInfoType ); - - /** - * Shows global wait note. - */ - void ShowGlobalWaitNoteL(); - - /** - * Destroys global wait note. - */ - void DestroyGlobalWaitNote(); - - /** - * From base class MHbDeviceProgressDialogObserver - */ - void ProgressDialogCancelled( - const CHbDeviceProgressDialogSymbian* aProgressDialog); - - /** - * From base class MHbDeviceProgressDialogObserver - */ - void ProgressDialogClosed( - const CHbDeviceProgressDialogSymbian* aProgressDialog); - - private: - - /** - * C++ constructor. - */ - CPhCltUssdNoteController( - MPhCltUssdNoteControllerCallBack& aCallBack ); - - /** - * Symbian 2nd phase constructor. - */ - void ConstructL(); - - /** - * LoadDefaultString. - */ - HBufC* LoadDefaultStringL( const TDesC& aText ); - - private: // Data - - /** - * Own,Global wait note. - */ - CHbDeviceProgressDialogSymbian* iGlobalWaitNote; - - /** - * Not own,callback to be notified when wait note is dismissed. - */ - MPhCltUssdNoteControllerCallBack& iCallBack; - - /** - * Check Load Success .ts file successfully or not - */ - TBool iIsResolverSuccess; - - /** - * Own, resouce of global note. - */ - HBufC* iGlobalResource; - }; - -#endif // CPHCLTUSSDNOTECONTROLLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/UssdWrapper/CPhCltUssdRequestHandler.h --- a/phoneclientserver/phoneclient/Inc/UssdWrapper/CPhCltUssdRequestHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ -/* -* Copyright (c) 2002 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: Encapsulates an active object used in notify services. -* -*/ - - -#ifndef CPHCLTUSSDREQUESTHANDLER_H -#define CPHCLTUSSDREQUESTHANDLER_H - -// INCLUDES -#include -#include "rphcltussd.h" -#include "rphcltserver.h" - -// FORWARD DECLARATIONS -class MPhCltUssdRequestHandler; - -// CLASS DECLARATION - -/** -* Encapsulates an active object used in notify services. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -NONSHARABLE_CLASS( CPhCltUssdRequestHandler ) : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aHandler Handler for the USSD messages. - * @param aPriority Priority to be used. - * @return Pointer to created CPhCltUssdRequestHandler instance. - */ - static CPhCltUssdRequestHandler* NewL( - MPhCltUssdRequestHandler& aHandler, - TInt aPriority ); - - /** - * Destructor. - */ - ~CPhCltUssdRequestHandler(); - - - public: - - /** - * Send string. - * - * @param aMsgData 7-bit data. - * @param aMsgAttribute Definitions. - */ - void SendUssd( - const TDesC8& aMsgData, - const TDesC8& aMsgAttribute ); - - /** - * Cancel send. - */ - void SendUssdCancel(); - - /** - * USSD Client - * - * @return Reference to RPhCltUssd instance. - */ - RPhCltUssd& UssdClient(); - - - private: // From base classes - - /* - * From CActive. Called when send is done. - */ - void RunL(); - - /** - * From CActive. Called when send is cancelled. - */ - void DoCancel(); - - - private: - - /** - * C++ constructor. - */ - CPhCltUssdRequestHandler( - MPhCltUssdRequestHandler& aHandler, - TInt aPriority ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - - private: // Data - - // The handler for requests. - MPhCltUssdRequestHandler& iHandler; - - // Server connection to be used to perform functionality. - RPhCltServer iPhClient; - - // USSD subsession to server side. - RPhCltUssd iUssdClient; - }; - -#endif // CPHCLTUSSDREQUESTHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/UssdWrapper/MPhCltUssdNoteControllerCallBack.h --- a/phoneclientserver/phoneclient/Inc/UssdWrapper/MPhCltUssdNoteControllerCallBack.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +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: Mixing class for CPhCltUssdNoteController. -* -*/ - - -#ifndef MPHCLTUSSDNOTECONTROLLERCALLBACK_H -#define MPHCLTUSSDNOTECONTROLLERCALLBACK_H - -// INCLUDES -#include - - -// CLASS DECLARATION - -/** -* Abstract interface for handling the notify events from note controller. -* User derives his class from this and implements GlobalWaitNoteHidden(). -* -* @lib phoneclient.lib -* @since 9.1 -*/ - -class MPhCltUssdNoteControllerCallBack - { - - public: // New functions - - /** - * Called when global wait note is hidden, to background. - * - * @param aError Error code. - */ - virtual void GlobalWaitNoteHidden() = 0; - }; - - -#endif //MPHCLTUSSDNOTECONTROLLERCALLBACK_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/UssdWrapper/MPhCltUssdRequestHandler.h --- a/phoneclientserver/phoneclient/Inc/UssdWrapper/MPhCltUssdRequestHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002 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: Abstract interface for handling the notify events -* from the server. -* -*/ - -#ifndef MPHCLTUSSDREQUESTHANDLER_H -#define MPHCLTUSSDREQUESTHANDLER_H - -// INCLUDES -#include - - -// CLASS DECLARATION - -/** -* Abstract interface for handling the notify events from the server. -* User derives his class from this and implements HandleNotifyL(). -* -* @lib phoneclient.lib -* @since 1.0 -*/ - -class MPhCltUssdRequestHandler - { - - public: // New functions - - /** - * Called when send completes. - * - * @param aError Error code. - */ - virtual void HandleSendEventL( const TInt aError ) = 0; - }; - - -#endif // MPHCLTUSSDREQUESTHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/UssdWrapper/Ussd_Ext/CPhCltUssdImp.h --- a/phoneclientserver/phoneclient/Inc/UssdWrapper/Ussd_Ext/CPhCltUssdImp.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,226 +0,0 @@ -/* -* Copyright (c) 2002 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: Interface for sending messages. -* -*/ - - -#ifndef CPHCLTUSSDIMP_H -#define CPHCLTUSSDIMP_H - -// INCLUDES -#include -#include "mphcltussdrequesthandler.h" -#include "mphcltussdnotecontrollercallback.h" -#include "rphcltussd.h" - -#include "rphcltserver.h" -#include "cphcltussdint.h" - - -// FORWARD DECLARATIONS -class CPhCltUssdRequestHandler; -class CPhCltUssdNoteController; - - -// CLASS DECLARATION - -/** -* Interface for sending messages. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class CPhCltUssdImp: - public CPhCltUssdInt, - public MPhCltUssdRequestHandler, - public MPhCltUssdNoteControllerCallBack - - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aShowNotes If ETrue, notes are shown. - * @return Pointer to created CPhCltUssdImp instance. - */ - static CPhCltUssdImp* NewL( TBool aShowNotes = ETrue ); - - /** - * Destructor. - */ - virtual ~CPhCltUssdImp(); - - - - public: // New functions - - /** - * Send Ussd string to network with default DCS. - * - * @param aMsgData Unicode string to be sent. - * @return Error code. - */ - virtual TInt SendUssd( const TDesC& aMsgData ); - - /** - * Send Ussd buffer to network with default DCS. - * - * @param aMsgData 7-bit buffer to be sent. - * @return Error code. - */ - virtual TInt SendUssd( const TDesC8& aMsgData ); - - /** - * Send Ussd buffer to network with given DCS. - * - * @param aMsgData 7-bit buffer to be sent. - * @param iSendDcs Specifies DCS and the send type. - * @return Error code. - */ - virtual TInt SendUssd( - const TDesC8& aMsgData, - const TUint8 iSendDcs ); - - /** - * Cancels outstanding Send request. - */ - virtual void SendUssdCancel(); - - /** - * Starts editor. Creates own window server session. - * - * @return Error code. - */ - TInt StartUssdEditor() const; - - /** - * UI informs that it is been created - * - * @return Error code. - */ - virtual TInt AppStarting(); - - /** - * UI informs that it is terminating. - * - * @param aExitReason The reason why the application was terminated. - * @return Error code. - */ - virtual TInt AppTerminating( - TPhCltUssdAppExitReason aExitReason ); - - /* UI informs that it is brougth to foreground. - * - * @return Should the editor be emptied? - */ - virtual TBool AppToForeground(); - - /** - * UI informs that it is gone background. - * - * @return Error code. - */ - virtual TInt AppToBackground(); - - - /** - * Starts SAT session. - * - * @param aStatus Completed status. - * @param aReceiveMessage Received message. - * @param aShowNotesAndDcs Contains the information of note showing, - * ( Phone Client -> Phone Server ) and - * The used dcs in received message - * ( Phone Server -> Phone Client ). - */ - void StartSAT( - TRequestStatus& aStatus, - TDes& aReceiveMessage, - TPckg< TUint >& aShowNotesAndDcs ); - - /** - * Cancels SAT session. - */ - void StopSAT(); - - /** - * Set data coding scheme - * - * @param aDCS data coding scheme value - */ - void SetDCS( TUint8 aDCS ); - - - - protected: // From base classes - - - // Called when send completes. - void HandleSendEventL( const TInt aError ); - - // Hidden when the user cancel the wait dialog. - void GlobalWaitNoteHidden(); - - - - private: // New functions - - // Constructor. - CPhCltUssdImp(); - - // Symbian 2nd phase constructor. - void ConstructL( TBool aShowNotes ); - - // Encodes the message. - void EncodeL( const TDesC& aSrc, TDes8& aDes ); - - // Finds CR character - void FindFirstCarriageReturnL( - const TDesC& aBuffer , - TUint& aSkipChars , - TUint& aStartBit ); - - private: // Data - - // The handler of the request. - CPhCltUssdRequestHandler* iRequestHandler; - - // Wait scheduler used in this class. - CActiveSchedulerWait* iWait; - - // TInt to sending error store place. - TInt iSendError; - - // Data coding scheme value - TUint8 iDCS; - - // Data coding scheme value for ussd sending - TUint8 iDCS2; - - //RPhCltUssd class instance - RPhCltUssd iCltUssd; - - //RPhCltServer class instance creates phonesession - RPhCltServer iServer; - - //CPhCltUssdNoteController class instance - CPhCltUssdNoteController* iNoteController; - - }; - -#endif // CPHCLTUSSDIMP_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/misc/telservicesinternalcrkeys.h --- a/phoneclientserver/phoneclient/Inc/misc/telservicesinternalcrkeys.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +0,0 @@ -/* -* Copyright (c) 2004-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: Telephony Services internal Central Repository keys -* -*/ - - -#ifndef TELSERVICESINTERNALCRKEYS_H -#define TELSERVICESINTERNALCRKEYS_H - -#include - -/****************************************************************************** -* Telephony Services Variation API -* Keys under this category are used in defining Telephony Services variation. -******************************************************************************/ -const TUid KCRUidTelSrvVariation = { 0x102029AC }; - -/** -* Telephony Services Local Variation Flags. Values are defined in -* TelephonyServicesVariant.hrh. -*/ -const TUint32 KTelSrvVariationFlags = 0x00000001; - -#endif // TELSERVICESINTERNALCRKEYS_H - -// End of file \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Inc/misc/telservicesvariant.hrh --- a/phoneclientserver/phoneclient/Inc/misc/telservicesvariant.hrh Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/* -* Copyright (c) 2003-2007 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: This file contains values for CenRep keys specifying -* Telephony Services specific software settings. -* -* -*/ - - -#ifndef TELSERVICESVARIANT_HRH -#define TELSERVICESVARIANT_HRH - -/** -* KTelSrvLVFlagAdvancedENCheck defines if advanced emergency number check -* is enabled. -* When the flag is set, the advanced emergency number check feature is enabled. -* @since S60 2.6 -*/ -#define KTelSrvLVFlagAdvancedENCheck 0x00000001 - -/** -* KTelSrvLVFlagUssdTone defines if the USSD tone play functionality is -* enabled. -* When the flag is set, tone is played when USSD message is received. -* @since S60 2.6 -*/ -#define KTelSrvLVFlagUssdTone 0x00000002 - -/** -* KTelSrvLVFlagZeroDial is on/off setting for zero dialling. -* When it is set on in KTelSrvVariationFlags zero dialling is enabled -* (0 considered as a phone number), if not GSM standards are followed. -*/ -#define KTelSrvLVFlagZeroDial 0x00000004 - -/** -* KTelSrvLVFlagTwoDigitDial is on/off setting for 2-digit dial. -* When it is set on in KTelSrvVariationFlags the feature is enabled. -* Note: in addition to the value of the key, DOS side variable is read. Two -* digit calling is enabled if both variables indicate that the feature -* should be enabled. -*/ -#define KTelSrvLVFlagTwoDigitDial 0x00000008 - -/** -* KTelSrvLVFlagLifeTimer defines if life timer functionality is enabled. -* When the flag is set, the life timer feature is enabled. -*/ -#define KTelSrvLVFlagLifeTimer 0x00000010 - -/** -* KTelephonyLVFlagStandardCugIndexing defines the range of CUG indexes -* that is in use. -* -* When the flag is set implementation is GSM 04.80 compliant. -* Default CUG index : 0xFFFF -* CUG index range : 0 - 32767 (decimal) -* -* When the flag is NOT set legacy implementation is followed. -* Default CUG index : 0 -* CUG index range : 1 - 32767 (decimal) -* -*/ -#define KTelephonyLVFlagStandardCugIndexing 0x00000020 - -/** -* KTelephonyLVFlagDivertDualAffect defines special dual activation/deactivation -* funtionality. If flag is enabled phonesettings component checks SIM and -* if used SIM supports this feature phonesettings assumes that every CFU -* activation/deactivation request affect to both lines. -* @since Series 60 5.1 -*/ -#define KTelephonyLVFlagDivertDualAffect 0x00000040 - -#endif // TELSERVICESVARIANT_HRH -// End of File \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/CommandHandler/CPhCltComHandImplementation.cpp --- a/phoneclientserver/phoneclient/Src/CommandHandler/CPhCltComHandImplementation.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,184 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Implementation of the PhoneClient interface. -* -*/ - - - -// INCLUDE FILES -#include "cphcltcomhandimplementation.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandlerImplementation::CPhCltCommandHandlerImplementation -// -// C++ constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -CPhCltCommandHandlerImplementation::CPhCltCommandHandlerImplementation() - { - } - - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandlerImplementation::ConstructL -// -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhCltCommandHandlerImplementation::ConstructL() - { - User::LeaveIfError( iServer.Connect() ); - User::LeaveIfError (iCommandHandler.Open( iServer ) ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandlerImplementation::NewL -// -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhCltCommandHandlerImplementation* CPhCltCommandHandlerImplementation::NewL() - { - CPhCltCommandHandlerImplementation* self = - new (ELeave) CPhCltCommandHandlerImplementation(); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandlerImplementation::~CPhCltCommandHandlerImplementation -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhCltCommandHandlerImplementation::~CPhCltCommandHandlerImplementation() - { - // Close Subsession. - iCommandHandler.Close(); - iServer.Close(); - } - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandlerImplementation::Atd -// -// Dial. Only voice call is supported. -// ----------------------------------------------------------------------------- -// -void CPhCltCommandHandlerImplementation::Atd( - TRequestStatus& aStatus, - const TPhCltTelephoneNumber& aTelephoneNumber ) - { - iCommandHandler.Atd( aStatus, aTelephoneNumber ); - } - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandlerImplementation::Ata -// -// Answer the call. -// ----------------------------------------------------------------------------- -// -void CPhCltCommandHandlerImplementation::Ata( - TRequestStatus& aStatus ) - { - iCommandHandler.Ata( aStatus ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandlerImplementation::Chld -// -// Call hold and multiparty handling. -// ----------------------------------------------------------------------------- -// -void CPhCltCommandHandlerImplementation::Chld( - TRequestStatus& aStatus, - const TPhCltChldCommand aChldCommand, - const TUint aCallNumber ) - { - iCommandHandler.Chld( aStatus, aChldCommand, aCallNumber ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandlerImplementation::Chup -// -// Hangup current call. -// ----------------------------------------------------------------------------- -// -void CPhCltCommandHandlerImplementation::Chup( - TRequestStatus& aStatus ) - { - iCommandHandler.Chup( aStatus ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandlerImplementation::Vts -// -// DTMF sending, starting and stopping in same function. -// ----------------------------------------------------------------------------- -// -void CPhCltCommandHandlerImplementation::Vts( - TRequestStatus& aStatus, - const TPhCltDtmfTone aDtmfTone, - const TPhCltDtmfAction aAction ) - { - iCommandHandler.Vts( aStatus, aDtmfTone, aAction ); - } - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandlerImplementation::CancelAsyncRequest -// -// Cancel the ongoing asynchronous request. -// ----------------------------------------------------------------------------- -// -void CPhCltCommandHandlerImplementation::CancelAsyncRequest( - const TPhCltComHandCommand aReqToCancel ) - { - iCommandHandler.CancelAsyncRequest( aReqToCancel ); - } - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandlerImplementation::MuteMicrophone -// ----------------------------------------------------------------------------- -// - -void CPhCltCommandHandlerImplementation::MuteMicrophone( - TRequestStatus& aStatus, const TBool aMute ) - { - iCommandHandler.MuteMicrophone( aStatus, aMute ); - } - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandlerImplementation::MuteRingingTone -// ----------------------------------------------------------------------------- -// - -void CPhCltCommandHandlerImplementation::MuteRingingTone( - TRequestStatus& aStatus ) - { - iCommandHandler.MuteRingingTone( aStatus ); - } - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/CommandHandler/CPhCltCommandHandler.cpp --- a/phoneclientserver/phoneclient/Src/CommandHandler/CPhCltCommandHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2002 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: Command Handler Base class. -* -*/ - - - -// INCLUDE FILES -#include "cphcltcommandhandler.h" -#include "cphcltcomhandimplementation.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltCommandHandler* CPhCltCommandHandler::NewL() - { - return CPhCltCommandHandlerImplementation::NewL(); - } - -// ----------------------------------------------------------------------------- -// CPhCltCommandHandler::CPhCltCommandHandler -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltCommandHandler::CPhCltCommandHandler( ) - { - } - - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/CommandHandler/RPhCltCommandHandler.cpp --- a/phoneclientserver/phoneclient/Src/CommandHandler/RPhCltCommandHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,272 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: This class is used to perform command handler originated -* commands. -* -*/ - - - -// INCLUDES - -#include "rphcltcommandhandler.h" -#include -#include -#include "phcltclientserver.h" -#include -#include - - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandler::RPhCltCommandHandler -// -// C++ constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -RPhCltCommandHandler::RPhCltCommandHandler() -: RSubSessionBase(), - iComHandParams( TPhCltComHandCommandParameters() ) - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandler::Open -// -// Open subsession to Phone Server. -// ----------------------------------------------------------------------------- -// -TInt RPhCltCommandHandler::Open( RPhCltServer& aServer ) - { - __ASSERT_ALWAYS( aServer.Handle(), User::Panic( - KPhClientPanicCategory, - EPhCltClientSidePanicNullHandle ) ); - - return CreateSubSession( - aServer, - EPhoneServerComHandSubSessionOpen, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandler::Close -// -// Close subsession. -// ----------------------------------------------------------------------------- -// -void RPhCltCommandHandler::Close() - { - CloseSubSession( EPhoneServerComHandSubSessionClose ); - } - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandler::Atd -// -// Dial. Only voice call is supported. -// ----------------------------------------------------------------------------- -// -void RPhCltCommandHandler::Atd( - TRequestStatus& aStatus, - const TPhCltTelephoneNumber& aTPhCltTelephoneNumber ) - { - __ASSERT_ALWAYS( SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - // This is Atd function call. - iComHandParams().iCommandHandlerCommand = EPhCltCommandAtd; - iComHandParams().iTelNumber = aTPhCltTelephoneNumber; - SendReceive( - EPhoneServerComHandSubSessionAtd, - TIpcArgs( &iComHandParams ), - aStatus ); - } - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandler::Ata -// -// Answer the call. -// ----------------------------------------------------------------------------- -// -void RPhCltCommandHandler::Ata( - TRequestStatus& aStatus ) - { - __ASSERT_ALWAYS( - SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - // This is Ata function call. - iComHandParams().iCommandHandlerCommand = EPhCltCommandAta; - - // Ata method does not have parameters <=> Uniformity reason for this. - SendReceive( - EPhoneServerComHandSubSessionAta, - TIpcArgs( &iComHandParams ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandler::Chld -// -// Call hold and multiparty handling. -// ----------------------------------------------------------------------------- -// -void RPhCltCommandHandler::Chld( - TRequestStatus& aStatus, - const TPhCltChldCommand aChldCommand, - const TUint aCallNumber ) - { - __ASSERT_ALWAYS( - SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - // Save the chld arguments. - iComHandParams().iChldCommand = aChldCommand; - iComHandParams().iChldCallNumber = aCallNumber; - - // This is Chld function call. - iComHandParams().iCommandHandlerCommand = EPhCltCommandChld; - - SendReceive( - EPhoneServerComHandSubSessionChld, - TIpcArgs( &iComHandParams ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandler::Chup -// -// Hangup current call. -// ----------------------------------------------------------------------------- -// -void RPhCltCommandHandler::Chup( - TRequestStatus& aStatus ) - { - __ASSERT_ALWAYS( - SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - // This is Chup function call. - iComHandParams().iCommandHandlerCommand = EPhCltCommandChup; - - // Chup method does not have parameters <=> Uniformity reason for this. - SendReceive( - EPhoneServerComHandSubSessionChup, - TIpcArgs( &iComHandParams ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandler::Vts -// -// DTMF sending, starting and stopping in same function. -// ----------------------------------------------------------------------------- -// -void RPhCltCommandHandler::Vts( - TRequestStatus& aStatus, - const TPhCltDtmfTone aDtmfTone, - const TPhCltDtmfAction aAction ) - { - __ASSERT_ALWAYS( - SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - // Save the Vts arguments. - iComHandParams().iDtmfTone = aDtmfTone; - iComHandParams().iDtmfAction = aAction; - - // This is Vts function call. - iComHandParams().iCommandHandlerCommand = EPhCltCommandVts; - - SendReceive( - EPhoneServerComHandSubSessionVts, - TIpcArgs( &iComHandParams ), - aStatus ); - } - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandler::CancelAsyncRequest -// -// Cancel the ongoing asynchronous request. -// ----------------------------------------------------------------------------- -// -void RPhCltCommandHandler::CancelAsyncRequest( - const TPhCltComHandCommand aReqToCancel ) - { - __ASSERT_ALWAYS( SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - // Save the cancel arguments. - iComHandParams().iCommandHandlerCommand = aReqToCancel; - - SendReceive( - EPhoneServerComHandSubSessionCancel, - TIpcArgs( &iComHandParams ) ); - } - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandler::MuteMicrophone -// -// ----------------------------------------------------------------------------- -// -void RPhCltCommandHandler::MuteMicrophone( - TRequestStatus& aStatus, const TBool aMute ) - { - __ASSERT_ALWAYS( SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - // Save the MuteMic arguments. - iComHandParams().iMute = aMute; - - // This is MuteMic function call. - iComHandParams().iCommandHandlerCommand = EPhCltCommandMuteMic; - - // MuteMic method does not have parameters <=> Uniformity reason for this. - SendReceive( - EPhoneServerComHandSubSessionMuteMic, - TIpcArgs( &iComHandParams ), - aStatus ); - - } - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandler::MuteRingingTone -// -// ----------------------------------------------------------------------------- -// -void RPhCltCommandHandler::MuteRingingTone( - TRequestStatus& aStatus ) - { - __ASSERT_ALWAYS( SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - // This is MuteRingingTone function call. - iComHandParams().iCommandHandlerCommand = EPhCltCommandMuteRingingTone; - - // MuteRingingTone method does not have parameters <=> Uniformity reason for this. - SendReceive( - EPhoneServerComHandSubSessionMuteRingingTone, - TIpcArgs( &iComHandParams ), - aStatus ); - - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/CommandHandler/RPhCltCommandHandlerNotify.cpp --- a/phoneclientserver/phoneclient/Src/CommandHandler/RPhCltCommandHandlerNotify.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Observer getting notifications about command handler requests -* from Phone Server. -* -*/ - - - -// INCLUDES - -#include "rphcltcommandhandlernotify.h" -#include -#include -#include "phcltclientserver.h" -#include - - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandlerNotify::RPhCltCommandHandlerNotify -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -RPhCltCommandHandlerNotify::RPhCltCommandHandlerNotify() -: RSubSessionBase() - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandlerNotify::Open -// -// Open subsession to Phone Server. -// ----------------------------------------------------------------------------- -// -TInt RPhCltCommandHandlerNotify::Open( RPhCltServer& aServer ) - { - return CreateSubSession( - aServer, - EPhoneServerComHandNotifySubSessionOpen, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandlerNotify::Close -// -// Close subsession. -// ----------------------------------------------------------------------------- -// -void RPhCltCommandHandlerNotify::Close() - { - CloseSubSession( EPhoneServerComHandNotifySubSessionClose ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandlerNotify::NotifyComHandCommand -// -// Notifies when a Command handler request arrives. -// ----------------------------------------------------------------------------- -// -void RPhCltCommandHandlerNotify::NotifyComHandCommand( - TRequestStatus& aStatus, - TDes8& aCommandArgs ) - { - SendReceive( - EPhoneServerComHandNotifySubSessionComHandRequest, - TIpcArgs( &aCommandArgs ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandlerNotify::CancelNotifyComHandCommand -// -// Cancel pending command handler request notification. -// ----------------------------------------------------------------------------- -// -void RPhCltCommandHandlerNotify::CancelNotifyComHandCommand() const - { - SendReceive( - EPhoneServerComHandNotifySubSessionComHandRequestCancel, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCommandHandlerNotify::RespondClient -// -// Respond to client's command handler request. -// ----------------------------------------------------------------------------- -// -TInt RPhCltCommandHandlerNotify::RespondClient( - const TInt aResultCode ) - { - return Send( - EPhoneServerComHandNotifySubSessionReportComHandResult, - TIpcArgs( aResultCode ) ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/EmergencyNumber/EmergencyNumber_Aiw/CPhCltEmergencyCall.cpp --- a/phoneclientserver/phoneclient/Src/EmergencyNumber/EmergencyNumber_Aiw/CPhCltEmergencyCall.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* -* Copyright (c) 2002 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: Implementation of CPhCltEmergencyCall class. -* -*/ - - - -// INCLUDE FILES -#include "cphcltemergencycall.h" -#include "cphcltemergencycallimpl.h" -#include "phclttypes.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltEmergencyCall::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltEmergencyCall* CPhCltEmergencyCall::NewL( - MPhCltEmergencyCallObserver* aObserver ) - { - return CPhCltEmergencyCallImpl::NewL( aObserver ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltEmergencyCall::CPhCltEmergencyCall -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltEmergencyCall::CPhCltEmergencyCall( MPhCltEmergencyCallObserver* aObserver ) - : CActive( EPriorityStandard ), iObserver( aObserver ) - { - } - - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/EmergencyNumber/EmergencyNumber_Aiw/CPhCltEmergencyCallImpl.cpp --- a/phoneclientserver/phoneclient/Src/EmergencyNumber/EmergencyNumber_Aiw/CPhCltEmergencyCallImpl.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,200 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Implementation of CPhCltEmergencyCallImpl class. -* -*/ - - - -// INCLUDE FILES -#include "rphcltserver.h" -#include "cphcltemergencycallimpl.h" -#include "mphcltemergencycallobserver.h" - -_LIT( KEmNumber, "112" ); - -// ============================ MEMBER FUNCTIONS =============================== -// ----------------------------------------------------------------------------- -// CPhCltEmergencyCallImpl::CPhCltEmergencyCallImpl -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltEmergencyCallImpl::CPhCltEmergencyCallImpl( - MPhCltEmergencyCallObserver* aObserver ) : - CPhCltEmergencyCall( aObserver ), - iEmergencyCallNumberPtr( NULL, 0 ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CPhCltEmergencyCallImpl::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhCltEmergencyCallImpl* CPhCltEmergencyCallImpl::NewL( - MPhCltEmergencyCallObserver* aObserver ) - { - CPhCltEmergencyCallImpl* self = - new ( ELeave ) CPhCltEmergencyCallImpl( aObserver); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// Destructor -CPhCltEmergencyCallImpl::~CPhCltEmergencyCallImpl() - { - Cancel(); - iEmergencyCall.Close(); - iServer.Close(); - } - -// ----------------------------------------------------------------------------- -// CPhCltEmergencyCallImpl::ConstructL -// -// ----------------------------------------------------------------------------- -// -void CPhCltEmergencyCallImpl::ConstructL() - { - User::LeaveIfError( iServer.Connect() ); - User::LeaveIfError( iEmergencyCall.Open( iServer ) ); - } - -// ----------------------------------------------------------------------------- -// CPhCltEmergencyCallImpl::RunL -// -// ----------------------------------------------------------------------------- -// -void CPhCltEmergencyCallImpl::RunL() - { - // inform observer - if(iObserver) - { - iObserver->HandleEmergencyDialL( iStatus.Int() ); - } - } - -// ----------------------------------------------------------------------------- -// CPhCltEmergencyCallImpl::DoCancel -// -// ----------------------------------------------------------------------------- -// -void CPhCltEmergencyCallImpl::DoCancel() - { - iEmergencyCall.CancelDialEmergencyCall(); - } - -// ----------------------------------------------------------------------------- -// CPhCltEmergencyCallImpl::IsEmergenyPhoneNumber -// -// ----------------------------------------------------------------------------- -// -TInt CPhCltEmergencyCallImpl::IsEmergencyPhoneNumber( - const TDesC& aNumber, - TBool& aIsEmergencyNumber ) - { - return iEmergencyCall.IsEmergencyPhoneNumber( - aNumber, - aIsEmergencyNumber ); - } - -// ----------------------------------------------------------------------------- -// CPhCltEmergencyCallImpl::IsEmergenyPhoneNumber -// -// ----------------------------------------------------------------------------- -// -TInt CPhCltEmergencyCallImpl::IsEmergencyPhoneNumber( - const TDesC& aNumber, - TDes& aMatchedEmergencyNumber, - TBool& aIsEmergencyNumber ) - { - - return iEmergencyCall.IsEmergencyPhoneNumber( - aNumber, - aMatchedEmergencyNumber, - aIsEmergencyNumber ); - } - -// ----------------------------------------------------------------------------- -// CPhCltEmergencyCallImpl::FindEmergencyPhoneNumber -// -// ----------------------------------------------------------------------------- -// -TInt CPhCltEmergencyCallImpl::FindEmergencyPhoneNumber( - TDes& aNumber, - TBool& aIsEmergencyNumber ) - { - return iEmergencyCall.FindEmergencyPhoneNumber( - aNumber, - aIsEmergencyNumber ); - } - -// ----------------------------------------------------------------------------- -// CPhCltEmergencyCallImpl::DialEmergencyCallL -// -// Sends a dial request to the server. -// ----------------------------------------------------------------------------- -// -void CPhCltEmergencyCallImpl::DialEmergencyCallL( - const TDesC& aNumber ) - { - TBool isEmNumber( EFalse ); - TInt error( KErrNone ); - DialEmergencyPreconditionCheckL(); - - if ( aNumber.Length() < 1 ) - { - iEmergencyCallNumber.Copy( KEmNumber ); - } - else - { - TPhCltEmergencyNumber matchedEmNumber; - error = IsEmergencyPhoneNumber( aNumber, - matchedEmNumber, isEmNumber ); - - if ( !isEmNumber || error ) - { - User::Leave( KErrArgument ); - } - iEmergencyCallNumber = matchedEmNumber; - } - - iEmergencyCallNumberPtr.Set( - reinterpret_cast( &iEmergencyCallNumber ), - sizeof( TPhCltEmergencyNumber ) ); - iEmergencyCall.DialEmergencyCall( iStatus, iEmergencyCallNumberPtr ); - SetActive(); - } - -// ----------------------------------------------------------------------------- -// CPhCltEmergencyCallImpl::DialEmergencyPreconditionCheckL -// -// ----------------------------------------------------------------------------- -// -void CPhCltEmergencyCallImpl::DialEmergencyPreconditionCheckL() - { - if( IsActive() ) - { - User::Leave( KErrInUse ); - } - if( iEmergencyCall.SubSessionHandle() == 0 ) - { - User::Leave( KErrBadHandle ); - } - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/EmergencyNumber/EmergencyNumber_Aiw/RPhCltEmergencyCall.cpp --- a/phoneclientserver/phoneclient/Src/EmergencyNumber/EmergencyNumber_Aiw/RPhCltEmergencyCall.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,373 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Implementation of RPhCltEmergencyCall class. -* -*/ - - - -// INCLUDE FILES -#include // for TPhCltEmergencyNumber -#include "rphcltemergencycall.h" -#include "phcltclientserver.h" -#include "phcltutils.h" - -// CONSTANTS -_LIT( KPhCltDtmfCharp, "p" ); -_LIT( KPhCltDtmfCharw, "w" ); -_LIT( KPhCltSsCLIRSuppress, "*31#" ); // Outgoing CLI Release (release) -_LIT( KPhCltSsCLIRInvoke, "#31#" ); // Outgoing CLI Release (withhold) - -// Emergency number (number part) max size -const TInt KPhCltMaxEmergencyNumberLength = 6; -// Min length of CLIR -const TInt KPhCltMinSsStringLength = 4; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RPhCltEmergencyCall::RPhCltEmergencyCall -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -RPhCltEmergencyCall::RPhCltEmergencyCall() - : RSubSessionBase() - { - } - -// ----------------------------------------------------------------------------- -// RPhCltEmergencyCall::Open -// -// Creates a subsession, as part of the given session. -// ----------------------------------------------------------------------------- -// -TInt RPhCltEmergencyCall::Open( RPhCltServer& aServer ) - { - __ASSERT_ALWAYS( aServer.Handle(), User::Panic( - KPhClientPanicCategory, - EPhCltClientSidePanicNullHandle ) ); - - return CreateSubSession( - aServer, - EPhoneServerEmergencyNumberSubSessionOpen, - TIpcArgs() ); - } - -// ----------------------------------------------------------------------------- -// RPhCltEmergencyCall::Close -// -// Closes the subsession. -// ----------------------------------------------------------------------------- -// -void RPhCltEmergencyCall::Close() - { - CloseSubSession( EPhoneServerEmergencyNumberSubSessionClose ); - } - -// ----------------------------------------------------------------------------- -// RPhCltEmergencyCall::IsEmergenyPhoneNumber -// -// Checks if telephonenumber is an emergency number. -// ----------------------------------------------------------------------------- -// -TInt RPhCltEmergencyCall::IsEmergencyPhoneNumber( - const TDesC& aNumber, - TBool& aIsEmergencyNumber ) - { - aIsEmergencyNumber = EFalse; - TPhCltEmergencyNumber emNumber; - - // Maximum total number size check - if ( aNumber.Length() > KPhCltEmergencyNumberSize ) - { - return KErrArgument; - } - - emNumber.Copy( aNumber ); - TBool writeEmergencyNumberBack( EFalse ); - - // Actual check if the number provided is a valid emergency number - TInt result = ValidateNumber( emNumber, aIsEmergencyNumber, - writeEmergencyNumberBack ); - - return result; - } - -// ----------------------------------------------------------------------------- -// RPhCltEmergencyCall::IsEmergenyPhoneNumber -// -// Checks if telephonenumber is an emergency number. -// ----------------------------------------------------------------------------- -// -TInt RPhCltEmergencyCall::IsEmergencyPhoneNumber( - const TDesC& aNumber, - TDes& aMatchedEmergencyNumber, - TBool& aIsEmergencyNumber ) - { - aIsEmergencyNumber = EFalse; - - // Maximum total number size check - if ( aNumber.Length() > KPhCltEmergencyNumberSize ) - { - return KErrArgument; - } - - aMatchedEmergencyNumber.Copy( aNumber ); - TBool writeEmergencyNumberBack( ETrue ); - - // Actual check if the number provided is a valid emergency number - TInt result = ValidateNumber( aMatchedEmergencyNumber, aIsEmergencyNumber, - writeEmergencyNumberBack ); - - // Reset the matched number, if no match was found - if ( !aIsEmergencyNumber ) - { - aMatchedEmergencyNumber = KNullDesC; - } - - return result; - } - -// ----------------------------------------------------------------------------- -// RPhCltEmergencyCall::FindEmergencyPhoneNumber -// -// Checks if telephonenumber is an emergency number. -// Found emergency number returned -// ----------------------------------------------------------------------------- -// -TInt RPhCltEmergencyCall::FindEmergencyPhoneNumber( - TDes& aNumber, - TBool& aIsEmergencyNumber ) - { - TPckg< TBool > pIsEmergencyNumber( aIsEmergencyNumber ); - - if ( aNumber.Length() > KPhCltTelephoneNumberLength ) - { - return KErrArgument; - } - - TPckg< TPhCltTelephoneNumber > pNumber( - static_cast( aNumber ) ); - - return SendReceive( - EPhoneServerEmergencyNumberSubSessionIsEmergencyNumber, - TIpcArgs( - &pNumber, - &pIsEmergencyNumber, - EPhCltEmergencyNumberQueryModeAdvanced ) ); - } - -// ----------------------------------------------------------------------------- -// RPhCltEmergencyCall::DialEmergencyCall -// -// Sends a dial request to the server. -// ----------------------------------------------------------------------------- -// -void RPhCltEmergencyCall::DialEmergencyCall( - TRequestStatus& aReqStatus, - TDesC8& aNumber ) - { - return SendReceive( - EPhoneServerEmergencyNumberSubsessionEmergencyDial, - TIpcArgs( &aNumber ), - aReqStatus ); - } - -// ----------------------------------------------------------------------------- -// RPhCltEmergencyCall::CancelDialEmergencyCall -// -// Cancels an emergency call. -// ----------------------------------------------------------------------------- -// -void RPhCltEmergencyCall::CancelDialEmergencyCall() - { - SendReceive( - EPhoneServerEmergencyNumberSubsessionEmergencyDialCancel, - TIpcArgs() ); - } - -// ----------------------------------------------------------------------------- -// Extracts telephone number out of string. Valid emergency number can -// have CLIR SS code and DTMF in it. -// ----------------------------------------------------------------------------- -// -TBool RPhCltEmergencyCall::ExtractTelephoneNumber( TDes& aString ) - { - // Emergency number may contain CLIR ss code, so remove - // possible CLIR code from the number. - RemoveCLIR( aString ); - - // Emergency number may contain DTMF. - RemoveDTMF( aString ); - - if ( aString.Length() ) - { - // First character in emergency can be +, but after that all characters must be digits. - const TChar KPlusChar = '+'; - TChar firstCharacter = aString[0]; - if ( firstCharacter == KPlusChar ) - { - aString = aString.Right( aString.Length()-1 ); - } - - // Number should be only digits. - for ( TInt i = 0; i < aString.Length(); i++ ) - { - TChar character = aString[i]; - if ( !character.IsDigit() ) - { - return EFalse; - } - } - } - - // This might be a valid emergency number. Final check is - // done by EnPolicy. - if ( aString.Length() ) - { - return ETrue; - } - // If string length is zero after parsing, no reason to check it - // with EnPolicy, jus return EFalse. - else - { - return EFalse; - } - - } - -// ----------------------------------------------------------------------------- -// Finds start of DTMF string. DTMF string starts with p or w character. -// ----------------------------------------------------------------------------- -// -TInt RPhCltEmergencyCall::FindStartOfDtmfString( const TDesC& aString ) - { - // If string contains 'p' or 'w' returns true. - TInt indexp; //char 'p' index - TInt indexw;// char 'w' index - TPtrC ptrDtmfCharp( KPhCltDtmfCharp ); - TPtrC ptrDtmfCharw( KPhCltDtmfCharw ); - - indexp = aString.Locate( ptrDtmfCharp[ 0 ] ); - indexw = aString.Locate( ptrDtmfCharw[ 0 ] ); - - TInt dtmfIndex = KErrNotFound; - if ( indexp != KErrNotFound || indexw != KErrNotFound ) - { - // dtmf char found - if ( indexw == KErrNotFound ) - { - // char p index - dtmfIndex = indexp; - } - else if ( indexp == KErrNotFound ) - { - // char w index - dtmfIndex = indexw; - } - else - { - // Both chars p and w found, smaller index selected - indexp < indexw ? dtmfIndex = indexp : dtmfIndex = indexw; - } - } - - return dtmfIndex; - } - -// ----------------------------------------------------------------------------- -// Removes CLIR SS code -// ----------------------------------------------------------------------------- -// -void RPhCltEmergencyCall::RemoveCLIR( TDes& aString ) - { - - // Check for valid SS codes. Compare returns zero if strings match. - if ( !aString.Left( KPhCltMinSsStringLength ).Compare( KPhCltSsCLIRInvoke ) || - !aString.Left( KPhCltMinSsStringLength ).Compare( KPhCltSsCLIRSuppress ) ) - { - // Extract string after the CLIR ss code. - aString = aString.Right( aString.Length() - KPhCltSsCLIRInvoke().Length() ); - } - } - -// ----------------------------------------------------------------------------- -// Removes DTMF from string. -// ----------------------------------------------------------------------------- -// -void RPhCltEmergencyCall::RemoveDTMF( TDes& aString ) - { - const TInt dtmfIndex = FindStartOfDtmfString( aString ); - if ( dtmfIndex != KErrNotFound ) - { - aString = aString.Left( dtmfIndex ); - } - } - -// ----------------------------------------------------------------------------- -// RPhCltEmergencyCall::ValidateNumber -// -// ----------------------------------------------------------------------------- -// -TInt RPhCltEmergencyCall::ValidateNumber( TDes& aString, - TBool& aIsEmergencyNumber, - const TBool aWriteEmergencyNumBack ) - { - TPckg pIsEmergencyNumber( aIsEmergencyNumber ); - - // Check and remove additional characters from the phone number - TBool isPotentialEmNumber = ExtractTelephoneNumber( aString ); - - // Pass the number on to EnPolicy for further check - if ( isPotentialEmNumber ) - { - // Maximum length of digit part check - if ( aString.Length() > KPhCltMaxEmergencyNumberLength ) - { - return KErrArgument; - } - - // Use write-back mode if requested - if ( aWriteEmergencyNumBack ) - { - TPckg< TPhCltTelephoneNumber > pNumber( - static_cast( aString ) ); - return SendReceive( - EPhoneServerEmergencyNumberSubSessionIsEmergencyNumber, - TIpcArgs( - &pNumber, - &pIsEmergencyNumber, - EPhCltEmergencyNumberQueryModeNormalWriteback ) ); - } - // Else use the normal mode - else - { - TPckgC pNumber( aString ); - return SendReceive( - EPhoneServerEmergencyNumberSubSessionIsEmergencyNumber, - TIpcArgs( - &pNumber, - &pIsEmergencyNumber, - EPhCltEmergencyNumberQueryModeNormal ) ); - } - } - else - { - return KErrNone; - } - } - -// End of File - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ExtCall/ExtCall_Aiw/CPhCltExtPhoneDialData.cpp --- a/phoneclientserver/phoneclient/Src/ExtCall/ExtCall_Aiw/CPhCltExtPhoneDialData.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,742 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Ext Phone Dial Data. -* -*/ - - - -// INCLUDE FILES -#include "cphcltextphonedialdata.h" -#include - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneDialData::CPhCltExtPhoneDialData -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltExtPhoneDialData::CPhCltExtPhoneDialData() - : CPhCltDialData() - { - iRedialMaximumDuration = 0; - } - - -// --------------------------------------------------------------------------- -// -// Symbian OS constructor -// -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::ConstructL() - { - CPhCltDialData::ConstructL(); - } - -// --------------------------------------------------------------------------- -// -// Symbian OS constructor -// Initialises the member data from package. -// -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::ConstructL( - const TDesC8& aPackage ) - { - RDesReadStream stream( aPackage ); - CleanupClosePushL( stream ); - - stream >> iTelNumber; - iCallType = static_cast( stream.ReadInt32L() ); - stream >> iName; - iWindowGroup = stream.ReadInt32L(); - iRedial = stream.ReadInt32L(); - iRedialMaximumDuration = stream.ReadInt32L(); - ReadDescriptorFromStreamL( stream, iContactLink ); - stream >> iSubAddress; - iShowNumber = stream.ReadInt32L(); - iAllowMatch = stream.ReadInt32L(); - iSATCall = stream.ReadInt32L(); - iEndOtherCalls = stream.ReadInt32L(); - stream >> iBearer; - iSendKey = stream.ReadInt32L(); - iReturnToNumberEntryOnFailure = stream.ReadInt32L(); - iInitCall = stream.ReadInt32L(); - iFlags = stream.ReadUint32L(); - iServiceId = stream.ReadUint32L(); - ReadDescriptorFromStreamL( stream, iUUI ); - CleanupStack::PopAndDestroy( 1 ); // stream; - } -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneDialData::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltExtPhoneDialData* CPhCltExtPhoneDialData::NewL() - { - CPhCltExtPhoneDialData* self = CPhCltExtPhoneDialData::NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneDialData::NewLC -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltExtPhoneDialData* CPhCltExtPhoneDialData::NewLC( ) - { - CPhCltExtPhoneDialData* self = new( ELeave ) CPhCltExtPhoneDialData; - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// -// First phase constructor -// Initialises the member data from package. -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPhCltExtPhoneDialData* CPhCltExtPhoneDialData::NewL( - const TDesC8& aPackage ) - { - CPhCltExtPhoneDialData* self = CPhCltExtPhoneDialData::NewLC( aPackage ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// -// First phase constructor -// Initialises the member data from package. -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPhCltExtPhoneDialData* CPhCltExtPhoneDialData::NewLC( - const TDesC8& aPackage ) - { - CPhCltExtPhoneDialData* self = new( ELeave ) CPhCltExtPhoneDialData; - CleanupStack::PushL( self ); - self->ConstructL( aPackage ); - return self; - } - -// Destructor -EXPORT_C CPhCltExtPhoneDialData::~CPhCltExtPhoneDialData() - { - } - - - // Access - Setters - -// --------------------------------------------------------------------------- -// Sets allow match. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetAllowMatch( TBool aAllowMatch ) - { - iAllowMatch = aAllowMatch; - } - -// --------------------------------------------------------------------------- -// Sets bearer. -// --------------------------------------------------------------------------- -EXPORT_C void CPhCltExtPhoneDialData::SetBearerL ( -const TPhCltBearerCapability& aBearer ) - { - iBearer = aBearer; - } - -// --------------------------------------------------------------------------- -// Sets call type. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetCallType( TPhCltCallType aCallType ) - { - iCallType = aCallType; - } - -// --------------------------------------------------------------------------- -// Sets used contact link. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetContactLinkL( const TDesC8& aContactLink ) - { - CopyDescriptorToMemberDescriptorL( aContactLink, iContactLink ); - } - -// --------------------------------------------------------------------------- -// Sets end other calls. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetEndOtherCalls( TBool aEndCalls ) - { - iEndOtherCalls = aEndCalls ; - } - - // --------------------------------------------------------------------------- -// Set initiate call. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetInitiateCall( TBool aInitCall ) - { - iInitCall = aInitCall; - } -// --------------------------------------------------------------------------- -// Set name. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetNameL( const TPhCltNameBuffer& aName ) - { - iName = aName; - } - -// --------------------------------------------------------------------------- -// Sets phone number. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetTelephoneNumber( - const TPhCltTelephoneNumber& aNumber ) - { - iTelNumber = aNumber; - } - -// --------------------------------------------------------------------------- -// Sets redial value. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetRedial( TInt aRedial ) - { - iRedial = aRedial; - } - -// --------------------------------------------------------------------------- -// Sets redial max duration time. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetRedialMaximumDuration( - TTimeIntervalSeconds aMaximumRedialDuration ) - { - iRedialMaximumDuration = aMaximumRedialDuration; - } - -// --------------------------------------------------------------------------- -// Sets SAT call. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetSATCall( TBool aIsSATCall ) - { - iSATCall = aIsSATCall; - } - -// ----------------------------------------------------------------------------- -// SetSendKeyPressed -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetSendKeyPressed( TBool aSendKey ) - { - iSendKey = aSendKey; - } - -// --------------------------------------------------------------------------- -// Set show number. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetShowNumber( TBool aShowNumber ) - { - iShowNumber = aShowNumber; - } - -// --------------------------------------------------------------------------- -// Sets SubAddress for SAT call. -// --------------------------------------------------------------------------- -EXPORT_C void CPhCltExtPhoneDialData::SetSubAddressL( - const TPhCltSubAddress& aSubAddress ) - { - iSubAddress = aSubAddress; - } - -// --------------------------------------------------------------------------- -// Sets window group. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetWindowGroup( TInt aWindowGroup ) - { - iWindowGroup = aWindowGroup; - } - -// --------------------------------------------------------------------------- -// Sets window group. -// --------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetUUIL( const TDesC& aUUI ) - { - CopyDescriptorToMemberDescriptorL( aUUI, iUUI ); - } - -// Access - Getters - -// --------------------------------------------------------------------------- -// Return allow match. -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CPhCltExtPhoneDialData::AllowMatch() const - { - return iAllowMatch; - } - -// --------------------------------------------------------------------------- -// Returns bearer. -// --------------------------------------------------------------------------- -// -EXPORT_C const TPhCltBearerCapability& CPhCltExtPhoneDialData::Bearer() const - { - return iBearer; - } - -// --------------------------------------------------------------------------- -// Returns call type. -// --------------------------------------------------------------------------- -// -EXPORT_C TPhCltCallType CPhCltExtPhoneDialData::CallType() const - { - return iCallType; - } - -// --------------------------------------------------------------------------- -// Return contact link. -// --------------------------------------------------------------------------- -// -EXPORT_C const TDesC8& CPhCltExtPhoneDialData::ContactLink() const - { - return *iContactLink; - } - -// --------------------------------------------------------------------------- -// Returns end other calls value. -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CPhCltExtPhoneDialData::EndOtherCalls() const - { - return iEndOtherCalls; - } - -// --------------------------------------------------------------------------- -// Returns initiate call. -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CPhCltExtPhoneDialData::InitiateCall() const - { - return iInitCall; - } - -// --------------------------------------------------------------------------- -// Returns name. -// --------------------------------------------------------------------------- -// -EXPORT_C const TPhCltNameBuffer& CPhCltExtPhoneDialData::Name() const - { - return iName; - } - -// --------------------------------------------------------------------------- -// Returns phone number. -// --------------------------------------------------------------------------- -// -EXPORT_C const TPhCltTelephoneNumber& CPhCltExtPhoneDialData::TelephoneNumber() const - { - return iTelNumber; - } - -// --------------------------------------------------------------------------- -// Return redial value. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPhCltExtPhoneDialData::Redial() const - { - return iRedial; - } -// --------------------------------------------------------------------------- -// Returns redial max duration. -// --------------------------------------------------------------------------- -// -EXPORT_C const TTimeIntervalSeconds CPhCltExtPhoneDialData::RedialMaximumDuration() const - { - return iRedialMaximumDuration; - } - -// --------------------------------------------------------------------------- -// Returns SAT call value. -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CPhCltExtPhoneDialData::SATCall() const - { - return iSATCall; - } - - // ----------------------------------------------------------------------------- -// SendKeyPressed -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool CPhCltExtPhoneDialData::SendKeyPressed() const - { - return iSendKey; - } - -// --------------------------------------------------------------------------- -// Returns show number. -// --------------------------------------------------------------------------- -// -EXPORT_C TBool CPhCltExtPhoneDialData::ShowNumber() const - { - return iShowNumber; - } - -// --------------------------------------------------------------------------- -// Returns subaddress. -// --------------------------------------------------------------------------- -// -EXPORT_C const TPhCltSubAddress& CPhCltExtPhoneDialData::SubAddress() const - { - return iSubAddress; - } - -// --------------------------------------------------------------------------- -// Return window group. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPhCltExtPhoneDialData::WindowGroup() const - { - return iWindowGroup; - } - -// --------------------------------------------------------------------------- -// Return user to user information -// --------------------------------------------------------------------------- -// -EXPORT_C const TDesC& CPhCltExtPhoneDialData::UUI() const - { - return *iUUI; - } - - // Other member functions - -// --------------------------------------------------------------------------- -// Calculates the size of descriptor in package. Note that to retreave -// a descriptor from stream in ConstructL we need to know the size of a -// descriptor in order to allocate right size descriptor. This is the reason -// for adding sizeof( int ) to descriptor length. -// --------------------------------------------------------------------------- -// -TInt CPhCltExtPhoneDialData::CalculateDescriptorSize( const TDesC& aDescriptor ) const - { - // sizeof( TInt ) is for the length of a descriptor. - return sizeof( TInt ) + aDescriptor.Length() * 2; // unicode takes 2 bytes. - } - -// --------------------------------------------------------------------------- -// Calculates the size of descriptor in package. Note that to retreave -// a descriptor from stream in ConstructL we need to know the size of a -// descriptor in order to allocate right size descriptor. This is the reason -// for adding sizeof( int ) to descriptor length. -// --------------------------------------------------------------------------- -// -TInt CPhCltExtPhoneDialData::CalculateDescriptorSize( const TDesC8& aDescriptor ) const - { - // sizeof( TInt ) is for the length of a descriptor in stream - return sizeof( TInt ) + aDescriptor.Length(); - } - -// --------------------------------------------------------------------------- -// Calculates the size of all member data. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPhCltExtPhoneDialData::CalculatePackageSize() const - { - TInt packageSize = 0; - packageSize += CalculateDescriptorSize( iTelNumber ); - packageSize += sizeof( iCallType ); - packageSize += CalculateDescriptorSize( iName ); - packageSize += sizeof( iWindowGroup ); - packageSize += sizeof( iRedial ); - packageSize+=sizeof( iRedialMaximumDuration.Int() ); - packageSize += CalculateDescriptorSize( *iContactLink ); - packageSize += CalculateDescriptorSize( iSubAddress ); - packageSize += sizeof( iShowNumber); - packageSize += sizeof( iAllowMatch ); - packageSize += sizeof( iSATCall ); - packageSize += sizeof( iEndOtherCalls ); - packageSize += CalculateDescriptorSize( iBearer ); - packageSize += sizeof (iSendKey ); - packageSize += sizeof( iReturnToNumberEntryOnFailure); - packageSize += sizeof (iInitCall ); - packageSize += sizeof( iFlags ); - packageSize += sizeof( iServiceId ); - packageSize += CalculateDescriptorSize( *iUUI ); - return packageSize; - } - -// --------------------------------------------------------------------------- -// Checks that descriptorLength is not longer than maximum allowed descriptor -// length. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::CheckDescriptorMaxLengthL( - TInt aDescriptorLength, TInt aMaxAllowedDescriptorLength ) const - { - if( aDescriptorLength > aMaxAllowedDescriptorLength ) - { - User::Leave( KErrArgument ); - } - } - -// --------------------------------------------------------------------------- -// Copies aSource descriptor to aMemberDescriptor. This quarantees that member -// descriptor will be valid even if the allocation fails. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::CopyDescriptorToMemberDescriptorL( - const TDesC& aSource, - HBufC*& aMemberDescriptor ) - { - HBufC* temp = aSource.AllocL(); - delete aMemberDescriptor; - aMemberDescriptor = temp; - } - -// --------------------------------------------------------------------------- -// Copies aSource descriptor to aMemberDescriptor. This quarantees that member -// descriptor will be valid even if the allocation fails. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::CopyDescriptorToMemberDescriptorL( - const TDesC8& aSource, - HBufC8*& aMemberDescriptor ) - { - HBufC8* temp = aSource.AllocL(); - delete aMemberDescriptor; - aMemberDescriptor = temp; - } - - -// --------------------------------------------------------------------------- -// Reads descriptor from stream. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::ReadDescriptorFromStreamL( - RDesReadStream& aStream, - HBufC8*& aDescriptor - ) - { - const TInt descLength( aStream.ReadInt32L() ); - if ( aDescriptor ) - { - delete aDescriptor; - } - // Not to cleanupstack, aDescriptor is member variable - aDescriptor = HBufC8::NewL( descLength ); - TPtr8 ptr = aDescriptor->Des(); - aStream.ReadL( ptr, descLength ); - } - -// --------------------------------------------------------------------------- -// Reads descriptor from stream. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::ReadDescriptorFromStreamL( - RDesReadStream& aStream, - HBufC*& aDescriptor ) - { - const TInt descLength( aStream.ReadInt32L() ); - if ( aDescriptor ) - { - delete aDescriptor; - } - // Not to cleanupstack, aDescriptor will be member variable - aDescriptor = HBufC::NewL( descLength ); - TPtr16 ptr = aDescriptor->Des(); - aStream.ReadL( ptr, descLength ); - } - -// --------------------------------------------------------------------------- -// Writes descriptor to stream. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::WriteDescriptorToStreamL( - RDesWriteStream& aStream, - const TDesC8& aDescriptor ) - { - aStream.WriteInt32L( aDescriptor.Length() ); - aStream.WriteL( aDescriptor ); - } - -// --------------------------------------------------------------------------- -// Writes descriptor to stream. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::WriteDescriptorToStreamL( - RDesWriteStream& aStream, - const TDesC& aDescriptor ) - { - aStream.WriteInt32L( aDescriptor.Length() ); - aStream.WriteL( aDescriptor ); - } - -// --------------------------------------------------------------------------- -// Packs the member data to descriptor. Ownershipd of returned descriptor -// is given for caller. -// --------------------------------------------------------------------------- -// -EXPORT_C HBufC8* CPhCltExtPhoneDialData::PackLC() - { - HBufC8* package = HBufC8::NewLC( CalculatePackageSize() ); - - TPtr8 des = package->Des(); - RDesWriteStream stream( des ); - - CleanupClosePushL( stream ); - - stream << iTelNumber; - stream.WriteInt32L( iCallType ); - stream << iName; - stream.WriteInt32L( iWindowGroup ); - stream.WriteInt32L( iRedial ); - stream.WriteInt32L( iRedialMaximumDuration.Int() ); - WriteDescriptorToStreamL( stream, *iContactLink ); - stream << iSubAddress; - stream.WriteInt32L( iShowNumber ); - stream.WriteInt32L( iAllowMatch ); - stream.WriteInt32L( iSATCall); - stream.WriteInt32L( iEndOtherCalls ); - stream << iBearer; - stream.WriteInt32L( iSendKey ); - stream.WriteInt32L( iReturnToNumberEntryOnFailure ); - stream.WriteInt32L( iInitCall ); - - - iFlags = EPhCltCallFlagsDefault; - - if ( iShowNumber ) - { - iFlags |= EPhCltCallFlagsAllowNumberShowing; - } - - if ( iAllowMatch ) - { - iFlags |= - EPhCltCallFlagsAllowPersonalDirectoryMatching; - } - if ( iEndOtherCalls ) - { - iFlags |= EPhCltCallFlagsEndBeforeDial; - } - - if ( iSATCall ) - { - iFlags |= EPhCltCallFlagsSAT; - } - - if ( ( iCallType == EPhCltVideo ) || ( iCallType == EPhCltForcedVideo ) ) - { - iFlags |= EPhCltCallFlagsVideoCall; - } - - if ( iCallType == EPhCltCallVoIP ) - { - iFlags |= EPhCltCallFlagsVoIPCall; - } - - - if ( iSendKey ) - { - iFlags |= EPhCltCallFlagsSendKey; - } - - stream.WriteUint32L( iFlags ); - stream.WriteUint32L( iServiceId ); - WriteDescriptorToStreamL( stream, *iUUI ); - stream.CommitL(); - - CleanupStack::PopAndDestroy( 1 ); // stream - - return package; - - } - -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneDialData::SetServiceId -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetServiceId( TUint32 aServiceId ) - { - iServiceId = aServiceId; - } -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneDialData::ServiceId -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TUint32 CPhCltExtPhoneDialData::ServiceId() const - { - return iServiceId; - } - -// --------------------------------------------------------------------------- -// Sets dial data values using given package -// -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetParamsL( - const TDesC8& aPackage ) - { - RDesReadStream stream( aPackage ); - CleanupClosePushL( stream ); - - stream >> iTelNumber; - iCallType = static_cast( stream.ReadInt32L() ); - stream >> iName; - iWindowGroup = stream.ReadInt32L(); - iRedial = stream.ReadInt32L(); - iRedialMaximumDuration = stream.ReadInt32L(); - ReadDescriptorFromStreamL( stream, iContactLink ); - stream >> iSubAddress; - iShowNumber = stream.ReadInt32L(); - iAllowMatch = stream.ReadInt32L(); - iSATCall = stream.ReadInt32L(); - iEndOtherCalls = stream.ReadInt32L(); - stream >> iBearer; - iSendKey = stream.ReadInt32L(); - iReturnToNumberEntryOnFailure = stream.ReadInt32L(); - iInitCall = stream.ReadInt32L(); - iFlags = stream.ReadUint32L(); - iServiceId = stream.ReadUint32L(); - ReadDescriptorFromStreamL( stream, iUUI ); - - CleanupStack::PopAndDestroy( 1 ); // stream; - } -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ExtCall/ExtCall_Aiw/RPhCltExtCall.cpp --- a/phoneclientserver/phoneclient/Src/ExtCall/ExtCall_Aiw/RPhCltExtCall.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Ext Call -* -*/ - - - -// INCLUDE FILES -#include "rphcltserver.h" -#include "rphcltextcall.h" -#include "cphcltextphonedialdata.h" -#include "phcltclientserver.h" - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// RPhCltExtCall::RPhCltExtCall -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -RPhCltExtCall::RPhCltExtCall() - : RSubSessionBase() - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCall::Open -// -// Creates a subsession, as part of the given session. -// ----------------------------------------------------------------------------- -// -TInt RPhCltExtCall::Open( RPhCltServer& aServer ) - { - __ASSERT_ALWAYS( aServer.Handle(), User::Panic( - KPhClientPanicCategory, - EPhCltClientSidePanicNullHandle ) ); - - return CreateSubSession( - aServer, - EPhoneServerExtCallSubSessionOpen, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCall::Close -// -// Closes the subsession. -// ----------------------------------------------------------------------------- -// -void RPhCltExtCall::Close() - { - CloseSubSession( EPhoneServerExtCallSubSessionClose ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCall::Dial -// -// Sends a dial request to the server. -// ----------------------------------------------------------------------------- -// -void RPhCltExtCall::Dial( - TRequestStatus& aStatus, - TDesC8& aData, TInt aLength ) - { - __ASSERT_ALWAYS( SubSessionHandle(), User::Panic( KPhClientPanicCategory, - EPhCltClientSidePanicNullHandle ) ); - - TPckg< TInt > pDataLength( aLength ); - SendReceive( - EPhoneServerExtCallSubSessionMakeCall, - TIpcArgs( &aData, aLength ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCall::CancelDial -// -// Cancels the pending dial request. -// ----------------------------------------------------------------------------- -// -void RPhCltExtCall::CancelDial() const - { - __ASSERT_ALWAYS( const_cast< RPhCltExtCall* >( this )->SubSessionHandle(), - User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - SendReceive( - EPhoneServerExtCallSubSessionMakeCallCancel, - TIpcArgs() ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ExtCall/ExtCall_Aiw/cphcltdialdata.cpp --- a/phoneclientserver/phoneclient/Src/ExtCall/ExtCall_Aiw/cphcltdialdata.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Ext Phone Dial Data. -* -*/ - - - -// INCLUDE FILES -#include -#include "cphcltextphonedialdata.h" // For correct default values - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CPhCltDialData::CPhCltDialData -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltDialData::CPhCltDialData(): - iTelNumber( KNullDesC ), - iCallType( EPhCltVoice ), - iName( KNullDesC ), - iWindowGroup( KPhCltGoToIdle ), - iRedial( KPhCltRedialDefault ), - iSubAddress( KNullDesC ), - iShowNumber( ETrue ), - iAllowMatch( KPhCltDefaultAllowMatch ), - iSATCall( EFalse ), - iEndOtherCalls( EFalse ), - iBearer( KNullDesC8 ), - iSendKey( EFalse ), - iReturnToNumberEntryOnFailure( KPhCltDefaultNumberEntry ), - iInitCall ( EFalse ), - iFlags( CPhCltExtPhoneDialData::EPhCltCallFlagsDefault ), - iServiceId( NULL ) - { - iRedialMaximumDuration = 0; - } - - -// Destructor -CPhCltDialData::~CPhCltDialData() - { - delete iContactLink; - iContactLink = NULL; - delete iUUI; - iUUI = NULL; - } - -void CPhCltDialData::ConstructL() - { - iContactLink = KNullDesC8().AllocL(); - iUUI = KNullDesC().AllocL(); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ExtCall/RPhCltExtCall.cpp --- a/phoneclientserver/phoneclient/Src/ExtCall/RPhCltExtCall.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Ext Call -* -*/ - - - -// INCLUDE FILES -#include "rphcltserver.h" -#include "rphcltextcall.h" -#include "tphcltextphonedialdata.h" -#include "phcltclientserver.h" - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// RPhCltExtCall::RPhCltExtCall -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -RPhCltExtCall::RPhCltExtCall() - : RSubSessionBase(), iArgs( TPhCltCallArgs() ) - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCall::Open -// -// Creates a subsession, as part of the given session. -// ----------------------------------------------------------------------------- -// -TInt RPhCltExtCall::Open( RPhCltServer& aServer ) - { - __ASSERT_ALWAYS( aServer.Handle(), User::Panic( - KPhClientPanicCategory, - EPhCltClientSidePanicNullHandle ) ); - - return CreateSubSession( - aServer, - EPhoneServerExtCallSubSessionOpen, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCall::Close -// -// Closes the subsession. -// ----------------------------------------------------------------------------- -// -void RPhCltExtCall::Close() - { - CloseSubSession( EPhoneServerExtCallSubSessionClose ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCall::Dial -// -// Sends a dial request to the server. -// ----------------------------------------------------------------------------- -// -void RPhCltExtCall::Dial( - TRequestStatus& aStatus, - const TPhCltTelephoneNumber& aNumber, - const TPhCltNameBuffer& aName, - const TInt aWindowGroupId, - const TInt aRedial, - const TPhCltContactId aContactId, - const TBool aAllowNumberShowing ) - { - __ASSERT_ALWAYS( SubSessionHandle(), User::Panic( - KPhClientPanicCategory, - EPhCltClientSidePanicNullHandle ) ); - - // Populate a temporary arguments package - TPhCltExtPhoneDialData args( aName, aNumber, aContactId, aWindowGroupId ); - args.SetRedial( aRedial ); - args.SetShowNumber( aAllowNumberShowing ); - - // Do the dial - Dial( aStatus, args ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCall::Dial -// -// Sends a dial request to the server. -// ----------------------------------------------------------------------------- -// -void RPhCltExtCall::Dial( - TRequestStatus& aStatus, - const TPhCltExtPhoneDialData& aData ) - { - __ASSERT_ALWAYS( SubSessionHandle(), User::Panic( KPhClientPanicCategory, - EPhCltClientSidePanicNullHandle ) ); - - // Save the arguments - TPhCltCallArgs args; - aData.AsIPCStruct( args ); - iArgs() = args; - - // Request the dial - SendReceive( - EPhoneServerExtCallSubSessionMakeCall, - TIpcArgs( &iArgs ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCall::CancelDial -// -// Cancels the pending dial request. -// ----------------------------------------------------------------------------- -// -void RPhCltExtCall::CancelDial() const - { - __ASSERT_ALWAYS( const_cast< RPhCltExtCall* >( this )->SubSessionHandle(), - User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - SendReceive( - EPhoneServerExtCallSubSessionMakeCallCancel, - TIpcArgs() ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ExtCall/TPhCltExtPhoneDialData.cpp --- a/phoneclientserver/phoneclient/Src/ExtCall/TPhCltExtPhoneDialData.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,654 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Ext Phone Dial Data. -* -*/ - - - -// INCLUDE FILES -#include "tphcltextphonedialdata.h" - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::TPhCltExtPhoneDialData -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TPhCltExtPhoneDialData::TPhCltExtPhoneDialData() - : iWindowGroup( KPhCltGoToIdle ), - iRedial( KPhCltRedialDefault ), - iNumberType( KPhCltDefaultNumberType ), - iShowNumber( ETrue ), - iReturnToNumberEntryOnFailure( KPhCltDefaultNumberEntry ), - iAllowMatch( KPhCltDefaultAllowMatch ), - iName( KNullDesC ), - iContactId( KPhCltNoContact), - iTelNumber( KNullDesC ), - iEndOtherCalls( EFalse ), - iEmergencyCall( EFalse ), - iSubAddress( KNullDesC ), - iSATCall( EFalse ), - iBearer( KNullDesC8 ), - iCallType( EPhCltVoice ), - iSendKey( EFalse ) - { - iRedialMaximumDuration = 0; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::TPhCltExtPhoneDialData -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TPhCltExtPhoneDialData::TPhCltExtPhoneDialData( - const TPhCltTelephoneNumber& aNumber, - TPhCltContactId aContactId ) - : iWindowGroup( KPhCltGoToIdle), - iRedial( KPhCltRedialDefault ), - iNumberType( KPhCltDefaultNumberType ), - iShowNumber( ETrue ), - iReturnToNumberEntryOnFailure( KPhCltDefaultNumberEntry ), - iAllowMatch( KPhCltDefaultAllowMatch ), - iName( KNullDesC ), - iContactId( aContactId ), - iTelNumber( aNumber ), - iEndOtherCalls( EFalse ), - iEmergencyCall( EFalse ), - iSubAddress( KNullDesC ), - iSATCall( EFalse ), - iBearer( KNullDesC8 ), - iCallType( EPhCltVoice ), - iSendKey( EFalse ) - { - iRedialMaximumDuration = 0; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::TPhCltExtPhoneDialData -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TPhCltExtPhoneDialData::TPhCltExtPhoneDialData( - const TPhCltTelephoneNumber& aNumber, - TInt aWindowGroupId ) - : iWindowGroup( aWindowGroupId ), - iRedial( KPhCltRedialDefault ), - iNumberType( KPhCltDefaultNumberType ), - iShowNumber( ETrue ), - iReturnToNumberEntryOnFailure( KPhCltDefaultNumberEntry ), - iAllowMatch( KPhCltDefaultAllowMatch ), - iName( KNullDesC ), - iContactId( KPhCltNoContact ), - iTelNumber( aNumber ), - iEndOtherCalls( EFalse ), - iEmergencyCall( EFalse ), - iSubAddress( KNullDesC ), - iSATCall( EFalse ), - iBearer( KNullDesC8 ), - iCallType( EPhCltVoice ), - iSendKey( EFalse ) - { - iRedialMaximumDuration = 0; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::TPhCltExtPhoneDialData -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TPhCltExtPhoneDialData::TPhCltExtPhoneDialData( - const TPhCltTelephoneNumber& aNumber, - TPhCltContactId aContactId, - TInt aWindowGroupId ) - : iWindowGroup( aWindowGroupId ), - iRedial( KPhCltRedialDefault ), - iNumberType( KPhCltDefaultNumberType ), - iShowNumber( ETrue ), - iReturnToNumberEntryOnFailure( KPhCltDefaultNumberEntry ), - iAllowMatch( KPhCltDefaultAllowMatch ), - iName (KNullDesC ), - iContactId( aContactId ), - iTelNumber( aNumber ), - iEndOtherCalls( EFalse ), - iEmergencyCall( EFalse ), - iSubAddress( KNullDesC ), - iSATCall( EFalse ), - iBearer( KNullDesC8 ), - iCallType( EPhCltVoice ), - iSendKey( EFalse ) - { - iRedialMaximumDuration = 0; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::TPhCltExtPhoneDialData -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TPhCltExtPhoneDialData::TPhCltExtPhoneDialData( - const TPhCltNameBuffer& aName, - const TPhCltTelephoneNumber& aNumber, - TPhCltContactId aContactId, - TInt aWindowGroupId ) - : iWindowGroup( aWindowGroupId ), - iRedial( KPhCltRedialDefault ), - iNumberType( KPhCltDefaultNumberType ), - iShowNumber( ETrue ), - iReturnToNumberEntryOnFailure( KPhCltDefaultNumberEntry ), - iAllowMatch( KPhCltDefaultAllowMatch ), - iName( aName ), - iContactId( aContactId ), - iTelNumber( aNumber ), - iEndOtherCalls( EFalse ), - iEmergencyCall( EFalse ), - iSubAddress( KNullDesC ), - iSATCall( EFalse ), - iBearer( KNullDesC8 ), - iCallType( EPhCltVoice ), - iSendKey( EFalse ) - { - iRedialMaximumDuration = 0; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetWindowGroup -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetWindowGroup( TInt aWindowGroupId ) - { - iWindowGroup = aWindowGroupId; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetShowNumber -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetShowNumber( TBool aShowNumber ) - { - iShowNumber = aShowNumber; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetRedial -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetRedial( TInt aRedial ) - { - iRedial = aRedial; - } - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::Set redial maximum duration -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetRedialMaximumDuration( TTimeIntervalSeconds aMaximumRedialDuration ) - { - iRedialMaximumDuration = aMaximumRedialDuration; - } - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetName -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetName( const TPhCltNameBuffer& aName ) - { - iName = aName; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetContactId -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetContactId( - TPhCltContactId aContactId ) - { - iContactId = aContactId; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetTelephoneNumber -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetTelephoneNumber( - const TPhCltTelephoneNumber& aNumber ) - { - iTelNumber = aNumber; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetReturnToNumberEntryOnFailure -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetReturnToNumberEntryOnFailure( - TBool aReturn ) - { - iReturnToNumberEntryOnFailure = aReturn; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetAllowMatch -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetAllowMatch( TBool aAllowMatch ) - { - iAllowMatch = aAllowMatch; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetNumberType -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetNumberType( TInt aNumberType ) - { - iNumberType = aNumberType; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetEndOtherCalls -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetEndOtherCalls( TBool aEndCalls ) - { - iEndOtherCalls = aEndCalls; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetEmergency -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetEmergency( TBool aEmergency ) - { - iEmergencyCall = aEmergency; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetSubAddress -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetSubAddress( - const TPhCltSubAddress& aSubAddress ) - { - iSubAddress = aSubAddress; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetSATCall -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetSATCall( TBool aSATCall ) - { - iSATCall = aSATCall; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetBearer -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetBearer( - const TPhCltBearerCapability& aBearer ) - { - iBearer = aBearer; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetCallType -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetCallType( TPhCltCallType aCallType ) - { - iCallType = aCallType; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SetSendKeyPressed -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::SetSendKeyPressed( TBool aSendKey ) - { - iSendKey = aSendKey; - } - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::WindowGroupId -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt TPhCltExtPhoneDialData::WindowGroupId() const - { - return iWindowGroup; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::Redial -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt TPhCltExtPhoneDialData::Redial() const - { - return iRedial; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData:: Redial maximum duration -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TTimeIntervalSeconds TPhCltExtPhoneDialData::RedialMaximumDuration( ) const - { - return iRedialMaximumDuration; - } - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::NumberType -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt TPhCltExtPhoneDialData::NumberType() const - { - return iNumberType; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::ReturnToNumberEntryOnFailure -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool TPhCltExtPhoneDialData::ReturnToNumberEntryOnFailure() const - { - return iReturnToNumberEntryOnFailure; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::AllowMatch -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool TPhCltExtPhoneDialData::AllowMatch() const - { - return iAllowMatch; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::ShowNumber -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool TPhCltExtPhoneDialData::ShowNumber() const - { - return iShowNumber; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::Name -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C const TPhCltNameBuffer& TPhCltExtPhoneDialData::Name() const - { - return iName; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::ContactId -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TPhCltContactId TPhCltExtPhoneDialData::ContactId() const - { - return iContactId; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::TelephoneNumber -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C const TPhCltTelephoneNumber& - TPhCltExtPhoneDialData::TelephoneNumber() const - { - return iTelNumber; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::EndOtherCalls -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool TPhCltExtPhoneDialData::EndOtherCalls() const - { - return iEndOtherCalls; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::Emergency -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool TPhCltExtPhoneDialData::Emergency() const - { - return iEmergencyCall; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SubAddress -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C const TPhCltSubAddress& TPhCltExtPhoneDialData::SubAddress() const - { - return iSubAddress; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SATCall -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool TPhCltExtPhoneDialData::SATCall() const - { - return iSATCall; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::Bearer -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C const TPhCltBearerCapability& TPhCltExtPhoneDialData::Bearer() const - { - return iBearer; - } - - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::CallType -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TPhCltCallType TPhCltExtPhoneDialData::CallType() const - { - return iCallType; - } - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::SendKeyPressed -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool TPhCltExtPhoneDialData::SendKeyPressed() const - { - return iSendKey; - } - -// ----------------------------------------------------------------------------- -// TPhCltExtPhoneDialData::AsIPCStruct -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void TPhCltExtPhoneDialData::AsIPCStruct( TPhCltCallArgs& aReturn ) - const - { - aReturn.iContactId = iContactId; - aReturn.iName = iName; - aReturn.iRedial = iRedial; - aReturn.iTelNumber = iTelNumber; - aReturn.iWindowGroup = iWindowGroup; - aReturn.iNumberType = iNumberType; - aReturn.iSubAddress = iSubAddress; - aReturn.iBearer = iBearer; - aReturn.iRedialMaximumDuration = iRedialMaximumDuration; - // Flags - aReturn.iFlags = TPhCltCallArgs::EPhCltCallFlagsDefault; - - if ( iShowNumber ) - { - aReturn.iFlags |= TPhCltCallArgs::EPhCltCallFlagsAllowNumberShowing; - } - - if ( iReturnToNumberEntryOnFailure ) - { - aReturn.iFlags |= - TPhCltCallArgs::EPhCltCallFlagsReturnToNumberEntryOnFailure; - } - if ( iAllowMatch ) - { - aReturn.iFlags |= - TPhCltCallArgs::EPhCltCallFlagsAllowPersonalDirectoryMatching; - } - if ( iEndOtherCalls ) - { - aReturn.iFlags |= TPhCltCallArgs::EPhCltCallFlagsEndBeforeDial; - } - - if ( iEmergencyCall ) - { - aReturn.iFlags |= TPhCltCallArgs::EPhCltCallFlagsEmergencyCall; - } - - if ( iSATCall ) - { - aReturn.iFlags |= TPhCltCallArgs::EPhCltCallFlagsSAT; - } - - if ( ( iCallType == EPhCltVideo ) || ( iCallType == EPhCltForcedVideo ) ) - { - aReturn.iFlags |= TPhCltCallArgs::EPhCltCallFlagsVideoCall; - } - - if ( iCallType == EPhCltCallVoIP ) - { - aReturn.iFlags |= TPhCltCallArgs::EPhCltCallFlagsVoIPCall; - } - - if ( iSendKey ) - { - aReturn.iFlags |= TPhCltCallArgs::EPhCltCallFlagsSendKey; - } - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ExtCallWrapper/CPhCltDialer.cpp --- a/phoneclientserver/phoneclient/Src/ExtCallWrapper/CPhCltDialer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,138 +0,0 @@ -/* -* Copyright (c) 2002 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: Dialer class. -* -*/ - - - -// INCLUDE FILES -#include "cphcltdialer.h" -#include "cphcltdialerdlg.h" - - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CPhCltDialer::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltDialer* CPhCltDialer::NewL() - { - CPhCltDialer* self = - new ( ELeave ) CPhCltDialer; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - - -// Destructor -CPhCltDialer::~CPhCltDialer() - { - if ( iDestroyed ) - { - *iDestroyed = ETrue; - iDestroyed = NULL; - } - - delete iDialDlg; - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialer::DialData -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TPhCltExtPhoneDialData& - CPhCltDialer::DialData() - { - return iDialDlg->DialData(); - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialer::ExecuteLD -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhCltDialer::ExecuteLD() - { - TBool destroyed = EFalse; - iDestroyed = &destroyed; - - CleanupStack::PushL( this ); - CleanupStack::PushL( TCleanupItem( DoClear, this ) ); - - iDialDlg->ExecuteDialLD(); - - if ( !destroyed ) - { - CleanupStack::PopAndDestroy(); // DoClear - CleanupStack::PopAndDestroy( this ); - } - else - { - // Already deleted - CleanupStack::Pop(); - CleanupStack::Pop( this ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialer::CPhCltDialer -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltDialer::CPhCltDialer() - { - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialer::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhCltDialer::ConstructL() - { - iDialDlg = new ( ELeave ) CPhCltDialerDlg; - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialer::DoClear -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialer::DoClear( TAny* aAny ) - { - CPhCltDialer* dialer = - reinterpret_cast< CPhCltDialer* >( aAny ); - - dialer->iDestroyed = NULL; - dialer->iDialDlg = NULL; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ExtCallWrapper/CPhCltDialerDlg.cpp --- a/phoneclientserver/phoneclient/Src/ExtCallWrapper/CPhCltDialerDlg.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ -/* -* Copyright (c) 2002 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: Dialer Dialog -* -*/ - - - -// INCLUDE FILES -#include "cphcltdialerdlg.h" -#include -#include - -#include - - -// ============================ MEMBER FUNCTIONS =============================== - -// Destructor -CPhCltDialerDlg::~CPhCltDialerDlg() - { - delete iPhoneClient; - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::DialData -// -// ----------------------------------------------------------------------------- -// -TPhCltExtPhoneDialData& CPhCltDialerDlg::DialData() - { - return iData; - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::ExecuteDialLD -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialerDlg::ExecuteDialLD() - { - TInt error = KErrNone; - iError = &error; - if (!iData.Emergency()) - { - ExecuteLD( R_PHCLT_BLANK_DLG ); - } - else - { - iPhoneClient = CPhCltExtPhoneBase::NewL( this ); - iPhoneClient->DialL( iData ); - } - User::LeaveIfError( error ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::PreLayoutDynInitL -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialerDlg::PreLayoutDynInitL() - { - MakeVisible( EFalse ); - ButtonGroupContainer().MakeVisible( EFalse ); - - // Create phone client and pass observer. - iPhoneClient = CPhCltExtPhoneBase::NewL( this ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::PostLayoutDynInitL -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialerDlg::PostLayoutDynInitL() - { - iPhoneClient->DialL( iData ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::OkToExitL -// -// ----------------------------------------------------------------------------- -// -TBool CPhCltDialerDlg::OkToExitL( TInt aButtonId ) - { - if ( aButtonId == EAknSoftkeyEmpty ) - { - return EFalse; - } - else - { - return CEikDialog::OkToExitL( aButtonId ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::Draw -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialerDlg::Draw( const TRect& /*aRect*/ ) const - { - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::HandleDialL -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialerDlg::HandleDialL( const TInt aStatus ) - { - if ( iError ) - { - *iError = aStatus; - iError = NULL; - } - - delete this; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ExtCallWrapper/CPhCltExtPhone.cpp --- a/phoneclientserver/phoneclient/Src/ExtCallWrapper/CPhCltExtPhone.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,200 +0,0 @@ -/* -* Copyright (c) 2002 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: Ext Phone for dialing. -* -*/ - - - -// INCLUDE FILES -#include -#include "rphcltextcall.h" -#include "rphcltserver.h" -#include "mphcltextphoneobserver.h" -#include "cphcltextphone.h" - - -// LOCAL CONSTANTS AND MACROS - -// Panic codes. -enum TPhCltExtPhonePanic - { - EPhCltExtPhonePanicNoObserver, // No observer found. - EPhCltExtPhonePanicInvalidOperationMode // Operation mode was invalid. - }; - - -// LOCAL FUNCTION PROTOTYPES - -// Panic function. Called if panic situation happens. -void Panic( TPhCltExtPhonePanic aPanic ); - - - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// Panic -// -// Panics the client -// -// ----------------------------------------------------------------------------- -// -void Panic( TPhCltExtPhonePanic aPanic ) - { - _LIT(KPhCltExtPhonePanicCategory, "CPhCltExtPhone"); - User::Panic( KPhCltExtPhonePanicCategory, aPanic ); - } - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhCltExtPhone* CPhCltExtPhone::NewL( MPhCltExtPhoneObserver* aObserver ) - { - CPhCltExtPhone* self = new ( ELeave ) CPhCltExtPhone( aObserver ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - - -// Destructor -CPhCltExtPhone::~CPhCltExtPhone() - { - // Cancel, close subsessions and finally close the session. - - Cancel(); - iCall.Close(); - iServer.Close(); - } - - - - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::DialL -// -// If a request is pending, leave with error code KErrInUse. -// Otherwise, create a dial request. -// ----------------------------------------------------------------------------- -// -void CPhCltExtPhone::DialL( const TPhCltExtPhoneDialData& aData ) - { - DialPreconditionCheckL(); - iCall.Dial( iStatus, aData ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::CPhCltExtPhone -// ----------------------------------------------------------------------------- -// -CPhCltExtPhone::CPhCltExtPhone( MPhCltExtPhoneObserver* aObserver ) - : CPhCltExtPhoneBase( aObserver ), iMode( EIdle ) - { - CActiveScheduler::Add( this ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::ConstructL -// ----------------------------------------------------------------------------- -// -void CPhCltExtPhone::ConstructL() - { - User::LeaveIfError( iServer.Connect() ); - User::LeaveIfError( iCall.Open( iServer ) ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::RunL -// -// The method is called when a request is completed. Thus, -// it calls appropriate observer method. -// ----------------------------------------------------------------------------- -// -void CPhCltExtPhone::RunL() - { - __ASSERT_ALWAYS( iObserver, Panic( EPhCltExtPhonePanicNoObserver ) ); - if( iStatus != KErrCancel ) - { - switch( iMode ) - { - case EDialling: - iObserver->HandleDialL( iStatus.Int() ); - break; - case EIdle: - break; - default: - Panic( EPhCltExtPhonePanicInvalidOperationMode ); - break; - } - } - } - - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::DoCancel -// -// Cancels the pending request. -// ----------------------------------------------------------------------------- -// -void CPhCltExtPhone::DoCancel() - { - switch( iMode ) - { - case EDialling: - iCall.CancelDial(); - break; - case EIdle: - break; - default: - Panic( EPhCltExtPhonePanicInvalidOperationMode ); - break; - } - } - - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::DialPreconditionCheckL -// -// See header -// ----------------------------------------------------------------------------- -// -void CPhCltExtPhone::DialPreconditionCheckL() - { - if( IsActive() ) - { - User::Leave( KErrInUse ); - } - if( iCall.SubSessionHandle() == 0 ) - { - User::Leave( KErrBadHandle ); - } - iMode = EDialling; - SetActive(); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ExtCallWrapper/CPhCltExtPhoneBase.cpp --- a/phoneclientserver/phoneclient/Src/ExtCallWrapper/CPhCltExtPhoneBase.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* -* Copyright (c) 2002 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: Ext Phone Base, dialing base class. -* -*/ - - - -// INCLUDE FILES -#include "cphcltextphonebase.h" -#include "cphcltextphone.h" -#include "phclttypes.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneBase::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltExtPhoneBase* CPhCltExtPhoneBase::NewL( - MPhCltExtPhoneObserver* aObserver ) - { - return CPhCltExtPhone::NewL( aObserver ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneBase::CPhCltExtPhoneBase -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltExtPhoneBase::CPhCltExtPhoneBase( MPhCltExtPhoneObserver* aObserver ) - : CActive( EPriorityStandard ), iObserver( aObserver ) - { - } - - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltDialer.cpp --- a/phoneclientserver/phoneclient/Src/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltDialer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,138 +0,0 @@ -/* -* Copyright (c) 2002 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: Dialer class. -* -*/ - - - -// INCLUDE FILES -#include "cphcltdialer.h" -#include "cphcltdialerdlg.h" - - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CPhCltDialer::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltDialer* CPhCltDialer::NewL() - { - CPhCltDialer* self = - new ( ELeave ) CPhCltDialer; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - - -// Destructor -CPhCltDialer::~CPhCltDialer() - { - if ( iDestroyed ) - { - *iDestroyed = ETrue; - iDestroyed = NULL; - } - - delete iDialDlg; - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialer::DialData -// -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltExtPhoneDialData& - CPhCltDialer::DialData() - { - return iDialDlg->DialData(); - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialer::ExecuteLD -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhCltDialer::ExecuteLD() - { - TBool destroyed = EFalse; - iDestroyed = &destroyed; - - CleanupStack::PushL( this ); - CleanupStack::PushL( TCleanupItem( DoClear, this ) ); - - iDialDlg->ExecuteDialLD(); - - if ( !destroyed ) - { - CleanupStack::PopAndDestroy(); // DoClear - CleanupStack::PopAndDestroy( this ); - } - else - { - // Already deleted - CleanupStack::Pop(); - CleanupStack::Pop( this ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialer::CPhCltDialer -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltDialer::CPhCltDialer() - { - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialer::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhCltDialer::ConstructL() - { - iDialDlg = new ( ELeave ) CPhCltDialerDlg; - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialer::DoClear -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialer::DoClear( TAny* aAny ) - { - CPhCltDialer* dialer = - reinterpret_cast< CPhCltDialer* >( aAny ); - - dialer->iDestroyed = NULL; - dialer->iDialDlg = NULL; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltDialerDlg.cpp --- a/phoneclientserver/phoneclient/Src/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltDialerDlg.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ -/* -* Copyright (c) 2002 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: Dialer Dialog -* -*/ - - - -// INCLUDE FILES -#include "cphcltdialerdlg.h" -#include -#include - -#include - - -// ============================ MEMBER FUNCTIONS =============================== - -// Destructor -CPhCltDialerDlg::~CPhCltDialerDlg() - { - delete iPhoneClient; - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::DialData -// -// ----------------------------------------------------------------------------- -// -CPhCltExtPhoneDialData& CPhCltDialerDlg::DialData() - { - return *iData; - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::ExecuteDialLD -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialerDlg::ExecuteDialLD() - { - TInt error = KErrNone; - iError = &error; - if (!iData->Emergency()) - { - ExecuteLD( R_PHCLT_BLANK_DLG ); - } - else - { - iPhoneClient = CPhCltExtPhoneBase::NewL( this ); - iPhoneClient->DialL( *iData ); - } - User::LeaveIfError( error ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::PreLayoutDynInitL -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialerDlg::PreLayoutDynInitL() - { - MakeVisible( EFalse ); - ButtonGroupContainer().MakeVisible( EFalse ); - - // Create phone client and pass observer. - iPhoneClient = CPhCltExtPhoneBase::NewL( this ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::PostLayoutDynInitL -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialerDlg::PostLayoutDynInitL() - { - iPhoneClient->DialL( *iData ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::OkToExitL -// -// ----------------------------------------------------------------------------- -// -TBool CPhCltDialerDlg::OkToExitL( TInt aButtonId ) - { - if ( aButtonId == EAknSoftkeyEmpty ) - { - return EFalse; - } - else - { - return CEikDialog::OkToExitL( aButtonId ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::Draw -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialerDlg::Draw( const TRect& /*aRect*/ ) const - { - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialerDlg::HandleDialL -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialerDlg::HandleDialL( const TInt aStatus ) - { - if ( iError ) - { - *iError = aStatus; - iError = NULL; - } - - delete this; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltExtPhone.cpp --- a/phoneclientserver/phoneclient/Src/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltExtPhone.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,191 +0,0 @@ -/* -* Copyright (c) 2002 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: Ext Phone for dialing. -* -*/ - - - -// INCLUDE FILES -#include -#include "mphcltextphoneobserver.h" -#include "cphcltextphone.h" -#include "cphcltextphonedialdata.h" - -// LOCAL CONSTANTS AND MACROS - -// Panic codes. -enum TPhCltExtPhonePanic - { - EPhCltExtPhonePanicNoObserver, // No observer found. - EPhCltExtPhonePanicInvalidOperationMode // Operation mode was invalid. - }; - - -// LOCAL FUNCTION PROTOTYPES - -// Panic function. Called if panic situation happens. -void Panic( TPhCltExtPhonePanic aPanic ); - - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// Panic -// -// Panics the client -// -// ----------------------------------------------------------------------------- -// -void Panic( TPhCltExtPhonePanic aPanic ) - { - _LIT(KPhCltExtPhonePanicCategory, "CPhCltExtPhone"); - User::Panic( KPhCltExtPhonePanicCategory, aPanic ); - } - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhCltExtPhone* CPhCltExtPhone::NewL( MPhCltExtPhoneObserver* aObserver ) - { - CPhCltExtPhone* self = new ( ELeave ) CPhCltExtPhone( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// Destructor -CPhCltExtPhone::~CPhCltExtPhone() - { - delete iPackage; - - // Cancel, close subsessions and finally close the session. - Cancel(); - iCall.Close(); - iServer.Close(); - } - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::DialL -// -// If a request is pending, leave with error code KErrInUse. -// Otherwise, create a dial request. -// ----------------------------------------------------------------------------- -// -void CPhCltExtPhone::DialL( CPhCltExtPhoneDialData& aData ) - { - DialPreconditionCheckL(); - delete iPackage; - iPackage = NULL; - - // packs params - iPackage = aData.PackLC(); - CleanupStack::Pop( iPackage ); - TInt datalength = aData.CalculatePackageSize(); - if ( iPackage ) - { - iCall.Dial( iStatus, *iPackage, datalength ); - } - } - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::CPhCltExtPhone -// ----------------------------------------------------------------------------- -// -CPhCltExtPhone::CPhCltExtPhone( MPhCltExtPhoneObserver* aObserver ) - : CPhCltExtPhoneBase( aObserver ), iMode( EIdle ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::ConstructL -// ----------------------------------------------------------------------------- -// -void CPhCltExtPhone::ConstructL() - { - User::LeaveIfError( iServer.Connect() ); - User::LeaveIfError( iCall.Open( iServer ) ); - } - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::RunL -// -// The method is called when a request is completed. Thus, -// it calls appropriate observer method. -// ----------------------------------------------------------------------------- -// -void CPhCltExtPhone::RunL() - { - __ASSERT_ALWAYS( iObserver, Panic( EPhCltExtPhonePanicNoObserver ) ); - switch( iMode ) - { - case EDialling: - iObserver->HandleDialL( iStatus.Int() ); - break; - case EIdle: - break; - default: - Panic( EPhCltExtPhonePanicInvalidOperationMode ); - break; - } - } - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::DoCancel -// -// Cancels the pending request. -// ----------------------------------------------------------------------------- -// -void CPhCltExtPhone::DoCancel() - { - switch( iMode ) - { - case EDialling: - iCall.CancelDial(); - break; - case EIdle: - break; - default: - Panic( EPhCltExtPhonePanicInvalidOperationMode ); - break; - } - } - -// ----------------------------------------------------------------------------- -// CPhCltExtPhone::DialPreconditionCheckL -// -// See header -// ----------------------------------------------------------------------------- -// -void CPhCltExtPhone::DialPreconditionCheckL() - { - if( IsActive() ) - { - User::Leave( KErrInUse ); - } - if( iCall.SubSessionHandle() == 0 ) - { - User::Leave( KErrBadHandle ); - } - iMode = EDialling; - SetActive(); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltExtPhoneBase.cpp --- a/phoneclientserver/phoneclient/Src/ExtCallWrapper/ExtCallWrapper_Aiw/CPhCltExtPhoneBase.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* -* Copyright (c) 2002 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: Ext Phone Base, dialing base class. -* -*/ - - - -// INCLUDE FILES -#include "cphcltextphonebase.h" -#include "cphcltextphone.h" -#include "phclttypes.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneBase::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltExtPhoneBase* CPhCltExtPhoneBase::NewL( - MPhCltExtPhoneObserver* aObserver ) - { - return CPhCltExtPhone::NewL( aObserver ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneBase::CPhCltExtPhoneBase -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltExtPhoneBase::CPhCltExtPhoneBase( MPhCltExtPhoneObserver* aObserver ) - : CActive( EPriorityStandard ), iObserver( aObserver ) - { - } - - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Ihf/RPhCltIhf.cpp --- a/phoneclientserver/phoneclient/Src/Ihf/RPhCltIhf.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,103 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: IHF -* -*/ - - - -// INCLUDE FILES -#include "rphcltserver.h" -#include "rphcltihf.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RPhCltIhf::RPhCltIhf -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C RPhCltIhf::RPhCltIhf( ) - : RSubSessionBase() - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltIhf::Open -// Connect to the server - default number of message slots = 1 -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RPhCltIhf::Open( RPhCltServer& aServer, TInt /*aPriority*/ ) - { - __ASSERT_ALWAYS( aServer.Handle() , - User::Panic( KPhClientPanicCategory , KErrBadHandle ) ); - - return CreateSubSession( - aServer, - EPhoneServerIhfSubSessionOpen, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltIhf::Close -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltIhf::Close() - { - CloseSubSession( EPhoneServerIhfSubSessionClose ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltIhf::SetIhfMode -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RPhCltIhf::SetIhfMode( TBool aMode, TBool aShowNote ) - { - __ASSERT_ALWAYS( SubSessionHandle() , - User::Panic( KPhClientPanicCategory , KErrBadHandle ) ); - - return SendReceive( - EPhoneServerIhfSubSessionSetMode, - TIpcArgs( - aMode, - aShowNote ) ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltIhf::SetIhfModeFromPhone -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RPhCltIhf::SetIhfModeFromPhone( TBool aMode, TBool aShowNote ) - { - __ASSERT_ALWAYS( SubSessionHandle() , - User::Panic( KPhClientPanicCategory , KErrBadHandle ) ); - - return SendReceive( - EPhoneServerIhfSubSessionSetModeFromPhone, - TIpcArgs( - aMode, - aShowNote ) ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Ihf/RPhCltIhfStub.cpp --- a/phoneclientserver/phoneclient/Src/Ihf/RPhCltIhfStub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -/* -* Copyright (c) 2005 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: IHF -* -*/ - - - -// INCLUDE FILES -#include "rphcltserver.h" -#include "rphcltihf.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RPhCltIhf::RPhCltIhf -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C RPhCltIhf::RPhCltIhf( ) - : RSubSessionBase() - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltIhf::Open -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RPhCltIhf::Open( RPhCltServer& /*aServer*/, TInt /*aPriority*/ ) - { - return KErrNotSupported; - } - - -// ----------------------------------------------------------------------------- -// RPhCltIhf::Close -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltIhf::Close() - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltIhf::SetIhfMode -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RPhCltIhf::SetIhfMode( TBool /*aMode*/, TBool /*aShowNote*/ ) - { - return KErrNotSupported; - } - - -// ----------------------------------------------------------------------------- -// RPhCltIhf::SetIhfModeFromPhone -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RPhCltIhf::SetIhfModeFromPhone( - TBool /*aMode*/, TBool /*aShowNote*/ ) - { - return KErrNotSupported; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ImageHandler/CPhCltBaseImageParams.cpp --- a/phoneclientserver/phoneclient/Src/ImageHandler/CPhCltBaseImageParams.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,263 +0,0 @@ -/* -* Copyright (c) 2004-2006 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: Parameter class. -* -*/ - - -#include "cphcltbaseimageparams.h" -#include "phcltclientserver.h" -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::CPhCltBaseImageParams -// -// C++ constructor. -// ----------------------------------------------------------------------------- -// -CPhCltBaseImageParams::CPhCltBaseImageParams( - const TPhCltImageType aType ) - { - iImages().iType = aType; - } - -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::Type -// -// Returns type. -// ----------------------------------------------------------------------------- -// -TPhCltImageType CPhCltBaseImageParams::Type() const - { - return iImages().iType; - } - -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::AddImage -// -// Adds an image. -// ----------------------------------------------------------------------------- -// -void CPhCltBaseImageParams::AddImageL( TInt aHandle ) - { - if ( iImages().iImageCount > KPhCltImagesArrayLen - 1 ) - { - User::Leave( KErrOverflow ); - } - iImages().iImages[ iImages().iImageCount ] = aHandle; - iImages().iImageCount++; - } - -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::Clean -// -// Cleans class content. -// ----------------------------------------------------------------------------- -// -void CPhCltBaseImageParams::Clean() - { - iImages().iImageCount = 0; - for ( TInt i = 0; i < KPhCltImagesArrayLen; i++ ) - { - iImages().iImages[ i ] = 0; - } - } - -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::CPhCltBaseImageParams -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhCltBaseImageParams::~CPhCltBaseImageParams() - { - } - -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::operator= -// -// Assignment operator. -// ----------------------------------------------------------------------------- -// -CPhCltBaseImageParams& CPhCltBaseImageParams:: - operator=( const CPhCltBaseImageParams& aParamClass ) - { - Clean(); - this->iImages().iType = aParamClass.iImages().iType; - this->iImages().iImageCount = aParamClass.iImages().iImageCount; - for ( TInt i = 0; i < KPhCltImagesArrayLen; i++ ) - { - iImages().iImages[ i ] = aParamClass.iImages().iImages[ i ]; - } - return *this; - } - -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::GetImageL -// -// Gets an image handle. -// ----------------------------------------------------------------------------- -// -TInt CPhCltBaseImageParams::GetImageL( const TInt aIndex ) const - { - if ( aIndex > iImages().iImageCount - 1 ) - { - User::Leave( KErrArgument ); - } - return iImages().iImages[ aIndex ]; - } - -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::Count -// -// Return image count. -// ----------------------------------------------------------------------------- -// -TInt CPhCltBaseImageParams::Count() const - { - return iImages().iImageCount; - } - -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::Images -// -// Returns all images. -// ----------------------------------------------------------------------------- -// -TPckgBuf< TPhCltImageArray >& CPhCltBaseImageParams::Images() - { - return iImages; - } - -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::CPhCltBaseImageParams -// -// C++ constructor. -// ----------------------------------------------------------------------------- -// -CPhCltExtVTImageParams::CPhCltExtVTImageParams( const TPhCltImageType aType ) - : CPhCltBaseImageParams( aType ) - { - } - -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::NewL -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhCltExtVTImageParams* CPhCltExtVTImageParams::NewL( - const TPhCltImageType aType ) - { - CPhCltExtVTImageParams* self = NULL; - if ( aType != EPhCltTypeVTDefault ) // default image opening changed - { - self = new( ELeave ) CPhCltExtVTImageParams( aType ); - } - return self; - } - -// ----------------------------------------------------------------------------- -// CPhCltExtVTImageParams::~CPhCltExtVTImageParams -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhCltExtVTImageParams::~CPhCltExtVTImageParams() - { - } - -// ----------------------------------------------------------------------------- -// CPhCltExtOperatorLogoParams::CPhCltExtOperatorLogoParams -// -// C++ constructor. -// ----------------------------------------------------------------------------- -// -CPhCltExtOperatorLogoParams::CPhCltExtOperatorLogoParams() -: CPhCltBaseImageParams( EPhCltTypeOperatorLogo ) - { - } - -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::NewL -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhCltExtOperatorLogoParams* CPhCltExtOperatorLogoParams::NewL() - { - CPhCltExtOperatorLogoParams* self = - new( ELeave )CPhCltExtOperatorLogoParams(); - return self; - } - -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::CPhCltBaseImageParams -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhCltExtOperatorLogoParams::~CPhCltExtOperatorLogoParams() - { - } - -// ----------------------------------------------------------------------------- -// CPhCltExtOperatorLogoParams::AddImage -// -// Adds an image. -// ----------------------------------------------------------------------------- -// -void CPhCltExtOperatorLogoParams::AddImageL( TInt aHandle ) - { - iImages().iImages[ EPhCltExtOperatorLogoIndex ] = aHandle; - iImages().iImageCount = 1; - } - -// ----------------------------------------------------------------------------- -// CPhCltBaseImageParams::operator= -// -// Assignment operator. -// ----------------------------------------------------------------------------- -// -CPhCltBaseImageParams& CPhCltExtOperatorLogoParams:: - operator=( const CPhCltBaseImageParams& aParamClass ) - { - Clean(); - this->iImages().iType = aParamClass.iImages().iType; - this->iImages().iImageCount = aParamClass.iImages().iImageCount; - this->iImages().iImages[ EPhCltExtOperatorLogoIndex ] = - aParamClass.iImages().iImages[ EPhCltExtOperatorLogoIndex ]; - this->iImages().iImages[ EPhCltExtCountryCodeIndex ] = - aParamClass.iImages().iImages[ EPhCltExtCountryCodeIndex ]; - this->iImages().iImages[ EPhCltExtNetworkCodeIndex ] = - aParamClass.iImages().iImages[ EPhCltExtNetworkCodeIndex ]; - this->iImages().iImages[ EPhCltExtLogoTypeIndex ] = - aParamClass.iImages().iImages[ EPhCltExtLogoTypeIndex ]; - return *this; - } - -// ----------------------------------------------------------------------------- -// CPhCltExtOperatorLogoParams::SetCodesL -// -// Sets country and network code. -// ----------------------------------------------------------------------------- -// -void CPhCltExtOperatorLogoParams::SetCodesL( const TPhCltCountryCode aCountryCode, - const TPhCltNetworkCode aNetworkCode, - const TPhCltExtOperatorLogoType aLogoType ) - { - iImages().iImages[ EPhCltExtCountryCodeIndex ] = aCountryCode; - iImages().iImages[ EPhCltExtNetworkCodeIndex ] = aNetworkCode; - iImages().iImages[ EPhCltExtLogoTypeIndex ] = aLogoType; - } - -// END OF FILE diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ImageHandler/CPhCltImageHandler.cpp --- a/phoneclientserver/phoneclient/Src/ImageHandler/CPhCltImageHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/* -* Copyright (c) 2002 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: Image Handler Base class. -* -*/ - - - -// INCLUDE FILES -#include "cphcltimagehandler.h" -#include "cphcltimagehandlerimplementation.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltMessenger::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltImageHandler* CPhCltImageHandler::NewL() - { - return CPhCltImageHandlerImplementation::NewL(); - } - -// ----------------------------------------------------------------------------- -// CPhCltMessenger::CPhCltMessenger -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltImageHandler::CPhCltImageHandler( ) - { - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ImageHandler/CPhCltImageHandlerImplementation.cpp --- a/phoneclientserver/phoneclient/Src/ImageHandler/CPhCltImageHandlerImplementation.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,286 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the PhoneClient Messenger interface. -* -*/ - - - -// INCLUDE FILES -#include "cphcltimagehandlerimplementation.h" - -#ifdef _DEBUG -#define _DxPRINT( x ) RDebug::Print(_L( x ) ); -#define _DxPRINT2( x,y ) RDebug::Print(_L( x ), y ); -#else -#define _DxPRINT(x) -#define _DxPRINT2( x,y ) -#endif - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::NewL -// -// Creates Phone Client image handler instance. -// ----------------------------------------------------------------------------- -// -CPhCltImageHandlerImplementation* - CPhCltImageHandlerImplementation::NewL() - { - CPhCltImageHandlerImplementation* self = - new (ELeave) CPhCltImageHandlerImplementation(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - return self; - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::~CPhCltImageHandlerImplementation -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhCltImageHandlerImplementation::~CPhCltImageHandlerImplementation() - { - iStillHandler.Close(); - iServer.Close(); - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::SaveImages -// -// Saves a number of images to PhoneServer. -// ----------------------------------------------------------------------------- -// -TInt CPhCltImageHandlerImplementation:: - SaveImages( CPhCltImageParams& aParams ) - { - return iStillHandler.SaveImages( aParams ); - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::LoadImages -// -// Loads a number of images from PhoneServer. -// ----------------------------------------------------------------------------- -// -TInt CPhCltImageHandlerImplementation:: - LoadImages( CPhCltImageParams*& aParams ) - { - return iStillHandler.LoadImages( aParams ); - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::CPhCltImageHandlerImplementation -// -// C++ constructor. -// ----------------------------------------------------------------------------- -// -CPhCltImageHandlerImplementation::CPhCltImageHandlerImplementation() - { - } - - - // ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::ConstructL -// -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhCltImageHandlerImplementation::ConstructL() - { - User::LeaveIfError( iServer.Connect() ); - User::LeaveIfError ( iStillHandler.Open( iServer ) ); - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::CPhCltBaseImageParamsL -// -// Creates Phone Client image handler parameter class instance. -// ----------------------------------------------------------------------------- -// -CPhCltImageParams* CPhCltImageHandlerImplementation:: - CPhCltBaseImageParamsL( const TPhCltImageType aType ) - { - CPhCltBaseImageParams* param = NULL; - switch ( aType ) - { - case EPhCltTypeVTStill: - case EPhCltTypeVTDefault: // <- this returns NULL - param = CPhCltExtVTImageParams::NewL( aType ); - break; - case EPhCltTypeOperatorLogo: - param = CPhCltExtOperatorLogoParams::NewL(); - break; - default: - User::Leave( KErrArgument ); - break; - } - return param; - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::OpenDefaultVtImage -// -// Opens Video telephony default image. -// ----------------------------------------------------------------------------- -// -TInt CPhCltImageHandlerImplementation::OpenDefaultVtImage( RFile& aFile ) - { - _DxPRINT("CPhCltImageHandlerImplementation.OpenDefaultVtImage") - return OpenVtImageCommon( aFile, ETrue ); - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::SaveVtImageL -// ----------------------------------------------------------------------------- -void CPhCltImageHandlerImplementation::SaveVtImageL( - MPhCltImageObserver& aObserver, - const TDesC& aImagePath ) - { - // new style saving not supported yet - User::Leave( KErrNotSupported ); - iVtImageSaver = - CPhCltImageHandlerImplementation::CVtImageSaver::SaveLD( - *this, iStillHandler, aImagePath ); - iObserver = &aObserver; - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::CancelSaveVtImage -// ----------------------------------------------------------------------------- -void CPhCltImageHandlerImplementation::CancelSaveVtImage() - { - if ( iVtImageSaver ) - { - iVtImageSaver->Cancel(); - iVtImageSaver = NULL; - } - } -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::OpenVtImageCommon -// ----------------------------------------------------------------------------- -TInt CPhCltImageHandlerImplementation::OpenVtImageCommon( - RFile& aFile, - const TBool aDefaultImage ) - { - _DxPRINT2("CPhCltImageHandlerImplementation.OpenDefaultVtImage default=%d", - aDefaultImage) - TInt fileServerHandle( 0 ); - TInt fileHandle( 0 ); - // ensure file handle is not open - aFile.Close(); - fileServerHandle = iStillHandler.OpenVtImage( fileHandle, aDefaultImage ); - _DxPRINT2("CPhCltImageHandlerImplementation.OpenDefaultVtImage fileServerHandle=%d", - fileServerHandle ) - TInt result( fileServerHandle ); - if ( fileServerHandle > 0 ) - { - result = aFile.AdoptFromServer( fileServerHandle, fileHandle ); - } - _DxPRINT2("CPhCltImageHandlerImplementation.OpenDefaultVtImage result=%d", - result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::OpenVtImage -// ----------------------------------------------------------------------------- -TInt CPhCltImageHandlerImplementation::OpenVtImage( RFile& aFile ) - { - return OpenVtImageCommon( aFile, EFalse ); - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::HandleImageSaveCompleteL -// ----------------------------------------------------------------------------- -void CPhCltImageHandlerImplementation::HandleImageSaveCompleteL( TInt aResult ) - { - if ( iObserver ) - { - iVtImageSaver = NULL; // the saver deletes itself - MPhCltImageObserver* obs = iObserver; - iObserver = NULL; - obs->HandleImageSaveCompleteL( aResult ); - } - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::CVtImageSaver::SaveLD -// ----------------------------------------------------------------------------- -CPhCltImageHandlerImplementation::CVtImageSaver* - CPhCltImageHandlerImplementation::CVtImageSaver::SaveLD( - MPhCltImageObserver& aObserver, - RPhCltImageHandler& aHandler, - const TDesC& aImagePath ) - { - CPhCltImageHandlerImplementation::CVtImageSaver* saver = - new ( ELeave ) CPhCltImageHandlerImplementation::CVtImageSaver( - aObserver, aHandler ); - CleanupStack::PushL( saver ); - saver->DoSave( aImagePath ); - CleanupStack::Pop(); - return saver; - } - - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::CVtImageSaver::CVtImageSaver -// ----------------------------------------------------------------------------- -CPhCltImageHandlerImplementation::CVtImageSaver::CVtImageSaver( - MPhCltImageObserver& aObserver, - RPhCltImageHandler& aHandler ) : CActive( CActive::EPriorityStandard ), - iObserver( aObserver), iHandler( aHandler ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::CVtImageSaver::~CVtImageSaver -// ----------------------------------------------------------------------------- -CPhCltImageHandlerImplementation::CVtImageSaver::~CVtImageSaver() - { - Cancel(); - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::CVtImageSaver::DoSave -// ----------------------------------------------------------------------------- -void CPhCltImageHandlerImplementation::CVtImageSaver::DoSave( - const TDesC& aImagePath ) - { - iHandler.SaveVtImage( iStatus, aImagePath ); - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::CVtImageSaver::RunL -// ----------------------------------------------------------------------------- -void CPhCltImageHandlerImplementation::CVtImageSaver::RunL() - { - MPhCltImageObserver& observer = iObserver; - delete this; - TRAP_IGNORE( observer.HandleImageSaveCompleteL( iStatus.Int() ) ); - } - -// ----------------------------------------------------------------------------- -// CPhCltImageHandlerImplementation::CVtImageSaver::DoCancel -// ----------------------------------------------------------------------------- -void CPhCltImageHandlerImplementation::CVtImageSaver::DoCancel() - { - iHandler.CancelSaveVtImage(); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ImageHandler/CPhCltOperatorLogoContainer.cpp --- a/phoneclientserver/phoneclient/Src/ImageHandler/CPhCltOperatorLogoContainer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Operator logo container. -* -*/ - - -// INCLUDE FILES -#include "cphcltoperatorlogocontainer.h" - -// CONSTANTS - - -// ----------------------------------------------------------------------------- -// CPhCltOperatorLogoContainer::CPhCltOperatorLogoContainer -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhCltOperatorLogoContainer::CPhCltOperatorLogoContainer( - const TPhCltCountryCode aCountryCode, const TPhCltNetworkCode aNetworkCode, - const TPhCltExtOperatorLogoType aLogoType, CFbsBitmap* aBitmap ) : - iBitmap( aBitmap ), iCountryCode( aCountryCode ), - iNetworkCode( aNetworkCode ), iLogoType( aLogoType ) - { - } - -// ----------------------------------------------------------------------------- -// CPhCltOperatorLogoContainer::~CPhCltOperatorLogoContainer -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhCltOperatorLogoContainer::~CPhCltOperatorLogoContainer( ) - { - delete iBitmap; - iBitmap = NULL; - } - -// End of file. diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/ImageHandler/RPhCltImageHandler.cpp --- a/phoneclientserver/phoneclient/Src/ImageHandler/RPhCltImageHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,282 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: TPhoneServer interface for image handling. -* -*/ - - -// INCLUDES - -#include "rphcltimagehandler.h" -#include "phcltclientserver.h" -#include -#include -#include -#include - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RPhCltImageHandler::RPhCltImageHandler -// -// C++ constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -RPhCltImageHandler::RPhCltImageHandler() -: RSubSessionBase() - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltImageHandler::Open -// -// Open subsession to Phone Server. -// ----------------------------------------------------------------------------- -// -TInt RPhCltImageHandler::Open( RPhCltServer& aServer ) - { - __ASSERT_ALWAYS( aServer.Handle(), User::Panic( - KPhClientPanicCategory, - EPhCltClientSidePanicNullHandle ) ); - - return CreateSubSession( - aServer, - EPhoneServerImageHandlerSubSessionOpen, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltImageHandler::Close -// -// Close subsession. -// ----------------------------------------------------------------------------- -// -void RPhCltImageHandler::Close() - { - iVTBitMaps.ResetAndDestroy(); - iOperatorLogos.ResetAndDestroy(); - CloseSubSession( EPhoneServerImageHandlerSubSessionClose ); - } - -// ----------------------------------------------------------------------------- -// RPhCltImageHandler::SaveImages -// -// Saves images to Phoneserver. -// ----------------------------------------------------------------------------- -// -TInt RPhCltImageHandler::SaveImages( CPhCltImageParams& aParams ) - { - __ASSERT_ALWAYS( - SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - return SendReceive( - EPhoneServerImageHandlerSubSessionSave, - TIpcArgs( - &aParams.Images()) ); - } - -// ----------------------------------------------------------------------------- -// RPhCltImageHandler::LoadImages -// -// Loads images from Phoneserver. -// ----------------------------------------------------------------------------- -// -TInt RPhCltImageHandler::LoadImages( CPhCltImageParams*& aParams ) - { - __ASSERT_ALWAYS( - SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - const TInt ret = SendReceive( EPhoneServerImageHandlerSubSessionLoad, - TIpcArgs( &aParams->Images() ) ); - - // No point in commiting if failed. - if ( ret != KErrNone ) - { - return ret; - } - return FinalizeLoad( aParams->Images() ); - } - -// ----------------------------------------------------------------------------- -// RPhCltImageHandler::FinalizeLoad -// -// Duplicates loaded images, and commits transaction. -// ----------------------------------------------------------------------------- -// -TInt RPhCltImageHandler::FinalizeLoad( TPckgBuf< TPhCltImageArray >& aImages ) - { - TRAPD( err, - { - switch( aImages.operator()().iType ) - { - case EPhCltTypeVTStill: - case EPhCltTypeVTDefault: - CopyStillsL( aImages.operator()() ); - break; - case EPhCltTypeOperatorLogo: - CopyLogosL( aImages.operator()() ); - break; - default: - break; - } - } ); - - // Must release in any case - const TInt ret = SendReceive( EPhoneServerImageHandlerSubSessionCommitLoad, - TIpcArgs( &aImages ) ); - - return err != KErrNone ? err : ret; - - } - -// ----------------------------------------------------------------------------- -// RPhCltImageHandler::CopyLogos -// -// Replaces / appends a new logo. -// ----------------------------------------------------------------------------- -// -void RPhCltImageHandler::CopyLogosL( TPhCltImageArray& aImages ) - { - TBool found( EFalse ); - CFbsBitmap* bitMap = - CreateBitMapL( aImages.iImages[ EPhCltExtOperatorLogoIndex ] ); - - // Check if there is one stored already, replace handle if so. - for ( TInt i = 0; i < iOperatorLogos.Count(); i ++ ) - { - if ( aImages.iImages[ EPhCltExtCountryCodeIndex ] == - iOperatorLogos[ i ]->iCountryCode && - aImages.iImages[ EPhCltExtNetworkCodeIndex ] == - iOperatorLogos[ i ]->iNetworkCode && - aImages.iImages[ EPhCltExtLogoTypeIndex ] == - iOperatorLogos[ i ]->iLogoType - ) - { - delete iOperatorLogos[ i ]->iBitmap; - iOperatorLogos[ i ]->iBitmap = bitMap; - found = ETrue; - break; - } - } - - // Else add a new one. - if ( !found ) - { - CPhCltOperatorLogoContainer* logo = - new (ELeave)CPhCltOperatorLogoContainer( - aImages.iImages[ EPhCltExtCountryCodeIndex ], - aImages.iImages[ EPhCltExtNetworkCodeIndex ], - ( TPhCltExtOperatorLogoType ) - aImages.iImages[ EPhCltExtLogoTypeIndex ], - bitMap ); - CleanupStack::PushL(logo); - iOperatorLogos.AppendL( logo ); - CleanupStack::Pop(logo); - } - } - -// ----------------------------------------------------------------------------- -// RPhCltImageHandler::CopyStillsL -// -// Creates new duplicates of still images. -// ----------------------------------------------------------------------------- -// -void RPhCltImageHandler::CopyStillsL( TPhCltImageArray& aImages ) - { - // Remove all first. - iVTBitMaps.ResetAndDestroy(); - iVTBitMaps.ReserveL(aImages.iImageCount); - for ( TInt i = 0 ; i < aImages.iImageCount; i ++ ) - { - CFbsBitmap* bitMap = - CreateBitMapL( aImages.iImages[ i ] ); - CleanupStack::PushL( bitMap ); - iVTBitMaps.AppendL( bitMap ); - CleanupStack::Pop(bitMap); - } - } - -// ----------------------------------------------------------------------------- -// RPhCltImageHandler::CreateBitMapL -// -// Creates new duplicate of still image. -// ----------------------------------------------------------------------------- -// -CFbsBitmap* RPhCltImageHandler::CreateBitMapL( const TInt aHandle ) - { - CFbsBitmap* bitMap = new ( ELeave ) CFbsBitmap(); - CleanupStack::PushL( bitMap ); - User::LeaveIfError( bitMap->Duplicate( aHandle ) ); - CleanupStack::Pop( bitMap ); - return bitMap; - } - -// ----------------------------------------------------------------------------- -// RPhCltImageHandler::SaveVtImage -// -// Saves VT Image. -// ----------------------------------------------------------------------------- -// -void RPhCltImageHandler::SaveVtImage( - TRequestStatus& aStatus, - const TDesC& aFilePath ) - { - __ASSERT_ALWAYS( - SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - const TPtrC8 ptr8( reinterpret_cast ( aFilePath.Ptr() ), - aFilePath.Size() ); - TIpcArgs args( &ptr8 ); - SendReceive( - EPhoneServerSaveVtImage, - args, - aStatus ); - } - -// ----------------------------------------------------------------------------- -// RPhCltImageHandler::CancelSaveVtImage -// -// -// ----------------------------------------------------------------------------- -// -void RPhCltImageHandler::CancelSaveVtImage() - { - SendReceive( EPhoneServerSaveVtImageCancel ); - } - -// ----------------------------------------------------------------------------- -// RPhCltImageHandler::OpenVtImage -// -// Opens VT Image file. -// ----------------------------------------------------------------------------- -// -TInt RPhCltImageHandler::OpenVtImage( - TInt& aFileHandle, - const TBool aOpenDefault ) - { - __ASSERT_ALWAYS( - SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - TPckg pckg1( aFileHandle ); - TPckg pckg2( aOpenDefault ); - TIpcArgs args( &pckg1, &pckg2 ); - return SendReceive( - EPhoneServerOpenVtImage, args ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Messenger/CPhCltMessenger.cpp --- a/phoneclientserver/phoneclient/Src/Messenger/CPhCltMessenger.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2002 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: Messenger Base class. -* -*/ - - - -// INCLUDE FILES -#include "cphcltmessenger.h" -#include "cphcltmessengerimplementation.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltMessenger::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltMessenger* CPhCltMessenger::NewL( const TUid& aCategoryUid, - const TInt& aDefaultMessageSize ) - { - return CPhCltMessengerImplementation::NewL( aCategoryUid, aDefaultMessageSize); - } - -// ----------------------------------------------------------------------------- -// CPhCltMessenger::CPhCltMessenger -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltMessenger::CPhCltMessenger( ) - { - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Messenger/CPhCltMessengerImplementation.cpp --- a/phoneclientserver/phoneclient/Src/Messenger/CPhCltMessengerImplementation.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ -/* -* Copyright (c) 2004 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: Implementation of the PhoneClient Messenger interface. -* -*/ - - - -// INCLUDE FILES -#include "cphcltmessengerimplementation.h" - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltMessengerImplementation::CPhCltMessengerImplementation -// -// C++ constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -CPhCltMessengerImplementation::CPhCltMessengerImplementation() - { - } - -// ----------------------------------------------------------------------------- -// CPhCltMessengerImplementation::ConstructL -// -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhCltMessengerImplementation::ConstructL( const TUid& aCategoryUid, - const TInt& aDefaultMessageSize ) - { - User::LeaveIfError( iServer.Connect() ); - User::LeaveIfError (iMessenger.Open( iServer, aCategoryUid, - aDefaultMessageSize ) ); - } - -// ----------------------------------------------------------------------------- -// CPhCltMessengerImplementation::NewL -// -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhCltMessengerImplementation* CPhCltMessengerImplementation::NewL( const TUid& aCategoryUid, - const TInt& aDefaultMessageSize ) - { - CPhCltMessengerImplementation* self = - new ( ELeave ) CPhCltMessengerImplementation; - CleanupStack::PushL( self ); - self->ConstructL( aCategoryUid, aDefaultMessageSize ); - CleanupStack::Pop(); - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhCltMessengerImplementation::~CPhCltMessengerImplementation -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhCltMessengerImplementation::~CPhCltMessengerImplementation() - { - // Ensure that clean-up is done properly. - iMessenger.Close(); - iServer.Close(); - } - -// ----------------------------------------------------------------------------- -// CPhCltMessengerImplementation::Receive -// -// Receive message. -// ----------------------------------------------------------------------------- -// -void CPhCltMessengerImplementation::Receive( - TRequestStatus& aStatus, - TInt& aMessageSize, - TDes8& aMessagePayload ) - { - iMessenger.Receive( - aStatus, - aMessageSize, - aMessagePayload ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltMessengerImplementation::Send -// -// Send message. -// ----------------------------------------------------------------------------- -// -void CPhCltMessengerImplementation::Send( - TRequestStatus& aStatus, - const TDesC8& aMessagePayload ) - { - iMessenger.Send( - aStatus, - aMessagePayload ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltMessengerImplementation::CancelRequest -// -// Cancel ongoing request. -// ----------------------------------------------------------------------------- -// -void CPhCltMessengerImplementation::CancelRequest( - const TPhCltMessengerRequest& aRequest ) - { - iMessenger.CancelRequest( aRequest ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltMessengerImplementation::Skip -// -// Skip the current message. -// ----------------------------------------------------------------------------- -// -void CPhCltMessengerImplementation::Skip() - { - iMessenger.Skip(); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Messenger/RPhCltMessenger.cpp --- a/phoneclientserver/phoneclient/Src/Messenger/RPhCltMessenger.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,207 +0,0 @@ -/* -* Copyright (c) 2004 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: This class is used to perform Phone Client Extension -* Messenger originated commands. -* -*/ - - - -// INCLUDES - -#include "rphcltmessenger.h" -#include -#include "phcltclientserver.h" - - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// RPhCltMessenger::RPhCltMessenger -// -// C++ constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -RPhCltMessenger::RPhCltMessenger() -: RSubSessionBase(), - iReceiveMessageSize( NULL, 0 ), - iMesParPckg( iMessengerParameters ) - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltMessenger::~RPhCltMessenger -// -// Destructor. -// ----------------------------------------------------------------------------- -// -RPhCltMessenger::~RPhCltMessenger() - { - // Ensure that the subsession is closed. - Close(); - } - - -// ----------------------------------------------------------------------------- -// RPhCltMessenger::Open -// -// Open subsession to Phone Server. -// ----------------------------------------------------------------------------- -// -TInt RPhCltMessenger::Open( - RPhCltServer& aServer, - const TUid& aCategoryUid, - const TInt& aDefaultMessageSize ) - { - __ASSERT_ALWAYS( aServer.Handle(), User::Panic( - KPhClientPanicCategory, - EPhCltClientSidePanicNullHandle ) ); - - TInt err = CreateSubSession( - aServer, - EPhoneServerMessengerSubSessionOpen, - TIpcArgs() ); - - - // If subsession was created successfully, construct it properly. - if ( !err ) - { - // Set the needed variables to be transferred to PhoneServer side. - iMessengerParameters.iCategoryUid = aCategoryUid; - iMessengerParameters.iDefaultMessageSize = aDefaultMessageSize; - - err = SendReceive( - EPhoneServerMessengerSubSessionConstruct, - TIpcArgs( &iMesParPckg ) ); - - // If memory reservations failed, close subsession. - if ( err ) - { - Close(); - } - } - - return err; - } - - -// ----------------------------------------------------------------------------- -// RPhCltMessenger::Close -// -// Close subsession. -// ----------------------------------------------------------------------------- -// -void RPhCltMessenger::Close() - { - CloseSubSession( EPhoneServerMessengerSubSessionClose ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltMessenger::Receive -// -// Receive message. -// ----------------------------------------------------------------------------- -// -void RPhCltMessenger::Receive( - TRequestStatus& aStatus, - TInt& aMessageSize, - TDes8& aMessagePayload ) - { - __ASSERT_ALWAYS( - SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - // Set message size variables to be byte descriptor. - iReceiveMessageSize.Set( ( TUint8* )&aMessageSize, 0, sizeof( TInt ) ) ; - iMessengerParameters.iReceiveMessageSizePtr = &iReceiveMessageSize; - - iMessengerParameters.iReceiveBufferMaxSize = aMessagePayload.MaxSize(); - - SendReceive( - EPhoneServerMessengerSubSessionReceive, - TIpcArgs( - &iMesParPckg, - &aMessagePayload, - &iReceiveMessageSize ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltMessenger::Send -// -// Send message. -// ----------------------------------------------------------------------------- -// -void RPhCltMessenger::Send( - TRequestStatus& aStatus, - const TDesC8& aMessagePayload ) - { - __ASSERT_ALWAYS( - SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - iMessengerParameters.iSendPayloadLength = aMessagePayload.Length(); - - SendReceive( - EPhoneServerMessengerSubSessionSend, - TIpcArgs( - &iMesParPckg, - &aMessagePayload ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltMessenger::CancelRequest -// -// Cancel ongoing request. -// ----------------------------------------------------------------------------- -// -void RPhCltMessenger::CancelRequest( const TPhCltMessengerRequest& aRequest ) - { - __ASSERT_ALWAYS( SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - iMessengerParameters.iCancelRequest = aRequest; - - SendReceive( - EPhoneServerMessengerSubSessionCancel, - TIpcArgs( &iMesParPckg ) ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltMessenger::Skip -// -// Skip the current message. -// ----------------------------------------------------------------------------- -// -void RPhCltMessenger::Skip() - { - __ASSERT_ALWAYS( - SubSessionHandle(), User::Panic( - KPhClientPanicCategory, EPhCltClientSidePanicNullHandle ) ); - - SendReceive( - EPhoneServerMessengerSubSessionSkip, - TIpcArgs() ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Notifier/Notifier_Aiw/CPhCltCallNotify.cpp --- a/phoneclientserver/phoneclient/Src/Notifier/Notifier_Aiw/CPhCltCallNotify.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,198 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Call Notify -* -*/ - - - -// Include Files -#include // for TPhCltEmergencyNumber -#include -#include -#include - -#include "rphcltserver.h" -#include "cphcltextphonedialdata.h" -#include "rphcltcallnotify.h" -#include "cphcltdialrequestmonitor.h" -#include "cphcltdialemergencyrequestmonitor.h" -#include "cphcltcomhandrequestmonitor.h" - -// ============================= LOCAL FUNCTIONS =============================== - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::CPhCltCallNotify -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltCallNotify::CPhCltCallNotify() - { - } - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltCallNotify* CPhCltCallNotify::NewL() - { - CPhCltCallNotify* self = new ( ELeave ) CPhCltCallNotify; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - - // Destructor -EXPORT_C CPhCltCallNotify::~CPhCltCallNotify() - { - delete iComHandMonitor; - delete iDialMonitor; - delete iDialEmergencyMonitor; - delete iCallNotify; - } - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::Open -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CPhCltCallNotify::Open( RPhCltServer& aServer ) - { - TInt retVal = iCallNotify->Open( aServer ); - return retVal; - } - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::Close -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhCltCallNotify::Close() - { - iCallNotify->Close(); - } - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::NotifyCallAttempt -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhCltCallNotify::NotifyDialRequest( - MPhCltDialRequestObserver* aObserver ) - { - iDialMonitor->NotifyDialRequest( aObserver ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::CancelNotifyCallAttempt -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhCltCallNotify::CancelNotifyDialRequest() - { - iDialMonitor->Cancel(); - } - - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::RespondClient -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CPhCltCallNotify::RespondClient( const TInt aResultCode ) - { - return iDialMonitor->RespondClient( aResultCode ); - } - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::NotifyEmergencyCall() -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhCltCallNotify::NotifyEmergencyCall( - MPhCltDialEmergencyRequestObserver* aObserver, - TDesC& aEmergencyNumber ) - { - iDialEmergencyMonitor->NotifyEmergencyCall( aObserver, aEmergencyNumber ); - } - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::CancelNotifyEmergencyCall() -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhCltCallNotify::CancelNotifyEmergencyCall() const - { - iDialEmergencyMonitor->Cancel(); - } - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::RespondEmergencyToClient() -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CPhCltCallNotify::RespondEmergencyToClient( - const TInt aResultCode ) - { - return iDialEmergencyMonitor->RespondEmergencyToClient( aResultCode ); - } - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::NotifyComHandCommand -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhCltCallNotify::NotifyComHandCommand( - MPhCltComHandRequestObserver* aObserver, TDes8& aCommandArgs ) - { - iComHandMonitor->NotifyComHandCommand( aObserver, aCommandArgs ); - } - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::CancelNotifyComHandCommand -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhCltCallNotify::CancelNotifyComHandCommand() const - { - iComHandMonitor->Cancel(); - } - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::RespondComHandClient -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CPhCltCallNotify::RespondComHandClient( - const TInt aResultCode ) - { - return iComHandMonitor->RespondComHandClient( aResultCode ); - } - - -void CPhCltCallNotify::ConstructL() - { - iCallNotify = new (ELeave) RPhCltCallNotify(); - iDialMonitor = CPhCltDialRequestMonitor::NewL(*iCallNotify); - iComHandMonitor = CPhCltComHandRequestMonitor::NewL(*iCallNotify); - iDialEmergencyMonitor = CPhCltDialEmergencyRequestMonitor::NewL(*iCallNotify); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Notifier/Notifier_Aiw/RPhCltCallNotify.cpp --- a/phoneclientserver/phoneclient/Src/Notifier/Notifier_Aiw/RPhCltCallNotify.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,206 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Call Notify -* -*/ - - - -// Include Files -#include "rphcltcallnotify.h" -#include "rphcltserver.h" -#include "phcltclientserver.h" - -// ============================= LOCAL FUNCTIONS =============================== - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::RPhCltCallNotify -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -RPhCltCallNotify::RPhCltCallNotify() - : RSubSessionBase() - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::Open -// ----------------------------------------------------------------------------- -// -TInt RPhCltCallNotify::Open( RPhCltServer& aServer ) - { - return CreateSubSession( - aServer, - EPhoneServerNotifySubSessionOpen, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::Close -// ----------------------------------------------------------------------------- -// -void RPhCltCallNotify::Close() - { - CloseSubSession( EPhoneServerNotifySubSessionClose ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::NotifyCallAttempt -// -// ----------------------------------------------------------------------------- -// -void RPhCltCallNotify::NotifyCallAttempt( - TRequestStatus& aStatus, - TPckg< TInt >& aDataLength ) - { - SendReceive( - EPhoneServerNotifySubSessionNotifyCallRequest, - TIpcArgs( &aDataLength ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::CancelNotifyCallAttempt -// -// ----------------------------------------------------------------------------- -// -void RPhCltCallNotify::CancelNotifyCallAttempt() const - { - SendReceive( - EPhoneServerNotifySubSessionNotifyCallRequestCancel, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::RespondClient -// -// ----------------------------------------------------------------------------- -// -TInt RPhCltCallNotify::RespondClient( const TInt aResultCode ) - { - return Send( - EPhoneServerNotifySubSessionReportCallResult, - TIpcArgs( aResultCode ) ); - } - - // ----------------------------------------------------------------------------- -// RPhCltCallNotify::GetDialData -// -// ----------------------------------------------------------------------------- -// - void RPhCltCallNotify::GetDialData( TDes8& aData ) - { - - SendReceive( - EPhoneServerNotifySubSessionDialData, - TIpcArgs( &aData) ); - } - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::NotifyEmergencyCall -// -// ----------------------------------------------------------------------------- -// -void RPhCltCallNotify::NotifyEmergencyCall( - TRequestStatus& aStatus, - TDes8& aEmergencyNumber - ) - { - SendReceive( - EPhoneServerNotifyEmergencySubSessionNotifyCallRequest, - TIpcArgs( &aEmergencyNumber ), - aStatus ); - } - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::CancelNotifyEmergencyCall -// -// ----------------------------------------------------------------------------- -// -void RPhCltCallNotify::CancelNotifyEmergencyCall() const - { - SendReceive( - EPhoneServerNotifyEmergencySubSessionNotifyCallRequestCancel, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::RespondEmergencyToClient -// -// ----------------------------------------------------------------------------- -// -TInt RPhCltCallNotify::RespondEmergencyToClient( const TInt aResultCode ) - { - return Send( - EPhoneServerNotifyEmergencySubSessionReportCallResult, - TIpcArgs( aResultCode ) ); - } - - // ----------------------------------------------------------------------------- -// RPhCltCallNotify::NotifyComHandCommand -// -// Notifies when a Command handler request arrives. -// ----------------------------------------------------------------------------- -// -void RPhCltCallNotify::NotifyComHandCommand( - TRequestStatus& aStatus, - TDes8& aCommandArgs ) - { - SendReceive( - EPhoneServerComHandNotifySubSessionComHandRequest, - TIpcArgs( &aCommandArgs ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::CancelNotifyComHandCommand -// -// Cancel pending command handler request notification. -// ----------------------------------------------------------------------------- -// -void RPhCltCallNotify::CancelNotifyComHandCommand() const - { - SendReceive( - EPhoneServerComHandNotifySubSessionComHandRequestCancel, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::RespondComHandClient -// -// Respond to client's command handler request. -// ----------------------------------------------------------------------------- -// -TInt RPhCltCallNotify::RespondComHandClient( - const TInt aResultCode ) - { - return Send( - EPhoneServerComHandNotifySubSessionReportComHandResult, - TIpcArgs( aResultCode ) ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Notifier/Notifier_Aiw/cphcltcomhandrequestmonitor.cpp --- a/phoneclientserver/phoneclient/Src/Notifier/Notifier_Aiw/cphcltcomhandrequestmonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,125 +0,0 @@ -/* -* 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: Call Notify -* -*/ - - - -// Include Files -#include "cphcltcomhandrequestmonitor.h" -#include "rphcltcallnotify.h" -#include -#include - - -// ============================= LOCAL FUNCTIONS =============================== - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltComHandRequestMonitor::CPhCltComHandRequestMonitor -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltComHandRequestMonitor::CPhCltComHandRequestMonitor( - RPhCltCallNotify& aCallNotify): - CActive( EPriorityStandard ), iCallNotify(aCallNotify) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CPhCltComHandRequestMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhCltComHandRequestMonitor* CPhCltComHandRequestMonitor::NewL(RPhCltCallNotify& aCallNotify) - { - CPhCltComHandRequestMonitor* self = new ( ELeave ) CPhCltComHandRequestMonitor(aCallNotify); - return self; - } - - // Destructor -CPhCltComHandRequestMonitor::~CPhCltComHandRequestMonitor() - { - Cancel(); - } - -// ----------------------------------------------------------------------------- -// CPhCltCallNotify::RespondComHandClient -// -// ----------------------------------------------------------------------------- -// -TInt CPhCltComHandRequestMonitor::RespondComHandClient( - const TInt aResultCode ) - { - return iCallNotify.RespondComHandClient( aResultCode ); - } - -// ----------------------------------------------------------------------------- -// CPhCltComHandRequestMonitor::RunL() -// -// ----------------------------------------------------------------------------- -// -void CPhCltComHandRequestMonitor::RunL() - { - TInt error = iStatus.Int(); - if ( !error ) - { - iObserver->ComHandRequest( ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhCltComHandRequestMonitor::CancelNotifyComHandCommand() -// -// ----------------------------------------------------------------------------- -// -void CPhCltComHandRequestMonitor::DoCancel() - { - iCallNotify.CancelNotifyComHandCommand(); - } - - - -// ----------------------------------------------------------------------------- -// CPhCltComHandRequestMonitor::NotifyComHandCommand -// -// ----------------------------------------------------------------------------- -// -void CPhCltComHandRequestMonitor::NotifyComHandCommand( - MPhCltComHandRequestObserver* aObserver, - TDes8& aCommandArgs ) - { - if ( !IsActive() ) - { - iObserver = aObserver; - iCallNotify.NotifyComHandCommand( - iStatus, - aCommandArgs ); - SetActive(); - } - } - - - - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Notifier/Notifier_Aiw/cphcltdialemergencyrequestmonitor.cpp --- a/phoneclientserver/phoneclient/Src/Notifier/Notifier_Aiw/cphcltdialemergencyrequestmonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,140 +0,0 @@ -/* -* 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: Call Notify -* -*/ - - - -// Include Files -#include // for TPhCltEmergencyNumber -#include "cphcltdialemergencyrequestmonitor.h" -#include -#include "rphcltserver.h" -#include "rphcltcallnotify.h" - -// ============================= LOCAL FUNCTIONS =============================== - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltDialEmergencyRequestMonitor::CPhCltDialEmergencyRequestMonitor -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltDialEmergencyRequestMonitor::CPhCltDialEmergencyRequestMonitor(RPhCltCallNotify& aCallNotify) - : CActive( CActive::EPriorityStandard ), - iCallNotify(aCallNotify), - iEmergencyCallNumberPtr( NULL, 0, 0 ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CPhCltDialEmergencyRequestMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhCltDialEmergencyRequestMonitor* CPhCltDialEmergencyRequestMonitor::NewL( - RPhCltCallNotify& aCltNotify) - { - CPhCltDialEmergencyRequestMonitor* self = - new ( ELeave ) CPhCltDialEmergencyRequestMonitor(aCltNotify); - return self; - } - - // Destructor -CPhCltDialEmergencyRequestMonitor::~CPhCltDialEmergencyRequestMonitor() - { - Cancel(); - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialEmergencyRequestMonitor::RunL() -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialEmergencyRequestMonitor::RunL() - { - TInt error = iStatus.Int(); - if ( !error ) - { - iObserver->DialEmergencyRequest( ); - } - } - -TInt CPhCltDialEmergencyRequestMonitor::RunError(TInt /*aErr*/) - { - // RunL failed because of leave in SetParamsL, - // - // TODO check how to react - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CPhCltDialEmergencyRequestMonitor::DoCancel() -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialEmergencyRequestMonitor::DoCancel() - { - iCallNotify.CancelNotifyEmergencyCall(); - } - -// ----------------------------------------------------------------------------- -// CPhCltDialEmergencyRequestMonitor::NotifyEmergencyCall() -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialEmergencyRequestMonitor::NotifyEmergencyCall( - MPhCltDialEmergencyRequestObserver* aObserver, - TDesC& aEmergencyNumber ) - { - - if ( !IsActive() ) - { - - iEmergencyCallNumberPtr.Set( reinterpret_cast( &aEmergencyNumber ), - sizeof( TPhCltEmergencyNumber ), - sizeof( TPhCltEmergencyNumber ) ); - - iObserver = aObserver; - - iCallNotify.NotifyEmergencyCall( - iStatus, - iEmergencyCallNumberPtr - ); - SetActive(); - } - - } - - -// ----------------------------------------------------------------------------- -// CPhCltDialEmergencyRequestMonitor::RespondEmergencyToClient() -// -// ----------------------------------------------------------------------------- -// -TInt CPhCltDialEmergencyRequestMonitor::RespondEmergencyToClient( - const TInt aResultCode ) - { - return iCallNotify.RespondEmergencyToClient( aResultCode ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Notifier/Notifier_Aiw/cphcltdialrequestmonitor.cpp --- a/phoneclientserver/phoneclient/Src/Notifier/Notifier_Aiw/cphcltdialrequestmonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,144 +0,0 @@ -/* -* 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: Call Notify -* -*/ - - - -// Include Files -#include // for TPhCltEmergencyNumber -#include - -#include "rphcltserver.h" -#include "cphcltextphonedialdata.h" -#include "cphcltdialdata.h" -#include "cphcltdialrequestmonitor.h" -#include "rphcltcallnotify.h" - - - - -// ============================= LOCAL FUNCTIONS =============================== - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltDialRequestMonitor::CPhCltDialRequestMonitor -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltDialRequestMonitor::CPhCltDialRequestMonitor(RPhCltCallNotify& aCallNotify) - : CActive( EPriorityStandard ), - iCallNotify(aCallNotify), - iDataLengthPckg ( iDialDataLength ) - { - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CPhCltDialRequestMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhCltDialRequestMonitor* CPhCltDialRequestMonitor::NewL( - RPhCltCallNotify& aCltNotify) - { - CPhCltDialRequestMonitor* self = new ( ELeave ) CPhCltDialRequestMonitor(aCltNotify); - return self; - } - - // Destructor -CPhCltDialRequestMonitor::~CPhCltDialRequestMonitor() - { - Cancel(); - } - -// ----------------------------------------------------------------------------- -// CPhCltDialRequestMonitor::NotifyCallAttempt -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialRequestMonitor::NotifyDialRequest( - MPhCltDialRequestObserver* aObserver ) - { - if ( !IsActive() ) - { - iCallNotify.NotifyCallAttempt( iStatus, iDataLengthPckg ); - iObserver = aObserver; - SetActive(); - } - } - - - -// ----------------------------------------------------------------------------- -// CPhCltDialRequestMonitor::RespondClient -// -// ----------------------------------------------------------------------------- -// -TInt CPhCltDialRequestMonitor::RespondClient( const TInt aResultCode ) - { - return iCallNotify.RespondClient( aResultCode ); - } - -// ----------------------------------------------------------------------------- -// CPhCltDialRequestMonitor::RunL() -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialRequestMonitor::RunL() - { - TInt error = iStatus.Int(); - if ( !error ) - { - // Lazy initialization for dial data. - CPhCltDialData *dialData = (CPhCltDialData*) CPhCltExtPhoneDialData::NewL(); - - CleanupStack::PushL( dialData ); - - HBufC8* package = HBufC8::NewLC ( iDialDataLength ); - TPtr8 ptr ( package->Des()); - - //Fetch dial data from server - iCallNotify.GetDialData( ptr ); - ((CPhCltExtPhoneDialData*)dialData)->SetParamsL( *package ); - CleanupStack::PopAndDestroy( package ); - CleanupStack::Pop( dialData ); - iObserver->DialRequest( dialData ); - } - - } - -TInt CPhCltDialRequestMonitor::RunError(TInt /*aErr*/) - { - // RunL failed because of leave in SetParamsL, - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CPhCltDialRequestMonitor::DoCancel() -// -// ----------------------------------------------------------------------------- -// -void CPhCltDialRequestMonitor::DoCancel() - { - iCallNotify.CancelNotifyCallAttempt(); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Notifier/RPhCltCallNotify.cpp --- a/phoneclientserver/phoneclient/Src/Notifier/RPhCltCallNotify.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,171 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Call Notify -* -*/ - - - -// Include Files -#include "rphcltcallnotify.h" -#include "rphcltserver.h" - - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// Stub function to complete an asynchronous request -// -// ----------------------------------------------------------------------------- -// -static void CompleteRequest( TRequestStatus& aStatus, TInt aCompletionCode ) - { - TRequestStatus* status = &aStatus; - User::RequestComplete( status, aCompletionCode ); - } - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::RPhCltCallNotify -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C RPhCltCallNotify::RPhCltCallNotify() - : RSubSessionBase() - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::Open -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RPhCltCallNotify::Open( RPhCltServer& aServer ) - { - return CreateSubSession( - aServer, - EPhoneServerNotifySubSessionOpen, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::Close -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltCallNotify::Close() - { - CloseSubSession( EPhoneServerNotifySubSessionClose ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::NotifyCallAttempt -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltCallNotify::NotifyCallAttempt( - TRequestStatus& aStatus, - TDes8& aCallArgs ) - { - SendReceive( - EPhoneServerNotifySubSessionNotifyCallRequest, - TIpcArgs( &aCallArgs ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::CancelNotifyCallAttempt -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltCallNotify::CancelNotifyCallAttempt() const - { - SendReceive( - EPhoneServerNotifySubSessionNotifyCallRequestCancel, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::NotifyPhoneStatusRequest -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltCallNotify::NotifyPhoneStatusRequest( - TRequestStatus& aStatus ) - { - // Stub - __ASSERT_DEBUG( EFalse, User::Invariant() ); - CompleteRequest( aStatus, KErrNone ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::CancelNotifyPhoneStatusRequest -// -// NOT SUPPORTED. -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltCallNotify::CancelNotifyPhoneStatusRequest() const - { - // Stub, don't call - __ASSERT_DEBUG( EFalse, User::Invariant() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::ReportPhoneStatus -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltCallNotify::ReportPhoneStatus( - TRequestStatus& aStatus, - const TInt aPhoneStatus ) - { - // Stub - __ASSERT_DEBUG( EFalse, User::Invariant() ); - CompleteRequest( aStatus, aPhoneStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::CancelReportPhoneStatus -// -// NOT SUPPORTED. -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltCallNotify::CancelReportPhoneStatus() const - { - // Stub, don't call - __ASSERT_DEBUG( EFalse, User::Invariant() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltCallNotify::RespondClient -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RPhCltCallNotify::RespondClient( const TInt aResultCode ) - { - return Send( - EPhoneServerNotifySubSessionReportCallResult, - TIpcArgs( aResultCode ) ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Notifier/RPhCltExtCallNotify.cpp --- a/phoneclientserver/phoneclient/Src/Notifier/RPhCltExtCallNotify.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,156 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Call Notify -* -*/ - - - -// Include Files - -#include "rphcltcallnotify.h" -#include "phcltclientserver.h" -#include "rphcltserver.h" - - - -// ============================= LOCAL FUNCTIONS =============================== - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RPhCltExtCallNotify::RPhCltExtCallNotify -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C RPhCltCallNotify::RPhCltCallNotify() - : RSubSessionBase() - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCallNotify::Open -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RPhCltCallNotify::Open( RPhCltServer& aServer ) - { - return CreateSubSession( - aServer, - EPhoneServerNotifySubSessionOpen, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCallNotify::Close -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltCallNotify::Close() - { - CloseSubSession( EPhoneServerNotifySubSessionClose ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCallNotify::NotifyCallAttempt -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltCallNotify::NotifyCallAttempt( - TRequestStatus& aStatus, - TDes8& aCallArgs ) - { - SendReceive( - EPhoneServerNotifySubSessionNotifyCallRequest, - TIpcArgs( &aCallArgs ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCallNotify::CancelNotifyCallAttempt -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltCallNotify::CancelNotifyCallAttempt() const - { - SendReceive( - EPhoneServerNotifySubSessionNotifyCallRequestCancel, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCallNotify::RespondClient -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RPhCltCallNotify::RespondClient( const TInt aResultCode ) - { - return Send( - EPhoneServerNotifySubSessionReportCallResult, - TIpcArgs( aResultCode ) ); - } - - // ----------------------------------------------------------------------------- -// RPhCltExtCallNotify::NotifyComHandCommand -// -// Notifies when a Command handler request arrives. -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltCallNotify::NotifyComHandCommand( - TRequestStatus& aStatus, - TDes8& aCommandArgs ) - { - SendReceive( - EPhoneServerComHandNotifySubSessionComHandRequest, - TIpcArgs( &aCommandArgs ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCallNotify::CancelNotifyComHandCommand -// -// Cancel pending command handler request notification. -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltCallNotify::CancelNotifyComHandCommand() const - { - SendReceive( - EPhoneServerComHandNotifySubSessionComHandRequestCancel, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltExtCallNotify::RespondComHandClient -// -// Respond to client's command handler request. -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RPhCltCallNotify::RespondComHandClient( - const TInt aResultCode ) - { - return Send( - EPhoneServerComHandNotifySubSessionReportComHandResult, - TIpcArgs( aResultCode ) ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/PhCltUtils.cpp --- a/phoneclientserver/phoneclient/Src/PhCltUtils.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -/* -* Copyright (c) 2002 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: Utils -* -*/ - - -// INCLUDE FILES -#include "phcltutils.h" - - -// CONSTANTS -_LIT( KPhCltValidChars, "+0123456789*#pwPW" ); -//Prefix for Sip. -_LIT( KSipPrefix, "sip:" ); -//Prefix for Tel. -_LIT( KTelPrefix, "tel:" ); -//Prefix for Sos. -_LIT( KSosPrefix, "sos:" ); -// @ char -_LIT( KAt, "@" ); -// Prefix length -const TInt KPrefixLength = 4; - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// PhCltUtils::IsValidChar -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool PhCltUtils::IsValidChar( TChar aChar ) - { - TPtrC valid( KPhCltValidChars ); - - return valid.Locate( aChar ) != KErrNotFound; - } - - -// ----------------------------------------------------------------------------- -// PhCltUtils::RemoveInvalidChars -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void PhCltUtils::RemoveInvalidChars( TDes& aString ) - { - TInt index = aString.Length() - 1; - - for ( ; index >= 0; index-- ) - { - if ( !IsValidChar( aString[ index ] ) ) - { - aString.Delete( index, 1 ); // one character - } - } - } - - -// ----------------------------------------------------------------------------- -// PhCltUtils::RemoveURIPrefixdAndDomainChars -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void PhCltUtils::RemoveURIPrefixdAndDomainChars( TDes& aString ) - { - // Does number contains prefix. If yes then remove it - - if ( 0 == aString.FindC( KSipPrefix ) || - 0 == aString.FindC( KTelPrefix ) || - 0 == aString.FindC( KSosPrefix ) ) - { - aString.Delete( 0, KPrefixLength ); - } - // Does Number contains domain part. If yes remove it at beging of @ character. - TInt atIndex = aString.Find( KAt ); - TInt telNumberLength = aString.Length(); - if ( 0 < atIndex && - atIndex < telNumberLength ) - { - aString.Delete( atIndex, telNumberLength - atIndex ); - } - } -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/RPhCltResourceFile.cpp --- a/phoneclientserver/phoneclient/Src/RPhCltResourceFile.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Resource File handler. -* -*/ - - - -// INCLUDE FILES -#include "rphcltresourcefile.h" -#include "ConeResLoader.h" -#include "phcltclientserver.h" - - -// CONSTANTS - -// Panic category -_LIT( KPhCltResourceFilePanic, "PhCltRes" ); - - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RPhCltResourceFile::RPhCltResourceFile -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C RPhCltResourceFile::RPhCltResourceFile() - : iLoader( NULL ) - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltResourceFile::OpenL -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltResourceFile::OpenL( CCoeEnv& aEnv ) - { - // Must not be called if already loaded. - __ASSERT_ALWAYS( - !iLoader, - User::Panic( KPhCltResourceFilePanic, KErrNone ) ); - - TFileName* tmpFileName = - new ( ELeave ) TFileName; - CleanupStack::PushL( tmpFileName ); - tmpFileName->Append( KPhCltServerZDrive ); - tmpFileName->Append( KDC_RESOURCE_FILES_DIR ); - tmpFileName->Append( KPhCltResourceFileNameAndPath ); - tmpFileName->ZeroTerminate(); - - // Load resource file - RConeResourceLoader* loader = - new ( ELeave ) RConeResourceLoader( aEnv ); - CleanupStack::PushL( loader ); - loader->OpenL( *tmpFileName ); - CleanupStack::Pop( loader ); - - // Completed, store loader. - iLoader = loader; - - CleanupStack::PopAndDestroy( tmpFileName ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltResourceFile::Close -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltResourceFile::Close() - { - if ( iLoader ) - { - iLoader->Close(); - delete iLoader; - iLoader = NULL; - } - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Session/RPhCltServer.cpp --- a/phoneclientserver/phoneclient/Src/Session/RPhCltServer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,208 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Server connection handler. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "phclttypes.h" -#include "rphcltserver.h" -#include "phcltclientserver.h" - -// CONSTANTS - -// Information of Phone Server Startup failure, used in panic call. -_LIT( PH_SRV_SU_FAILURE, "PhSrvStartUp" ); - -// The number of Phone Server startup attempts. -const TInt KPhCltNumberOfRetryAttempts = 4; - -// The phase were the Phone Server failure happened. -// Useful in debug purposes if Phone Server startup fails. -enum - { - EPhSrvStartupFailurePhase1, // First phase - EPhSrvStartupFailurePhase2 // Second phase - }; - - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// RPhCltServer::RPhCltServer -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C RPhCltServer::RPhCltServer() - : RSessionBase() - { - } - -// ----------------------------------------------------------------------------- -// RPhCltServer::Version -// -// Returns version. -// ----------------------------------------------------------------------------- -// -TVersion RPhCltServer::Version() const - { - return TVersion( KPhoneServerMajorVersionNumber, - KPhoneServerMinorVersionNumber, - KPhoneServerBuildVersionNumber ); - } - -// ----------------------------------------------------------------------------- -// RPhCltServer::Connect -// -// Creates connection to the server. If server is not running, -// it is also launched. -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RPhCltServer::Connect( TInt aMessageSlots ) - { - TInt err = KErrGeneral; - TInt count = KPhCltNumberOfRetryAttempts; - FOREVER - { - err = CreateSession( PHONE_SERVER_NAME, Version(), aMessageSlots ); - if ( err != KErrNotFound && err != KErrServerTerminated ) - { - break; - } - // Need to restart server - if ( --count < 0 ) - { - break; - } - err = StartServer(); - if ( err != KErrNone && err != KErrAlreadyExists ) - { - if ( err != KErrNotFound ) - { - break; - } - Panic( EPhCltPanicServerUnexpectedServerNotFound ); - } - } - return err; - } - -// ----------------------------------------------------------------------------- -// RPhCltServer::CreateAll -// ----------------------------------------------------------------------------- -// -EXPORT_C void RPhCltServer::CreateAll( TRequestStatus& aStatus ) - { - SendReceive( - EPhoneCreateAll, - TIpcArgs(), - aStatus ); - } - -// ----------------------------------------------------------------------------- -// RPhCltServer::StartServer -// -// Launches the phone server, which is assumed to be not -// already running. -// ----------------------------------------------------------------------------- -// -TInt RPhCltServer::StartServer() - { - // The uid of the DLL/EXE - used to identify the correct target - const TUidType KPhServerUidType( - KExecutableImageUid, - KSharedLibraryUid, - KPhCltServerUid ); - - - ////////////////////////////////////////////////////////////////////////// - // On MARM, the server is an exe, so it is run inside its own process. - // The server itself takes care of creating a thread and finalizing the - // construction of the server. We pass the signalling object via the - // command line. - ////////////////////////////////////////////////////////////////////////// - - RProcess serverUnitOfExecution; - - TFileName pathName( KPhCltServerZDrive ); - pathName.Append( KDC_PROGRAMS_DIR ); - pathName.Append( KPhServerPathAndNameMARM ); - pathName.ZeroTerminate(); - - TInt err = serverUnitOfExecution.Create( - pathName, - KNullDesC, - KPhServerUidType ); - - if ( err != KErrNone ) - { - User::Panic( PH_SRV_SU_FAILURE, err ); - } - serverUnitOfExecution.SetPriority( EPriorityHigh ); - - - // Now wait for the server to start up, and also observe if the server - // thread dies for any reason. - - - TRequestStatus stat; - serverUnitOfExecution.Rendezvous( stat ); - if ( stat != KRequestPending ) - { - User::Panic( PH_SRV_SU_FAILURE, EPhSrvStartupFailurePhase1 ); - - serverUnitOfExecution.Kill( KErrAbort ); // abort startup - } - else - { - serverUnitOfExecution.Resume(); // logon ok - } - - // wait for start or death - User::WaitForRequest( stat ); - // we can't use the 'exit reason' if the server panicked as this - // is the panic 'reason' and may be '0' which cannot be distinguished - // from KErrNone - err = ( serverUnitOfExecution.ExitType() == EExitPanic ) - ? KErrGeneral : stat.Int(); - - serverUnitOfExecution.Close(); - - - return err; - } - - -// ----------------------------------------------------------------------------- -// RPhCltServer::Panic -// -// Panics the client thread -// ----------------------------------------------------------------------------- -// -void RPhCltServer::Panic( TPhCltPanicTypes aPanic ) - { - User::Panic( KPhClientPanicCategory, aPanic ); - } - - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/Ussd/ussd_ext/rphcltussd.cpp --- a/phoneclientserver/phoneclient/Src/Ussd/ussd_ext/rphcltussd.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,222 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: USSD handler class. -* -*/ - - -// INCLUDE FILES -#include "rphcltserver.h" -#include "rphcltussd.h" -#include "phcltclientserver.h" - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// RPhCltUssd::RPhCltUssd -// Constructor -// -// ----------------------------------------------------------------------------- -// -RPhCltUssd::RPhCltUssd() - : RSubSessionBase() - { - } - - -// ----------------------------------------------------------------------------- -// RPhCltUssd::Open -// Open USSD subsession to the Phone Server. -// -// ----------------------------------------------------------------------------- -// -TInt RPhCltUssd::Open( RPhCltServer& aServer ) - { - return CreateSubSession( - aServer, - EPhoneServerUSSDSubSessionOpen, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltUssd::Close -// -// Closes the subsession -// ----------------------------------------------------------------------------- -// -void RPhCltUssd::Close() - { - CloseSubSession( EPhoneServerUSSDSubSessionClose ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltUssd::StartUssdEditor -// -// Request Ussd App to start -// --------------------------------------------------------------------------- -// -TInt RPhCltUssd::StartUssdEditor() const - { - return SendReceive( - EPhoneServerUSSDSubSessionStartEditing, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltUssd::AppStarting -// -// App informs the server about the start-up. -// ----------------------------------------------------------------------------- -// -TInt RPhCltUssd::AppStarting() - { - return SendReceive( - EPhoneServerUSSDSubSessionAppStarting, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltUssd::AppTerminating -// -// App informs the server about the termination -// ----------------------------------------------------------------------------- -// -TInt RPhCltUssd::AppTerminating( - TPhCltUssdAppExitReason aExitReason ) - { - TPckg< TPhCltUssdAppExitReason > exitReasonPckg( aExitReason ); - - return SendReceive( - EPhoneServerUSSDSubSessionAppTerminating, - TIpcArgs( &exitReasonPckg ) ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltUssd::AppToForeground -// -// App informs the server about the foreground event -// ----------------------------------------------------------------------------- -// -TBool RPhCltUssd::AppToForeground() - { - TInt ret = SendReceive( - EPhoneServerUSSDSubSessionAppToForeground, - TIpcArgs() ); - if ( ret > 0 ) - { - return ETrue; - } - return EFalse; - } - - -// ----------------------------------------------------------------------------- -// RPhCltUssd::AppToBackgroud -// -// App informs the server about the background event -// ----------------------------------------------------------------------------- -// -TInt RPhCltUssd::AppToBackground() - { - return SendReceive( - EPhoneServerUSSDSubSessionAppToBackground, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltUssd::SendUssd -// -// Send Ussd string to the server - async -// ----------------------------------------------------------------------------- -// -void RPhCltUssd::SendUssd( - TRequestStatus& aReqStatus, - const TDesC8& aMsgData, - const TDesC8& aMsgAttribute ) - { - SendReceive( - EPhoneServerUSSDSubSessionSendMessage, - TIpcArgs( - &aMsgData, - aMsgData.Length(), - &aMsgAttribute ), - aReqStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltUssd::CancelSend -// -// Cancels the send -// ----------------------------------------------------------------------------- -// -void RPhCltUssd::CancelSend() - { - SendReceive( - EPhoneServerUSSDSubSessionSendMessageCancel, - TIpcArgs() ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltUssd::StartSAT -// -// Starts SAT interaction. -// ----------------------------------------------------------------------------- -// -void RPhCltUssd::StartSAT( - TRequestStatus& aStatus , - TDes& aReceiveMessage, - TPckg< TUint >& aShowNotesAndDcs ) - { - __ASSERT_ALWAYS( - SubSessionHandle() , - User::Panic( KPhClientPanicCategory , KErrBadHandle ) ); - - SendReceive( - EPhoneServerUSSDSubSessionStartSAT, - TIpcArgs( - &aShowNotesAndDcs, - aReceiveMessage.MaxLength(), - &aReceiveMessage ), - aStatus ); - } - - -// ----------------------------------------------------------------------------- -// RPhCltUssd::StopSAT -// -// End SAT interaction. -// ----------------------------------------------------------------------------- -// -void RPhCltUssd::StopSAT() - { - __ASSERT_ALWAYS( - SubSessionHandle() , - User::Panic( KPhClientPanicCategory , KErrBadHandle ) ); - - SendReceive( - EPhoneServerUSSDSubSessionStopSAT, - TIpcArgs() ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdExt.cpp --- a/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdExt.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002 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: Ussd Interface, -* -*/ - - - -// INCLUDE FILES -#include -#include "cphcltussdimp.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltUssd::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltUssd* CPhCltUssd::NewL( TBool aShowNotes ) - { - return CPhCltUssdImp::NewL( aShowNotes ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssd::CPhCltUssd -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltUssd::CPhCltUssd( ) - { - } - - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdImp.cpp --- a/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdImp.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,898 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Interface for sending messages. -* -*/ - - - -// INCLUDE FILES -#include "cphcltussdimp.h" -#include "cphcltussdrequesthandler.h" -#include "phcltclientserver.h" -#include - -#include -#include -#include -#include -#include -//#include -#include - -#include -#include - -#include "mphcltussdnotecontrollercallback.h" -#include "cphcltussdnotecontroller.h" -#include "cphcltussdcommonconstant.h" -#include "tflogger.h" -// CONSTANTS - -const TUint8 KPhCltUssdDcsDefaultAlphabet = 0x0f; // 00001111 - -const TUint8 KPhCltUssdDcsAlphabetDefaultPrecededLanguage = 0x10; // 00010000 -const TUint8 KPhCltUssdDcsAlphabetDefaultPrecededLanguageSkipChars3 = 3; -const TUint8 KPhCltUssdDcsAlphabetDefaultPrecededLanguageSkipChars2 = 2; -const TUint8 KPhCltUssdDcsAlphabetDefaultPrecededLanguageStartBit = 5; - -const TUint8 KPhCltUssdDcsAlphabetUCS2PrecededLanguage = 0x11; // 00010001 -const TUint8 KPhCltUssdDcsAlphabetUCS2PrecededLanguageSkipChars = 2; - -const TUint8 KPhCltUssdDcsGeneralInformationMask = 0xc0; // 11000000 -const TUint8 KPhCltUssdDcsGeneralInformation = 0x40; // 01xxxxxx -const TUint8 KPhCltUssdDcsGeneralInformationCompressed = 0x20; // xx1xxxxx -const TUint8 KPhCltUssdDcsGeneralInformationSimMask = 0x13; // 00010011 -const TUint8 KPhCltUssdDcsGeneralInformationSim = 0x12; // xxx1xx10 -const TUint8 KPhCltUssdDcsGeneralInformationAlphabetMask = 0x0c; // 00001100 -const TUint8 KPhCltUssdDcsGeneralInformationAlphabet8Bit = 0x04; // xxxx01xx -const TUint8 KPhCltUssdDcsGeneralInformationAlphabetUCS2 = 0x08; // xxxx10xx - -const TUint8 KPhCltUssdDcsMessageHandlingAlphabetMask = 0xf4; // 11110100 -const TUint8 KPhCltUssdDcsMessageHandlingAlphabet8Bit = 0xf4; // 1111x1xx - -const TUint8 KPhCltUssdCarriageReturn = 0x0d; -const TUint8 KPhCltUssdDcsNotSet = 0x00; // not set - - -// ============================= LOCAL FUNCTIONS =============================== - -// CLASS DECLARATION - -#ifndef TPHCLTUSSDALPHABETPACKER_H -#define TPHCLTUSSDALPHABETPACKER_H - -/** -* Class for packing the Ussd string. -*/ -class TPhCltUssdAlphabetPacker - { - public: // Constructors and destructor - - /** - * Constructor. - * - * @param aAlphabet The used Data Coding Scheme. - * @param aIsBinary Is the data binary. - * @param aStartBit The start bit of the conversion. - */ - TPhCltUssdAlphabetPacker( - TSmsDataCodingScheme::TSmsAlphabet aAlphabet, - TBool aIsBinary, - TInt aStartBit ); - - public: // New functions - - /** - * Pack the given string to the desired coding scheme. - * - * @param aOut The output string of packing - * @param aIn The string to be packed. - * @return The number of octets used. - */ - TInt PackL(TDes8& aOut,const TDesC8& aIn); - - /** - * Convert and pack the given string to the desired coding scheme. - * - * @param aCharacterSetConverter The character converter. - * @param aFs Reference to file system. - * @param aOut The output string of packing - * @param aIn The string to be packed. - * @param aConvertedNumUDUnits The number of converted units. - * @return The number of octets used. - */ - TInt ConvertAndPackL( - CCnvCharacterSetConverter& aCharacterSetConverter, - RFs& aFs, - TDes8& aOut, - const TDesC& aIn, - TInt& aConvertedNumUDUnits ); - - /** - * Return information of how many octets are required when - * the aNumUDUnits number of characters is packed. - * - * @param aNumUDUnits The number of characters to be packed. - * @return The number of octets required. - */ - TInt PackedOctetsRequiredL( TInt aNumUDUnits ) const; - - private: - - // Private helper methods - TInt ElementSizeInBitsL() const; - - private: // Data - - // The Data Coding Scheme of the conversion. - TSmsDataCodingScheme::TSmsAlphabet iAlphabet; - - // Information is the given descriptor binary. - TBool iIsBinary; - - // The start bit of the conversion. - TInt iStartBit; - }; - -#endif // TPHCLTUSSDALPHABETPACKER_H - - -// ----------------------------------------------------------------------------- -// TPhCltUssdAlphabetPacker::TPhCltUssdAlphabetPacker -// -// ----------------------------------------------------------------------------- -// -TPhCltUssdAlphabetPacker::TPhCltUssdAlphabetPacker( - TSmsDataCodingScheme::TSmsAlphabet aAlphabet, - TBool aIsBinary, - TInt aStartBit) - : iAlphabet( aAlphabet ), - iIsBinary( aIsBinary ), - iStartBit( aStartBit ) - { - } - - -// ----------------------------------------------------------------------------- -// TPhCltUssdAlphabetPacker::PackL -// -// ----------------------------------------------------------------------------- -// -TInt TPhCltUssdAlphabetPacker::PackL( TDes8& aOut,const TDesC8& aIn ) - { - // Ensure we've got the right length - TInt packedOctetsRequired = PackedOctetsRequiredL( aIn.Length() ); - if ( packedOctetsRequired > ( aOut.MaxLength() - aOut.Length() ) ) - { - User::Leave( KErrOverflow ); - } - - // Do the conversion - TInt elementSizeInBits = ElementSizeInBitsL(); - if ( elementSizeInBits == 8 ) // 8 bit data - { - // Straight copy here - aOut.Append( aIn ); - } - else if ( elementSizeInBits == 7 ) // Need packing to 7-bit - { - // Get raw pointers and do packing - TUint8* outPtr = ( TUint8* )aOut.Ptr() + aOut.Length(); - const TUint8* inPtr = aIn.Ptr(); - - outPtr[0] = 0; - for ( TInt i = 0; i < aIn.Length() ; i++ ) - { - TUint8 to = inPtr[i]; - *outPtr |= ( to << iStartBit ); - if ( iStartBit ) - { - outPtr++; - *outPtr = ( TUint8 ) ( to >> ( 8 - iStartBit ) ); - } - iStartBit = ( iStartBit + 7 )%8; // roll 0,1,2,3,4,5,6,7,0,1,2,... - - if ( i == aIn.Length() - 1 ) // if this is the last time - { - if ( ( to == KPhCltUssdCarriageReturn && iStartBit == 0 ) || - iStartBit == 1 ) - { - //We have to add one CR more - *outPtr |= ( KPhCltUssdCarriageReturn << iStartBit ); - if ( iStartBit ) - { - outPtr++; - *outPtr = ( TUint8 ) ( - KPhCltUssdCarriageReturn >> ( 8 - iStartBit ) ); - } - else - { - packedOctetsRequired++; - } - iStartBit = ( iStartBit + 7 )%8; - } - } - } - // Increment the length for the packed data - aOut.SetLength( aOut.Length() + packedOctetsRequired ); - } - else - { - User::Invariant(); - } - // Return number of bytes used - return packedOctetsRequired; - } - - -// ----------------------------------------------------------------------------- -// TPhCltUssdAlphabetPacker::ConvertAndPackL -// -// ----------------------------------------------------------------------------- -// -TInt TPhCltUssdAlphabetPacker::ConvertAndPackL( - CCnvCharacterSetConverter& aCharacterSetConverter, - RFs& aFs, - TDes8& aOut, - const TDesC& aIn, - TInt& aConvertedNumUDUnits ) - { - - // Do the conversion - CSmsAlphabetConverter* converter = - CSmsAlphabetConverter::NewLC( - aCharacterSetConverter, aFs, iAlphabet, iIsBinary ); - - TPtrC8 convertedPtr = converter->ConvertFromNativeL( aIn ); - aConvertedNumUDUnits = convertedPtr.Length(); - - // Do the packing - TInt octetsUsed = PackL( aOut,convertedPtr ); - - // Cleanup and return - CleanupStack::PopAndDestroy(); // converter - return octetsUsed; - } - - -// ----------------------------------------------------------------------------- -// TPhCltUssdAlphabetPacker::PackedOctetsRequiredL -// -// ----------------------------------------------------------------------------- -// -TInt TPhCltUssdAlphabetPacker::PackedOctetsRequiredL( TInt aNumUDUnits ) const - - { - TInt octetsRequired = 0; - TInt elementSizeInBits = ElementSizeInBitsL(); - if ( elementSizeInBits == 8 ) - { - octetsRequired=aNumUDUnits; - } - else - { - octetsRequired = - ( iStartBit + aNumUDUnits*elementSizeInBits + 7 )/8; // Rounds up - } - return octetsRequired; - } - - -// ----------------------------------------------------------------------------- -// TPhCltUssdAlphabetPacker::ElementSizeInBitsL -// -// ----------------------------------------------------------------------------- -// -TInt TPhCltUssdAlphabetPacker::ElementSizeInBitsL() const - { - if ( iIsBinary ) - return 8; - switch ( iAlphabet ) - { - case TSmsDataCodingScheme::ESmsAlphabet7Bit: - { - return 7; - } - case TSmsDataCodingScheme::ESmsAlphabet8Bit: - case TSmsDataCodingScheme::ESmsAlphabetUCS2: - { - return 8; - } - default: - { - User::Leave( KErrGsmSMSDataCodingSchemeNotSupported ); - return 8; - } - } - } - - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhCltUssdImp* CPhCltUssdImp::NewL( TBool aShowNotes ) - { - TFLOGSTRING("CPhCltUssdImp: NewL call") - CPhCltUssdImp* self = new( ELeave ) CPhCltUssdImp; - CleanupStack::PushL( self ); - self->ConstructL( aShowNotes ); - CleanupStack::Pop(); // self - TFLOGSTRING("CPhCltUssdImp: NewL exit") - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhCltUssdImp::ConstructL( TBool aShowNotes ) - { - TFLOGSTRING("CPhCltUssdImp: ConstructL call") - // The note controller is needed only if the notes are shown. - iNoteController = NULL; - - if ( aShowNotes ) - { - iNoteController = CPhCltUssdNoteController::NewL( - *this ); - } - - iDCS = KPhCltUssdDcsDefaultAlphabet; - iWait = new( ELeave ) CActiveSchedulerWait; - - // The one that send the request forward. - iRequestHandler = CPhCltUssdRequestHandler::NewL( - *this, - CActive::EPriorityStandard ); - TFLOGSTRING("CPhCltUssdImp: ConstructL exit") - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::CPhCltUssdImp -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltUssdImp::CPhCltUssdImp() - { - TFLOGSTRING("CPhCltUssdImp: CPhCltUssdImp call_exit") - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::~CPhCltUssdImp -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhCltUssdImp::~CPhCltUssdImp() - { - TFLOGSTRING("CPhCltUssdImp: ~CPhCltUssdImp call") - if ( iWait ) - { - if ( iWait->IsStarted() ) - { - iWait->AsyncStop(); - } - delete iWait; - iWait = NULL; - } - - delete iRequestHandler; - iRequestHandler = NULL; - - delete iNoteController; - iNoteController = NULL; - TFLOGSTRING("CPhCltUssdImp: ~CPhCltUssdImp exit") - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::HandleSendEventL -// -// Called when the Send request is completed. aError might be -// positive -> the Send is completed due received message. -// ----------------------------------------------------------------------------- -// -void CPhCltUssdImp::HandleSendEventL( const TInt aError ) - { - iSendError = Min( aError , KErrNone ); - TFLOGSTRING2("CPhCltUssdImp: HandleSendEventL\ - aError = %d call", aError) - // iNoteController is allocated only if notes are shown. - if ( iNoteController ) - { - // Send request is completed, now destroy the wait note - iNoteController->DestroyGlobalWaitNote(); - - // Show a different note depenging on the error code. - if ( aError <= 0 ) - { - switch ( aError ) - { - // All Ok. - case KErrNone: - iNoteController->ShowGlobalInformationNoteL( EPhCltUssdDone ); - break; - - // Operation cancelled. - case KErrCancel: - iNoteController->ShowGlobalInformationNoteL( EPhCltUssdUnconfirme ); - break; - - // Ongoing Ussd session or the string is barred due SS request - // or Fixed Dialling feature. - case KErrInUse: - case KErrAccessDenied: - case KErrGsmSSCallBarred: - iNoteController->ShowGlobalInformationNoteL( EPhCltUssdNotallowed ); - break; - - // No network coverage. - case KErrGsmSMSNoNetworkService: - iNoteController->ShowGlobalInformationNoteL(EPhCltUssdNoservice ); - break; - - // Offline mode. - case KErrGsmOfflineOpNotAllowed: - iNoteController->ShowGlobalInformationNoteL( EPhCltUssdOffline ); - break; - - case KErrSatControl: - break; - - // Unknown error. - default: - iNoteController->ShowGlobalInformationNoteL( EPhCltUssdNotDone ); - break; - } - } - } - - // Let the original active object (one that did the send request) run again. - if ( iWait->IsStarted() ) - { - iWait->AsyncStop(); - } - TFLOGSTRING("CPhCltUssdImp: HandleSendEventL exit") - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::SendUssd -// -// 16-bit buffer is packed into 7-bit stream and sent. -// Default alphabet is used. -// ----------------------------------------------------------------------------- -// -TInt CPhCltUssdImp::SendUssd( const TDesC& aMsgData ) - { - __ASSERT_ALWAYS( aMsgData.Length() <= KPhCltUssdMax8BitCharacters, - User::Invariant() ); - - TRAPD( err , - { - HBufC8* buffer8 = HBufC8::NewLC( KPhCltUssdMax7BitCharacterOctets ); - - TPtr8 ptr8 = buffer8->Des(); - EncodeL( aMsgData , ptr8 ); - - User::LeaveIfError( SendUssd( ptr8 ) ); - - CleanupStack::PopAndDestroy(); // ptr8 - }); - - return err; - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::SendUssd -// -// Packed buffer is send to the network with default alphabet. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ - -TInt CPhCltUssdImp::SendUssd( const TDesC8& aMsgData ) - { - __ASSERT_ALWAYS( aMsgData.Length() <= KPhCltUssdMax7BitCharacterOctets, - User::Invariant() ); - - return SendUssd( aMsgData , iDCS ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::SendUssd -// -// Packed buffer is sent to network with given alphabet. -// ----------------------------------------------------------------------------- -// -TInt CPhCltUssdImp::SendUssd( - const TDesC8& aMsgData, - const TUint8 iSendDcs ) - { - TFLOGSTRING("CPhCltUssdImp: SendUssd call") - __ASSERT_ALWAYS( aMsgData.Length() <= KPhCltUssdMax7BitCharacterOctets, - User::Invariant() ); - - RMobileUssdMessaging::TMobileUssdAttributesV1 attribute; - - attribute.iFlags = - RMobileUssdMessaging::KUssdDataFormat + - RMobileUssdMessaging::KUssdMessageDcs; - if ( iDCS2 == KPhCltDcs7Bit ) - { - attribute.iFormat = RMobileUssdMessaging::EFormatPackedString; - } - else - { - attribute.iFormat = RMobileUssdMessaging::EFormatUnspecified; - } - - if ( iSendDcs == KPhCltUssdDcsNotSet ) // 0x00 - { - attribute.iDcs = KPhCltUssdDcsDefaultAlphabet; - } - else - { - attribute.iDcs = iSendDcs; - } - - RMobileUssdMessaging::TMobileUssdAttributesV1Pckg - attributePckg( attribute ); - - - if ( iWait->IsStarted() ) - { - return KErrInUse; - } - - iSendError = KErrNone; - TFLOGSTRING("CPhCltUssdImp: SendUssd iRequestHandler") - iRequestHandler->SendUssd( aMsgData , attributePckg ); - // iNoteController is allocated only if notes are shown. - TFLOGSTRING("CPhCltUssdImp: SendUssd ShowGlobalWaitNoteL") - if ( iNoteController ) - { - TRAP_IGNORE( iNoteController->ShowGlobalWaitNoteL(); - ); - } - TFLOGSTRING("CPhCltUssdImp: SendUssd iWait") - - // Set this active object to wait the completion of the send request. - iWait->Start(); - - TFLOGSTRING("CPhCltUssdImp: SendUssd exit") - return iSendError; - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::SendUssdCancel -// -// Cancels the out-standing request. -// ----------------------------------------------------------------------------- -// -void CPhCltUssdImp::SendUssdCancel() - { - TFLOGSTRING("CPhCltUssdImp: SendUssdCancel call") - iRequestHandler->SendUssdCancel(); - TFLOGSTRING("CPhCltUssdImp: SendUssdCancel exit") - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::StartUssdEditor -// -// Request Ussd App to start -// --------------------------------------------------------------------------- -// -TInt CPhCltUssdImp::StartUssdEditor() const - { - return iRequestHandler->UssdClient().StartUssdEditor(); - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::AppStarting -// -// UI informs that it is been created -// ----------------------------------------------------------------------------- -// -TInt CPhCltUssdImp::AppStarting() - { - TFLOGSTRING("CPhCltUssdImp: AppStarting call") - TInt res = iRequestHandler->UssdClient().AppStarting(); - TFLOGSTRING2("CPhCltUssdImp: AppStarting exit res = %d",res) - return res; - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::AppTerminating -// -// UI informs that it is terminating -// ----------------------------------------------------------------------------- -// -TInt CPhCltUssdImp::AppTerminating( - TPhCltUssdAppExitReason aExitReason ) - { - TFLOGSTRING("CPhCltUssdImp: AppTerminating call") - TInt res = iRequestHandler->UssdClient().AppTerminating( aExitReason ); - TFLOGSTRING2("CPhCltUssdImp: AppTerminating exit res = %d",res) - return res; - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::AppToForeground -// -// UI informs that it is brougth to foreground -// ----------------------------------------------------------------------------- -// -TBool CPhCltUssdImp::AppToForeground() - { - TFLOGSTRING("CPhCltUssdImp: AppToForeground call") - TBool res = iRequestHandler->UssdClient().AppToForeground(); - TFLOGSTRING2("CPhCltUssdImp: AppToForeground exit res = %d",res) - return res; - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::AppToBackground -// -// UI informs that it is gone background -// ----------------------------------------------------------------------------- -// -TInt CPhCltUssdImp::AppToBackground() - { - TFLOGSTRING("CPhCltUssdImp: AppToBackground call") - TInt res = iRequestHandler->UssdClient().AppToBackground(); - TFLOGSTRING2("CPhCltUssdImp: AppToBackground exit res = %d",res) - return res; - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::StartSAT -// -// -// ----------------------------------------------------------------------------- -// -void CPhCltUssdImp::StartSAT( - TRequestStatus& aStatus, - TDes& aReceiveMessage, - TPckg< TUint >& aShowNotesAndDcs ) - { - TFLOGSTRING("CPhCltUssdImp: StartSAT call") - iRequestHandler->UssdClient().StartSAT( aStatus, aReceiveMessage, aShowNotesAndDcs ); - TFLOGSTRING("CPhCltUssdImp: StartSAT exit") - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::StopSAT -// -// Cancels SAT session -// ----------------------------------------------------------------------------- -// - void CPhCltUssdImp::StopSAT() - { - TFLOGSTRING("CPhCltUssdImp: StopSAT call") - iRequestHandler->UssdClient().StopSAT(); - TFLOGSTRING("CPhCltUssdImp: StopSAT exit") - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::GlobalWaitNoteHidden -// -// Dialog is hidden by the cancel key. -// ----------------------------------------------------------------------------- -// -void CPhCltUssdImp::GlobalWaitNoteHidden() - { - TFLOGSTRING("CPhCltUssdImp: GlobalWaitNoteHidden call") - TFLOGSTRING("CPhCltUssdImp: GlobalWaitNoteHidden exit") - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::EncodeL -// -// Converts a given Uniocde string into 7-bit buffer. -// ----------------------------------------------------------------------------- -// -void CPhCltUssdImp::EncodeL( const TDesC& aSrc, TDes8& aDes ) - { - TFLOGSTRING("CPhCltUssdImp: EncodeL call") - aDes.Zero(); - TSmsDataCodingScheme::TSmsAlphabet alphabet = - TSmsDataCodingScheme::ESmsAlphabet7Bit; // default - - CCnvCharacterSetConverter* charConv = CCnvCharacterSetConverter::NewLC(); - - TUint cutChars = 0; - TUint startBit = 0; - - if ( iDCS == KPhCltUssdDcsAlphabetDefaultPrecededLanguage ) - { - alphabet = TSmsDataCodingScheme::TSmsDataCodingScheme::ESmsAlphabet7Bit; - FindFirstCarriageReturnL( aSrc , cutChars , startBit ); - - } - else if ( iDCS == KPhCltUssdDcsAlphabetUCS2PrecededLanguage ) - { - alphabet = TSmsDataCodingScheme::ESmsAlphabetUCS2; - cutChars = KPhCltUssdDcsAlphabetUCS2PrecededLanguageSkipChars; - } - else if ( (iDCS & KPhCltUssdDcsGeneralInformationMask) == - KPhCltUssdDcsGeneralInformation ) // General data coding information - { - //Is text compressed? - if ( iDCS & KPhCltUssdDcsGeneralInformationCompressed ) - { - User::Leave( KErrNotSupported ); - } - // Is SIM specific message - else if ( ( iDCS & KPhCltUssdDcsGeneralInformationSimMask ) - == KPhCltUssdDcsGeneralInformationSim ) - { - User::Leave( KErrAbort ); // Do not show any messages - } - // 8 bit data? - else if ( ( iDCS & KPhCltUssdDcsGeneralInformationAlphabetMask ) == - KPhCltUssdDcsGeneralInformationAlphabet8Bit ) - { - alphabet = TSmsDataCodingScheme::ESmsAlphabet8Bit; - } - // UCS2 bit data? - else if ( ( iDCS & KPhCltUssdDcsGeneralInformationAlphabetMask ) == - KPhCltUssdDcsGeneralInformationAlphabetUCS2 ) - { - alphabet = TSmsDataCodingScheme::ESmsAlphabetUCS2; - } - } - // Data coding/message handling - else if ( ( iDCS & KPhCltUssdDcsMessageHandlingAlphabetMask ) - == KPhCltUssdDcsMessageHandlingAlphabet8Bit ) - { - alphabet = TSmsDataCodingScheme::ESmsAlphabet8Bit; - } - - TPhCltUssdAlphabetPacker* packer = - new ( ELeave ) TPhCltUssdAlphabetPacker( - alphabet, EFalse, startBit ); - CleanupStack::PushL( packer ); - - - RFs fs; - User::LeaveIfError( fs.Connect() ); - CleanupClosePushL( fs ); - - TInt numberOfElem = 0; - // packer->ConvertAndPackL( - // *charConv , fs , aDes , aSrc , numberOfElem ); - - - if ( alphabet == TSmsDataCodingScheme::ESmsAlphabet7Bit ) - { - //TInt numberOfElem = (( aSrc.Length() - cutChars ) * 8 - startBit ) / 7; - - packer->ConvertAndPackL( - *charConv , fs , aDes , aSrc.Right( aSrc.Length() - cutChars ), numberOfElem ); - - // DCS was 7-bit data. - iDCS2 = KPhCltDcs7Bit; - } - else // ESmsAlphabet8Bit || ESmsAlphabetUCS2 - { - CSmsAlphabetConverter* converter = - CSmsAlphabetConverter::NewLC( - *charConv ,fs, alphabet, EFalse ); - - aDes = converter->ConvertFromNativeL( - aSrc.Right( aSrc.Length() - cutChars ) ); - CleanupStack::PopAndDestroy(); //converter - - if( alphabet == TSmsDataCodingScheme::ESmsAlphabet8Bit ) - { - // DCS was 8-bit data. - iDCS2 = KPhCltDcs8Bit; - } - else if( alphabet == TSmsDataCodingScheme::ESmsAlphabetUCS2 ) - { - //DCS was UCS2 data. - iDCS2 = KPhCltDcsUcs2; - } - // If DCS not 8-bit or UCS2, then EPhCltDcsUnknown is returned. - } - - CleanupStack::PopAndDestroy(3); // fs, packer, charConv - TFLOGSTRING("CPhCltUssdImp: EncodeL exit") - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::SetDCS() -// -// Set data coding scheme -// ----------------------------------------------------------------------------- -// -void CPhCltUssdImp::SetDCS( TUint8 aDCS ) - { - iDCS = aDCS; - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdImp::FindFirstCarriageReturnL -// ----------------------------------------------------------------------------- -// -void CPhCltUssdImp::FindFirstCarriageReturnL( - const TDesC& aBuffer , - TUint& aSkipChars , - TUint& aStartBit ) - { - if ( aBuffer.Length() < 3 ) - { - User::Leave( KErrUnderflow ); - } - - aSkipChars = 0; - aStartBit = 0; - - // Try out two different cases: - // 1. Find CR from thrid byte - // 2. Find CR from second byte, starting from bit 6 - - // 1.: - if ( aBuffer[2] == KPhCltUssdCarriageReturn ) - { - aSkipChars = KPhCltUssdDcsAlphabetDefaultPrecededLanguageSkipChars3; - aStartBit = 0; - return; - } - - // 2.: - // First put the pieces together and then compare - // Take last 2 bits from the second byte: - TUint result1 = aBuffer[1]; - result1 = result1 >> 6; - - // Take first 5 bits from the third byte: - TUint result2 = aBuffer[2]; - result2 = result2 & 0x1f; // bits 0-4. - result2 = result2 << 2; // move to bits 2-6. - - TUint result = result1 + result2; // 0000 00xx + 0xxx xx00 - if ( result == KPhCltUssdCarriageReturn ) - { - aSkipChars = KPhCltUssdDcsAlphabetDefaultPrecededLanguageSkipChars2; - aStartBit = KPhCltUssdDcsAlphabetDefaultPrecededLanguageStartBit; - return; - } - - // Is was not case 1. or 2. so we are not supporting sort of string. - User::Leave( KErrNotSupported ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdInt.cpp --- a/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdInt.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002 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: Ussd Interface, -* -*/ - - - -// INCLUDE FILES -#include "cphcltussdint.h" -#include "cphcltussdimp.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltUssdInt::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltUssdInt* CPhCltUssdInt::NewL( TBool aShowNotes ) - { - return CPhCltUssdImp::NewL( aShowNotes ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdInt::CPhCltUssdInt -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltUssdInt::CPhCltUssdInt( ) - { - } - - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdNoteController.cpp --- a/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdNoteController.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,262 +0,0 @@ -/* -* Copyright (c) 2009-2010 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: Ussd note controller -* -*/ - - -// INCLUDE FILES -#include -#include -#include - -#include "phcltclientserver.h" -#include "cphcltussdnotecontroller.h" -#include "tflogger.h" - -_LIT(KUssdLocFilename, "ussd_"); -_LIT(KCommonLocFilename, "common_"); -_LIT(KPath, "z:\\resource\\qt\\translations"); -_LIT(KUssdRequesting, "txt_common_info_requesting"); // Requesting -_LIT(KUssdDone, "txt_ussd_dpopinfo_done"); // Done -_LIT(KUssdNotDone, "txt_ussd_dpopinfo_not_done"); // NotDone -_LIT(KUssdNotAllowed, "txt_ussd_dpopinfo_not_allowed"); //NotAllowed -_LIT(KUssdUnconfirmed, "txt_ussd_dpopinfo_unconfirmed"); // Unconfirmed -_LIT(KUssdNoService, "txt_ussd_dpopinfo_no_service"); // NoService -_LIT(KUssdOffline, "txt_ussd_dpopinfo_offline_not_possible"); // Offline -_LIT(KUssdHide, "txt_common_button_hide"); // Hide - -const int KPhCltUssdProgressBarMaxLength = 10; -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhCltUssdNoteController* CPhCltUssdNoteController::NewL( - MPhCltUssdNoteControllerCallBack& aCallBack ) - { - TFLOGSTRING("CPhCltUssdNoteController: NewL call") - CPhCltUssdNoteController* self = new( ELeave ) - CPhCltUssdNoteController( aCallBack ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - TFLOGSTRING("CPhCltUssdNoteController: NewL exit") - return self; - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhCltUssdNoteController::ConstructL() - { - TFLOGSTRING( "CPhCltUssdNoteController: ConstructL call_exit" ) - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::CPhCltUssdNoteController -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -CPhCltUssdNoteController::CPhCltUssdNoteController( - MPhCltUssdNoteControllerCallBack& aCallBack ) - : iGlobalWaitNote( NULL ), - iCallBack( aCallBack ), - iIsResolverSuccess( EFalse ), - iGlobalResource( NULL ) - { - TFLOGSTRING("CPhCltUssdNoteController: CPhCltUssdNoteController call") - TFLOGSTRING("CPhCltUssdNoteController: CPhCltUssdNoteController exit") - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController:~CPhCltUssdNoteController -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltUssdNoteController::~CPhCltUssdNoteController() - { - TFLOGSTRING("CPhCltUssdNoteController: ~CPhCltUssdNoteController call") - DestroyGlobalWaitNote(); - TFLOGSTRING("CPhCltUssdNoteController: ~CPhCltUssdNoteController exit") - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::ShowGlobalInformationNoteL -// ----------------------------------------------------------------------------- -void CPhCltUssdNoteController::ShowGlobalInformationNoteL( - const TPhCltUssdInformationType aInfoType ) - { - TFLOGSTRING2("CPhCltUssdNoteController: ShowGlobalInformationNoteL\ - aInfoType = %d call", aInfoType) - iIsResolverSuccess = HbTextResolverSymbian::Init( KUssdLocFilename, KPath ); - TFLOGSTRING2("CPhCltUssdNoteController: ShowGlobalInformationNoteL\ - ussd iIsResolverSuccess = %d", iIsResolverSuccess ) - HBufC* temp(NULL); - switch ( aInfoType ) - { - case EPhCltUssdUnconfirme: - { - temp = LoadDefaultStringL(KUssdUnconfirmed); - break; - } - case EPhCltUssdNotallowed: - { - temp = LoadDefaultStringL(KUssdNotAllowed); - break; - } - case EPhCltUssdNoservice: - { - temp = LoadDefaultStringL(KUssdNoService); - break; - } - case EPhCltUssdOffline: - { - temp = LoadDefaultStringL(KUssdOffline); - break; - } - case EPhCltUssdDone: - { - temp = LoadDefaultStringL(KUssdDone); - break; - } - case EPhCltUssdNotDone: - { - temp = LoadDefaultStringL(KUssdNotDone); - break; - } - default: - { - User::Leave( KErrArgument ); - } - break; - } - CHbDeviceMessageBoxSymbian* dlg = CHbDeviceMessageBoxSymbian::NewL( - CHbDeviceMessageBoxSymbian::EInformation); - CleanupStack::PushL( dlg ); - dlg->SetTextL( temp->Des() ); - dlg->SetButton( CHbDeviceMessageBoxSymbian::EAcceptButton, - ETrue ); - dlg->ExecL(); - CleanupStack::PopAndDestroy( dlg ); - delete temp; - temp = NULL; - TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalInformationNoteL exit") - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::ShowGlobalWaitNoteL -// ----------------------------------------------------------------------------- -void CPhCltUssdNoteController::ShowGlobalWaitNoteL( ) - { - TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL call") - DestroyGlobalWaitNote(); - iIsResolverSuccess = HbTextResolverSymbian::Init( KCommonLocFilename, KPath ); - TFLOGSTRING2("CPhCltUssdNoteController: ConstructL\ - init common iIsResolverSuccess = %d", iIsResolverSuccess ) - //CHbDeviceProgressDialogSymbian - iGlobalWaitNote = CHbDeviceProgressDialogSymbian::NewL( - CHbDeviceProgressDialogSymbian::EProgressDialog ); - CleanupStack::PushL( iGlobalWaitNote ); - iGlobalResource = LoadDefaultStringL( KUssdRequesting ); - iGlobalWaitNote->SetTextL( iGlobalResource->Des() ); - iGlobalWaitNote->SetObserver( this ); - TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL before setactive") - iGlobalWaitNote->SetRange(0,KPhCltUssdProgressBarMaxLength); - iGlobalWaitNote->SetProgressValue( KPhCltUssdProgressBarMaxLength ); - iGlobalWaitNote->SetAutoClose( EFalse ); - iGlobalWaitNote->SetButtonTextL( LoadDefaultStringL( KUssdHide )->Des() ); - iGlobalWaitNote->ShowL(); - CleanupStack::Pop( iGlobalWaitNote ); - TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL after setactive") - TFLOGSTRING("CPhCltUssdNoteController: ShowGlobalWaitNoteL exit") - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::DestroyGlobalWaitNote -// ----------------------------------------------------------------------------- -void CPhCltUssdNoteController::DestroyGlobalWaitNote() - { - TFLOGSTRING("CPhCltUssdNoteController: DestroyGlobalWaitNote call") - if ( iGlobalWaitNote ) - { - iGlobalWaitNote->Close(); - delete iGlobalWaitNote; - iGlobalWaitNote = NULL; - delete iGlobalResource; - iGlobalResource = NULL; - } - TFLOGSTRING("CPhCltUssdNoteController: DestroyGlobalWaitNote exit") - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::ProgressDialogCancelled -// -// -// ----------------------------------------------------------------------------- -// -void CPhCltUssdNoteController::ProgressDialogCancelled( - const CHbDeviceProgressDialogSymbian* /*aProgressDialog*/) - { - TFLOGSTRING("CPhCltUssdNoteController: ProgressDialogCancelled call") - iCallBack.GlobalWaitNoteHidden(); - delete iGlobalResource; - iGlobalResource = NULL; - TFLOGSTRING("CPhCltUssdNoteController: ProgressDialogCancelled exit") - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::ProgressDialogClosed -// -// -// ----------------------------------------------------------------------------- -// -void CPhCltUssdNoteController::ProgressDialogClosed( - const CHbDeviceProgressDialogSymbian* /*aProgressDialog*/) - { - TFLOGSTRING("CPhCltUssdNoteController: ProgressDialogClosed call") - TFLOGSTRING("CPhCltUssdNoteController: ProgressDialogClosed exit") - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdNoteController::LoadDefaultString -// -// -// ----------------------------------------------------------------------------- -// -HBufC* CPhCltUssdNoteController::LoadDefaultStringL( const TDesC& aText ) - { - TFLOGSTRING("CPhCltUssdNoteController: LoadDefaultString call") - HBufC* newText = NULL; - if ( iIsResolverSuccess ) - { - newText = HbTextResolverSymbian::LoadL( aText ); - } - else - { - newText = aText.AllocL(); - TFLOGSTRING("CPhCltUssdNoteController: LoadDefaultString load failed."); - } - TFLOGSTRING("CPhCltUssdNoteController: LoadDefaultString exit") - return newText; - } - -// End of file - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdRequestHandler.cpp --- a/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdRequestHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2002 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: Ussd Notify Handler -* -*/ - - - -// INCLUDE FILES -#include "cphcltussdrequesthandler.h" -#include "mphcltussdrequesthandler.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltUssdRequestHandler::CPhCltUssdRequestHandler -// C++ constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltUssdRequestHandler::CPhCltUssdRequestHandler( - MPhCltUssdRequestHandler& aHandler, - TInt aPriority ) - : CActive( aPriority ), iHandler( aHandler ) - { - CActiveScheduler::Add( this ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdRequestHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhCltUssdRequestHandler* CPhCltUssdRequestHandler::NewL( - MPhCltUssdRequestHandler& aHandler, - TInt aPriority ) - { - CPhCltUssdRequestHandler* self = - new( ELeave ) CPhCltUssdRequestHandler( aHandler , aPriority ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdRequestHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhCltUssdRequestHandler::ConstructL() - { - User::LeaveIfError( iPhClient.Connect() ); - User::LeaveIfError( iUssdClient.Open( iPhClient ) ); - } - - -// Destructor -CPhCltUssdRequestHandler::~CPhCltUssdRequestHandler() - { - Cancel(); - - //iUssdClient.CancelSend(); Fix to ou1cimx1#265402 - iUssdClient.Close(); - - iPhClient.Close(); - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdRequestHandler::SendUssd -// -// Called when Sending -// ----------------------------------------------------------------------------- -void CPhCltUssdRequestHandler::SendUssd( - const TDesC8& aMsgData, - const TDesC8& aMsgAttribute ) - { - iUssdClient.SendUssd( iStatus , aMsgData , aMsgAttribute ); - SetActive(); - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdRequestHandler::SendUssdCancel -// -// ----------------------------------------------------------------------------- -void CPhCltUssdRequestHandler::SendUssdCancel() - { - if ( IsActive() ) - { - Cancel(); - TRAP_IGNORE( iHandler.HandleSendEventL( KErrCancel ) ); - } - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdRequestHandler::UssdClient -// -// Returns USSD Client instance -// ----------------------------------------------------------------------------- -RPhCltUssd& CPhCltUssdRequestHandler::UssdClient() - { - return iUssdClient; - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdRequestHandler::RunL -// -// Called when Send completes -// ----------------------------------------------------------------------------- -void CPhCltUssdRequestHandler::RunL() - { - iHandler.HandleSendEventL( iStatus.Int() ); - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdRequestHandler::DoCancel -// -// Called when Send is cancelled -// ----------------------------------------------------------------------------- - -void CPhCltUssdRequestHandler::DoCancel() - { - iUssdClient.CancelSend(); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdSatClient.cpp --- a/phoneclientserver/phoneclient/Src/UssdWrapper/CPhCltUssdSatClient.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,365 +0,0 @@ -/* -* Copyright (c) 2002 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: Ussd Sat Client. -* -*/ - - - -// INCLUDE FILES -#include "cphcltussdimp.h" -#include "phcltclientserver.h" -#include -#include - - -// ============================= LOCAL FUNCTIONS =============================== - -#ifndef CPHCLTUSSDSATACTIVE_H -#define CPHCLTUSSDSATACTIVE_H - -/** -* The waiter class for SAT sessions. -*/ -NONSHARABLE_CLASS( CPhCltUssdSatActive ) : public CActive - { - public: - - /** - * Constructor. - */ - CPhCltUssdSatActive(); - - /** - * Destructor. - */ - ~CPhCltUssdSatActive(); - - /** - * Set this active object active. - * Hides the function derived from CActive. - */ - void SetActive(); - - /** - * Wait until the Sat Session is ended. - * @return The error code of the session. - */ - TInt WaitSatSessionToEnd(); - - - protected: // From base classes - - /** - * @see CActive::RunL - */ - void RunL(); - - /** - * @see CActive::DoCancel - */ - void DoCancel(); - - - private: - - // The Active scheduler waiter. - CActiveSchedulerWait iSatWaiter; - - // The error code storage place. - TInt* iError; - }; - -#endif // CPHCLTUSSDSATACTIVE_H - - -// ----------------------------------------------------------------------------- -// CPhCltUssdSatActive::CPhCltUssdSatActive -// -// ----------------------------------------------------------------------------- -// -CPhCltUssdSatActive::CPhCltUssdSatActive() : CActive( EPriorityStandard ) - { - CActiveScheduler::Add( this ); - } - - -// Destructor -CPhCltUssdSatActive::~CPhCltUssdSatActive() - { - Cancel(); - if ( iSatWaiter.IsStarted() ) - { - iSatWaiter.AsyncStop(); - } - - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdSatActive::SetActive -// -// ----------------------------------------------------------------------------- -// -void CPhCltUssdSatActive::SetActive() - { - CActive::SetActive(); - iError = NULL; - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdSatActive::WaitSatSessionToEnd -// -// ----------------------------------------------------------------------------- -// -TInt CPhCltUssdSatActive::WaitSatSessionToEnd() - { - if ( !IsActive() ) - { - if ( iError ) - { - return *iError; - } - else - { - return KErrNone; - } - } - - TInt error = KErrNone; - iError = &error; - iSatWaiter.Start(); - return error; - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdSatActive::RunL -// -// ----------------------------------------------------------------------------- -// -void CPhCltUssdSatActive::RunL() - { - if ( iError ) - { - *iError = iStatus.Int(); - } - if ( iSatWaiter.IsStarted() ) - { - iSatWaiter.AsyncStop(); - } - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdSatActive::DoCancel -// -// ----------------------------------------------------------------------------- -// -void CPhCltUssdSatActive::DoCancel() - { - if ( iError ) - { - *iError = KErrCancel; - } - } - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhCltUssdSatClient::CPhCltUssdSatClient -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltUssdSatClient::CPhCltUssdSatClient() - { - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdSatClient::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhCltUssdSatClient::ConstructL( TBool aShowNotes ) - { - iUssdWrapper = CPhCltUssdImp::NewL( aShowNotes ); - - iShowNotes = aShowNotes; - - iSatActive = new( ELeave ) CPhCltUssdSatActive(); - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdSatClient::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltUssdSatClient* CPhCltUssdSatClient::NewL( TBool aShowNotes ) - { - CPhCltUssdSatClient* self = new ( ELeave ) CPhCltUssdSatClient; - - CleanupStack::PushL( self ); - self->ConstructL( aShowNotes ); - CleanupStack::Pop(); - - return self; - } - - -// Destructor -EXPORT_C CPhCltUssdSatClient::~CPhCltUssdSatClient() - { - if ( iSatActive ) - { - if ( iSatActive->IsActive() ) - { - iUssdWrapper->StopSAT(); - } - delete iSatActive; - iSatActive = NULL; - } - - delete iUssdWrapper; - iUssdWrapper = NULL; - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdSatClient::SendSatMessage -// Send SAT message and receive the last message. -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CPhCltUssdSatClient::SendSatMessage( - const TDesC& aSendMessage, - const TUint8 iSendDcs, - TDes& aReceiveMessage, - TBool& aSendCompletedFirst, - TUint8& aReceivedDcs) - { - // Do not process request if earlier request is ongoing. - if ( iSatActive->IsActive() ) - { - // Stop (complete) the earlier request so that we can send new - // SATmessage during next function call. - iUssdWrapper->StopSAT(); - return KErrInUse; - } - iUssdWrapper->SetDCS( iSendDcs ); - iSatError = KErrNone; - iSendCompletedFirst = &aSendCompletedFirst; - *iSendCompletedFirst = ETrue; - iReceiveMessage.Set( aReceiveMessage ); - aReceiveMessage.Zero(); - aReceivedDcs = EPhCltDcsUnknown; - - iShowNotesAndDcs = 0; // reset the variable - if ( iShowNotes ) - { - iShowNotesAndDcs = KPhCltShowNotes; - } - - TPckg< TUint > showNotesAndDcs( iShowNotesAndDcs ); - - // Send receive message to the server. status is completed when Ussd session - // ends. - iUssdWrapper->StartSAT( - iSatActive->iStatus, - aReceiveMessage , - showNotesAndDcs ); - - iSatActive->SetActive(); - - - // Now send the string according to the parameter. - TPtrC pMessage( aSendMessage ); - iSatError = iUssdWrapper->SendUssd( pMessage ); - - if ( iSatError != KErrNone ) - { - iSendCompletedFirst = NULL; - iUssdWrapper->StopSAT(); - - iSatActive->WaitSatSessionToEnd(); - return iSatError; // Message send error - } - - // Wait until the Ussd conversation is over: - TInt satWaiterError = iSatActive->WaitSatSessionToEnd(); - if ( satWaiterError > KErrNone ) - { - *iSendCompletedFirst = EFalse; - } - - // Get the error code: - iSatError = Min ( iSatError, satWaiterError ); - - iSendCompletedFirst = NULL; - - // Return the DCS to the caller. - DecodeDcs( aReceivedDcs ); - aReceivedDcs = iShowNotesAndDcs; - return iSatError; // Receive error code - } - - -// ----------------------------------------------------------------------------- -// CPhCltUssdSatClient::SendSatMessageCancel -// -// Cancels the out-standing request. -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhCltUssdSatClient::SendSatMessageCancel() - { - iUssdWrapper->SendUssdCancel(); - iSendCompletedFirst = NULL; - iUssdWrapper->StopSAT(); - iSatActive->Cancel(); - } - -// ----------------------------------------------------------------------------- -// CPhCltUssdSatClient::DecodeDcs -// -// In this function the DCS received from PhoneServer is decoded. -// ----------------------------------------------------------------------------- -// -void CPhCltUssdSatClient::DecodeDcs( TUint8& aReceivedDcs ) - { - // Check what DCS was used, and update aReceivedDcs - if ( iShowNotesAndDcs == KPhCltDcs7Bit ) - { - aReceivedDcs = EPhCltDcs7Bit; - } - else if ( iShowNotesAndDcs == KPhCltDcs8Bit ) - { - aReceivedDcs = EPhCltDcs8Bit; - } - else if ( iShowNotesAndDcs == KPhCltDcsUcs2 ) - { - aReceivedDcs = EPhCltDcsUCS2; - } - else - { - aReceivedDcs = EPhCltDcsUnknown; - } - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/conf/telephonyservices_102029AC.crml Binary file phoneclientserver/phoneclient/conf/telephonyservices_102029AC.crml has changed diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/conf/telephonyservices_102078F1.crml Binary file phoneclientserver/phoneclient/conf/telephonyservices_102078F1.crml has changed diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneclient/rom/PhoneClient.iby --- a/phoneclientserver/phoneclient/rom/PhoneClient.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: IBY file of PhoneClient -* -*/ - - -#ifndef __PHONECLIENT_IBY__ -#define __PHONECLIENT_IBY__ - - -file=ABI_DIR\BUILD_DIR\phoneclient.dll SHARED_LIB_DIR\phoneclient.dll -data=ZSYSTEM\install\phoneclient_stub.sis system\install\phoneclient_stub.sis -#endif diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Bmarm/PHONESERVERU.DEF --- a/phoneclientserver/phoneserver/Bmarm/PHONESERVERU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -EXPORTS - New__12CPhSrvServer @ 1 NONAME ; CPhSrvServer::New(void) - StartThread__Fv @ 2 NONAME ; StartThread(void) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Bwins/PHONESERVER.def --- a/phoneclientserver/phoneserver/Bwins/PHONESERVER.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - ?WinsMain@@YAHXZ @ 1 NONAME ; int __cdecl WinsMain(void) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Bwins/PHONESERVERU.DEF --- a/phoneclientserver/phoneserver/Bwins/PHONESERVERU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -EXPORTS - ?New@CPhSrvServer@@SAXXZ @ 1 NONAME ; public: static void __cdecl CPhSrvServer::New(void) - ?StartThread@@YAHXZ @ 2 NONAME ; int __cdecl StartThread(void) - ?ThreadFunction@CPhSrvServer@@SAHPAX@Z @ 3 NONAME ; public: static int __cdecl CPhSrvServer::ThreadFunction(void *) - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Group/PhoneServer.mmp --- a/phoneclientserver/phoneserver/Group/PhoneServer.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Phone Server project specification file. -* -*/ - -#include -#include -#include - -// Capability assignment. -CAPABILITY CAP_SERVER NetworkControl -// Assign Vendor ID. -VENDORID VID_DEFAULT - -TARGET phoneserver.exe -EPOCSTACKSIZE 0x5000 - -TARGETPATH /system/programs -TARGETTYPE EXE - -UID 0x1000008d 0x10000850 - -SOURCEPATH . -START RESOURCE ../src/resources/phoneserver.rss -HEADER -TARGETPATH RESOURCE_FILES_DIR -LANGUAGE_IDS -END // RESOURCE - -SOURCEPATH ../src/standard -SOURCE phsrvstartup.cpp -SOURCE phsrvsubsessionfactory.cpp -SOURCE phsrvutils.cpp - -SOURCE cphsrvscheduler.cpp -SOURCE cphsrvserver.cpp -SOURCE cphsrvsession.cpp -SOURCE cphsrvresourcemanager.cpp -SOURCE cphsrvphonecontroller.cpp -SOURCE cphsrvemergencynumbermanager.cpp - -SOURCE cphsrvsubsessionbase.cpp -SOURCE cphsrvsubsessionussd.cpp - -SOURCE phsrvdebuginfo.cpp - -SOURCEPATH ../src/standard/standard_aiw -SOURCE cphcltextphonedialdata.cpp -SOURCE cphcltdialdata.cpp -SOURCE cphsrvemergencyrequestmanager.cpp -SOURCE cphsrvcallrequest.cpp -SOURCE cphsrvcallrequestmanager.cpp -SOURCE cphsrvsubsessionnotifier.cpp -SOURCE cphsrvsubsessionextcall.cpp -SOURCE cphsrvsubsessionemergencynum.cpp - -SOURCEPATH ../src/imagehandler -SOURCE cphsrvsubsessionimagehandler.cpp -SOURCE cphsrvimagesaver.cpp - -SOURCEPATH ../src/ussd -SOURCE cphsrvussdreplytimer.cpp -SOURCE cphsrvussdsendhandler.cpp -SOURCE cphsrvussdreceivehandler.cpp -SOURCE cphsrvussdmanager.cpp -SOURCE cphsrvussdnotifynwrelease.cpp - -SOURCEPATH ../src/commandhandler -#if defined( __AT_HANDLER ) -SOURCE cphsrvsubsessioncommandhandler.cpp -SOURCE cphsrvcomhandrequest.cpp -#else // No __AT_HANDLER defined, so stub version is used. -SOURCE cphsrvsubsessioncommandhandlerstub.cpp -SOURCE cphsrvsubsessioncommandhandlernotifystub.cpp -#endif // __AT_HANDLER - -SOURCEPATH ../src/commandhandler/commandhandler_aiw - -#if defined( __AT_HANDLER ) -SOURCE cphsrvcomhandrequestmanager.cpp -#else // No __AT_HANDLER defined, so stub version is used. -SOURCE cphsrvcomhandrequestmanagerstub.cpp -#endif // __AT_HANDLER - -SOURCEPATH ../src/messenger -#if defined( __CS_VIDEO_TELEPHONY ) -SOURCE cphsrvmessengerobject.cpp -SOURCE cphsrvmessengerrequestmanager.cpp -SOURCE cphsrvsubsessionmessenger.cpp -#else // No __CS_VIDEO_TELEPHONY defined, so stub version is used. -SOURCE cphsrvmessengerrequestmanagerstub.cpp -SOURCE cphsrvsubsessionmessengerstub.cpp -#endif // __CS_VIDEO_TELEPHONY - -USERINCLUDE ../inc/standard -USERINCLUDE ../inc/standard/standard_aiw -USERINCLUDE ../inc/ussd -USERINCLUDE ../inc/commandhandler -USERINCLUDE ../inc/messenger -USERINCLUDE ../inc/imagehandler - -USERINCLUDE ../../phoneclient/inc/sharedclientserver - -// <-- QT PHONE START--> -MW_LAYER_SYSTEMINCLUDE -// <-- QT PHONE END--> - -SYSTEMINCLUDE ../../../inc -SYSTEMINCLUDE ../../inc // for RPhCltEmergencyCall.h, CPhCltExtPhoneDialData.h - -// TEMPORARY DEFINITION FOR TELEPHONY VARIATION HEADERS -SYSTEMINCLUDE ../../../../../app/phone/inc - -// TEMPORARY DEFINITION FOR Orbit Device Dialog -SYSTEMINCLUDE /epoc32/include/mw/hb/hbwidgets -SYSTEMINCLUDE /epoc32/include/mw/hb/hbcore - -LIBRARY efsrv.lib -LIBRARY apgrfx.lib -LIBRARY charconv.lib -LIBRARY euser.lib -LIBRARY ws32.lib -LIBRARY etel.lib -LIBRARY bafl.lib -LIBRARY gsmu.lib -LIBRARY apparc.lib -LIBRARY customapi.lib -LIBRARY etelmm.lib -LIBRARY commonengine.lib -LIBRARY featmgr.lib -LIBRARY fbscli.lib -LIBRARY estor.lib -LIBRARY centralrepository.lib -LIBRARY imageconversion.lib -LIBRARY bitmaptransforms.lib -LIBRARY hbwidgets.lib -LIBRARY hbcore.lib - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Group/PhoneServer_stub.pkg --- a/phoneclientserver/phoneserver/Group/PhoneServer_stub.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +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: For packing phoneserver stub. -; -; Languages -&EN - -; Header -#{"PhoneServer"}, (0x10000850), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -;Files -""-"z:\sys\bin\PhoneServer.exe" -""-"z:\resource\PhoneServer.rsc" diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Group/Phoneserver_stub.SIS Binary file phoneclientserver/phoneserver/Group/Phoneserver_stub.SIS has changed diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Group/backup_registration.xml --- a/phoneclientserver/phoneserver/Group/backup_registration.xml Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ - - - - - - - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Group/bld.inf --- a/phoneclientserver/phoneserver/Group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Phone Server build file. -* -*/ - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - - -backup_registration.xml z:/private/10000850/backup_registration.xml - -phoneserver_stub.sis /epoc32/data/z/system/install/phoneserver_stub.sis - -// IBY files -../rom/phoneserver.iby CORE_MW_LAYER_IBY_EXPORT_PATH(phoneserver.iby) - -// LOC files -../loc/phoneserver.loc MW_LAYER_LOC_EXPORT_PATH(phoneserver.loc) - -PRJ_MMPFILES -../group/phoneserver.mmp - -PRJ_TESTMMPFILES -// specify the .mmp files required for building any test programs here - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/CommandHandler/CPhSrvComHandRequest.h --- a/phoneclientserver/phoneserver/Inc/CommandHandler/CPhSrvComHandRequest.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Command Handler Request. -* -*/ - - -#ifndef CPHSRVCOMHANDREQUEST_H -#define CPHSRVCOMHANDREQUEST_H - - -// INCLUDES -#include -#include -#include - -// CONSTANTS - - -// FORWARD DECLARATIONS -class CPhSrvSubSessionBase; - - -// CLASS DECLARATION - -/** -* Command handler request class. -* -* @since 2.6 -*/ -class CPhSrvComHandRequest : public CBase - { - public: // Constructors and destructor - - /** - * Constructor. For normal requests, i.e. that are reserved when - * they arrive. - * - * @param aMessage The outstanding client request which will be completed - * when the command handler initiation outcome is known. - * @param aParams The command handler request arguments. - * @param aSubSessionHandle The subsession handle. - * @return Pointer to created CPhSrvComHandRequest instance. - */ - static CPhSrvComHandRequest* NewLC( - const RMessage2& aMessage, - const TPhCltComHandCommandParameters& aParams, - TInt aSubSessionHandle ); - - /** - * Constructor for Emergency request object only. - * - * @return Pointer to created CPhSrvComHandRequest instance. - */ - static CPhSrvComHandRequest* NewL(); - - - public: // New functions - - /** - * Tell the external client (the requester) the result of their - * actions. This information has come via the notifier - * (i.e. phone app engine). - * - * @param aResultOfAttemptingCall - * The result of initiating an earlier command handler request. - */ - void InformOfComHandRequestAttemptResult( - TPhCltPhoneResults aResultOfAttemptingRequest ); - - /** - * Cancel the asynchronous command handler process. - * Completes client request with KErrCancel. - */ - void Cancel(); - - /** - * The sub-session handle. - * - * @return The unique handle associated with the subsession which - * initiated a command handler request. - */ - TInt SubSessionHandle() const; - - /** - * The parameters for the command handler request. - * - * @return The command handler request parameters. - */ - const TPhCltComHandCommandParameters& - ComHandParameters() const; - - /** - * Update Emergency request status. - * - * @param aMessage The outstanding client request which will be completed - * when the command handler initiation outcome is known. - * @param aArguments The command handler request parameters. - * @param aSubSessionHandle Subsession handle to emergency request. - */ - void UpdateEmergencyRequest( - const RMessage2& aMessage, - const TPhCltComHandCommandParameters& aParams, - TInt aSubSessionHandle ); - - /** - * Clear the Emergency request object data. - */ - void ClearEmergencyRequest(); - - - private: - - /** - * C++ constructor - */ - CPhSrvComHandRequest( - const RMessage2& aMessage, - const TPhCltComHandCommandParameters& aParams, - TInt aSubSessionHandle ); - - /** - * C++ constructor - */ - CPhSrvComHandRequest(); - - - private: // Data - - // A request made by the external command handler interface that the - // phone app should handle. It completes them sequentially after its - // finished the previous request. - RMessage2 iPendingRequestPointer; - - // The object responsible for processing external client command - // handler requests. - // This is essentially an interface to the phone app engine. - TPhCltComHandCommandParameters iComHandParams; - - // A handle to the subsession that initiated this request. - TInt iSubSessionHandle; - }; - - -#endif // CPHSRVCOMHANDREQUEST_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/CommandHandler/CPhSrvComHandRequestManager.h --- a/phoneclientserver/phoneserver/Inc/CommandHandler/CPhSrvComHandRequestManager.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Command Handler Request Manager. -* -*/ - - -#ifndef CPHSRVCOMHANDREQUESTMANAGER_H -#define CPHSRVCOMHANDREQUESTMANAGER_H - - -// INCLUDES -#include -#include "mphsrvcomhandnegotiators.h" -#include "mphsrvcomhandinitiators.h" - - - - -// FORWARD DECLARATIONS -class CPhSrvComHandRequest; -class CPhSrvServer; - -// CLASS DECLARATION - -/** -* Command handler request manager. -* -* @since 2.6 -*/ -class CPhSrvComHandRequestManager : - public CBase, - public MPhSrvComHandNegotiator - { - public: // Constructors and destructor - - /** - * Constructor. - * - * @param aServer The server instance. - */ - CPhSrvComHandRequestManager( CPhSrvServer& aServer ); - - /** - * Destructor. - */ - ~CPhSrvComHandRequestManager(); - - /** - * Symbian 2nd phase constructor. - */ - void ConstructL(); - - - public: // Functions from base classes - - /** - * @see MPhSrvComHandNegotiators - */ - void NegotiatorRequestL( - const RMessage2& aMessage, - const TPhCltComHandCommandParameters& aParams, - CPhSrvSubSessionBase& aSubSession ); - - /** - * @see MPhSrvComHandNegotiators - */ - void NegotiatorRequestCancel( - CPhSrvSubSessionBase& aSubSession ); - - /** - * @see MPhSrvComHandNegotiators - */ - void SetNegotiatorReadyRequestL( - MPhSrvComHandInitiator& aInitiator ); - - /** - * @see MPhSrvComHandNegotiators - */ - void SetNegotiatorReadyRequestCancel( - MPhSrvComHandInitiator& aInitiator ); - - /** - * @see MPhSrvComHandNegotiators - */ - virtual void SetNegotiatorAttemptedRequestResponseValue( - TPhCltPhoneResults aResult ); - - - private: - - /** - * Updates the request queue. - */ - void UpdateQueue(); - - /** - * Checks whether there already is request from this client (subsession). - * - * @param aSubSession The client who's requests are searched. - * @return ETrue if there already is request from this client, - * otherwise EFalse. - */ - TBool RequestAlreadyExists( CPhSrvSubSessionBase& aSubSession ); - - - private: // Data - - // A list of requests made by the external command handler interface - // that the phone app should handle. It completes them sequentially - // after its finished the previous request. - // Index 0 is reserved for the emergency request. - RPointerArray< CPhSrvComHandRequest >* iOutstandingComHandRequests; - - // The object responsible for processing external client command - // handler requests. - // This is essentially an interface to the phone app engine. - MPhSrvComHandInitiator* iComHandInitiator; - - // The server instance. - CPhSrvServer& iServer; - - // If NULL, then the active request was deleted during execution. - CPhSrvComHandRequest* iActiveRequest; - }; - - -#endif // CPHSRVCOMHANDREQUESTMANAGER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/CommandHandler/CPhSrvSubSessionCommandHandler.h --- a/phoneclientserver/phoneserver/Inc/CommandHandler/CPhSrvSubSessionCommandHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -/* -* Copyright (c) 2003-2005 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: Subsession for Command Handler. -* -*/ - -#ifndef CPHSRVSUBSESSIONCOMMANDHANDLER_H -#define CPHSRVSUBSESSIONCOMMANDHANDLER_H - - -// INCLUDES -#include "cphsrvsubsessionbase.h" - - -// CLASS DECLARATION - -/** -* Command Handler Subsession. -* -* @since 2.6 -*/ -class CPhSrvSubSessionCommandHandler -: public CPhSrvSubSessionBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @return CPhSrvSubSessionCommandHandler subsession. - */ - static CPhSrvSubSessionBase* NewL( - CPhSrvSession& aSession ); - - - private: // Functions from base classes - - /** - * @see MPhSrvMessageDecoder - */ - TBool PhSrvMessageDecoderCanProcessMessage( TInt aFunction ); - - /** - * @see MPhSrvMessageProcessor - */ - void PhSrvMessageProcessorHandleMessageL( const RMessage2& aMessage ); - - - private: // SubSession function handlers - - void CmdSubSessionClose( const RMessage2& aMessage ); - - void CmdSubSessionComHandAtdL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandAtaL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandChldL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandChupL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandVtsL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandCancelL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandForwardRequestL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandMuteMicL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandMuteRingingToneL( - const RMessage2& aMessage ); - - TBool IsCancelAllowed( - const RMessage2& aMessage ); - private: - - /** - * Constructor. - * - * @param aSession The session where this subsession belongs. - */ - CPhSrvSubSessionCommandHandler( CPhSrvSession& aSession ); - - }; - -#endif // CPHSRVSUBSESSIONCOMMANDHANDLER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/CommandHandler/CPhSrvSubSessionCommandHandlerNotify.h --- a/phoneclientserver/phoneserver/Inc/CommandHandler/CPhSrvSubSessionCommandHandlerNotify.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Subsession for Command Handler notify. -* -*/ - -#ifndef CPHSRVSUBSESSIONCOMHANDNOTIFY_H -#define CPHSRVSUBSESSIONCOMHANDNOTIFY_H - - -// INCLUDES -#include "cphsrvsubsessionbase.h" -#include "mphsrvcomhandinitiators.h" - -// CLASS DECLARATION - -/** -* Command handler Subsession. -* -* @since 2.6 -*/ -class CPhSrvSubSessionCommandHandlerNotify -: public CPhSrvSubSessionBase, - public MPhSrvComHandInitiator - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @return CPhSrvSubSessionCommandHandlerNotify subsession. - */ - static CPhSrvSubSessionBase* NewL( - CPhSrvSession& aSession ); - - /** - * Destructor. - * - */ - ~CPhSrvSubSessionCommandHandlerNotify(); - - - private: // Functions from base classes - - /** - * @see MPhSrvMessageDecoder - */ - TBool PhSrvMessageDecoderCanProcessMessage( TInt aFunction ); - - /** - * @see MPhSrvMessageProcessor - */ - void PhSrvMessageProcessorHandleMessageL( const RMessage2& aMessage ); - - /** - * @see MPhSrvComHandInitiator - */ - void InitiatorMakeAsynchronousComHandRequest( - const TPhCltComHandCommandParameters& - aParams ); - - /** - * @see MPhSrvComHandInitiator - */ - TBool InitiatorIsReadyToPerformRequest() const; - - - private: // SubSession function handlers - - void CmdSubSessionClose( const RMessage2& aMessage ); - - void CmdSubSessionComHandNotifyRequestL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandNotifyRequestCancelL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandNotifyReportL( - const RMessage2& aMessage ); - - - private: - - /** - * Constructor. - * - * @param aSession The session where this subsession belongs. - */ - CPhSrvSubSessionCommandHandlerNotify( CPhSrvSession& aSession ); - - - - private: // Data - - // Indicates whether we have an pending request - TBool iHavePendingComHandRequestPointer; - - // Initialized when the phone app engine is - // ready to handle command handler requests. - RMessage2 iPendingComHandRequestPointer; - - }; - - -#endif // CPHSRVSUBSESSIONCOMHANDNOTIFY_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/CommandHandler/MPhSrvComHandInitiators.h --- a/phoneclientserver/phoneserver/Inc/CommandHandler/MPhSrvComHandInitiators.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Command Handler Object Initiators. -* -*/ - - -#ifndef MPHSRVCOMHANDINITIATORS_H -#define MPHSRVCOMHANDINITIATORS_H - - -// INCLUDES -#include -#include "phcltclientserver.h" -#include -// FORWARD DECLARATIONS - - - -// CLASS DECLARATION - -/** -* Initiator functions class. -* -* @since 2.6 -*/ -class MPhSrvComHandInitiator - { - public: // New functions - - /** - * Called by the command handler manager when it wants to make a request, - * in response to a request from the external command handler interface. - * - * @param aParams The command handler parameters. - */ - virtual void InitiatorMakeAsynchronousComHandRequest( - const TPhCltComHandCommandParameters& aParams ) = 0; - - /** - * Called by the command handler manager to find out if there is a - * registered notification handler. - * - * @return ETrue if there is pending notification request. - */ - virtual TBool InitiatorIsReadyToPerformRequest() const = 0; - }; - -#endif // MPHSRVCOMHANDINITIATORS_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/CommandHandler/MPhSrvComHandNegotiators.h --- a/phoneclientserver/phoneserver/Inc/CommandHandler/MPhSrvComHandNegotiators.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Command Handler Negotiators. -* -*/ - - -#ifndef MPHSRVCOMHANDNEGOTIATORS_H -#define MPHSRVCOMHANDNEGOTIATORS_H - - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class MPhSrvComHandInitiator; -class MPhSrvComHandInitiatorStatus; -class CPhSrvSubSessionBase; - - -// CLASS DECLARATION - - -/** -* Abstract command handler negotiators class. -* -* @since 2.6 -*/ -class MPhSrvComHandNegotiator - { - public: // New functions - - /** - * Make a command handler request. - * - * @param aMessage Message to be negotiated. - * @param aParams Request parameters. - * @param aSubSession Subsession for command handler. - */ - virtual void NegotiatorRequestL( - const RMessage2& aMessage, - const TPhCltComHandCommandParameters& aParams, - CPhSrvSubSessionBase& aSubSession ) = 0; - - /** - * Cancel's an oustanding command handler request. - * If the specified subsession doesn't have an oustanding request, - * then the subsession is panicked. - * - * @param aSubSession Subsession that has the command handler request. - */ - virtual void NegotiatorRequestCancel( - CPhSrvSubSessionBase& aSubSession ) = 0; - - /** - * Called by the command handler notifier subsession when it's ready - * to negotiate (perform another request) with the external interface. - * - * @param aInitiator Command handler initiator instance. - */ - virtual void SetNegotiatorReadyRequestL( - MPhSrvComHandInitiator& aInitiator ) = 0; - - /** - * Called by the command handler notifier subsession when it isn't going - * to be available to make further requests (session has closed) - * - * @param aInitiator Command handler initiator instance. - */ - virtual void SetNegotiatorReadyRequestCancel( - MPhSrvComHandInitiator& aInitiator ) = 0; - - /** - * Called by the command handler notifier subsession when it's attempted - * to perform a request - the command handler negotiator can then inform - * the external command handler interface of the result. - * - * @param aResult Result of the request perfom. - */ - virtual void SetNegotiatorAttemptedRequestResponseValue( - TPhCltPhoneResults aResult ) = 0; - }; - -#endif // MPHSRVCOMHANDNEGOTIATORS_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/ImageHandler/CPhSrvSubSessionImageHandler.h --- a/phoneclientserver/phoneserver/Inc/ImageHandler/CPhSrvSubSessionImageHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,325 +0,0 @@ -/* -* Copyright (c) 2005 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: Subsession for image handler. -* -*/ - -#ifndef CPHSRVSUBSESSIONIMAGEHANDLER_H -#define CPHSRVSUBSESSIONIMAGEHANDLER_H - -// INCLUDES -#include "cphsrvsubsessionbase.h" -#include "cphsrvimagesaver.h" -#include "mphsrvimagesaverobserver.h" -#include -#include -#include -#include -#include - -// CLASS DECLARATION - -/** -* Image handler Subsession. -* -* @since Series60 3.0 -*/ -class CPhSrvSubSessionImageHandler -: public CPhSrvSubSessionBase, public MPhSrvImageSaverObserver - { - NONSHARABLE_CLASS( CPhSrvOperatorLogoContainer ) : public CBase - { - public: // Constructors and destructor - - /** - * Destructor. - */ - ~CPhSrvOperatorLogoContainer(); - - /** - * Constructor. - * @param aCountryCode country code for operator logo - * @param aNetworkCode network code for operator logo - * @param aBitmap bitmap to store. - */ - CPhSrvOperatorLogoContainer( - const TPhCltCountryCode aCountryCode, - const TPhCltNetworkCode aNetworkCode, - const TPhCltExtOperatorLogoType aLogoType, - CFbsBitmap* aBitmap ); - - // Stored image. - CFbsBitmap* iBitmap; - - // Operator logo country code. - TPhCltCountryCode iCountryCode; - - // Operator logo network code. - TPhCltNetworkCode iNetworkCode; - - // Operator logo type. - TPhCltExtOperatorLogoType iLogoType; - }; - - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aSession The pre-opened Phone Server session. - * @return CPhSrvSubSessionImageHandler subsession. - */ - static CPhSrvSubSessionBase* NewL(CPhSrvSession& aSession ); - - /** - * Destructor. - * - */ - ~CPhSrvSubSessionImageHandler(); - - public: // from MPhSrvImageSaverObserver - /** - * @see MPhSrvImageSaverObserver::ImageSaved - */ - virtual void ImageSaved( TInt aResult ); - - private: // Functions from base classes. - - /** - * @see MPhSrvMessageDecoder - */ - TBool PhSrvMessageDecoderCanProcessMessage( TInt aFunction ); - - /** - * @see MPhSrvMessageProcessor - */ - void PhSrvMessageProcessorHandleMessageL( const RMessage2& aMessage ); - - private: // SubSession function handlers. - - /** - * Handle the close command. - * - * @param aMessage The received message. - */ - void CmdSubSessionClose( const RMessage2& aMessage ); - - /** - * Handle the save command. - * - * @param aMessage The received message. - */ - void CmdSubSessionSaveImagesL( const RMessage2& aMessage ); - - /** - * Handle the load command. - * - * @param aMessage The received message. - */ - void CmdSubSessionLoadImagesL( const RMessage2& aMessage ); - - /** - * Open default VT image file and transfer handle to client. - */ - void CmdSubSessionOpenDefaultVtImageL( const RMessage2& aMessage ); - - /** - * Resolve default VT image file name. - */ - TInt ResolveDefaultVtImageFileName( TDes& aFileName ); - - /** - * Saves user defined VT image - */ - void CmdSubSessionSaveVtImageL( const RMessage2& aMessage ); - - /** - * Complete the load command. - * - * @param aMessage The received message. - */ - void CmdSubSessionCommitLoadL( const RMessage2& aMessage ); - - private: // New functions. - - /** - * Updates Publish & Subscribe information with an event - * happened to a operator logo. - * @param aCountryCode country code for a logo - * @param aNetworkCode network code for a logo - * @param aEvent event that occurred - * @return Symbian error code. - */ - TInt NotifyListeners( - const TPhCltCountryCode aCountryCode, - const TPhCltNetworkCode aNetworkCode, - const - TTelephonyOTALogoUpdate::TPSOperatorLogoUpdateEvent aEvent ); - - /** - * Updates Publish & Subscribe information with an event - * happened to a operator logo. - * @param aCountryCode country code for a logo - * @param aNetworkCode network code for a logo - * @param aEvent event that occurred - * @return Symbian error code. - */ - TInt NotifyListeners( - const TPhCltCountryCode aCountryCode, - const TPhCltNetworkCode aNetworkCode, - const - TTelOTALogoUpdate::TPSOperatorLogoUpdateEvent aEvent ); - - /** - * Parses operator logo file name and path. - * @param aCountryCode country code to use in deletion - * @param aNetworkCode network code to use in deletion - * @param aLogoType type of logo to delete - * @param aFileName file name in return - */ - void ConstructLogoFileNameL( - const TPhCltCountryCode aCountryCode, - const TPhCltNetworkCode aNetworkCode, - const TPhCltExtOperatorLogoType aLogoType, - TDes& aFileName ); - - /** - * Converts given logo type to file name id. - * @param aLogoType logo type to convert' - * @param aType type in return - */ - void AppendLogoTypeAsTextL( - const TPhCltExtOperatorLogoType aLogoType, TDes& aType ); - - /** - * Checks logo deletion and deletes if needed. - * @param aCountryCode country code to use in deletion - * @param aNetworkCode network code to use in deletion - * @param aLogoType type of logo to delete - * @param aFileHandle file handle to be checked - * @return ETrue if deleted - */ - TBool DeleteLogoL( - const TPhCltCountryCode aCountryCode, - const TPhCltNetworkCode aNetworkCode, - const TPhCltExtOperatorLogoType aLogoType, - const TInt aFileHandle ); - - - /** - * Does saving of video telephony images. - * - * @param aImages Image handle array. - */ - void DoSaveVTImageL( TPhCltImageArray& aImages ); - - /** - * Loads a video telephony image from file. - * @param aImages image handle array to return. - */ - void DoLoadVTImagesL( TPhCltImageArray& aImages ); - - /** - * Reads video telephony images from private path. - * @param aDefaultImage ETrue reads default image - * EFalse reads user defined image - */ - void DoReadVTImagesL( const TBool aDefaultImage ); - - /** - * Constructs search path for VT still/default image. - * It contains image name with wild card. - * @param aDefaultImage ETrue path for default image - * EFalse path for still image - * @param aPath returns plain drive+path w/o wild cards - * @return search path - */ - HBufC* ConstructVTImageSearchPathLC( - const TBool aDefaultImage, - TPtrC& aPath ) const; - - /** - * Does saving of operator logos. - * - * @param aImages Image handle array. - */ - void DoSaveOperatorLogoL( TPhCltImageArray& aImages ); - - /** - * Loads operator logo image from file. - * @param aImages image handle array to return. - */ - void DoLoadOperatorLogoL( TPhCltImageArray& aImages ); - - /** - * Completes operator logo loading, and releases resources. - * @param aImages image handle array. - */ - void DoCommitLoadLogo( TPhCltImageArray& aImages ); - - /** - * Completes vt image loading, and releases resources. - */ - void DoCommitLoadVTL(); - - /** - * Creates image storage directory. - */ - void MakeImageDirL(); - - private: - - /** - * Constructor. - * - * @param aSession The session where this subsession belongs. - */ - CPhSrvSubSessionImageHandler( CPhSrvSession& aSession ); - - /** - * Symbian constructor that may leave. - */ - void ConstructL(); - - private: // Data. - - // Stored VT bitmaps - RPointerArray iVTBitMaps; - - // Stored operator logos. - RPointerArray iOperatorLogos; - - // File server handle. - RFs iFs; - - // Path to privates. - TFileName iFilePath; - - // Used for defining pubsub key. - TBool iPropertyDefined; - - //System drive name - TFileName iDriveName; - - // Pointer to object performing image saving. Not owned. - CPhSrvImageSaver* iImageSaver; - - // message entry for VT image saving - RMessage2 iSaveVtImageMessage; - }; - -#endif // CPHSRVSUBSESSIONIMAGEHANDLER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/ImageHandler/cphsrvimagesaver.h --- a/phoneclientserver/phoneserver/Inc/ImageHandler/cphsrvimagesaver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ -/* -* 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: Image saver header -* -*/ - - -#ifndef C_CPHSRVIMAGESAVER_H -#define C_CPHSRVIMAGESAVER_H - -#include - -class RFs; -class MPhSrvImageSaverObserver; -class CFileMan; -class CImageDecoder; -class CBitmapScaler; - -/** -* Image saver. -* -* @since S60 v5.0 -*/ -NONSHARABLE_CLASS( CPhSrvImageSaver ) -: public CActive - { -public: // constructor - - static CPhSrvImageSaver* NewL( - RFs& aFs, - const TFileName& aPrivatePath, - MPhSrvImageSaverObserver& aObserver ); - - ~CPhSrvImageSaver(); - -public: // new methods - - void SaveImageL( const TDesC& aFileName ); - - void CopyImageL( const TDesC& aFileName ); - - void ScaleImageL(); - - TInt IsPrimaryFileInUse( TBool& aIsInUse ); - - TInt ConstructVtFileSaveName( - const TDesC& aSourceFileName, - TName& aTargetFileName ); - -private: // from CActive - - void RunL(); - - void DoCancel(); - -private: - - void ConstructL(); - - CPhSrvImageSaver( RFs& aFs, - const TFileName& aPrivatePath, - MPhSrvImageSaverObserver& aObserver); - -private: - - // file server session - RFs& iFs; - - // path to private directory - const TFileName& iPath; - - // for checking image files - CFileMan* iFileManager; - - // for decoding image file - CImageDecoder* iImageDecoder; - - // for scaling single frame image - CBitmapScaler* iScaler; - - // for notifying save completion - MPhSrvImageSaverObserver& iObserver; - - - - }; - -#endif // C_CPHSRVIMAGESAVER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/ImageHandler/mphsrvimagesaverobserver.h --- a/phoneclientserver/phoneserver/Inc/ImageHandler/mphsrvimagesaverobserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -* 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: Image saver observer interface -* -*/ - - -#ifndef M_MPHSRVIMAGESAVEROBSERVER_H -#define M_MPHSRVIMAGESAVEROBSERVER_H - -#include - -/** - * Observer interface for . - * - * @since S60 v5.0 - */ -NONSHARABLE_CLASS( MPhSrvImageSaverObserver ) - { -public: - /** - * Callback that is called when image is saved. - */ - virtual void ImageSaved( TInt aResult ) = 0; - }; - -#endif // M_MPHSRVIMAGESAVEROBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Messenger/CPhSrvMessengerObject.h --- a/phoneclientserver/phoneserver/Inc/Messenger/CPhSrvMessengerObject.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,208 +0,0 @@ -/* -* Copyright (c) 2004 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: Messenger object. Contains both send and receive request -* storages. -* -*/ - - -#ifndef CPHSRVMESSENGEROBJECT_H -#define CPHSRVMESSENGEROBJECT_H - - -// INCLUDES -#include - -#include "phsrvmessengertypes.h" -#include - -// FORWARD DECLARATIONS -class CPhSrvSubSessionBase; - - -// CLASS DECLARATION - -/** -* Messenger object, i.e. request storage class. -* -* @since 2.6 -*/ -class CPhSrvMessengerObject : public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aSubSession The subsession that owns this object. - * @param aParameters The Construct parameters. - * @return Pointer to created CPhSrvMessengerObject instance. - */ - static CPhSrvMessengerObject* NewLC( - CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerParameters& aParameters ); - - - /** - * Destructor - */ - ~CPhSrvMessengerObject(); - - - public: // New functions - - /** - * Tell the external client (the requester) the result of their - * actions. - * - * @param aResultOfAttemptingCall - * The result of executing the Messenger request. - * @param aRequest The request which result this is. - */ - void InformOfMessengerRequest( - const TPhCltPhoneResults aResultOfAttemptingRequest, - const TPhCltMessengerCommand aRequest ); - - - /** - * The sub-session handle. - * - * @return The unique handle associated with the subsession which - * initiated a command handler request. - */ - TInt SubSessionHandle() const; - - - /** - * Sets the given request active. Use IsRequestActive() to check - * whether request can be set active or not. - * - * @param aParameters The request and it's data that is set active. - * @param aMessage The request status container. - * @param aSentDataId The Id associated for sent message. Valid only - * if the request is Send. - */ - void SetActive( - const TPhCltMessengerParameters& aParameters, - const RMessage2& aMessage, - const TUint aSentDataId ); - - - /** - * Checks if the given request is already active. - * - * @param aRequest The request which is checked. - * @return ETrue if aRequest is active, EFalse otherwise. - */ - TBool IsRequestActive( const TPhCltMessengerCommand aRequest ) const; - - - /** - * Check whether this object is ready to receive the message or not. - * - * @param aSentMessage The message that should be received. - * @param aSentDataId The Id of the sent message to be received. - * @return ETrue if object is ready to receive, EFalse otherwise. - */ - TBool IsReadyToReceive( - const TDesC8& aSentMessage, - const TUint aSentDataId ); - - - /** - * Complete the active receive request. Use IsRequestActive() to find - * out whether this method can be called. - * - * @param aSentMessage The sent message that is given to receiver. - * @param aSentDataId The Id of the sent message. - * @return KErrNone if the completion was successful, - * Symbian error code otherwise. - */ - TInt CompleteReceive( - const TDesC8& aSentMessage, - const TUint aSentDataId ); - - - /** - * Return objects Send data length. - * - * @return The object's Send data length. - */ - TInt GetSendDataLength(); - - - /** - * Return objects Send data. - * - * @param aDes The descriptor that will contain the sent data after - * return. Use GetSendDataLength() to see how big buffer is - * needed to return whole sent message. - */ - void GetSendData( TDes8& sDes ) const; - - - /** - * Return objects interested Uid. - * - * @return The Uid of the messages this object is interested. - */ - const TUid& GetUid() const; - - - /** - * Return the ID of the sent message. - * - * @return The Id of the sent message. - */ - TUint SentDataId(); - - - /** - * Check if the received message is skipped or not. - * - * @return ETrue if the given message is skipped, otherwise EFalse. - */ - TBool IsMessageSkipped( - const TUint aSentDataId ); - - - private: - - /** - * C++ constructor - */ - CPhSrvMessengerObject( - CPhSrvSubSessionBase& aSubSession ); - - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( const TPhCltMessengerParameters& aParameters ); - - - private: // Data - - // The Messenger object parameters. - TPhSrvMessengerParameters iParameters; - - // A handle to the subsession that initiated this request. - CPhSrvSubSessionBase& iSubSession; - }; - - -#endif // CPHSRVMESSENGEROBJECT_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Messenger/CPhSrvMessengerRequestManager.h --- a/phoneclientserver/phoneserver/Inc/Messenger/CPhSrvMessengerRequestManager.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,207 +0,0 @@ -/* -* Copyright (c) 2004 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: Messenger Request Manager. -* -*/ - - -#ifndef CPHSRVMESSENGERREQUESTMANAGER_H -#define CPHSRVMESSENGERREQUESTMANAGER_H - - -// INCLUDES -#include -#include "mphsrvmessengernegotiators.h" -#include - -// FORWARD DECLARATIONS -class CPhSrvMessengerObject; -class CPhSrvServer; - - -// CONSTANTS - -// Type for array used in this class. -typedef RPointerArray< CPhSrvMessengerObject > RMessengerArray; - - -// CLASS DECLARATION - -/** -* Messenger request manager. -* -* @since 2.6 -*/ -class CPhSrvMessengerRequestManager -: public CBase, - public MPhSrvMessengerNegotiator - { - public: // Constructors and destructor - - /** - * Constructor. - * - * @param aServer The server instance. - */ - CPhSrvMessengerRequestManager( CPhSrvServer& aServer ); - - /** - * Destructor. - */ - ~CPhSrvMessengerRequestManager(); - - /** - * Symbian 2nd phase constructor. - */ - void ConstructL(); - - - public: // Functions from base classes - - /** - * @see MPhSrvMessengerNegotiators - */ - void NegotiatorRequest( - CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerParameters& aParameters, - const RMessage2& aMessage ); - - /** - * @see MPhSrvMessengerNegotiators - */ - void NegotiatorRequestCancel( - CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerCommand aRequestType ); - - /** - * @see MPhSrvMessengerNegotiators - */ - void NegotiatorRequestConstructL( - CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerParameters& aParameters, - const RMessage2& aMessage ); - - /** - * @see MPhSrvMessengerNegotiators - */ - void NegotiatorRequestDelete( - CPhSrvSubSessionBase& aSubSession ); - - - private: - - /** - * Updates the request objects. - * - * @param aEntry The entry whose information is updated. - * @param aCommand The command that was performed for aEntry. - */ - void UpdateMessengerChain( - CPhSrvMessengerObject* aEntry, - TPhCltMessengerCommand aCommand ); - - /** - * Handle all Send requests at one time. - * - * @param aEntry The object whose information is updated. - * @param aSendArray The send array that is handled. - */ - void HandleAllSendRequests( - CPhSrvMessengerObject* aEntry, - RMessengerArray* aSendArray ); - - /** - * Handles the Send Requests. - * - * @param aEntry The entry whose information is updated. - * @param aSendArray The send array that is handled. - * @return ETrue if Send was fully handled, EFalse otherwise. - */ - TBool HandleSendRequest( - CPhSrvMessengerObject* aEntry, - RMessengerArray* aSendArray ); - - /** - * Checks whether there already is active request from this client - * (subsession). Checks Send,Receive and Skip requests. - * If request is not active, then sets it active. - * - * @param aSubSession The client who's requests are searched. - * @param aParameters Contains the request type that is checked. - * If not active, sets the given request to be active. - * @param aMessage The received message. - - * @return ETrue if there already was request from this client, - * otherwise EFalse. - */ - TBool RequestAlreadyExists( - const CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerParameters& aParameters, - const RMessage2& aMessage ); - - - /** - * Returns the correct array which contains messenger objects. - * - * @return The array containing the messenger objects. - */ - RMessengerArray* MessengerArray(); - - - /** - * Returns the correct array which contains send chain. - * - * @return The array containing the send chain. - */ - RMessengerArray* SendChain(); - - - private: // Data - - // A list of request objects received from external Messenger interface. - // Messenger request manager completes them sequentially - // after its finished the previous request. - RMessengerArray* iMessengerObjects; - - // The server instance. - CPhSrvServer& iServer; - - // A FIFO chain of Send requests made by the external Messenger - // interface clients. They are completed sequentially. - RMessengerArray* iSendChain; - - // The object whose Receive / Skip is waited. - CPhSrvMessengerObject* iRequestObject; - - // The variable for Ids for sent messages. - TUint iSentDataIdGenerator; - - // The pointer to hold the default size (KPhCltDefMesSize) - // buffer at startup, exist always if construction valid. - // This buffer can be changed to bigger one during execution - // if memory allocation is successful. - HBufC8* iDefaultSizeBuffer; - - // Tells whether there is Send operation ongoing or not. - // ETrue if Send request have been processed at least once but not - // completed yet. - TBool iSendProcessOngoing; - - }; - - -#endif // CPHSRVMESSENGERREQUESTMANAGER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Messenger/CPhSrvSubSessionMessenger.h --- a/phoneclientserver/phoneserver/Inc/Messenger/CPhSrvSubSessionMessenger.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,155 +0,0 @@ -/* -* Copyright (c) 2004 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: Subsession for Messenger. -* -*/ - -#ifndef CPHSRVSUBSESSIONMESSENGER_H -#define CPHSRVSUBSESSIONMESSENGER_H - - -// INCLUDES -#include "cphsrvsubsessionbase.h" -#include - -// FORWARD DECLARATIONS -class MPhSrvMessengerNegotiator; - - - -// CLASS DECLARATION - -/** -* Messenger Subsession. -* -* @since 2.6 -*/ -class CPhSrvSubSessionMessenger -: public CPhSrvSubSessionBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aSession The pre-opened Phone Server session. - * @return CPhSrvSubSessionMessenger subsession. - */ - static CPhSrvSubSessionBase* NewL( - CPhSrvSession& aSession ); - - /** - * Destructor. - * - */ - ~CPhSrvSubSessionMessenger(); - - - private: // Functions from base classes - - /** - * @see MPhSrvMessageDecoder - */ - TBool PhSrvMessageDecoderCanProcessMessage( TInt aFunction ); - - /** - * @see MPhSrvMessageProcessor - */ - void PhSrvMessageProcessorHandleMessageL( const RMessage2& aMessage ); - - - private: // SubSession function handlers - - /** - * Handle the close command. - * - * @param aMessage The received message. - */ - void CmdSubSessionClose( const RMessage2& aMessage ); - - /** - * Handle the construct command. - - */ - void CmdSubSessionMessengerConstructL( const RMessage2& aMessage ); - - /** - * Handle the receive command. - */ - void CmdSubSessionMessengerReceive( const RMessage2& aMessage ); - - /** - * Handle the send command. - * - * @param aMessage The received message. - */ - void CmdSubSessionMessengerSend( const RMessage2& aMessage ); - - /** - * Handle the skip command. - * - * @param aMessage The received message. - */ - void CmdSubSessionMessengerSkip( const RMessage2& aMessage ); - - /** - * Handle the cancel command. - * - * @param aMessage The received message. - */ - void CmdSubSessionMessengerCancel( const RMessage2& aMessage ); - - - private: // Helper functions. - - /** - * Returns the Messenger negotiator. - * - * @return Messenger negotiator. - */ - MPhSrvMessengerNegotiator& GetMessengerNegotiator(); - - /** - * Forwards the request to messenger negotiator. - * - * @param aSubSession Subsession for messenger. - * @param aParameters The request parameters. - * @param aMessage The received message. - */ - void ForwardRequest( - CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerParameters& aParameters, - const RMessage2& aMessage ); - - /** - * Cleans the negotiator side. - */ - void Clean(); - - - private: - - /** - * Constructor. - * - * @param aSession The session where this subsession belongs. - */ - CPhSrvSubSessionMessenger( CPhSrvSession& aSession ); - - }; - -#endif // CPHSRVSUBSESSIONMESSENGER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Messenger/MPhSrvMessengerNegotiators.h --- a/phoneclientserver/phoneserver/Inc/Messenger/MPhSrvMessengerNegotiators.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,94 +0,0 @@ -/* -* Copyright (c) 2004 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: Messenger Negotiators. -* -*/ - - -#ifndef MPHSRVMESSENGERNEGOTIATORS_H -#define MPHSRVMESSENGERNEGOTIATORS_H - - -// INCLUDES -#include -#include "phsrvmessengertypes.h" -#include - -// FORWARD DECLARATIONS -class CPhSrvSubSessionBase; - - -// CLASS DECLARATION - - -/** -* Abstract messenger negotiators class. -* -* @since 2.6 -*/ -class MPhSrvMessengerNegotiator - { - public: // New functions - - /** - * Make a messenger request. - * - * @param aSubSession Subsession for messenger. - * @param aParameters The request parameters. - * @param aMessage The received message. Used also in panic situations. - */ - virtual void NegotiatorRequest( - CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerParameters& aParameters, - const RMessage2& aMessage ) = 0; - - /** - * Cancel an oustanding messenger request. - * If the specified subsession doesn't have an oustanding request, - * then the subsession is paniced. - * - * @param aSubSession Subsession that has the messenger request. - * @param aRequestType The type of the request to be canceled. - */ - virtual void NegotiatorRequestCancel( - CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerCommand aRequestType ) = 0; - - /** - * Construct, i.e. reserve space for the subsession given - * as parameter. - * - * @param aSubSession Subsession that is constructed. - * @param aParameters The needed construct parameters. - * @param aMessage The message that is completed when request is ready. - */ - virtual void NegotiatorRequestConstructL( - CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerParameters& aParameters, - const RMessage2& aMessage ) = 0; - - /** - * Delete, i.e. free all the space reserved for the subsession given - * as parameter. - * - * @param aSubSession Subsession whose memory is freed. - */ - virtual void NegotiatorRequestDelete( - CPhSrvSubSessionBase& aSubSession ) = 0; - }; - -#endif // MPHSRVMESSENGERNEGOTIATORS_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Messenger/PhSrvMessengerTypes.h --- a/phoneclientserver/phoneserver/Inc/Messenger/PhSrvMessengerTypes.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* Copyright (c) 2004 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: Types used in PhoneServer Messenger related functionality. -* -*/ - - -#ifndef PHSRVMESSENGERTYPES_H -#define PHSRVMESSENGERTYPES_H - - -// INCLUDES -#include - -// DATA TYPES - - -/** -* The Messenger parameters defined as in one class. -* The handler of received messenger request must first check the -* performed request, and then read the appropriate parameters. -* -* @since 2.6 -*/ -class TPhSrvMessengerParameters - { - public: // Constructors and destructor - - /** - * C++ constructor. - * Set the default parameter values. - */ - inline TPhSrvMessengerParameters() : - iMessengerCommand( EPhCltMesCommandUnknown ), - iDefaultMessageSize( 0 ), - iSendMessagePtr( NULL ), - iSendPayloadLength( 0 ), - iSendDataValid( EFalse ), - iSentDataId( 0 ), - iReceiveBufferMaxSize( 0 ), - iReceiveDataValid( EFalse ), - iSkipNextMessage( EFalse ), - iSkippedSentDataId( 0 ) - { - iCategoryUid = TUid::Uid( 0 ); - } - - - public: // Data - - // The Messenger Negotiator command. - TPhCltMessengerCommand iMessengerCommand; - - // The message types that are listened. - TUid iCategoryUid; - - // The default message size. - TInt iDefaultMessageSize; - - - // The Send message payload. - const TDesC8* iSendMessagePtr; - - // The length of the sent message. - TInt iSendPayloadLength; - - // Tells whether send data is valid or not. - TBool iSendDataValid; - - // The Send message status to be completed when ready. - RMessage2 iSendStatus; - - // The ID of the sent message. - TUint iSentDataId; - - // The maximum size of the receive buffer. - TInt iReceiveBufferMaxSize; - // The Receive message parameters. - //TPhCltMessengerParameters iReceiveParameters; - - // Tells whether receive data is valid or not. - TBool iReceiveDataValid; - - // The Receive message status, size and payload - // to be completed when ready. - RMessage2 iReceiveMessage; - - - // Is the next Sent message Skipped? - TBool iSkipNextMessage; - - // The ID of the Skipped message. - TUint iSkippedSentDataId; - - }; - -#endif // PHSRVMESSENGERTYPES_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/CPhSrvEmergencyNumberManager.h --- a/phoneclientserver/phoneserver/Inc/Standard/CPhSrvEmergencyNumberManager.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Retrieves and manages the emergency numbers from EnPolicy. -* -*/ - - - -#ifndef CPHSRVEMERGENCYNUMBERMANAGER_H -#define CPHSRVEMERGENCYNUMBERMANAGER_H - -// INCLUDES -#include // cbase -#include "mphsrvemergencynumbermanager.h" // interface - -// FORWARD DECLARATIONS -class MPhSrvPhoneInterface; -class CEmergencyNumberPolicy; - -// CLASS DECLARATION - -/** -* Retrieves and manages the emergency numbers from EnPolicy. -* -* @since 1.0 -*/ -class CPhSrvEmergencyNumberManager : - public CBase, - public MPhSrvEmergencyNumberManager - { - public: // Constructors and destructor - - /** - * Constructor. - * @param aPhone a reference of phone interface. - */ - CPhSrvEmergencyNumberManager( MPhSrvPhoneInterface& aPhone ); - - /** - * Destructor. - */ - ~CPhSrvEmergencyNumberManager(); - - /** - * Symbian 2nd phase constructor. - * @param aIsDosEnPolicy ETrue if Dos emergency policy is enabled. - */ - void ConstructL( TBool aIsDosEnPolicy ); - - - public: // Functions from base classes - - /** - * @see MPhSrvEmergencyNumberManager - */ - TBool EmergencyNumberManagerIsEmergencyNumberL( - TDes& aNumber, - TPhCltEmergencyNumberQueryMode aMode ); - - private: // Data - - // Contains Phoneserver phone interfaces. - MPhSrvPhoneInterface& iPhone; - - // Contains Emergency policy DLL interface. - RLibrary iEnPolicyLib; - - // Pointer to Emergency policy interface. - CEmergencyNumberPolicy* iEmergencyNumberPolicy; - - }; - -#endif // CPHSRVEMERGENCYNUMBERMANAGER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/CPhSrvPhoneController.h --- a/phoneclientserver/phoneserver/Inc/Standard/CPhSrvPhoneController.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ -/* -* Copyright (c) 2002 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: Phone Controller. -* -*/ - - -#ifndef CPHSRVPHONECONTROLLER_H -#define CPHSRVPHONECONTROLLER_H - - -// INCLUDES -#include // ETel -#include // CustomAPI -#include "mphsrvphoneinterface.h" // The interface class - - -// CLASS DECLARATION - -/** -* Interface to the server-wide phone. -* -* @since 1.0 -*/ -class CPhSrvPhoneController : - public CBase, - public MPhSrvPhoneInterface - { - public: // Constructors and destructor - - /** - * Destructor. - */ - ~CPhSrvPhoneController(); - - /** - * Symbian OS second phase constructor - */ - void ConstructL(); - - - public: // Functions from base classes - - /** - * @see MPhSrvPhoneInterface - */ - RTelServer& PhSrvETelServer(); - - /** - * @see MPhSrvPhoneInterface - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone& PhSrvMobilePhone(); - - /** - * @see MPhSrvPhoneInterface - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMmCustomAPI& PhSrvCustomPhone(); - - - private: // Data - - // The RTelServer instance. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RTelServer iETelServer; - - // The CustomAPI instance. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMmCustomAPI iCustomPhone; - - // The RMobilePhone instance. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone iMobilePhone; - }; - -#endif // CPHSRVPHONECONTROLLER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/CPhSrvResourceManager.h --- a/phoneclientserver/phoneserver/Inc/Standard/CPhSrvResourceManager.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,80 +0,0 @@ -/* -* Copyright (c) 2002 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: Resource Manager. -* -*/ - -#ifndef CPHSRVRESOURCEMANAGER_H -#define CPHSRVRESOURCEMANAGER_H - - -// INCLUDES -#include -#include - - -// CLASS DECLARATION - -/** -* The resource manager. -* -* @since 1.0 -*/ -class CPhSrvResourceManager : - public CBase - { - public: // Constructors and destructor - - /** - * C++ constructor. - * - * @param aFsSession The file session. - */ - CPhSrvResourceManager( RFs& aFsSession ); - - /** - * C++ destructor. - */ - ~CPhSrvResourceManager(); - - /** - * Symbian OS second phase constructor - */ - void ConstructL(); - - - public: // New functions - - /** - * Read some text from the resource file. - * - * @param aResourceId The resource identifier to read - * @return The resource text on the cleanup stack - */ - HBufC* ReadResourceLC( TUint aResourceId ); - - - private: // Data - - // The file session. - RFs& iFsSession; - - // The resource file. - RResourceFile iResourceFile; - }; - -#endif // CPHSRVRESOURCEMANAGER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/CPhSrvScheduler.h --- a/phoneclientserver/phoneserver/Inc/Standard/CPhSrvScheduler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/* -* Copyright (c) 2002 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: Phone Server scheduler. -* -*/ - - -#ifndef CPHSRVSCHEDULER_H -#define CPHSRVSCHEDULER_H - -// INCLUDES -#include - - -// CLASS DECLARATION - -/** -* It is the scheduler for active objects. -* -* @since 1.0 -*/ -class CPhSrvScheduler : - public CActiveScheduler - { - public: // Constructors and destructors - - /** - * C++ default constructor. - */ - CPhSrvScheduler(); - - - public: // Functions from base classes - - /** - * From CActiveScheduler, it is called in case of unhandled error. - * - * @param aError It is the error code. - */ - void Error( TInt anError ) const; - - }; - -#endif // CPHSRVSCHEDULER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/CPhSrvServer.h --- a/phoneclientserver/phoneserver/Inc/Standard/CPhSrvServer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,355 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Server. -* -*/ - - -#ifndef CPHSRVSERVER_H -#define CPHSRVSERVER_H - - -// INCLUDES -#include "mphsrvphoneinterface.h" -#include "phcltclientserver.h" -#include -#include -#include - - -// FORWARD DECLARATIONS -class CPhSrvSession; -class CPhSrvUssdManager; -class CPhSrvPhoneController; -class CPhSrvResourceManager; -class CPhSrvCallRequestManager; -class CPhSrvEmergencyRequestManager; -class CPhSrvEmergencyNumberManager; -class MPhSrvNegotiatorCall; -class MPhSrvEmergencyNumberManager; -class MPhSrvComHandNegotiator; -class CPhSrvComHandRequestManager; -class CPhSrvMessengerRequestManager; -class MPhSrvMessengerNegotiator; -class MPhSrvEmergencyNegotiatorCall; - - -// CLASS DECLARATION - -/** -* It is the server class for Phone Server. -* -* @since 1.0 -*/ -class CPhSrvServer : - public CServer2 - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * Creates a new server and starts it. - */ - static CPhSrvServer* NewL(); - - /** - * Destructor. - */ - ~CPhSrvServer(); - - - public: // New functions - - /** - * Connects to Font and bitmap server. - * @return Symbian error code - */ - TInt ConnectFBS(); - - /** - * Disconnects Font and bitmap server. - * @param aForce do we force disconnect - */ - void DisconnectFBS( TBool aForce = EFalse ); - - /** - * Creates all managers. - * - * @param aSession The session for subsessions. - */ - void CreateAllL( CPhSrvSession& aSession ); - - /** - * Cancels create all. - * - * @param aSession The session for subsessions. - */ - void CancelCreateAll( CPhSrvSession& aSession ); - - /** - * Creates a new object container. - * - * @return Returns the created instance. - */ - CObjectCon* NewContainerL() const; - - /** - * Removes an object container. - * - * @param aCon object container - */ - void RemoveContainer( CObjectCon* aCon ); - - /** - * Access to the call negotiator - * - * @return The call negotiator - */ - MPhSrvNegotiatorCall& CallNegotiatorL(); - - /** - * Access to the call negotiator - * NOTE: This is not safe call if IsCallNegotiator() return False - * @return The call negotiator - */ - MPhSrvNegotiatorCall& CallNegotiator() const; - - /** - * Access to the USSD manager - * - * @return The USSD manager - */ - CPhSrvUssdManager& UssdManagerL(); - - - /** - * Access to the call negotiator - * - * @return The call negotiator - */ - MPhSrvEmergencyNegotiatorCall& EmergencyCallNegotiatorL(); - - /** - * Access to the call negotiator - * NOTE: This is not safe call if IsEmergencyCallNegotiator() return - * false. - * @return The call negotiator - */ - MPhSrvEmergencyNegotiatorCall& EmergencyCallNegotiator() const; - - /** - * Ask if there is a emergency call negotiator. - * - * @return ETrue if there is emergency call negotiator. - */ - TBool IsEmergencyCallNegotiator() const; - - /** - * Access to the phone - * - * @return The phone interface - */ - MPhSrvPhoneInterface& PhoneInterfaceL(); - - /** - * Access to the emergency number manager - * - * @return The emergency number manager - */ - MPhSrvEmergencyNumberManager& EmergencyNumberManagerL(); - - /** - * Ask if there is a call negotiator. - * - * @return ETrue if there is call negotiator. - */ - TBool IsCallNegotiator() const; - - /** - * Ask if there is a ussd manager - * - * @return ETrue if there is ussd manager. - */ - TBool IsUssdManager() const; - - /** - * Access to the command handler negotiator. - * @since 2.6 - * - * @return The command handler negotiator - */ - MPhSrvComHandNegotiator& ComHandNegotiatorL(); - - /** - * Access to the command handler negotiator. - * NOTE: This is not a safe call if - * IsComHandNegotiator() return false. - */ - MPhSrvComHandNegotiator& ComHandNegotiator() const; - - /** - * Ask if there is a command handler negotiator. - * @since 2.6 - * - * @return ETrue if there is command handler negotiator. - */ - TBool IsComHandNegotiator() const; - - /** - * Access to the messenger negotiator. - * @since 2.6 - * - * @return The messenger negotiator - */ - MPhSrvMessengerNegotiator& MessengerNegotiatorL(); - - /** - * Access to the messenger negotiator. - * NOTE: This is not a safe call if IsMessengerNegotiator() - * return false. - * @since 5.0 - * - * @return The messenger negotiator - */ - MPhSrvMessengerNegotiator& MessengerNegotiator() const; - - /** - * Ask if there is a messenger negotiator. - * @since 2.6 - * - * @return ETrue if there is messenger negotiator. - */ - TBool IsMessengerNegotiator() const; - - - public: // Functions from base classes - - /** - * From CServer, create a new session. - * - * @param aVersion It is the version of the client api. - * @param aMessage Connect message from Client. - * @return Returns a new session. - */ - CSession2* NewSessionL( - const TVersion &aVersion, - const RMessage2& aMessage ) const; - - - private: // New functions - - /** - * C++ constructor. - */ - CPhSrvServer( TInt aPriority ); - - /** - * By default Symbian 2nd phase constructor is private. - * @since 2.8 - */ - void ConstructL(); - - /** - * Returns file server session. - */ - RFs& FsSessionL(); - - - /** - * Returns resource manager. - */ - CPhSrvResourceManager& ResourceManagerL(); - - /** - * Performs step in create all. - */ - TInt CreateAllStepL(); - - /** - * Performs an step. - */ - void PerformNextStepL(); - - /** - * Complete create all. - */ - void CompleteCreateAll( TInt aError ); - - /** - * Create all step. - */ - static TInt DoCreateAllStepL( TAny* aAny ); - - private: // Data - - // The file server session for the whole server. - RFs iFsSession; - - - // The object responsible for controlling the server resource file. - CPhSrvResourceManager* iResourceFileManager; - - // The object responsible for controlling the interface to the phone. - CPhSrvPhoneController* iPhoneController; - - // The object container indexer which owns and manages the CObjectCon - // instances ensuring that each container has a unique handle spanning - // all sub-sessions. - // As well as owning the object containers, it also is responsible - // for creating new ones. - mutable CObjectConIx* iObjectConIx; - - // The object responsible for acting as the bridge between an external - // call client, and the phone app engine notifier client. - CPhSrvCallRequestManager* iCallRequestManager; - - // The object responsible for acting as the bridge between an external - // call client, and the phone app engine notifier client. - CPhSrvEmergencyRequestManager* iEmergencyRequestManager; - - // Responsible for all USSD related server functionality. - CPhSrvUssdManager* iUssdManager; - - // Responsible for all emergency number related functionality. - CPhSrvEmergencyNumberManager* iEmergencyNumberManager; - - // The object responsible for acting as the bridge between an external - // command handler client, and the phone app engine notifier client. - CPhSrvComHandRequestManager* iComHandRequestManager; - - // The object responsible for handling messenger requests. - CPhSrvMessengerRequestManager* iMessengerRequestManager; - - // CREATE ALL VARIABLES - - // Idle object for create all. - CIdle* iCreateAll; - - // Step index. - TInt iCreateAllStep; - - // Error. - TInt iCreateAllError; - - // Array of sessions. - RPointerArray< CPhSrvSession > iCreateAllArray; - - // Reference count for font and bitmap server connections. - TInt iFBSConnections; - }; - -#endif // CPHSRVSERVER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/CPhSrvSession.h --- a/phoneclientserver/phoneserver/Inc/Standard/CPhSrvSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,224 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Server Session. -* -*/ - - -#ifndef CPHSRVSESSION_H -#define CPHSRVSESSION_H - -// INCLUDES -#include -#include "phcltclientserver.h" - -// FORWARD DECLARATIONS -class CPhSrvServer; -class CPhSrvCallNotify; -class CPhSrvReqManager; -class CPhSrvExtCall; -class CPhSrvSubSessionBase; - -// CLASS DECLARATION - -/** -* It is the session class for Phone Server. -* -* @since 1.0 -*/ -class CPhSrvSession : public CSession2 - { - friend class CPhSrvSubSessionBase; - - - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aServer It is the main server object. - * @return Returns a new session. - */ - static CPhSrvSession* NewL( - CPhSrvServer& aServer ); - - /** - * Destructor. - */ - ~CPhSrvSession(); - - - public: // Functions from base classes - - /** - * From CSession2, it is called whenever request is processed. - * - * @param aMessage It is the request. - */ - void ServiceL( const RMessage2& aMessage ); - - - public: // Sub-session access - - /** - * Phone Server reference. - * - * @return The phone server. - */ - CPhSrvServer& PhoneServer() const; - - /** - * Get information of the count of subsessions. - * - * @return The number of subsession objects. - */ - TInt SubSessionCount() const; - - /** - * Return a specific subsession. - * - * @return The subsession at location aIndex. - */ - CPhSrvSubSessionBase& SubSessionAt(TInt aIndex) const; - - /** - * Closes subsession by handle. - * - * @param aMessage It contains the handle to the subsession. - */ - void CloseSubSession( const RMessage2& aMessage ); - - /** - * Panics the client thread. - * - * @param aMessage The client to be panicked. - * @param aPanic It is the reason for panic. - */ - void PanicClient( - const RMessage2& aMessage, - TPhCltServerInitiatedPanic aPanic ) const; - - /** - * Writes to client address space inside and - * catch bad descriptors. - * - * @param aMessage The client. - * @param aLocation The location where the data is written. - * @param aDes The data that is written. - * @param aOffset The data location where to start the writing. - */ - void Write( - const RMessage2& aMessage, - TInt aLocation, - const TDesC8& aDes, - TInt aOffset = 0 ); - - /** - * Reads from client address space and - * catch bad descriptors. - * - * @param aMessage The client. - * @param aLocation The location where the data is read. - * @param aDes The read data storage. - * @param aOffset The data location where to start the reading. - */ - void Read( - const RMessage2& aMessage, - TInt aLocation, - TDes8& aDes, - TInt aOffset = 0 ); - - /** - * Reads from client address space and - * catch bad descriptors (unicode aware) - * - * @param aMessage The client. - * @param aLocation The location where the data is read. - * @param aDes The read data storage. - * @param aOffset The data location where to start the reading. - */ - void Read( - const RMessage2& aMessage, - TInt aLocation, - TDes& aDes, - TInt aOffset = 0 ); - - /** - * Complete create all request. - * - * @param aError The error code that is returned. - */ - void CompleteCreateAll( TInt aError ); - - - private: - - /** - * C++ constructor. - */ - CPhSrvSession(); - - /** - * Symbian OS constructor. - */ - void ConstructL( CPhSrvServer& aServer ); - - /** - * Return the unique handle associated with this subsession - * - * @return The unique handle associated with a subsession. - */ - TInt SubSessionUniqueHandle( - const CPhSrvSubSessionBase& aSubSession ) const; - - /** - * Service a request - called by ServiceL within a trap - * harness so that we can catch leaves, and complete messages - * properly. - * - * @param aMessage The message from the client [sub]session. - */ - void ProcessRequestL( const RMessage2& aMessage ); - - /** - * Handle function. - * - * @param aFunction function. - * @return ETrue iff handled here. - */ - TBool HandleCommandL( const RMessage2& aMessage ); - - - private: // Data - - // The container for all objects in this session (i.e. the - // subsession CObject's from the client-side). - CObjectCon* iContainer; - - // The index of open objects associated with this session. - CObjectIx* iObjectIx; - - // Server. - CPhSrvServer* iServer; - - // Flag, ETrue if message ok. - TBool iCreateAll; - - // Message for create all. - RMessage2 iCreateAllMsg; - }; - -#endif // CPHSRVSESSION_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/CPhSrvSubSessionBase.h --- a/phoneclientserver/phoneserver/Inc/Standard/CPhSrvSubSessionBase.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,172 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Sub Session Base. -* -*/ - - -#ifndef CPHSRVSUBSESSIONBASE_H -#define CPHSRVSUBSESSIONBASE_H - - -// INCLUDES -#include -#include "mphsrvmessageprocessor.h" - - -// FORWARD DECLARATIONS -class CPhSrvSubSessionNotifier; -class CPhSrvSession; - - -// CLASS DECLARATION - -/** -* The base class for all subsessions. -* -* @since 1.0 -*/ -class CPhSrvSubSessionBase : - public CObject, - public MPhSrvMessageProcessor - { - public: - - /* - * The subsessions type. - * - * EPhSrvSubSessionTypeUndefined Undefined subsession, error. - * EPhSrvSubSessionTypeExternalCall Call subsession. - * EPhSrvSubSessionTypeCallNotifier CallNotifiers subsession. - * EPhSrvSubSessionTypeUssd USSD subsession. - * EPhSrvSubSessionTypeIhf IHF subsession. - * EPhSrvSubSessionTypeEmergencyNumber Emergency number subsession. - * EPhSrvSubSessionTypeComHand Command Handler subsession. - * EPhSrvSubSessionTypeComHandNotify ComHand Notify subsession. - * EPhSrvSubSessionTypeMessenger Messenger subsession. - * EPhSrvSubSessionTypeImageHandler Image handler subsession. - * EPhSrvSubSessionTypeEmergencyCall Emergency call subsession. - */ - enum TPhSrvSubSessionType - { - EPhSrvSubSessionTypeUndefined = KErrNotFound, - EPhSrvSubSessionTypeExternalCall = 0, - EPhSrvSubSessionTypeCallNotifier = 1, - EPhSrvSubSessionTypeUssd = 2, - EPhSrvSubSessionTypeIhf = 3, - EPhSrvSubSessionTypeEmergencyNumber = 4, - EPhSrvSubSessionTypeComHand = 5, - EPhSrvSubSessionTypeComHandNotify = 6, - EPhSrvSubSessionTypeMessenger = 7, - EPhSrvSubSessionTypeImageHandler = 8, - EPhSrvSubSessionTypeEmergencyCall = 9 - - }; - - public: // Constructors and destructor - - /** - * Create an instance of this class - * - * @param aSession The session where this subsession belongs. - * @param aType The type of subsession that this object should represent. - */ - CPhSrvSubSessionBase( - CPhSrvSession& aSession, - TPhSrvSubSessionType aType ); - - /** - * Complete construction of the subsession. - */ - virtual void ConstructL() { } - - - public: // Access - - /** - * Return the owning session. - * - * @return A handle to the owning session. - */ - CPhSrvSession& PhoneSession(); - - /** - * Return the owning session. - * - * @return A constant handle to the owning session. - */ - const CPhSrvSession& PhoneSession() const; - - /** - * Return the type of this sub-session object. - * - * @return The type of this sub-session object. - */ - TPhSrvSubSessionType Type() const; - - /** - * Return the unique handle associated with this subsession. - * - * @return The unique handle associated with a subsession. - */ - TInt SubSessionUniqueHandle() const; - - - public: - - /** - * Writes to client address space and - * catch bad descriptors. - * - * @param aMessage The client. - * @param aPtr The location where the data is written. - * @param aDes The data that is written. - * @param aOffset The data location where to start the writing. - */ - void Write( - const RMessage2& aMessage, - TInt aLocation, - const TDesC8& aDes, - TInt aOffset = 0 ); - - /** - * Reads from client address space and - * catch bad descriptors. - * - * @param aMessage The client. - * @param aPtr The location where the data is read. - * @param aDes The read data storage. - * @param aOffset The data location where to start the reading. - */ - void Read( - const RMessage2& aMessage, - TInt aLocation, - TDes8& aDes, - TInt aOffset = 0 ); - - - private: // Data - - // A handle to the session which owns this subsession. - CPhSrvSession& iSession; - - // The type of sub-session that this object represents. - TPhSrvSubSessionType iSubSessionType; - }; - - -#endif // CPHSRVSUBSESSIONBASE_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/CPhSrvSubSessionExtCall.h --- a/phoneclientserver/phoneserver/Inc/Standard/CPhSrvSubSessionExtCall.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Sub Session Ext Call. -* -*/ - -#ifndef CPHSRVSUBSESSIONEXTCALL_H -#define CPHSRVSUBSESSIONEXTCALL_H - - -// INCLUDES -#include "cphsrvsubsessionbase.h" -#include - -// CLASS DECLARATION - -/** -* Ext Call Subsession. -* -* @since 1.0 -*/ -class CPhSrvSubSessionExtCall : public CPhSrvSubSessionBase - { - public: // Constructors and destructor - - /** - * Constructor. - * - * @param aSession The session where this subsession belongs. - */ - CPhSrvSubSessionExtCall( CPhSrvSession& aSession ); - - - private: // Functions from base classes - - /** - * @see MPhSrvMessageDecoder - */ - TBool PhSrvMessageDecoderCanProcessMessage( TInt aFunction ); - - /** - * @see MPhSrvMessageProcessor - */ - void PhSrvMessageProcessorHandleMessageL( const RMessage2& aMessage ); - - - private: // SubSession function handlers - - /** - * Close subsession - * - * @param aMessage Message to be processed. - */ - void CmdSubSessionCloseL( const RMessage2& aMessage ); - - /** - * Makes call - * - * @param aMessage Message to be processed. - */ - void CmdSubSessionMakeCallL( const RMessage2& aMessage ); - - /** - * Cancels call - * - * @param aMessage Message to be processed. - */ - void CmdSubSessionMakeCallCancelL( const RMessage2& aMessage ); - - /** - * Creates call argument object - * - * @param aMessage Message to be processed. - */ - void CreateCallArgsL( const RMessage2& aMessage ); - - /** - * Finds chars 'p' and 'w' from input string - * - * @param aString Input string (telephone number). - * @return returns true if number contains chars 'p' or 'w' - */ - TBool IsDtmfPhoneNumber( const TDesC& aString ); - - private: // Data - - // Indicates whether we have an pending request. - TBool iHavePendingDialRequestPointer; - - // Initialized when the client initiates an dial request. This object - // will complete the request when the phone app has responded with - // the result of the dial. - RMessage2 iPendingDialRequestPointer; - - // Call arguments - CPhCltExtPhoneDialData* iCallArgs; - - }; - -#endif // CPHSRVSUBSESSIONEXTCALL_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/CPhSrvSubSessionUssd.h --- a/phoneclientserver/phoneserver/Inc/Standard/CPhSrvSubSessionUssd.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,103 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Subsession for Ussd. -* -*/ - -#ifndef CPHSRVSUBSESSIONUSSD_H -#define CPHSRVSUBSESSIONUSSD_H - - -// INCLUDES -#include "cphsrvsubsessionbase.h" -#include "mphsrvussdmessagesentobserver.h" - - -// CLASS DECLARATION - -/** -* USSD Subsession. -* -* @since 1.0 -*/ -class CPhSrvSubSessionUssd : - public CPhSrvSubSessionBase, - public MPhSrvUssdMessageSentObserver - { - public: - - /** - * Constructor. - * - * @param aSession The session where this subsession belongs. - */ - CPhSrvSubSessionUssd( CPhSrvSession& aSession ); - - - private: // Functions from base classes - - /** - * @see MPhSrvMessageDecoder - */ - TBool PhSrvMessageDecoderCanProcessMessage( TInt aFunction ); - - /** - * @see MPhSrvMessageProcessor - */ - void PhSrvMessageProcessorHandleMessageL( const RMessage2& aMessage ); - - /** - * @see MPhSrvUssdMessageSentObserver - */ - void UssdMessageSentObserverHandleResult( TInt aError ); - - - private: // SubSession function handlers - - void CmdSubSessionCloseL( const RMessage2& aMessage ); - - void CmdSubSessionSendMessageL( const RMessage2& aMessage ); - - void CmdSubSessionSendMessageCancelL( const RMessage2& aMessage ); - - void CmdSubSessionStartEditingL( const RMessage2& aMessage ); - - void CmdSubSessionAppStartingL( const RMessage2& aMessage ); - - void CmdSubSessionAppTerminatingL( const RMessage2& aMessage ); - - void CmdSubSessionAppToForegroundL( const RMessage2& aMessage ); - - void CmdSubSessionAppToBackgroundL( const RMessage2& aMessage ); - - void CmdSubSessionStartSATL( const RMessage2& aMessage ); - - void CmdSubSessionStopSATL( const RMessage2& aMessage ); - - - private: // Data - - // Indicates whether we have a pending send request. - TBool iHavePendingSendMessagePointer; - - // Initialized when the client initiates a send message request. - RMessage2 iPendingSendMessagePointer; - - }; - - -#endif // CPHSRVSUBSESSIONUSSD_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/KPhSrvConfigure.h --- a/phoneclientserver/phoneserver/Inc/Standard/KPhSrvConfigure.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Build configuration file for Phone Server. -* -*/ - - -#ifndef PHSRVCONFIGURE_H -#define PHSRVCONFIGURE_H - - -////////////////////////////////////////////////////////////////////////////// -// DEBUGGING -////////////////////////////////////////////////////////////////////////////// -/** When defined debugging features are built in. */ - -//#define __PHSRV_DEBUG_INFO__ - -#ifdef __PHSRV_DEBUG_INFO__ - -/** When defined, phone server prints RDEBUG messages. */ -#define __PHSRV_PRINT_DEBUG_INFO__ - -/** When defined, phone server writes log. -*/ -//#define __PHSRV_DEBUG_WRITE_LOG__ - -#endif - - -#endif -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/MPhSrvMessageProcessor.h --- a/phoneclientserver/phoneserver/Inc/Standard/MPhSrvMessageProcessor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Message Processor interface class. -* -*/ - - -#ifndef MPHSRVMESSAGEPROCESSOR_H -#define MPHSRVMESSAGEPROCESSOR_H - - -// INCLUDES -#include - - -// CLASS DECLARATION - -/** -* Abstract message decoder class. -* -* @since 1.0 -*/ -class MPhSrvMessageDecoder - { - public: // New functions - - /** - * Returns ETrue if this object can understand the specified - * message function. - * - * @return Whether this object can understand the specified - * client/server operation. - */ - virtual TBool PhSrvMessageDecoderCanProcessMessage( - TInt aFunction ) = 0; - }; - - - -// CLASS DECLARATION - -/** -* Abstract message processor class. -* -* @since 1.0 -*/ -class MPhSrvMessageProcessor : public MPhSrvMessageDecoder - { - public: // New functions - - /** - * Process the specified client/server message. - * - * @param aMessage Message to be processed. - */ - virtual void PhSrvMessageProcessorHandleMessageL( - const RMessage2& aMessage ) = 0; - }; - - -#endif // MPHSRVMESSAGEPROCESSOR - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/MPhSrvPhoneInterface.h --- a/phoneclientserver/phoneserver/Inc/Standard/MPhSrvPhoneInterface.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* -* Copyright (c) 2002 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: Phone Interface. -* -*/ - - -#ifndef MPHSRVPHONEINTERFACE_H -#define MPHSRVPHONEINTERFACE_H - - -// FORWARD DECLARATIONS -class RTelServer; -class RMobilePhone; -class RMmCustomAPI; - - -// CLASS DECLARATION - -/** -* Phone interfaces for other classes. -* -* @since 1.0 -*/ -class MPhSrvPhoneInterface - { - public: // New functions - - /** - * Return a connection to ETel. - * - * @return An ETel connection. - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - virtual RTelServer& PhSrvETelServer() = 0; - - /** - * Return a connection to the phone. - * - * @return Phone connection. - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - virtual RMobilePhone& PhSrvMobilePhone() = 0; - - /** - * Return a connection to the phone. - * - * @return Phone connection. - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - virtual RMmCustomAPI& PhSrvCustomPhone() = 0; - }; - -#endif // MPHSRVPHONEINTERFACE_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/PhSrvDebugInfo.h --- a/phoneclientserver/phoneserver/Inc/Standard/PhSrvDebugInfo.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,210 +0,0 @@ -/* -* Copyright (c) 2002 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: Definition of debug information. -* -*/ - - -#ifndef CPHSRVGDEBUGINFO_H -#define CPHSRVGDEBUGINFO_H - -// INCLUDES - -#include // TInt, cbase -#include "kphsrvconfigure.h" // Debugging feature defines - -// MACROS -//---------------------------------------------------------------------------- -// These macros are for debugging purposes. -// Can be enabled or disabled from KPhSrvConfigure.h -// If disabled, macros are empty and no additionall resources used. -// If Enabled. This class PhSrvDebugInfo is additional load. -// Operations are quite heavy weight because use of debug prints and -// threads local storage. -//---------------------------------------------------------------------------- -#ifdef __PHSRV_DEBUG_INFO__ -#pragma message("\\PhoneServer\\Inc\\Standard\\KPhSrvConfigure.h(107): Warning: ** DEBUG PRINTS ARE ENABLED! ** ") -// For printing only text. -#define _DPRINT(l,t) { PhSrvDebugInfo::Print((l), _L(t) ); } -// For printing text folloved by number. -#define _DDPRINT(l,t,n) { \ - TBuf<60> buf; \ - buf.Append( _L(t) ); \ - buf.AppendNum( (TInt)n ); \ - PhSrvDebugInfo::Print((l), buf ); } -// For print text followed by text -#define _DSPRINT(l,t,s) { \ - TBuf<60> buf; \ - buf.Append( _L(t) ); \ - buf.Append( s.Right(Min(s.Length(), 30 )) ); \ - PhSrvDebugInfo::Print( (l), buf ); } -#else -#define _DPRINT(l,t) -#define _DDPRINT(l,t,n) -#define _DSPRINT(l,t,s) -#endif - -#if defined __PHSRV_DEBUG_TESTER__ && defined __PhSrv_DEBUG_INFO__ -// Init & uninit -#ifdef __PHSRV_DEBUG_TESTER_ALWAYS__ -#define PHSRV_TESTER_INIT() PhSrvDebugInfo::SetTestMonitorL( ETrue ) -#define PHSRV_TESTER_UNINIT() PhSrvDebugInfo::SetTestMonitorL( EFalse ) -#else -#define PHSRV_TESTER_INIT() -#define PHSRV_TESTER_UNINIT() -#endif - -// Enable & disable -#define PHSRV_TESTER_ENABLE() PhSrvDebugInfo::SetTestMonitorL( ETrue ) -#define PHSRV_TESTER_DISABLE() PhSrvDebugInfo::SetTestMonitorL( EFalse ) - -// Leave if set. -#define PHSRV_TESTER_LEAVE( c, e ) \ - { \ - PhSrvDebugInfo::TPhSrvDebugTestData _i; PhSrvDebugInfo::GetTestData( _i ); \ - if ( _i.iCase == (c) ) \ - { \ - _i.iDone++; \ - PhSrvDebugInfo::SetTestData( _i ); \ - User::Leave( (e) ); \ - } \ - } - -// Leave if set, reset also. -#define PHSRV_TESTER_LEAVERESET( c, e ) \ - { \ - PhSrvDebugInfo::TPhSrvDebugTestData _i; PhSrvDebugInfo::GetTestData( _i ); \ - if ( _i.iCase == (c) ) \ - { \ - _i.iCase = _i.iDone = 0; \ - PhSrvDebugInfo::SetTestData( _i ); \ - User::Leave( (e) ); \ - } \ - } - -// Leave if set, reset if amounts reached -#define PHSRV_TESTER_LEAVERESET3( c, e, a ) \ - { \ - PhSrvDebugInfo::TPhSrvDebugTestData _i; PhSrvDebugInfo::GetTestData( _i ); \ - if ( _i.iCase == (c) ) \ - { \ - _i.iDone++; \ - if ( _i.iDone > (a) ) \ - { \ - _i.iCase = _i.iDone = 0; \ - PhSrvDebugInfo::SetTestData( _i ); \ - } \ - User::Leave( (e) ); \ - } \ - } - -// Set failnext if set, reset -#define PHSRV_TESTER_FAILNEXT( c ) \ - { \ - PhSrvDebugInfo::TPhSrvDebugTestData _i; PhSrvDebugInfo::GetTestData( _i ); \ - if ( _i.iCase == (c) ) \ - { \ - User::__DbgSetAllocFail( RHeap::EUser, RHeap::EFailNext, 1 ); \ - } \ - } - -// Reset fail next -#define PHSRV_TESTER_FAILNEXT_RESET() User::__DbgSetAllocFail( RHeap::EUser, RHeap::ENone, 1 ) - -#else - -// Init & uninit -#define PHSRV_TESTER_INIT() -#define PHSRV_TESTER_UNINIT() - -// Enable & disable -#define PHSRV_TESTER_ENABLE() -#define PHSRV_TESTER_DISABLE() - -// Leave -#define PHSRV_TESTER_LEAVE( c, e ) -#define PHSRV_TESTER_LEAVERESET( c, e ) -#define PHSRV_TESTER_LEAVERESET3( c, e, a ) -#define PHSRV_TESTER_FAILNEXT( c ) -#define PHSRV_TESTER_FAILNEXT_RESET() - -#endif - -// FORWARD DECLARATIONS -class RFs; -class RFile; -//class CPhSrvDebugTestMonitor; - -// CLASS DECLARATION - -/** -* Debugging level. From 0-. -* 00 None -* 01 PhoneEngine, Call -* 02 PhoneEngine, Audio -* 03 PhoneEngine, Indicators, Services & others -* 04 PhoneServer -* 05 Phone, logging -* 06 Phone, autom. redial. -* 07 Phone, -* 08 Phone, -* 09 -* 10 Phone, recovery system & indicators -* 11 Phone, ui -* -* @lib phoneengine -* @since 1.2 -*/ -class PhSrvDebugInfo : public CBase - { - private: - NONSHARABLE_CLASS( CPhSrvDebugData ) : public CBase - { - public: - ~CPhSrvDebugData(); - - void CreateFile(); - void ReleaseFile(); - TBool IsFile() const; - void WriteFile( const TDesC8& aDes ); - - private: - RFs* iFs; - RFile* iFile; - - }; - - public: // Constructors and destructor - - - /** - * Prints text if area set. - * - * @param aArea area of text. - * @param aText text to be printed. - */ - static void Print( TInt aArea, const TDesC& aText ); - - - - private: - - // Creates debug data. - static CPhSrvDebugData* CreateData(); - - - - }; -#endif -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/PhSrvStartUp.h --- a/phoneclientserver/phoneserver/Inc/Standard/PhSrvStartUp.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Static Phone Server startup utility class. -* -*/ - - -#ifndef PHSRVSTARTUP_H -#define PHSRVSTARTUP_H - - -// INCLUDES -#include - - -// FORWARD DECLARATIONS -//None. - -// CLASS DECLARATION - -/** -* Static server startup utility class. Encapsulates all the knowledge of how -* to start and prepare the phone server, including build target (WINS/MARM) -* specific functionality. -* -* @since 1.0 -*/ -class PhoneServerStartUpUtils - { - public: // New functions - - - /** - * Creates a new server and starts it. - */ - static void CreateAndRunServerL(); - - /** - * Prepare the server thread, i.e. create a cleanup stack environment - * and start the server for real. - * - * @return Symbian error code of the operation. - */ - static TInt PrepareServerEnvironment(); - }; - - -#endif // PHSRVSTARTUP_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/PhSrvSubSessionFactory.h --- a/phoneclientserver/phoneserver/Inc/Standard/PhSrvSubSessionFactory.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Sub Session Factory. -* -*/ - - -#ifndef PHSRVSUBSESSIONFACTORY_H -#define PHSRVSUBSESSIONFACTORY_H - -// INCLUDES -#include - - -// FORWARD DECLARATIONS -class CPhSrvSession; -class CPhSrvSubSessionBase; - - -// CLASS DECLARATION - -/** -* Subsession creation factory. -* -* @since 1.0 -*/ -class PhSrvSubSessionFactory - { - public: // New functions - - /** - * Whether or not a specified function should result in a new - * subsession being created. - * - * @param aFunction Function to be evaluated. - * @return ETrue if the function (opcode) requires a new subsession. - */ - static TBool PhSrvSubSessionFactoryIsCreationFunction(TInt aFunction); - - /** - * Create a new subsession according to the function (opcode) type. - * - * @param aFunction Function to be created. - * @param aSession Session where the subsession belongs. - * @return A new subsession, left on the cleanup stack. - */ - static CPhSrvSubSessionBase* PhSrvSubSessionFactoryCreateLC( - TInt aFunction, - CPhSrvSession& aSession ); - - /** - * Check Secure ID for a new subsession. - * - * @param aFunction Function to be created. - * @param aSID Secure ID of the process - * @return ETrue if a new subsession creation is allowed - */ - static TBool PhSrvSubSessionFactoryIsCreationAllowed( - TInt aFunction, - TUint32 aSID ); - - }; - -#endif // PHSRVSUBSESSIONFACTORY_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/PhSrvUtils.h --- a/phoneclientserver/phoneserver/Inc/Standard/PhSrvUtils.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Phone Server Utils. -* -*/ - - -#ifndef PHSRVUTILS_H -#define PHSRVUTILS_H - -// DATA TYPES - -/* -* EPhoneServerPanicNoWaitingRequestsToDeque No waiting requests. -* EPhoneServerPanicModeLogicFault Logic failure. -* EPhoneServerPanicCouldNotStartServer Server startup failure. -* EPhoneServerPanicSchedulerError Schedule failure. -* EPhoneServerPanicNoInitiatingCallObject Missing call object. -* EPhoneServerPanicExistingCallInitiatorFault Existing initiator fail. -* EPhoneServerPanicNoCallInitiatorFault Missing initiator failure. -* EPhoneServerPanicInitiatorHandleMisMatchFault Mismatch failure. -* EPhoneServerPanicNoPendingSendRequestFault Sending failure. -* EPhoneServerPanicNoPendingTimeOutRequestFault Timeout failure. -* EPhoneServerPanicUssdAutoReplyTimerAlreadyActive Timer already active. -* EPhoneServerPanicInvalidInitiatorPriority Initiator failure. -* EPhoneServerPanicCannotOpenPrimaryVoiceLine Primary line open failure. -* EPhoneServerPanicCouldNotRenameServerThread Renaming of thread failed. -* EPhoneServerPanicLineTypeInvalid Invalid line type. -* EPhoneServerPanicSharedDataConnectionFailure Shared data failure. -* EPhoneServerPanicSystemAgentConnectionFailure System agent failure. -* EPhoneServerPanicEmergencyCallRequestFailure Emergency call failure. -* EPhoneServerPanicExistingComHandInitiatorFault Existing ComHand fail. -* EPhoneServerPanicTooManyRequestsOngoing More than one req/subses. -* EPhoneServerPanicMissingComInitiator Com initiator missing -* EPhoneServerPanicMissingMessNegotiator Messenger negotiator missing -* EPhoneServerPanicMissingEmerNegotiator Emergency call negotiator missing -* -* EPhoneServerPanicLast Keep as last value! -*/ -enum TPhoneServerPanic - { - EPhoneServerPanicNoWaitingRequestsToDeque = 0, - EPhoneServerPanicModeLogicFault = 1, - EPhoneServerPanicCouldNotStartServer = 2, - EPhoneServerPanicSchedulerError = 3, - EPhoneServerPanicNoInitiatingCallObject = 4, - EPhoneServerPanicExistingCallInitiatorFault = 5, - EPhoneServerPanicNoCallInitiatorFault = 6, - EPhoneServerPanicInitiatorHandleMisMatchFault = 7, - EPhoneServerPanicNoPendingSendRequestFault = 8, - EPhoneServerPanicNoPendingTimeOutRequestFault = 9, - EPhoneServerPanicUssdAutoReplyTimerAlreadyActive = 10, - EPhoneServerPanicInvalidInitiatorPriority = 11, - EPhoneServerPanicCannotOpenPrimaryVoiceLine = 12, - EPhoneServerPanicCouldNotRenameServerThread = 13, - EPhoneServerPanicLineTypeInvalid = 14, - EPhoneServerPanicSharedDataConnectionFailure = 15, - EPhoneServerPanicSystemAgentConnectionFailure = 16, - EPhoneServerPanicEmergencyCallRequestFailure = 17, - EPhoneServerPanicExistingComHandInitiatorFault = 18, - EPhoneServerPanicTooManyRequestsOngoing = 19, - EPhoneServerPanicMissingComInitiator = 20, - EPhoneServerPanicMissingMessNegotiator = 21, - EPhoneServerPanicMissingEmerNegotiator = 22, - - EPhoneServerPanicLast // Keep as last! - }; - -// CLASS DECLARATION - -/** -* Phone Server utils class. -* -* @since 1.0 -*/ -class PhoneServerUtils - { - public: // New functions - - /** - * Panic function for Phone Server usage. - * - * @param aPanic Panic code. - */ - static void Panic( TPhoneServerPanic aPanic ); - - - /** - * Panic the client using Phone Server. - * @since 2.6 - * - * @param aPanic Panic code. - * @param aMessage The client to be paniced. - */ - static void PanicClient( - TPhoneServerPanic aPanic, - const RMessage2& aMessage ); - }; - - -#endif // PHSRVUTILS_H - - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/CPhSrvCallRequest.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/CPhSrvCallRequest.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Call Request. -* -*/ - - -#ifndef CPHSRVCALLREQUEST_H -#define CPHSRVCALLREQUEST_H - - -// INCLUDES -#include -#include - -// CONSTANTS - -// Default emergency number -_LIT( KPhSrvUsedEmergencyCallNumber , "112" ); - - -// FORWARD DECLARATIONS -class CPhSrvSubSessionBase; - - -// CLASS DECLARATION - -/** -* Call request class. -* -* @since 1.0 -*/ -class CPhSrvCallRequest : public CBase - { - public: // Constructors and destructor - - /** - * Tell the external client (who requested that a number was called) the - * result of their actions. This information has come via the notifier - * (i.e. the phone app engine). - * - * @param aMessage The outstanding client request which will be completed - * when the call initiation outcome is known. - * @param aArguments The call arguments, such as phone number, contact - * id, client window group etc. - * @param aSubSessionHandle The subsession handle. - * @return Pointer to created CPhSrvCallRequest instance. - */ - static CPhSrvCallRequest* NewLC( - const RMessage2& aMessage, - CPhCltExtPhoneDialData& aArguments, - TInt aSubSessionHandle ); - - /** - * Constructor for Emergency call object only. - */ - static CPhSrvCallRequest* NewL(); - - public: // New functions - - /** - * Tell the external client (who requested that a number was called) the - * result of their actions. This information has come via the notifier - * (i.e. the phone app engine). - * - * @param aResultOfAttemptingCall - * The result of initiating an earlier call. - */ - void InformOfCallAttemptResult( - TPhCltPhoneResults aResultOfAttemptingCall ); - - /** - * Cancel the asynchronous dial process. Completes client request with - * KErrCancel - */ - void Cancel(); - - /** - * The sub-session handle. - * - * @return The unique handle associated with the subsession which - * initiated a call request. - */ - TInt SubSessionHandle() const; - - /** - * The arguments for the call. - * - * @return The call arguments. - */ - CPhCltExtPhoneDialData& CallArguments() const; - - /** - * Update Emergency call status - * @param aMessage The outstanding client request which will be completed - * when the call initiation outcome is known. - * @param aArguments The call arguments, such as phone number, - * contact id, client window group etc. - * @param aSubSessionHandle Subsession handle to emergency call. - */ - void UpdateEmercgencyCall( - const RMessage2& aMessage, - CPhCltExtPhoneDialData& aArguments, - TInt aSubSessionHandle ); - - /** - * Clear the Emergency call object data. - */ - void ClearEmergencyCall(); - - - private: - - /** - * C++ constructor - */ - CPhSrvCallRequest( - const RMessage2& aMessage, - CPhCltExtPhoneDialData& aArguments, - TInt aSubSessionHandle ); - - /** - * C++ constructor - */ - CPhSrvCallRequest(); - - - private: // Data - - // A list of requests made by the external call interface that the phone - // app should dial. It completes them sequentially after its finished - // the previous call. - RMessage2 iPendingRequestPointer; - - // The object responsible for processing external client call requests. - // This is essentially an interface to the phone app engine. - - CPhCltExtPhoneDialData* iCallArguments; - - // A handle to the subsession that initiated this request. - TInt iSubSessionHandle; - }; - - -#endif // CPHSRVCALLREQUEST_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/CPhSrvCallRequestManager.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/CPhSrvCallRequestManager.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Call Request Manager. -* -*/ - - -#ifndef CPHSRVCALLREQUESTMANAGER_H -#define CPHSRVCALLREQUESTMANAGER_H - - -// INCLUDES -#include -#include "mphsrvobjectnegotiators.h" -#include "mphsrvobjectinitiators.h" -#include - -// FORWARD DECLARATIONS -class CPhSrvCallRequest; - - -// CLASS DECLARATION - -/** -* Call request manager. -* -* @since 1.0 -*/ -class CPhSrvCallRequestManager : - public CBase, - public MPhSrvNegotiatorCall - { - public: // Constructors and destructor - - /** - * Constructor. - */ - CPhSrvCallRequestManager(); - - /** - * Destructor. - */ - ~CPhSrvCallRequestManager(); - - /** - * Symbian 2nd phase constructor. - */ - void ConstructL(); - - - public: // Functions from base classes - - /** - * @see MPhSrvNegotiatorCallBase - */ - void NegotiatorDialL( - const RMessage2& aMessage, - CPhCltExtPhoneDialData& aArgs, - CPhSrvSubSessionBase& aSubSession ); - - /** - * @see MPhSrvNegotiatorCallBase - */ - void NegotiatorDialCancelL( CPhSrvSubSessionBase& aSubSession ); - - /** - * @see MPhSrvNegotiatorCall - */ - void SetNegotiatorReadyCallL( MPhSrvInitiatorCall& aInitiator ); - - /** - * @see MPhSrvNegotiatorCall - */ - void SetNegotiatorReadyCallCancel( MPhSrvInitiatorCall& aInitiator ); - - /** - * @see MPhSrvNegotiatorCall - */ - void SetNegotiatorAttemptedCallResponseValue( - TPhCltPhoneResults aResult ); - - - private: // Data - - // A list of requests made by the external call interface that the phone - // app should dial. It completes them sequentially after its finished - // the previous call. - // Index 0 is reserved for the emergency call. - RPointerArray* iOutstandingRequestsCall; - - // The object responsible for processing external client call requests. - // This is essentially an interface to the phone app engine. - MPhSrvInitiatorCall* iCallInitiator; - }; - - -#endif // CPHSRVCALLREQUESTMANAGER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/CPhSrvEmergencyRequestManager.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/CPhSrvEmergencyRequestManager.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,118 +0,0 @@ -/* -* Copyright (c) 2002-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: Emergency call request manager. -* -*/ - - -#ifndef CPHSRVEMERGENCYREQUESTMANAGER_H -#define CPHSRVEMERGENCYREQUESTMANAGER_H - - -// INCLUDES -#include -#include "mphsrvemergencynegotiators.h" -#include "mphsrvemergencyinitiators.h" - - -// FORWARD DECLARATIONS -class CPhSrvCallRequest; - - -// CLASS DECLARATION - -/** -* Call request manager. -* -* @since 1.0 -*/ -class CPhSrvEmergencyRequestManager : - public CBase, - public MPhSrvEmergencyNegotiatorCall - { - public: // Constructors and destructor - - /** - * Constructor. - */ - CPhSrvEmergencyRequestManager(); - - /** - * Destructor. - */ - ~CPhSrvEmergencyRequestManager(); - - /** - * Symbian 2nd phase constructor. - */ - void ConstructL(); - - - public: // Functions from base classes - - /** - * @see MPhSrvEmergencyCallBase - */ - void EmergencyDialL( const RMessage2& aMessage ); - - /** - * @see MPhSrvEmergencyCallBase - */ - void EmergencyDialCancel(); - - /** - * @see MPhSrvNegotiatorCall - */ - void SetNegotiatorReadyCall( MPhSrvEmergencyCall& aInitiator ); - - /** - * @see MPhSrvNegotiatorCall - */ - void SetNegotiatorReadyCallCancel( MPhSrvEmergencyCall& aInitiator ); - - /** - * @see MPhSrvNegotiatorCall - */ - void SetNegotiatorAttemptedCallResponseValue( - TPhCltPhoneResults aResult ); - - private: - - /** - * Does emergency call request - */ - void DoMakeEmergencyDial( const RMessage2& aMessage ); - - private: // Data - - // The object responsible for processing external client call requests. - // This is essentially an interface to the phone app engine. - MPhSrvEmergencyCall* iEmergencyInitiator; - - // Pending request message pointer - RMessagePtr2 iPendingRequestPointer; - - // Pending request message - RMessage2 iPendingRequest; - - // Pending request flag - TBool iIsRequestPending; - - }; - - -#endif // CPHSRVEMERGENCYREQUESTMANAGER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/CPhSrvSubSessionEmergencyNum.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/CPhSrvSubSessionEmergencyNum.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Emergency Number Subsession. -* -*/ - -#ifndef CPHSRVSUBSESSIONEMERGENCYNUM_H -#define CPHSRVSUBSESSIONEMERGENCYNUM_H - - -// INCLUDES -#include "cphsrvsubsessionbase.h" - - -// CLASS DECLARATION - -/** -* Emergency Number subsession. -* -* @since 1.0 -*/ -class CPhSrvSubSessionEmergencyNum : public CPhSrvSubSessionBase - { - public: // Constructors and destructor - - /** - * Constructor - * - * @param aSession The session where this subsession belongs. - */ - CPhSrvSubSessionEmergencyNum( CPhSrvSession& aSession ); - - /** - * @see CPhSrvSubSessionBase - */ - void ConstructL(); - - - private: - /** - * @see MPhSrvMessageDecoder - */ - TBool PhSrvMessageDecoderCanProcessMessage( TInt aFunction ); - - /** - * @see MPhSrvMessageProcessor - */ - void PhSrvMessageProcessorHandleMessageL( const RMessage2& aMessage ); - - private: // SubSession function handlers - - void CmdSubSessionCloseL( const RMessage2& aMessage ); - - void CmdSubSessionIsEmergencyNumberL( const RMessage2& aMessage ); - - void CmdSubSessionDialEmergencyCallL( const RMessage2& aMessage ); - - void CmdSubSessionDialEmergencyCallCancelL( const RMessage2& aMessage ); - - }; - -#endif // CPHSRVSUBSESSIONEMERGENCYNUM_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/CPhSrvSubSessionNotifier.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/CPhSrvSubSessionNotifier.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,191 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Sub Session Notifier. -* -*/ - - -#ifndef CPHSRVSUBSESSIONNOTIFIER_H -#define CPHSRVSUBSESSIONNOTIFIER_H - - -// INCLUDES -#include -#include -#include // for TPhCltEmergencyNumber -#include "cphsrvsubsessionbase.h" -#include "mphsrvemergencyinitiators.h" -#include "mphsrvobjectinitiators.h" -#include "mphsrvcomhandinitiators.h" - -// CLASS DECLARATION - -/** -* Call Notifier Subsession. -* -* @since 1.0 -*/ -class CPhSrvSubSessionNotifier : - public CPhSrvSubSessionBase, - public MPhSrvComHandInitiator, - public MPhSrvInitiatorCall, - public MPhSrvEmergencyCall - { - private: - - - public: // Constructors and destructor - - /** - * Constructor - * - * @param aSession The session where this subsession belongs. - */ - CPhSrvSubSessionNotifier( CPhSrvSession& aSession ); - - /** - * Destructor - */ - ~CPhSrvSubSessionNotifier(); - - /** - * Symbian 2nd phase constructor. - */ - void ConstructL(); - - - private: // Functions from base classes - - /** - * @see MPhSrvMessageDecoder - */ - TBool PhSrvMessageDecoderCanProcessMessage( TInt aFunction ); - - /** - * @see MPhSrvMessageProcessor - */ - void PhSrvMessageProcessorHandleMessageL( const RMessage2& aMessage ); - - /** - * Called by the notification manager when the phone app engine should - * be informed that it needs to make a call. - * - * @see MPhSrvInitiatorCall - */ - void InitiatorMakeAsynchronousCallL( CPhCltExtPhoneDialData& aArgs ); - /** - * Does this subsession have a pending request? - * - * @see MPhSrvInitiatorCall - */ - TBool InitiatorIsReadyToMakeCall() const; - - /** - * Called by the notification manager when the phone app engine should - * be informed that it needs to make a call. - * - * @see MPhSrvInitiatorCall - */ - void InitiatorMakeEmergencyCall( const RMessage2& aMessage ); - - /** - * Does this subsession have a pending request? - * - * @see MPhSrvInitiatorCall - */ - TBool InitiatorIsReadyToMakeEmergencyCall() const; - - /** - * @see MPhSrvComHandInitiator - */ - void InitiatorMakeAsynchronousComHandRequest( - const TPhCltComHandCommandParameters& - aParams ); - - /** - * @see MPhSrvComHandInitiator - */ - TBool InitiatorIsReadyToPerformRequest() const; - - private: // SubSession function handlers - - void CmdSubSessionCloseL( const RMessage2& aMessage ); - - void CmdSubSessionNotifyCallRequestL( const RMessage2& aMessage ); - - void CmdSubSessionNotifyCallRequestCancelL( const RMessage2& aMessage ); - - void CmdSubSessionReportCallResultL( const RMessage2& aMessage ); - - void CmdSubSessionDialDataL ( const RMessage2& aMessage ); - - void CmdSubSessionNotifyEmergencyL ( const RMessage2& aMessage ); - - void CmdSubSessionNotifyEmergencyCancel( const RMessage2& aMessage ); - - void CmdSubSessionReportEmergencyCallResultL( const RMessage2& aMessage ); - - void CmdSubSessionComHandNotifyRequestL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandNotifyRequestCancelL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandNotifyReportL( - const RMessage2& aMessage ); - - /** - * Clones call arguments to object - * - * @param aArgs Arguments to be cloned. - */ - void CmdSubSessionCloneDialDataL( CPhCltExtPhoneDialData& aArgs ); - - private: // Data - - // Indicates whether we have an pending request - TBool iHavePendingDialRequestPointer; - - // Initialized when the phone app engine is - // ready to handle dial requests. - RMessage2 iPendingDialRequestPointer; - - // Indicates whether we have an pending request - TBool iHavePendingEmergencyRequestPointer; - - // Initialized when the phone app engine is - // ready to handle dial requests. - RMessage2 iPendingEmergencyRequestPointer; - - //Dialdata pointer used to save dialdata arguments (for phone) - CPhCltExtPhoneDialData* iDialData; - - TPhCltEmergencyNumber iTelNumber; - - TPckg< TPhCltEmergencyNumber > iTelNumberPckg; - - // Indicates whether we have an pending request - TBool iHavePendingComHandRequestPointer; - - // Initialized when the phone app engine is - // ready to handle command handler requests. - RMessage2 iPendingComHandRequestPointer; - - - }; - -#endif // CPHSRVSUBSESSIONNOTIFIER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/MPhSrvEmergencyInitiators.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/MPhSrvEmergencyInitiators.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* -* Copyright (c) 2002 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: Object Initiators. -* -*/ - - -#ifndef MPHSRVEMERGENCYINITIATORS_H -#define MPHSRVEMERGENCYINITIATORS_H - - -// INCLUDES -#include - - -// FORWARD DECLARATIONS - - -// CLASS DECLARATION - -/** -* Initiator functions class. -* -* @since 1.0 -*/ -class MPhSrvEmergencyCall - { - public: // New functions - - /** - * Called by the call manager when it wants to make a emergency call response - * to a request from the external call interface. - * - */ - virtual void InitiatorMakeEmergencyCall( const RMessage2& aMessage )=0;//const TPhCltTelephoneNumber aNumber ) =0; - - /** - * Called by the call manager to find out if there is a registered - * notification handler . - * - * @return ETrue if there is pending notification request. - */ - virtual TBool InitiatorIsReadyToMakeEmergencyCall() const = 0; - - }; - -#endif // MPHSRVEMERGENCYINITIATORS_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/MPhSrvEmergencyNegotiators.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/MPhSrvEmergencyNegotiators.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Object Negotiators. -* -*/ - - -#ifndef MPHSRVEMERGENCYNEGOTIATORS_H -#define MPHSRVEMERGENCYNEGOTIATORS_H - - -// INCLUDES -#include -#include - - -// FORWARD DECLARATIONS -class MPhSrvEmergencyCall; -class CPhSrvSubSessionBase; - - -// CLASS DECLARATION - -/** -* Base class for call negotiators. -* -* @since 1.0 -*/ -class MPhSrvEmergencyCallBase - { - public: // New functions - - /** - * Makes an dial request. - * - * @param aMessage Message to be negotiated. - * @param aArgs Call arguments. - * @param aSubSession Subsession for dial. - */ - virtual void EmergencyDialL( - const RMessage2& aMessage) = 0; - - - /** - * Cancel's an oustanding dial request. If the specified subsession - * doesn't have an oustanding dial request, then the subsession is - * panicked. - * - * @param aSubSession Subsession that has the dial request. - */ - virtual void EmergencyDialCancel() = 0; - }; - -/** -* Abstract call negotiators class. -* -* @since 1.0 -*/ -class MPhSrvEmergencyNegotiatorCall : public MPhSrvEmergencyCallBase - { - public: // New functions - - /** - * Called by the call notifier subsession when it's ready to negotiate - * (make another call) with the external call interface. - * - * @param aInitiator Call initiator instance. - */ - virtual void SetNegotiatorReadyCall( - MPhSrvEmergencyCall& aInitiator ) = 0; - - /** - * Called by the call notifier subsession when it isn't going to be - * available to make further calls (session has closed) - * - * @param aInitiator Call initiator instance. - */ - virtual void SetNegotiatorReadyCallCancel( - MPhSrvEmergencyCall& aInitiator ) = 0; - - /** - * Called by the call notifier subsession when it's attempted to make a - * call - the call negotiator can then inform the external call - * interface of the result. - * - * @param aResult Result of the call attempt. - */ - virtual void SetNegotiatorAttemptedCallResponseValue( - TPhCltPhoneResults aResult ) = 0; - }; - - -#endif // MPHSRVEMERGENCYNEGOTIATORS_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/MPhSrvEmergencyNumberManager.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/MPhSrvEmergencyNumberManager.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* -* Copyright (c) 2002 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: Emergency Number Manager. -* -*/ - - -#ifndef MPHSRVEMERGENCYNUMBERMANAGER_H -#define MPHSRVEMERGENCYNUMBERMANAGER_H - -// INCLUDES -#include "phcltclientserver.h" -#include - -// FORWARD DECLARATIONS - - -// CLASS DECLARATION - -/** -* The interface to the emergency number manager. -* -* @since 1.0 -*/ -class MPhSrvEmergencyNumberManager - { - public: // New functions - - /** - * Checks aNumber to see if it qualifies as an emergency number. - * - * @param aNumber Number to be checked. - * @param aMode Emergency number query check mode. - * @return True if the specified number is an emergency number. - */ - virtual TBool EmergencyNumberManagerIsEmergencyNumberL( - TDes& aNumber, - TPhCltEmergencyNumberQueryMode aMode ) = 0; - }; - - -#endif // MPHSRVEMERGENCYNUMBERMANAGER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/MPhSrvObjectInitiators.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/MPhSrvObjectInitiators.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,62 +0,0 @@ -/* -* Copyright (c) 2002 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: Object Initiators. -* -*/ - - -#ifndef MPHSRVOBJECTINITIATORS_H -#define MPHSRVOBJECTINITIATORS_H - - -// INCLUDES -#include - - -// FORWARD DECLARATIONS -class CPhCltExtPhoneDialData; - -// CLASS DECLARATION - -/** -* Initiator functions class. -* -* @since 1.0 -*/ -class MPhSrvInitiatorCall - { - public: // New functions - - /** - * Called by the call manager when it wants to make a call (in response - * to a request from the external call interface). - * - * @param aArgs The call parameters. - */ - virtual void InitiatorMakeAsynchronousCallL( - CPhCltExtPhoneDialData& aArgs ) =0; - /** - * Called by the call manager to find out if there is a registered - * notification handler. - * - * @return ETrue if there is pending notification request. - */ - virtual TBool InitiatorIsReadyToMakeCall() const = 0; - - }; - -#endif // MPHSRVOBJECTINITIATORS_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/MPhSrvObjectNegotiators.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_Aiw/MPhSrvObjectNegotiators.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Object Negotiators. -* -*/ - - -#ifndef MPHSRVOBJECTNEGOTIATORS_H -#define MPHSRVOBJECTNEGOTIATORS_H - - -// INCLUDES -#include -#include -#include - -// FORWARD DECLARATIONS -class MPhSrvInitiatorCall; -class MPhSrvInitiatorStatus; -class CPhSrvSubSessionBase; - - -// CLASS DECLARATION - -/** -* Base class for call negotiators. -* -* @since 1.0 -*/ -class MPhSrvNegotiatorCallBase - { - public: // New functions - - /** - * Makes an dial request. - * - * @param aMessage Message to be negotiated. - * @param aArgs Call arguments. - * @param aSubSession Subsession for dial. - */ - virtual void NegotiatorDialL( - const RMessage2& aMessage, - CPhCltExtPhoneDialData& aArgs, - CPhSrvSubSessionBase& aSubSession ) = 0; - - /** - * Cancel's an oustanding dial request. If the specified subsession - * doesn't have an oustanding dial request, then the subsession is - * panicked. - * - * @param aSubSession Subsession that has the dial request. - */ - virtual void NegotiatorDialCancelL( - CPhSrvSubSessionBase& aSubSession ) = 0; - }; - - -/** -* Abstract call negotiators class. -* -* @since 1.0 -*/ -class MPhSrvNegotiatorCall : public MPhSrvNegotiatorCallBase - { - public: // New functions - - /** - * Called by the call notifier subsession when it's ready to negotiate - * (make another call) with the external call interface. - * - * @param aInitiator Call initiator instance. - */ - virtual void SetNegotiatorReadyCallL( - MPhSrvInitiatorCall& aInitiator ) = 0; - - /** - * Called by the call notifier subsession when it isn't going to be - * available to make further calls (session has closed) - * - * @param aInitiator Call initiator instance. - */ - virtual void SetNegotiatorReadyCallCancel( - MPhSrvInitiatorCall& aInitiator ) = 0; - - /** - * Called by the call notifier subsession when it's attempted to make a - * call - the call negotiator can then inform the external call - * interface of the result. - * - * @param aResult Result of the call attempt. - */ - virtual void SetNegotiatorAttemptedCallResponseValue( - TPhCltPhoneResults aResult ) = 0; - }; - -#endif // MPHSRVOBJECTNEGOTIATORS_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/CPhSrvCallRequest.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/CPhSrvCallRequest.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,160 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Call Request. -* -*/ - - -#ifndef CPHSRVCALLREQUEST_H -#define CPHSRVCALLREQUEST_H - - -// INCLUDES -#include -#include - - -// CONSTANTS - -// Default emergency number -_LIT( KPhSrvUsedEmergencyCallNumber , "112" ); - - -// FORWARD DECLARATIONS -class CPhSrvSubSessionBase; - - -// CLASS DECLARATION - -/** -* Call request class. -* -* @since 1.0 -*/ -class CPhSrvCallRequest : public CBase - { - public: // Constructors and destructor - - /** - * Tell the external client (who requested that a number was called) the - * result of their actions. This information has come via the notifier - * (i.e. the phone app engine). - * - * @param aMessage The outstanding client request which will be completed - * when the call initiation outcome is known. - * @param aArguments The call arguments, such as phone number, contact - * id, client window group etc. - * @param aSubSessionHandle The subsession handle. - * @return Pointer to created CPhSrvCallRequest instance. - */ - static CPhSrvCallRequest* NewLC( - const RMessage2& aMessage, - const TPhCltCallArgs& aArguments, - TInt aSubSessionHandle ); - - /** - * Constructor for Emergency call object only. - */ - static CPhSrvCallRequest* NewL(); - - - public: // New functions - - /** - * Tell the external client (who requested that a number was called) the - * result of their actions. This information has come via the notifier - * (i.e. the phone app engine). - * - * @param aResultOfAttemptingCall - * The result of initiating an earlier call. - */ - void InformOfCallAttemptResult( - TPhCltPhoneResults aResultOfAttemptingCall ); - - /** - * Cancel the asynchronous dial process. Completes client request with - * KErrCancel - */ - void Cancel(); - - /** - * The sub-session handle. - * - * @return The unique handle associated with the subsession which - * initiated a call request. - */ - TInt SubSessionHandle() const; - - /** - * The arguments for the call. - * - * @return The call arguments. - */ - const TPhCltCallArgs& CallArguments() const; - - /** - * Update Emergency call status - * @param aMessage The outstanding client request which will be completed - * when the call initiation outcome is known. - * @param aArguments The call arguments, such as phone number, - * contact id, client window group etc. - * @param aSubSessionHandle Subsession handle to emergency call. - */ - void UpdateEmercgencyCall( - const RMessage2& aMessage, - const TPhCltCallArgs& aArguments, - TInt aSubSessionHandle ); - - /** - * Clear the Emergency call object data. - */ - void ClearEmergencyCall(); - - - private: - - /** - * C++ constructor - */ - CPhSrvCallRequest( - const RMessage2& aMessage, - const TPhCltCallArgs& aArguments, - TInt aSubSessionHandle ); - - /** - * C++ constructor - */ - CPhSrvCallRequest(); - - - private: // Data - - // A list of requests made by the external call interface that the phone - // app should dial. It completes them sequentially after its finished - // the previous call. - RMessage2 iPendingRequestPointer; - - // The object responsible for processing external client call requests. - // This is essentially an interface to the phone app engine. - TPhCltCallArgs iCallArguments; - - // A handle to the subsession that initiated this request. - TInt iSubSessionHandle; - }; - - -#endif // CPHSRVCALLREQUEST_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/CPhSrvCallRequestManager.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/CPhSrvCallRequestManager.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Call Request Manager. -* -*/ - - -#ifndef CPHSRVCALLREQUESTMANAGER_H -#define CPHSRVCALLREQUESTMANAGER_H - - -// INCLUDES -#include -#include "mphsrvobjectnegotiators.h" -#include "mphsrvobjectinitiators.h" - - -// FORWARD DECLARATIONS -class CPhSrvCallRequest; - - -// CLASS DECLARATION - -/** -* Call request manager. -* -* @since 1.0 -*/ -class CPhSrvCallRequestManager : - public CBase, - public MPhSrvNegotiatorCall - { - public: // Constructors and destructor - - /** - * Constructor. - */ - CPhSrvCallRequestManager(); - - /** - * Destructor. - */ - ~CPhSrvCallRequestManager(); - - /** - * Symbian 2nd phase constructor. - */ - void ConstructL(); - - - public: // Functions from base classes - - /** - * @see MPhSrvNegotiatorCallBase - */ - void NegotiatorDialL( - const RMessage2& aMessage, - const TPhCltCallArgs& aArgs, - CPhSrvSubSessionBase& aSubSession ); - - /** - * @see MPhSrvNegotiatorCallBase - */ - void NegotiatorDialCancel( CPhSrvSubSessionBase& aSubSession ); - - /** - * @see MPhSrvNegotiatorCall - */ - void SetNegotiatorReadyCall( MPhSrvInitiatorCall& aInitiator ); - - /** - * @see MPhSrvNegotiatorCall - */ - void SetNegotiatorReadyCallCancel( MPhSrvInitiatorCall& aInitiator ); - - /** - * @see MPhSrvNegotiatorCall - */ - void SetNegotiatorAttemptedCallResponseValue( - TPhCltPhoneResults aResult ); - - - private: // Data - - // A list of requests made by the external call interface that the phone - // app should dial. It completes them sequentially after its finished - // the previous call. - // Index 0 is reserved for the emergency call. - RPointerArray* iOutstandingRequestsCall; - - // The object responsible for processing external client call requests. - // This is essentially an interface to the phone app engine. - MPhSrvInitiatorCall* iCallInitiator; - }; - - -#endif // CPHSRVCALLREQUESTMANAGER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/CPhSrvSubSessionEmergencyNum.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/CPhSrvSubSessionEmergencyNum.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,72 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Emergency Number Subsession. -* -*/ - -#ifndef CPHSRVSUBSESSIONEMERGENCYNUM_H -#define CPHSRVSUBSESSIONEMERGENCYNUM_H - - -// INCLUDES -#include "cphsrvsubsessionbase.h" - - -// CLASS DECLARATION - -/** -* Emergency Number subsession. -* -* @since 1.0 -*/ -class CPhSrvSubSessionEmergencyNum : public CPhSrvSubSessionBase - { - public: // Constructors and destructor - - /** - * Constructor - * - * @param aSession The session where this subsession belongs. - */ - CPhSrvSubSessionEmergencyNum( CPhSrvSession& aSession ); - - /** - * @see CPhSrvSubSessionBase - */ - void ConstructL(); - - - private: - /** - * @see MPhSrvMessageDecoder - */ - TBool PhSrvMessageDecoderCanProcessMessage( TInt aFunction ); - - /** - * @see MPhSrvMessageProcessor - */ - void PhSrvMessageProcessorHandleMessageL( const RMessage2& aMessage ); - - private: // SubSession function handlers - - void CmdSubSessionCloseL( const RMessage2& aMessage ); - - void CmdSubSessionIsEmergencyNumberL( const RMessage2& aMessage ); - - }; - -#endif // CPHSRVSUBSESSIONEMERGENCYNUM_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/CPhSrvSubSessionNotifier.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/CPhSrvSubSessionNotifier.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,146 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Sub Session Notifier. -* -*/ - - -#ifndef CPHSRVSUBSESSIONNOTIFIER_H -#define CPHSRVSUBSESSIONNOTIFIER_H - - -// INCLUDES -#include -#include "cphsrvsubsessionbase.h" -#include "mphsrvobjectinitiators.h" -#include "cphsrvsubsessionnotifier.h" -#include "mphsrvcomhandinitiators.h" - -// CLASS DECLARATION - -/** -* Call Notifier Subsession. -* -* @since 1.0 -*/ -class CPhSrvSubSessionNotifier : - public CPhSrvSubSessionBase, - public MPhSrvInitiatorCall, - public MPhSrvComHandInitiator - { - private: - - - public: // Constructors and destructor - - /** - * Constructor - * - * @param aSession The session where this subsession belongs. - */ - CPhSrvSubSessionNotifier( CPhSrvSession& aSession ); - - /** - * Destructor - */ - ~CPhSrvSubSessionNotifier(); - - /** - * Symbian 2nd phase constructor. - */ - void ConstructL(); - - - private: // Functions from base classes - - /** - * @see MPhSrvMessageDecoder - */ - TBool PhSrvMessageDecoderCanProcessMessage( TInt aFunction ); - - /** - * @see MPhSrvMessageProcessor - */ - void PhSrvMessageProcessorHandleMessageL( const RMessage2& aMessage ); - - /** - * Called by the notification manager when the phone app engine should - * be informed that it needs to make a call. - * - * @see MPhSrvInitiatorCall - */ - void InitiatorMakeAsynchronousCall( const TPhCltCallArgs& aArgs ); - - /** - * Does this subsession have a pending request? - * - * @see MPhSrvInitiatorCall - */ - TBool InitiatorIsReadyToMakeCall() const; - - /** - * @see MPhSrvComHandInitiator - */ - void InitiatorMakeAsynchronousComHandRequest( - const TPhCltComHandCommandParameters& - aParams ); - - - /** - * @see MPhSrvComHandInitiator - */ - TBool InitiatorIsReadyToPerformRequest() const; - - private: // SubSession function handlers - - void CmdSubSessionCloseL( const RMessage2& aMessage ); - - void CmdSubSessionNotifyCallRequestL( const RMessage2& aMessage ); - - void CmdSubSessionNotifyCallRequestCancelL( const RMessage2& aMessage ); - - void CmdSubSessionReportCallResultL( const RMessage2& aMessage ); - - void CmdSubSessionComHandNotifyRequestL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandNotifyRequestCancelL( - const RMessage2& aMessage ); - - void CmdSubSessionComHandNotifyReportL( - const RMessage2& aMessage ); - - private: // Data - - // Indicates whether we have an pending request - TBool iHavePendingDialRequestPointer; - - // Initialized when the phone app engine is - // ready to handle dial requests. - RMessage2 iPendingDialRequestPointer; - - // Indicates whether we have an pending request - TBool iHavePendingComHandRequestPointer; - - // Initialized when the phone app engine is - // ready to handle command handler requests. - RMessage2 iPendingComHandRequestPointer; - - - }; - -#endif // CPHSRVSUBSESSIONNOTIFIER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/MPhSrvEmergencyNumberManager.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/MPhSrvEmergencyNumberManager.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* -* Copyright (c) 2002 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: Emergency Number Manager. -* -*/ - - -#ifndef MPHSRVEMERGENCYNUMBERMANAGER_H -#define MPHSRVEMERGENCYNUMBERMANAGER_H - - -// INCLUDES -#include - -// FORWARD DECLARATIONS - - -// CLASS DECLARATION - -/** -* The interface to the emergency number manager. -* -* @since 1.0 -*/ -class MPhSrvEmergencyNumberManager - { - public: // New functions - - /** - * Checks aNumber to see if it qualifies as an emergency number. - * - * @param aNumber Number to be checked. - * @param aMode Emergency number query check mode. - * @return True if the specified number is an emergency number. - */ - virtual TBool EmergencyNumberManagerIsEmergencyNumberL( - TDes& aNumber, - TPhCltEmergencyNumberQueryMode aMode ) = 0; - }; - - -#endif // MPHSRVEMERGENCYNUMBERMANAGER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/MPhSrvObjectInitiators.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/MPhSrvObjectInitiators.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,63 +0,0 @@ -/* -* Copyright (c) 2002 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: Object Initiators. -* -*/ - - -#ifndef MPHSRVOBJECTINITIATORS_H -#define MPHSRVOBJECTINITIATORS_H - - -// INCLUDES -#include - - -// FORWARD DECLARATIONS -class TPhCltCallArgs; - - -// CLASS DECLARATION - -/** -* Initiator functions class. -* -* @since 1.0 -*/ -class MPhSrvInitiatorCall - { - public: // New functions - - /** - * Called by the call manager when it wants to make a call (in response - * to a request from the external call interface). - * - * @param aArgs The call parameters. - */ - virtual void InitiatorMakeAsynchronousCall( - const TPhCltCallArgs& aArgs ) = 0; - - /** - * Called by the call manager to find out if there is a registered - * notification handler. - * - * @return ETrue if there is pending notification request. - */ - virtual TBool InitiatorIsReadyToMakeCall() const = 0; - }; - -#endif // MPHSRVOBJECTINITIATORS_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/MPhSrvObjectNegotiators.h --- a/phoneclientserver/phoneserver/Inc/Standard/Standard_NoAiw/MPhSrvObjectNegotiators.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Object Negotiators. -* -*/ - - -#ifndef MPHSRVOBJECTNEGOTIATORS_H -#define MPHSRVOBJECTNEGOTIATORS_H - - -// INCLUDES -#include -#include - - -// FORWARD DECLARATIONS -class MPhSrvInitiatorCall; -class MPhSrvInitiatorStatus; -class CPhSrvSubSessionBase; - - -// CLASS DECLARATION - -/** -* Base class for call negotiators. -* -* @since 1.0 -*/ -class MPhSrvNegotiatorCallBase - { - public: // New functions - - /** - * Makes an dial request. - * - * @param aMessage Message to be negotiated. - * @param aArgs Call arguments. - * @param aSubSession Subsession for dial. - */ - virtual void NegotiatorDialL( - const RMessage2& aMessage, - const TPhCltCallArgs& aArgs, - CPhSrvSubSessionBase& aSubSession ) = 0; - - /** - * Cancel's an oustanding dial request. If the specified subsession - * doesn't have an oustanding dial request, then the subsession is - * panicked. - * - * @param aSubSession Subsession that has the dial request. - */ - virtual void NegotiatorDialCancel( - CPhSrvSubSessionBase& aSubSession ) = 0; - }; - - -/** -* Abstract call negotiators class. -* -* @since 1.0 -*/ -class MPhSrvNegotiatorCall : public MPhSrvNegotiatorCallBase - { - public: // New functions - - /** - * Called by the call notifier subsession when it's ready to negotiate - * (make another call) with the external call interface. - * - * @param aInitiator Call initiator instance. - */ - virtual void SetNegotiatorReadyCall( - MPhSrvInitiatorCall& aInitiator ) = 0; - - /** - * Called by the call notifier subsession when it isn't going to be - * available to make further calls (session has closed) - * - * @param aInitiator Call initiator instance. - */ - virtual void SetNegotiatorReadyCallCancel( - MPhSrvInitiatorCall& aInitiator ) = 0; - - /** - * Called by the call notifier subsession when it's attempted to make a - * call - the call negotiator can then inform the external call - * interface of the result. - * - * @param aResult Result of the call attempt. - */ - virtual void SetNegotiatorAttemptedCallResponseValue( - TPhCltPhoneResults aResult ) = 0; - }; - -#endif // MPHSRVOBJECTNEGOTIATORS_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdManager.h --- a/phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdManager.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,438 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Handles all the Ussd sessions. -* -*/ - -#ifndef CPHSRVUSSDMANAGER_H -#define CPHSRVUSSDMANAGER_H - - -// INCLUDES -#include // ETel -#include "phcltclientserver.h" -#include "mphsrvussdnetworkobserver.h" -#include "mphsrvussdreplytimerobserver.h" -#include -#include - -// FORWARD DECLARATIONS -class RFs; -class CPhSrvResourceManager; -class CPhSrvUssdSendHandler; -class CPhSrvUssdReceiveHandler; -class CPhSrvUssdReplyTimer; -class MPhSrvPhoneInterface; -class MPhSrvUssdMessageSentObserver; -class CPhSrvUssdSessionCancelWaiter; -class CPhSrvUssdNotifyNWRelease; - -// CLASS DECLARATION - -/** -* Handles all the Ussd sessions. -* -* @since 1.0 -*/ -class CPhSrvUssdManager : - public CActive, - public MPhSrvUssdNetworkObserver, - public MPhSrvUssdReplyTimerObserver, - public MHbDeviceMessageBoxObserver - { - public: // Constructors and destructor - - /** - * C++ constructor. - * - * @param aFsSession The file session. - * @param aResourceManager The resource manager. - */ - CPhSrvUssdManager( - RFs& aFsSession, - CPhSrvResourceManager& aResourceManager - ); - - /** - * C++ destructor. - */ - ~CPhSrvUssdManager(); - - /** - * Symbian OS second phase constructor - * - * @param aPhoneInterface The phone interfaces. - */ - void ConstructL( MPhSrvPhoneInterface& aPhoneInterface ); - - - public: // New functions - - /** - * Send the USSD message. - * - * @param aMsgData The USSD message to be sent. - * @param aMsgAttribute The USSD message attributes. - * @param aObserver Observer for sent event. - */ - void SendUssdL( - const TDesC8& aMsgData, - RMobileUssdMessaging::TMobileUssdAttributesV1& aMsgAttribute, - MPhSrvUssdMessageSentObserver& aObserver ); - - /** - * Cancel sending the USSD. - */ - void SendUssdCancel(); - - - /** - * These are called when status of Ussd application changes. - * - * @return 0 if editor should not be cleared. - */ - void InformUssdApplicationStarting(); - void InformUssdApplicationTerminatingL( const RMessage2& aMessage ); - TInt InformUssdApplicationToForeground(); - void InformUssdApplicationToBackground(); - - /** - * Starts the editor. - */ - void RequestStartEditingL(); - - /** - * SAT starts. - * - * @param aSatMessage Message to be comleted when session ends. - */ - void InformStartSAT( const RMessage2& aSatMessage ); - - /** - * SAT ends. - */ - void InformStopSAT(); - - /** - * Completes SAT request if it's ongoing. - * - * @param aReceiveString If session end with a string it is passed - * as a paramter. - * @param aError Completion code. - * @return The error code of the SAT request. - */ - void CompleteSatL( - TDesC* aReceiveString, - TInt aError ); - - protected: // From base classes - - /** - * @see MPhSrvUssdNetworkObserver - */ - void UssdNetworkObserverHandleSendEventL( TInt aError ); - - /** - * @see MPhSrvUssdNetworkObserver - */ - void UssdNetworkObserverHandleReceivedEventL( - const TDes8& aMsgData, - const RMobileUssdMessaging::TMobileUssdAttributesV1& - aMsgAttributes, - TInt aError ); - - void UssdNetworkObserverHandleNotifyNWReleaseL( - const RMobilePhone::TMobilePhoneSendSSRequestV3 & aReturnResult, - TInt aError ); - - /** - * @see MPhSrvUssdReplyTimerObserver - */ - void UssdReplyTimerObserverHandleExpiredL( TInt aError ); - - /** - * @see MHbDeviceMessageBoxObserver - */ - void MessageBoxClosed(const CHbDeviceMessageBoxSymbian* aMessageBox, - CHbDeviceMessageBoxSymbian::TButtonId aButton); - - /* - * @see CActive - */ - void RunL(); - - /* - * @see CActive - */ - void DoCancel(); - - /* - * @see CActive - */ - TInt RunError( TInt aError ); - - private: // New functions - - CPhSrvUssdSendHandler& SendHandlerL(); - - void ShowErrorNoteL( TInt aError ); - - void DecodeL( - const TDesC8& aSrc, - TDes& aDes, - TUint8 aDcs ); - - void FindFirstCarriageReturnL( - const TDesC8& aBuffer , - TUint& aSkipChars , - TUint& aStartBit ); - - /** Display the "Done" note */ - void ShowDoneNoteL(); - - /** Check is the ussd app running - * @return app running or not - */ - TBool UssdAppTaskExistsL(); - - // If the notification array is empty, close the session. - void TryCloseSession(); - - // Close the session; clear state etc. - void CloseSession(); - - /** Second stage handler for received messages - */ - void UssdHandleReceivedEventL( - const TDes8& aMsgData, - const RMobileUssdMessaging::TMobileUssdAttributesV1& - aMsgAttributes); - // Restart the reply timer - void RestartReplyTimerL(); - - /** Is the reply timer up and running? */ - TBool NetworkWaitingForAnAnswer(); - - // Set timer and activate it if there are notifications available - void SetActiveIfPendingNotificationsExist(); - - // Launch the global message query (used from RunL) - void LaunchGlobalMessageQueryL(); - - // Send an MO ACK message if any such are pending - void ProcessMoAcksL(); - - // Trigger an asynchronous call to call ProcessMoAcksL later - void AsyncProcessMoAcks(); - - // The static callback function for AsyncProcessMoAcks - static TInt MoAckCallback(TAny *); - - /** - * Return boolean value that states whether or not - * indicated feature is supported or not. - * - * @since 2.1 - * @param aFeatureId The feature that is inspected - * (see values from Telephony_Variant.hrh) - * @return ETrue if the feature is supported, EFalse otherwise. - */ - TBool IsTelephonyFeatureSupported( const TInt aFeatureId ); - - /** - * Play USSD tone. - * - * @since 2.1 - * @return KErrNone if successful, otherwise Symbian error code. - */ - TInt PlayUssdTone(); - - /** - * Returns telephony variant read-only data. - * - * @since 2.1 - * @return Error code. - */ - TInt GetTelephonyVariantData(); - - /** - * Send the MO acknowledgement. - * - * @since 2.6 - */ - void SendMoAcknowledgementL(); - - /** - * Return boolean value that states whether notes are shown or not - * - * @since 3.0 - */ - TBool ShowNotesL(); - - /** - * Check notify message array - * - * @since 3.1 - */ - void CheckArray( ); - - /** - * Clears notify message array - * - * @since 3.1 - */ - void ClearArrayL(); - - /** - * Returns notify message count - * - * @since 3.1 - */ - TInt NotifyCount(); - - - /** - * Updates Notify Message - * - * @since 3.1 - */ - void UpdateNotifyMessageL(); - - /** - * Turn lights on - * - * @since 3.1 - */ - void TurnLightsOn(); - - /** - * Load default string by QT style localization - * @param aText default string id defined by _LIT - */ - const TPtrC LoadDefaultString( const TDesC& aText ); - - private: // Data - - // The file session reference. - RFs& iFsSession; - - // The resource manager reference. - CPhSrvResourceManager& iResourceManager; - - // The USSD functionality in lower level (TSY). - RMobileUssdMessaging iMobileUssdMessaging; - - // The observer waiting message sent notification. - MPhSrvUssdMessageSentObserver* iObserver; - - // The send operation handler. - CPhSrvUssdSendHandler* iUssdSendHandler; - - // The receive operation handler. - CPhSrvUssdReceiveHandler* iUssdReceiveHandler; - - // The network release notifier. - CPhSrvUssdNotifyNWRelease* iUssdNotifyNWRelease; - - // The reply timer. - CPhSrvUssdReplyTimer* iUssdReplyTimer; - - // The buffer for received message. - TBuf< KPhCltUssdMax8BitCharacters > iReceivedMessage; - - // The message query for showing USSD operation queries. - CHbDeviceMessageBoxSymbian* iDeviceDialog; - - // Is editor emptied. - TBool iEmptyEditor; - - // Will the editor be started. - TBool iStartEditor; - - // The timer. - RTimer iTimer; - - // Is there pending SAT message. - TBool iHavePendingSatMessagePointer; - - // The pending SAT message. - RMessage2 iPendingSatMessagePointer; - - // Reference to phone interfaces. - MPhSrvPhoneInterface* iPhoneInterface; - - // The used DCS in the SAT message - TUint iDCS; - - // Softkeys in Global MessageQuery. - TInt iSoftkeys; - - // Global MessageQuery launching indicator. - TBool iLaunchGMQ; - - // Local Telephony variant read-only data. - TInt iVariantReadOnlyValues; - - // The buffer for received decoded message. - TBuf< KPhCltUssdMax8BitCharacters > iDecodedMessage; - - // If ETrue, then the last received USSD message was EUssdMtNotify. - TBool iNotifyMessage; - - //NotifyNetWorkRelease return result - RMobilePhone::TMobilePhoneSendSSRequestV3 iReturnResult; - - //NotifyNetWorkRelease return result - RMobilePhone::TMobilePhoneSendSSRequestV3Pckg iReturnResultPckg; - - // Array for notify messages - CDesCArray* iNotifyArray; - - //Sending Release status - TBool iSendRelease; - - // Notify array reset status - TBool iClearArray; - - // Sat cancel status - TBool iSatCanceled; - - // Show Done note - TBool iShowDone; - - // Checks if received message type is Reply - TBool iMsgTypeReply; - - // Has the transaction been closed or not - TBool iNetworkReleased; - - // Is the current send operation an MO ACK message or not - TBool iSendingAck; - - // Number of MO ACK messages pending to be sent. Normally max 2. - TInt iAcksToBeSent; - - // An asynchronous callback for sending MO ACK messages - CAsyncCallBack* iMoAckCallback; - - TBool iTextResolver; - - HBufC* iTextBuffer; - - }; - -#endif // CPHSRVUSSDMANAGER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdNotifyNWRelease.h --- a/phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdNotifyNWRelease.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ -/* -* Copyright (c) 2002 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: Get network message. -* -*/ - - -#ifndef CPHSRVUSSDNOTIFYNWRELEASE_H -#define CPHSRVUSSDNOTIFYNWRELEASE_H - - -// INCLUDES -#include -#include // ETel - - -// FORWARD DECLARATIONS -class MPhSrvUssdNetworkObserver; - - -// CLASS DECLARATION - -/** -* Get network message. -* -* @since 1.0 -*/ -class CPhSrvUssdNotifyNWRelease : public CActive - { - public: - - /** - * C++ constructor. - * - * @param aObserver Observer for receive actions. - * @param aUssdMessaging The actual sending class. - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - CPhSrvUssdNotifyNWRelease( - MPhSrvUssdNetworkObserver& aObserver, - RMobileUssdMessaging& aUssdMessaging ); - - /** - * Destructor. - */ - ~CPhSrvUssdNotifyNWRelease(); - - /** - * Symbian OS second phase constructor. - */ - void ConstructL(); - - - public: // New functions - - /** - * Notifies a client of a MT USSD release message to the mobile device - * - * @return errorcode - */ - TInt NotifyNetworkRelease(); - - - private: // Functions from base classes - - /** - * From CActive. - * Called when Ussd message is received. - */ - void RunL(); - - /** - * From CActive. - * Called when receive is cancelled. - */ - void DoCancel(); - - /** - * From CActive. - * Called when RunL leaves. - */ - TInt RunError( TInt aError ); - - - private: // Data - - // If this is true, receiving starts automatically. - TBool iAutoReceive; - - // The observer for actions. - MPhSrvUssdNetworkObserver& iObserver; - - // The actual sending class. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobileUssdMessaging& iUssdMessaging; - - // The USSD message data. - - RMobilePhone::TMobilePhoneSendSSRequestV3 iReturnResult; - - RMobilePhone::TMobilePhoneSendSSRequestV3Pckg iReturnResultPckg; - - - }; - -#endif // CPHSRVUSSDNOTIFYNWRELEASE_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdReceiveHandler.h --- a/phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdReceiveHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -/* -* Copyright (c) 2002 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: Get network message. -* -*/ - - -#ifndef CPHSRVUSSDRECEIVEHANDLER_H -#define CPHSRVUSSDRECEIVEHANDLER_H - - -// INCLUDES -#include -#include // ETel - - -// FORWARD DECLARATIONS -class MPhSrvUssdNetworkObserver; - - -// CLASS DECLARATION - -/** -* Get network message. -* -* @since 1.0 -*/ -class CPhSrvUssdReceiveHandler : public CActive - { - public: - - /** - * C++ constructor. - * - * @param aObserver Observer for receive actions. - * @param aUssdMessaging The actual sending class. - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - CPhSrvUssdReceiveHandler( - MPhSrvUssdNetworkObserver& aObserver, - RMobileUssdMessaging& aUssdMessaging ); - - /** - * Destructor. - */ - ~CPhSrvUssdReceiveHandler(); - - /** - * Symbian OS second phase constructor. - */ - void ConstructL(); - - - public: // New functions - - /** - * Request that this object attempts to receive a message. - * - * @return Error code - */ - TInt StartReceiving(); - - - private: // Functions from base classes - - /** - * From CActive. - * Called when Ussd message is received. - */ - void RunL(); - - /** - * From CActive. - * Called when receive is cancelled. - */ - void DoCancel(); - - /** - * From CActive. - * Called when RunL leaves. - */ - TInt RunError( TInt aError ); - - - private: // Data - - // If this is true, receiving starts automatically. - TBool iAutoReceive; - - // The observer for actions. - MPhSrvUssdNetworkObserver& iObserver; - - // The actual sending class. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobileUssdMessaging& iUssdMessaging; - - // The USSD message data. - RMobileUssdMessaging::TGsmUssdMessageData iMsgData; - - // USSD message attributes. - RMobileUssdMessaging::TMobileUssdAttributesV1 iMsgAttributes; - - // USSD message attributes as package. - RMobileUssdMessaging::TMobileUssdAttributesV1Pckg iMsgAttributesPckg; - - private: - friend class CPhSrvUssdTester; // For test purposes only. - }; - -#endif // CPHSRVUSSDRECEIVEHANDLER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdReplyTimer.h --- a/phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdReplyTimer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ -/* -* Copyright (c) 2002 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: A timer based class used to notify objects when an automatic -* response is expected. -* -*/ - - -#ifndef CPHSRVUSSDREPLYTIMER_H -#define CPHSRVUSSDREPLYTIMER_H - - -// INCLUDES -#include - - -// FORWARD DECLARATIONS -class MPhSrvUssdReplyTimerObserver; - - -// CLASS DECLARATION - -/** -* A timer based class used to notify objects when an -* automatic response is expected -* -* @since 1.0 -*/ -class CPhSrvUssdReplyTimer : public CTimer - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aObserver Observer for reply timer expiration event. - */ - static CPhSrvUssdReplyTimer* - NewL( MPhSrvUssdReplyTimerObserver& aObserver ); - - /** - * Destructor. - */ - ~CPhSrvUssdReplyTimer(); - - - public: // New functions - - /** - * Query is the timer active or not. - * - * @return True if timer is running/paused. - */ - TBool IsTimerActive() const; - - /** - * Start the timer. - */ - void Start(); - - /** - * Pause the timer. - */ - void Pause(); - - /** - * Continue paused timer. - */ - void Continue(); - - /** - * Stop the timer. - */ - void Stop(); - - - private: // Functions from base classes - - /** - * From CActive - */ - void RunL(); - - /** - * From CActive - */ - TInt RunError( TInt aError ); - - - private: - - /** - * C++ constructor. - */ - CPhSrvUssdReplyTimer( MPhSrvUssdReplyTimerObserver& aObserver ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - - private: // Data - - // The actual timer. - RTimer iTimer; - - // The counter for remaining time. - TTimeIntervalMicroSeconds32 iTimeLeft; - - // When the timer was started last time. - TTime iLastStartTime; - - // Observer for timer events. - MPhSrvUssdReplyTimerObserver& iObserver; - }; - -#endif // CPHSRVUSSDREPLYTIMER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdSendHandler.h --- a/phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdSendHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Sends USSD message to the network. -* -*/ - -#ifndef CPHSRVUSSDSENDHANDLER_H -#define CPHSRVUSSDSENDHANDLER_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class MPhSrvUssdNetworkObserver; -class MPhSrvPhoneInterface; -class CPhSrvUssdSessionCancelWaiter; - -// CLASS DECLARATION - -/** -* Sends message to the network. -* -* @since Series60_1.0 -*/ -class CPhSrvUssdSendHandler : public CActive - { - - public: // Constructors and destructor - - /** - * C++ constructor. - * - * @param aObserver Observer for send events. - * @param aUssdMessaging The actual sender instance. - * @param aPhoneInterface Phone interfaces. - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - CPhSrvUssdSendHandler( - MPhSrvUssdNetworkObserver& aObserver, - RMobileUssdMessaging& aUssdMessaging, - MPhSrvPhoneInterface& aPhoneInterface ); - - /** - * Destructor - */ - ~CPhSrvUssdSendHandler(); - - - public: // New functions - - /** - * Send USSD message. - * - * @param aMsgData USSD message to be sent. - * @param aMsgAttribute USSD message attributes. - */ - void SendUssdL( - const TDesC8& aMsgData, - const TDesC8& aMsgAttribute ); - - /** - * Cancel send USSD message. - */ - void SendUssdCancel(); - - /** - * Terminates USSD Session. - */ - void SendReleaseSession(); - - private: // Functions from base classes - - /** - * From CActive. - * Called when sending is cancelled. - */ - void DoCancel(); - - /** - * From CActive. - * Called when send request is completed. - */ - void RunL(); - - private: // Data - - // Observer for send events. - MPhSrvUssdNetworkObserver& iObserver; - - // The actual sending instance. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobileUssdMessaging& iUssdMessaging; - - // References to phone interfaces. - MPhSrvPhoneInterface& iPhoneInterface; - - // Message data storage. - HBufC8* iMsgData; - - // Message data attributes. - HBufC8* iMsgAttribute; - - // For cancelling the USSD session. - CPhSrvUssdSessionCancelWaiter* iSessionCancelWaiter; - }; - -#endif // CPHSRVUSSDSENDHANDLER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdSessionCancelWaiter.h --- a/phoneclientserver/phoneserver/Inc/Ussd/CPhSrvUssdSessionCancelWaiter.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* -* Copyright (c) 2004 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: Ussd session cancel waiter. -* -*/ - - - -#ifndef CPHSRVUSSDSESSIONCANCELWAITER_H -#define CPHSRVUSSDSESSIONCANCELWAITER_H - -// CLASS DECLARATION -/** -* For cancelling the USSD session. -* -* @since Series60_2.6 -*/ -class CPhSrvUssdSessionCancelWaiter : public CActive - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - CPhSrvUssdSessionCancelWaiter() - : CActive( EPriorityLow ), - iSSRequestPckg( iSSRequest ) - { - CActiveScheduler::Add( this ); - } - - /** - * Destructor. - */ - ~CPhSrvUssdSessionCancelWaiter() { Cancel();} - - public: // Functions from base classes - void SetActive() { CActive::SetActive(); } - void RunL() {} - void DoCancel() {} - - public: //Data - - // SendSSRequest information. - RMobilePhone::TMobilePhoneSendSSRequestV3 iSSRequest; - - // Packaged version of iSSRequest. - RMobilePhone::TMobilePhoneSendSSRequestV3Pckg iSSRequestPckg; - - }; - -#endif // CPHSRVUSSDSESSIONCANCELWAITER_H - -// End of file. diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Ussd/MPhSrvUssdMessageSentObserver.h --- a/phoneclientserver/phoneserver/Inc/Ussd/MPhSrvUssdMessageSentObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* -* Copyright (c) 2002 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: Interface for subsessions to get send event. -* -*/ - - -#ifndef MPHSRVUSSDMESSAGESENTOBSERVER_H -#define MPHSRVUSSDMESSAGESENTOBSERVER_H - -// CLASS DECLARATIONS - -/** -* USSD message send event observer. -* -* @since 1.0 -*/ -class MPhSrvUssdMessageSentObserver - { - public: // New functions - - /** - * Called by the USSD manager when it's sent a message. - * - * @param aError Complete code. - */ - virtual void UssdMessageSentObserverHandleResult( TInt aError ) = 0; - }; - -#endif // MPHSRVUSSDMESSAGESENTOBSERVER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Ussd/MPhSrvUssdNetworkObserver.h --- a/phoneclientserver/phoneserver/Inc/Ussd/MPhSrvUssdNetworkObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* -* Copyright (c) 2002 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: Abstract interface for observing network message events. -* -*/ - -#ifndef MPHSRVUSSDNETWORKOBSERVER_H -#define MPHSRVUSSDNETWORKOBSERVER_H - - -// CLASS DECLARATION - -/** -* Abstract interface for observing network message events. -* -* @since 1.0 -*/ -class MPhSrvUssdNetworkObserver - { - public: // New functions - - /** - * Called when a message has been sent. - * - * @param aError Complete code. - */ - virtual void UssdNetworkObserverHandleSendEventL( TInt aError ) = 0; - - /** - * Called when a message has been received. - * - * @param aMessage Received message. - * @param aIsRequest ETrue if is a request. - * @param aError Error code of the operation. - */ - virtual void UssdNetworkObserverHandleReceivedEventL( - const TDes8& aMsgData, - const RMobileUssdMessaging::TMobileUssdAttributesV1& aMsgAttributes, - TInt aError ) = 0; - - virtual void UssdNetworkObserverHandleNotifyNWReleaseL( - const RMobilePhone::TMobilePhoneSendSSRequestV3& aReturnResult, - TInt aError ) = 0; - }; - -#endif // MPHSRVUSSDNETWORKOBSERVER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Inc/Ussd/MPhSrvUssdReplyTimerObserver.h --- a/phoneclientserver/phoneserver/Inc/Ussd/MPhSrvUssdReplyTimerObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,46 +0,0 @@ -/* -* Copyright (c) 2002 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: Abstract class which is called back when the USSD reply timer -* expires. -* -*/ - - -#ifndef MPHSRVUSSDREPLYTIMEROBSERVER_H -#define MPHSRVUSSDREPLYTIMEROBSERVER_H - - -// CLASS DECLARATION - -/** -* Abstract class which is called back when the USSD reply timer expires. -* -* @since 1.0 -*/ -class MPhSrvUssdReplyTimerObserver - { - public: // New functions - - /** - * Handle a timer call-back. - * - * @param aError Error code. - */ - virtual void UssdReplyTimerObserverHandleExpiredL( TInt aError ) = 0; - }; - -#endif // MPHSRVUSSDREPLYTIMEROBSERVER_H - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/CommandHandler/CPhSrvComHandRequest.cpp --- a/phoneclientserver/phoneserver/Src/CommandHandler/CPhSrvComHandRequest.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,175 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Command Handler Request. -* -*/ - - -// INCLUDE FILES - -#include "cphsrvcomhandrequest.h" -#include "phsrvutils.h" - - - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequest::CPhSrvComHandRequest -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvComHandRequest::CPhSrvComHandRequest( - const RMessage2& aMessage, - const TPhCltComHandCommandParameters& aParams, - TInt aSubSessionHandle ) -: iPendingRequestPointer( aMessage ), - iComHandParams( aParams ), - iSubSessionHandle( aSubSessionHandle ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequest::CPhSrvComHandRequest -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvComHandRequest::CPhSrvComHandRequest() - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequest::NewLC -// -// Static Symbian OS two-phase constructor. Return an instance -// and leave it on the cleanup stack. -// ----------------------------------------------------------------------------- -// -CPhSrvComHandRequest* CPhSrvComHandRequest::NewLC( - const RMessage2& aMessage, - const TPhCltComHandCommandParameters& aParams, - TInt aSubSessionHandle ) - { - CPhSrvComHandRequest* self = new( ELeave ) CPhSrvComHandRequest( - aMessage, - aParams, - aSubSessionHandle ); - CleanupStack::PushL( self ); - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequest::NewL -// -// Static Symbian OS two-phase constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvComHandRequest* CPhSrvComHandRequest::NewL() - { - CPhSrvComHandRequest* self = new( ELeave ) CPhSrvComHandRequest(); - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequest::InformOfComHandRequestAttemptResult -// -// Complete a client request which will indicate the result -// of attempting to perform a request. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequest::InformOfComHandRequestAttemptResult( - TPhCltPhoneResults aResultOfAttemptingRequest ) - { - // Complete the client's pending request, indicating - // the result of the command handler request attempt. - iPendingRequestPointer.Complete( aResultOfAttemptingRequest ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequest::Cancel -// -// Complete the client's request with KErrCancel. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequest::Cancel() - { - iPendingRequestPointer.Complete( KErrCancel ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequest::SubSessionHandle -// -// Return the handle of the subsession that initiated the -// original command handler request. -// ----------------------------------------------------------------------------- -// -TInt CPhSrvComHandRequest::SubSessionHandle() const - { - return iSubSessionHandle; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequest::ComHandParameters -// -// Returns the command handler parameters. -// ----------------------------------------------------------------------------- -// -const TPhCltComHandCommandParameters& - CPhSrvComHandRequest::ComHandParameters() const - { - return iComHandParams; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequest::UpdateEmergencyRequest -// -// Set new parameters to emergency request object. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequest::UpdateEmergencyRequest( - const RMessage2& aMessage, - const TPhCltComHandCommandParameters& aParams, - TInt aSubSessionHandle ) - { - iPendingRequestPointer = aMessage; - iComHandParams = aParams; - iSubSessionHandle = aSubSessionHandle; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequest::ClearEmergencyRequest -// -// Empties Emergency request data. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequest::ClearEmergencyRequest() - { - iSubSessionHandle = 0; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/CommandHandler/CPhSrvSubSessionCommandHandler.cpp --- a/phoneclientserver/phoneserver/Src/CommandHandler/CPhSrvSubSessionCommandHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,398 +0,0 @@ -/* -* Copyright (c) 2003-2005 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: Sub Session Command handler. -* The stub version of this file can be found from file -* CPhSrvSubSessionCommandHandlerStub.cpp -* -*/ - - - -// INCLUDE FILES -#include "cphsrvsubsessioncommandhandler.h" -#include "cphsrvsession.h" -#include "cphsrvserver.h" -#include -#include "mphsrvcomhandnegotiators.h" - - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::CPhSrvSubSessionCommandHandler -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionCommandHandler::CPhSrvSubSessionCommandHandler( - CPhSrvSession& aSession ) -: CPhSrvSubSessionBase( aSession, EPhSrvSubSessionTypeComHand ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::NewL -// -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionBase* CPhSrvSubSessionCommandHandler::NewL( - CPhSrvSession& aSession ) - { - CPhSrvSubSessionBase* self = - new( ELeave ) CPhSrvSubSessionCommandHandler( aSession ); - - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::PhSrvMessageDecoderCanProcessMessage -// -// Framework function. Returns ETrue for the op codes that -// this subsession can handle. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionCommandHandler::PhSrvMessageDecoderCanProcessMessage( - TInt aFunction ) - { - switch( aFunction ) - { - case EPhoneServerComHandSubSessionOpen: - case EPhoneServerComHandSubSessionClose: - case EPhoneServerComHandSubSessionAtd: - case EPhoneServerComHandSubSessionAta: - case EPhoneServerComHandSubSessionChld: - case EPhoneServerComHandSubSessionChup: - case EPhoneServerComHandSubSessionVts: - case EPhoneServerComHandSubSessionCancel: - case EPhoneServerComHandSubSessionMuteMic: - case EPhoneServerComHandSubSessionMuteRingingTone: - return ETrue; - - default: - return EFalse; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::PhSrvMessageProcessorHandleMessageL -// -// Framework function. Handle any op-codes here. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandler::PhSrvMessageProcessorHandleMessageL( - const RMessage2& aMessage ) - { - TBool permissionStatus ( EFalse ); - - // Check needed capabilities - TBool hasCapNetworkControlAndServices( EFalse ); - TBool hasCapNetworkServices( EFalse ); - TBool hasCapWriteDeviceData( EFalse ); - hasCapNetworkControlAndServices = aMessage.HasCapability( ECapabilityNetworkControl, - ECapabilityNetworkServices ); - hasCapNetworkServices = aMessage.HasCapability( ECapabilityNetworkServices ); - hasCapWriteDeviceData = aMessage.HasCapability( ECapabilityWriteDeviceData ); - - switch( aMessage.Function() ) - { - case EPhoneServerComHandSubSessionClose: - CmdSubSessionClose( aMessage ); - permissionStatus = ETrue; - break; - - case EPhoneServerComHandSubSessionAtd: - if ( hasCapNetworkControlAndServices ) - { - CmdSubSessionComHandAtdL( aMessage ); - permissionStatus = ETrue; - } - break; - - case EPhoneServerComHandSubSessionAta: - if ( hasCapNetworkControlAndServices ) - { - CmdSubSessionComHandAtaL( aMessage ); - permissionStatus = ETrue; - } - break; - - case EPhoneServerComHandSubSessionChld: - if ( hasCapNetworkServices ) - { - CmdSubSessionComHandChldL( aMessage ); - permissionStatus = ETrue; - } - break; - - case EPhoneServerComHandSubSessionChup: - if ( hasCapNetworkServices ) - { - CmdSubSessionComHandChupL( aMessage ); - permissionStatus = ETrue; - } - break; - - case EPhoneServerComHandSubSessionVts: - if ( hasCapNetworkServices ) - { - CmdSubSessionComHandVtsL( aMessage ); - permissionStatus = ETrue; - } - break; - - case EPhoneServerComHandSubSessionCancel: - - if ( IsCancelAllowed( aMessage ) ) - { - CmdSubSessionComHandCancelL( aMessage ); - permissionStatus = ETrue; - } - break; - - case EPhoneServerComHandSubSessionMuteMic: - if ( hasCapWriteDeviceData ) - { - CmdSubSessionComHandMuteMicL( aMessage ); - permissionStatus = ETrue; - } - break; - - case EPhoneServerComHandSubSessionMuteRingingTone: - if ( hasCapWriteDeviceData ) - { - CmdSubSessionComHandMuteRingingToneL( aMessage ); - permissionStatus = ETrue; - } - break; - - default: - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicInvalidRequest ); - break; - } - - // If caps are not ok - if( !permissionStatus ) - { - aMessage.Complete( KErrPermissionDenied ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionIhf::CmdSubSessionClose -// -// Close the sub-session. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandler::CmdSubSessionClose( - const RMessage2& aMessage ) - { - PhoneSession().CloseSubSession( aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::CmdSubSessionComHandAtdL -// -// Handle command handler client's Atd request. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandler::CmdSubSessionComHandAtdL( - const RMessage2& aMessage ) - { - CmdSubSessionComHandForwardRequestL( aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::CmdSubSessionComHandAtaL -// -// Handle command handler client's Ata request. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandler::CmdSubSessionComHandAtaL( - const RMessage2& aMessage ) - { - CmdSubSessionComHandForwardRequestL( aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::CmdSubSessionComHandChldL -// -// Handle command handler client's Chld request. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandler::CmdSubSessionComHandChldL( - const RMessage2& aMessage ) - { - CmdSubSessionComHandForwardRequestL( aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::CmdSubSessionComHandChupL -// -// Handle command handler client's Chup request. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandler::CmdSubSessionComHandChupL( - const RMessage2& aMessage ) - { - CmdSubSessionComHandForwardRequestL( aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::CmdSubSessionComHandVtsL -// -// Handle command handler client's Vts request. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandler::CmdSubSessionComHandVtsL( - const RMessage2& aMessage ) - { - CmdSubSessionComHandForwardRequestL( aMessage ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::CmdSubSessionComHandCancelL -// -// Handle command handler client's cancel request. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandler::CmdSubSessionComHandCancelL( - const RMessage2& aMessage ) - { - // Ask the command handler negotiator to delete any pending request for - // this subsession. It will panic the client if one can't be found. - MPhSrvComHandNegotiator& comHandNegotiator = - PhoneSession().PhoneServer().ComHandNegotiatorL(); - - comHandNegotiator.NegotiatorRequestCancel( *this ); - aMessage.Complete( KErrNone ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::CmdSubSessionComHandForwardRequestL -// -// Setup an asynchronous request to handle external interface -// command handler requests. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandler::CmdSubSessionComHandForwardRequestL( - const RMessage2& aMessage ) - { - // Read parameters from client's address space. - TPhCltComHandCommandParameters comHandParams; - TPckg< TPhCltComHandCommandParameters > - pComHandParams( comHandParams ); - Read( - aMessage, - 0, - pComHandParams ); - - // Submit a new request to the command handler manager. - MPhSrvComHandNegotiator& comHandNegotiator = - PhoneSession().PhoneServer().ComHandNegotiatorL(); - - comHandNegotiator.NegotiatorRequestL( aMessage, comHandParams, *this ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::CmdSubSessionComHandMuteMicL -// -// Handle command handler client's mute mic request. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandler::CmdSubSessionComHandMuteMicL( - const RMessage2& aMessage ) - { - CmdSubSessionComHandForwardRequestL( aMessage ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::CmdSubSessionComHandMuteRingingToneL -// -// Handle command handler client's mute ringing tone request. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandler::CmdSubSessionComHandMuteRingingToneL( - const RMessage2& aMessage ) - { - CmdSubSessionComHandForwardRequestL( aMessage ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::IsCancelAllowed -// -// Handle cancel command capability check -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionCommandHandler::IsCancelAllowed( - const RMessage2& aMessage ) - { - TBool permissionStatus ( EFalse ); - - TBool hasCapNetworkControlAndServices( EFalse ); - TBool hasCapNetworkServices( EFalse ); - hasCapNetworkControlAndServices = aMessage.HasCapability( ECapabilityNetworkControl, - ECapabilityNetworkServices ); - hasCapNetworkServices = aMessage.HasCapability( ECapabilityNetworkServices ); - - - // Read parameters from client's address space. - TPhCltComHandCommandParameters comHandParams; - TPckg< TPhCltComHandCommandParameters > - pComHandParams( comHandParams ); - Read( - aMessage, - 0, - pComHandParams ); - - switch ( comHandParams.iCommandHandlerCommand ) - { - case EPhCltCommandAtd: - case EPhCltCommandAta: - if ( hasCapNetworkControlAndServices ) - { - permissionStatus = ETrue; - } - break; - case EPhCltCommandChld: - case EPhCltCommandChup: - case EPhCltCommandVts: - if ( hasCapNetworkServices ) - { - permissionStatus = ETrue; - } - break; - default: - break; - } - - return permissionStatus; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/CommandHandler/CPhSrvSubSessionCommandHandlerNotify.cpp --- a/phoneclientserver/phoneserver/Src/CommandHandler/CPhSrvSubSessionCommandHandlerNotify.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,281 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Sub Session Command handler notify. -* The stub version of this file can be found from file -* CPhSrvSubSessionCommandHandlerNotifyStub.cpp -* -*/ - - - -// INCLUDE FILES -#include "cphsrvsubsessioncommandhandlernotify.h" -#include "cphsrvsession.h" -#include "cphsrvserver.h" -#include -#include "mphsrvcomhandnegotiators.h" - - - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::CPhSrvSubSessionCommandHandlerNotify -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionCommandHandlerNotify::CPhSrvSubSessionCommandHandlerNotify( - CPhSrvSession& aSession ) -: CPhSrvSubSessionBase( aSession, EPhSrvSubSessionTypeComHandNotify ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::NewL -// -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionBase* - CPhSrvSubSessionCommandHandlerNotify::NewL( - CPhSrvSession& aSession ) - { - // Just to make sure that the destructor does not leave. - aSession.PhoneServer().ComHandNegotiatorL(); - - CPhSrvSubSessionBase* self = - new( ELeave ) CPhSrvSubSessionCommandHandlerNotify( aSession ); - - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::~CPhSrvSubSessionCommandHandlerNotify -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionCommandHandlerNotify::~CPhSrvSubSessionCommandHandlerNotify() - { - // Inform that we are not ready to process requests anymore. - if ( PhoneSession().PhoneServer().IsComHandNegotiator() ) - { - PhoneSession(). - PhoneServer(). - ComHandNegotiator(). - SetNegotiatorReadyRequestCancel( *this ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::PhSrvMessageDecoderCanProcessMessage -// -// Framework function. Returns ETrue for the op codes that -// this subsession can handle. -// ----------------------------------------------------------------------------- -// -TBool - CPhSrvSubSessionCommandHandlerNotify::PhSrvMessageDecoderCanProcessMessage( - TInt aFunction ) - { - switch( aFunction ) - { - case EPhoneServerComHandNotifySubSessionClose: - case EPhoneServerComHandNotifySubSessionComHandRequest: - case EPhoneServerComHandNotifySubSessionComHandRequestCancel: - case EPhoneServerComHandNotifySubSessionReportComHandResult: - return ETrue; - - default: - return EFalse; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::PhSrvMessageProcessorHandleMessageL -// -// Framework function. Handle any op-codes here. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandlerNotify::PhSrvMessageProcessorHandleMessageL( - const RMessage2& aMessage ) - { - switch( aMessage.Function() ) - { - case EPhoneServerComHandNotifySubSessionClose: - CmdSubSessionClose( aMessage ); - break; - - case EPhoneServerComHandNotifySubSessionComHandRequest: - CmdSubSessionComHandNotifyRequestL( aMessage ); - break; - - case EPhoneServerComHandNotifySubSessionComHandRequestCancel: - CmdSubSessionComHandNotifyRequestCancelL( aMessage ); - break; - - case EPhoneServerComHandNotifySubSessionReportComHandResult: - CmdSubSessionComHandNotifyReportL( aMessage ); - break; - - default: - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicInvalidRequest ); - break; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::InitiatorMakeAsynchronousComHandRequest -// -// Called by the command handler negotiator when it wants this object to -// initiate a command handler request (on behalf of the external interface). -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandlerNotify:: - InitiatorMakeAsynchronousComHandRequest( - const TPhCltComHandCommandParameters& aParams ) - { - // Package up the data to send - TPckgC< TPhCltComHandCommandParameters > - comHandDetails( aParams ); - - // Write to command handler notifier's address space - PhoneSession().Write( - iPendingComHandRequestPointer, - 0, - comHandDetails ); - - // Indicate that the command handler notifier should try to perform the - // request. - if ( !iPendingComHandRequestPointer.IsNull() ) - { - iPendingComHandRequestPointer.Complete( KErrNone ); - } - iHavePendingComHandRequestPointer = EFalse; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::InitiatorIsReadyToPerformRequest -// -// Does this session have a pending request? -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionCommandHandlerNotify::InitiatorIsReadyToPerformRequest() - const - { - return iHavePendingComHandRequestPointer; - } - - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::CmdSubSessionClose -// -// Close the sub-session. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandlerNotify::CmdSubSessionClose( - const RMessage2& aMessage ) - { - PhoneSession().CloseSubSession( aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::CmdSubSessionComHandNotifyRequestL -// -// Handle command handler notifier's request. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandlerNotify::CmdSubSessionComHandNotifyRequestL( - const RMessage2& aMessage ) - { - // Update our pending request pointer if it's not already set - if ( iHavePendingComHandRequestPointer ) - { - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicRequestAlreadyActive ); - } - else - { - iPendingComHandRequestPointer = aMessage; - iHavePendingComHandRequestPointer = ETrue; - - // The phone app engine is ready to process a command handler request. - // Tell the negotiator that we're ready to process any pending - // requests. - MPhSrvComHandNegotiator& comHandNegotiator = - PhoneSession().PhoneServer().ComHandNegotiatorL(); - comHandNegotiator.SetNegotiatorReadyRequestL( *this ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify:: -// CmdSubSessionComHandNotifyRequestCancelL -// -// Handle command handler notifier's request cancel. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandlerNotify:: - CmdSubSessionComHandNotifyRequestCancelL( - const RMessage2& aMessage ) - { - if ( iHavePendingComHandRequestPointer ) - { - iPendingComHandRequestPointer.Complete( KErrCancel ); - iHavePendingComHandRequestPointer = EFalse; - } - - aMessage.Complete( KErrNone ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::CmdSubSessionComHandNotifyReportL -// -// Tell the result of the request execution to the command handler client. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandlerNotify::CmdSubSessionComHandNotifyReportL( - const RMessage2& aMessage ) - { - // Get result - const TPhCltPhoneResults result = - static_cast< TPhCltPhoneResults >( aMessage.Int0() ); - - // Tell command handler negotiator of result - MPhSrvComHandNegotiator& comHandNegotiator = - PhoneSession().PhoneServer().ComHandNegotiatorL(); - comHandNegotiator.SetNegotiatorAttemptedRequestResponseValue( result ); - - // Complete the request - aMessage.Complete( KErrNone ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/CommandHandler/CPhSrvSubSessionCommandHandlerNotifyStub.cpp --- a/phoneclientserver/phoneserver/Src/CommandHandler/CPhSrvSubSessionCommandHandlerNotifyStub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,143 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Stub implementation for Sub Session Command handler notify. -* -*/ - - - -// INCLUDE FILES -#include "cphsrvsubsessionbase.h" -#include "cphsrvsession.h" -#include "cphsrvserver.h" -#include -#include "mphsrvcomhandnegotiators.h" -#include "cphsrvsubsessioncommandhandlernotify.h" - - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify:: -// CPhSrvSubSessionCommandHandlerNotify -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionCommandHandlerNotify::CPhSrvSubSessionCommandHandlerNotify( - CPhSrvSession& aSession ) -: CPhSrvSubSessionBase( aSession, EPhSrvSubSessionTypeComHandNotify ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::NewL -// -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionBase* -CPhSrvSubSessionCommandHandlerNotify::NewL( - CPhSrvSession& aSession ) - { - CPhSrvSubSessionBase* self = - new( ELeave ) CPhSrvSubSessionCommandHandlerNotify( aSession ); - - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::~CPhSrvSubSessionCommandHandlerNotify -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionCommandHandlerNotify::~CPhSrvSubSessionCommandHandlerNotify() - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::PhSrvMessageDecoderCanProcessMessage -// -// Framework function. Returns ETrue for the op codes that -// this subsession can handle. -// ----------------------------------------------------------------------------- -// -TBool -CPhSrvSubSessionCommandHandlerNotify::PhSrvMessageDecoderCanProcessMessage( - TInt aFunction ) - { - switch( aFunction ) - { - case EPhoneServerComHandNotifySubSessionClose: - case EPhoneServerComHandNotifySubSessionComHandRequest: - case EPhoneServerComHandNotifySubSessionComHandRequestCancel: - case EPhoneServerComHandNotifySubSessionReportComHandResult: - return ETrue; - - default: - return EFalse; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::PhSrvMessageProcessorHandleMessageL -// -// Framework function. Handle any op-codes here. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandlerNotify::PhSrvMessageProcessorHandleMessageL( - const RMessage2& /* aMessage */ ) - { - // Stub implementation, i.e. functionality not supported. - User::Leave( KErrNotSupported ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::InitiatorMakeAsynchronousComHandRequest -// -// Called by the command handler negotiator when it wants this object to -// initiate a command handler request (on behalf of the external interface). -// ----------------------------------------------------------------------------- -// -void -CPhSrvSubSessionCommandHandlerNotify::InitiatorMakeAsynchronousComHandRequest( - const TPhCltComHandCommandParameters& /* aParams */ ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandlerNotify::InitiatorIsReadyToPerformRequest -// -// Does this session have a pending request? -// ----------------------------------------------------------------------------- -// -TBool -CPhSrvSubSessionCommandHandlerNotify::InitiatorIsReadyToPerformRequest() const - { - return EFalse; - } - - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/CommandHandler/CPhSrvSubSessionCommandHandlerStub.cpp --- a/phoneclientserver/phoneserver/Src/CommandHandler/CPhSrvSubSessionCommandHandlerStub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,104 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Sub implemetation for Sub Session Command handler. -* -*/ - - - -// INCLUDE FILES -#include "cphsrvsubsessionbase.h" -#include "cphsrvsession.h" -#include "cphsrvserver.h" -#include -#include "mphsrvcomhandnegotiators.h" -#include "cphsrvsubsessioncommandhandler.h" - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::CPhSrvSubSessionCommandHandler -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionCommandHandler::CPhSrvSubSessionCommandHandler( - CPhSrvSession& aSession ) -: CPhSrvSubSessionBase( aSession, EPhSrvSubSessionTypeComHand ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::NewL -// -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionBase* CPhSrvSubSessionCommandHandler::NewL( - CPhSrvSession& aSession ) - { - CPhSrvSubSessionBase* self = - new( ELeave ) CPhSrvSubSessionCommandHandler( aSession ); - - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::PhSrvMessageDecoderCanProcessMessage -// -// Framework function. Returns ETrue for the op codes that -// this subsession can handle. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionCommandHandler::PhSrvMessageDecoderCanProcessMessage( - TInt aFunction ) - { - switch( aFunction ) - { - case EPhoneServerComHandSubSessionOpen: - case EPhoneServerComHandSubSessionClose: - case EPhoneServerComHandSubSessionAtd: - case EPhoneServerComHandSubSessionAta: - case EPhoneServerComHandSubSessionChld: - case EPhoneServerComHandSubSessionChup: - case EPhoneServerComHandSubSessionVts: - case EPhoneServerComHandSubSessionCancel: - case EPhoneServerComHandSubSessionMuteMic: - case EPhoneServerComHandSubSessionMuteRingingTone: - return ETrue; - - default: - return EFalse; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionCommandHandler::PhSrvMessageProcessorHandleMessageL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionCommandHandler::PhSrvMessageProcessorHandleMessageL( - const RMessage2& /* aMessage */ ) - { - // Stub implementation, i.e. functionality not supported. - User::Leave( KErrNotSupported ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/CommandHandler/CommandHandler_NoAiw/CPhSrvComHandRequestManager.cpp --- a/phoneclientserver/phoneserver/Src/CommandHandler/CommandHandler_NoAiw/CPhSrvComHandRequestManager.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,375 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Command Handler Request Manager. -* -*/ - - - -// INCLUDES -#include "cphsrvcomhandrequestmanager.h" -#include "cphsrvcomhandrequest.h" -#include "cphsrvsubsessionbase.h" -#include "phsrvutils.h" -#include "cphsrvserver.h" -#include "mphsrvemergencynumbermanager.h" - - -// CONSTANTS - -// The size of the Notification manager storage. -const TInt KPhSrvComHandManagerPendingCallGranularity = 4; - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::CPhSrvComHandRequestManager -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvComHandRequestManager::CPhSrvComHandRequestManager( - CPhSrvServer& aServer ) -: iServer( aServer ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::~CPhSrvComHandRequestManager -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvComHandRequestManager::~CPhSrvComHandRequestManager() - { - if ( iOutstandingComHandRequests ) - { - iOutstandingComHandRequests->ResetAndDestroy(); - iOutstandingComHandRequests->Close(); - - delete iOutstandingComHandRequests; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::ConstructL -// -// Complete construction. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::ConstructL() - { - iOutstandingComHandRequests = new ( ELeave ) RPointerArray< - CPhSrvComHandRequest >( KPhSrvComHandManagerPendingCallGranularity ); - - CPhSrvComHandRequest* emergencyRequest = CPhSrvComHandRequest::NewL(); - CleanupStack::PushL( emergencyRequest ); - User::LeaveIfError( - iOutstandingComHandRequests->Append( emergencyRequest ) ); - CleanupStack::Pop(); // emergencyRequest - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::NegotiatorRequestL -// -// Initiate a command handler request - called by the external command handler -// interface. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::NegotiatorRequestL( - const RMessage2& aMessage, - const TPhCltComHandCommandParameters& aParams, - CPhSrvSubSessionBase& aSubSession ) - { - // If we have no registered initiator then we can't perform the request. - if ( !iComHandInitiator ) - { - User::Leave( KErrNotReady ); - } - - // If the request is DTMF stop, it is handled as emergency request. - TBool isDtmfCancel = - ( - ( aParams.iCommandHandlerCommand == EPhCltCommandVts ) && - ( aParams.iDtmfAction == EPhCltDtmfStop ) - ); - - // If the request is dial and the number is emergencynumber, it is - // handled as emergency request. - TBool isEmergencyCall = - ( aParams.iCommandHandlerCommand == EPhCltCommandAtd ); - if( isEmergencyCall ) - { - isEmergencyCall = iServer.EmergencyNumberManagerL(). - EmergencyNumberManagerIsEmergencyNumberL( - ( TDes16& ) aParams.iDialData.iTelNumber, - EPhCltEmergencyNumberQueryModeNormal ); - } - - // Panic if this is not the only request from this subsession. - if ( RequestAlreadyExists( aSubSession ) ) - { - // Cancel all ongoing requests first. - NegotiatorRequestCancel( aSubSession ); - - PhoneServerUtils::PanicClient( - EPhoneServerPanicTooManyRequestsOngoing, - aMessage ); - } - - // Normal request handling, request is ok. - else - { - CPhSrvComHandRequest* temp = NULL; - - // Emergency request handling. - if ( ( isDtmfCancel || isEmergencyCall ) && - ( *iOutstandingComHandRequests )[0]->SubSessionHandle() == 0 ) - { - ( *iOutstandingComHandRequests )[0]->UpdateEmergencyRequest( - aMessage, - aParams, - aSubSession.SubSessionUniqueHandle() ); - temp = ( *iOutstandingComHandRequests )[0]; - } - else - { - // Create pending request - CPhSrvComHandRequest* request = CPhSrvComHandRequest::NewLC( - aMessage, - aParams, - aSubSession.SubSessionUniqueHandle() ); - - User::LeaveIfError( - iOutstandingComHandRequests->Append( request ) ); - CleanupStack::Pop( request ); - temp = request; - } - - // Now see if the command handler notifier (initiator) is ready - if ( iComHandInitiator->InitiatorIsReadyToPerformRequest() ) - { - // Ask the call initiator to perform the request - // (basically completes the phone app engine's outstanding - // ComHand Notifier request). - iComHandInitiator->InitiatorMakeAsynchronousComHandRequest( - aParams ); - - iActiveRequest = temp; - } - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::NegotiatorRequestCancel -// -// Cancel a pending command handler request. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::NegotiatorRequestCancel( - CPhSrvSubSessionBase& aSubSession ) - { - // Obtain the subsessions handle - const TInt handle = aSubSession.SubSessionUniqueHandle(); - - // Now look for any pending requests that match. - const TInt count = iOutstandingComHandRequests->Count(); - for( TInt i = 0; i < count; i++ ) - { - CPhSrvComHandRequest* entry = ( *iOutstandingComHandRequests )[i]; - if ( entry->SubSessionHandle() == handle ) - { - if ( entry == iActiveRequest ) - { - // This request is active, so inform that it is deleted. - iActiveRequest = NULL; - } - - // Found matching entry, so cancel it and clean up - if ( i == 0 ) // 0 stands for emergency request - { - entry->Cancel(); - entry->ClearEmergencyRequest(); - } - else - { - iOutstandingComHandRequests->Remove( i ); - entry->Cancel(); - delete entry; - } - } - } - UpdateQueue(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::SetNegotiatorReadyRequestL -// -// Updates the negotiator so that it knows if the notifier -// session is able to perform the request. -// Does not leave. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::SetNegotiatorReadyRequestL( - MPhSrvComHandInitiator& aInitiator ) - { - // There mustn't already be a command handler initiator, or the existing - // initiator must be the same as the new one (otherwise, panic). - __ASSERT_ALWAYS( !iComHandInitiator || &aInitiator == iComHandInitiator, - PhoneServerUtils::Panic( - EPhoneServerPanicExistingComHandInitiatorFault ) ); - - // Update our pointer - iComHandInitiator = &aInitiator; - - UpdateQueue(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::SetNegotiatorReadyRequestCancel -// -// Indicates that the initiator is no longer available. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::SetNegotiatorReadyRequestCancel( - MPhSrvComHandInitiator& aInitiator ) - { - if ( iComHandInitiator && iComHandInitiator == &aInitiator ) - { - iComHandInitiator = NULL; - } - } - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::SetNegotiatorAttemptedRequestResponseValue -// -// Handle a response from the phone app engine - this is the -// result of attempting to perform a command handler request -// (based upon a previous clients external command handler request). -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::SetNegotiatorAttemptedRequestResponseValue( - TPhCltPhoneResults aResult ) - { - // Handle response event only if there is request that waits response. - if ( iActiveRequest ) - { - // Get the first item in the list - this is the oldest, and has the - // details of the command handler request we had previously initiated. - CPhSrvComHandRequest* head = NULL; - if ( ( *iOutstandingComHandRequests )[0]->SubSessionHandle() != 0 ) - { - head = ( *iOutstandingComHandRequests )[0]; - } - else - { - head = ( *iOutstandingComHandRequests )[1]; - } - // Complete the request so that the external command handler client - // knows the result of the request attempt - head->InformOfComHandRequestAttemptResult( aResult ); - - // Delete the pending request (now that it's been processed) and tidy - // up - if ( ( *iOutstandingComHandRequests )[0]->SubSessionHandle() != 0 ) - { - ( *iOutstandingComHandRequests )[0]->ClearEmergencyRequest(); - } - else - { - iOutstandingComHandRequests->Remove( 1 ); - delete head; - } - - // Reset the iActiveRequest variable. - iActiveRequest = NULL; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::UpdateQueue -// -// Update the request queue. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::UpdateQueue() - { - // If we have no registered initiator then we do nothing here. - if ( iComHandInitiator ) - { - // If we have more than one item in the queue, then we - // try and fire of the next item here. - if ( iComHandInitiator->InitiatorIsReadyToPerformRequest() && - ( iOutstandingComHandRequests->Count() > 1 || - ( *iOutstandingComHandRequests )[0]->SubSessionHandle() != 0 ) ) - { - // Get the request at the top of the list (head of the queue) - CPhSrvComHandRequest* head = NULL; - if ( ( *iOutstandingComHandRequests )[0]->SubSessionHandle() != 0 ) - { - head = ( *iOutstandingComHandRequests )[0]; - } - else - { - head = ( *iOutstandingComHandRequests )[1]; - } - - iComHandInitiator->InitiatorMakeAsynchronousComHandRequest( - head->ComHandParameters() ); - - iActiveRequest = head; - } - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::RequestAlreadyExists -// -// Check whether there already is request(s) for the subsession given as -// parameter. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvComHandRequestManager::RequestAlreadyExists( - CPhSrvSubSessionBase& aSubSession ) - { - TBool isThereRequest = EFalse; - - // Obtain the subsessions handle - const TInt handle = aSubSession.SubSessionUniqueHandle(); - - // Look for any pending requests that match the handle. - const TInt count = iOutstandingComHandRequests->Count(); - TInt i = 0; - for( i = 0; i < count; i++ ) - { - CPhSrvComHandRequest* entry = - ( *iOutstandingComHandRequests )[i]; - if ( entry->SubSessionHandle() == handle ) - { - isThereRequest = ETrue; - } - } - return isThereRequest; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/CommandHandler/CommandHandler_NoAiw/CPhSrvComHandRequestManagerStub.cpp --- a/phoneclientserver/phoneserver/Src/CommandHandler/CommandHandler_NoAiw/CPhSrvComHandRequestManagerStub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Command Handler Request Manager Stub implementation. -* -*/ - - - -// INCLUDES -#include "cphsrvcomhandrequestmanager.h" -#include "cphsrvcomhandrequest.h" -#include "cphsrvsubsessionbase.h" -#include "phsrvutils.h" - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::CPhSrvComHandRequestManager -// -// ----------------------------------------------------------------------------- -// -CPhSrvComHandRequestManager::CPhSrvComHandRequestManager( - CPhSrvServer& aServer ) -: iServer( aServer ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::~CPhSrvComHandRequestManager -// -// ----------------------------------------------------------------------------- -// -CPhSrvComHandRequestManager::~CPhSrvComHandRequestManager() - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::ConstructL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::ConstructL() - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::NegotiatorRequestL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::NegotiatorRequestL( - const RMessage2& /* aMessage */, - const TPhCltComHandCommandParameters& /* aParams */, - CPhSrvSubSessionBase& /* aSubSession */ ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::NegotiatorRequestCancel -// -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::NegotiatorRequestCancel( - CPhSrvSubSessionBase& /* aSubSession */ ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::SetNegotiatorReadyRequestL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::SetNegotiatorReadyRequestL( - MPhSrvComHandInitiator& /* aInitiator */ ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::SetNegotiatorReadyRequestCancel -// -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::SetNegotiatorReadyRequestCancel( - MPhSrvComHandInitiator& /* aInitiator */ ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::SetNegotiatorAttemptedRequestResponseValue -// -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::SetNegotiatorAttemptedRequestResponseValue( - TPhCltPhoneResults /* aResult */ ) - { - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/CommandHandler/Commandhandler_Aiw/CPhSrvComHandRequestManager.cpp --- a/phoneclientserver/phoneserver/Src/CommandHandler/Commandhandler_Aiw/CPhSrvComHandRequestManager.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,376 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Command Handler Request Manager. -* -*/ - - - -// INCLUDES -#include "cphsrvcomhandrequestmanager.h" -#include "cphsrvcomhandrequest.h" -#include "cphsrvsubsessionbase.h" -#include "phsrvutils.h" -#include "cphsrvserver.h" -#include "mphsrvemergencynumbermanager.h" - - -// CONSTANTS - -// The size of the Notification manager storage. -const TInt KPhSrvComHandManagerPendingCallGranularity = 4; - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::CPhSrvComHandRequestManager -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvComHandRequestManager::CPhSrvComHandRequestManager( - CPhSrvServer& aServer ) -: iServer( aServer ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::~CPhSrvComHandRequestManager -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvComHandRequestManager::~CPhSrvComHandRequestManager() - { - if ( iOutstandingComHandRequests ) - { - iOutstandingComHandRequests->ResetAndDestroy(); - iOutstandingComHandRequests->Close(); - - delete iOutstandingComHandRequests; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::ConstructL -// -// Complete construction. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::ConstructL() - { - iOutstandingComHandRequests = new ( ELeave ) RPointerArray< - CPhSrvComHandRequest >( KPhSrvComHandManagerPendingCallGranularity ); - - CPhSrvComHandRequest* emergencyRequest = CPhSrvComHandRequest::NewL(); - CleanupStack::PushL( emergencyRequest ); - User::LeaveIfError( - iOutstandingComHandRequests->Append( emergencyRequest ) ); - CleanupStack::Pop(); // emergencyRequest - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::NegotiatorRequestL -// -// Initiate a command handler request - called by the external command handler -// interface. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::NegotiatorRequestL( - const RMessage2& aMessage, - const TPhCltComHandCommandParameters& aParams, - CPhSrvSubSessionBase& aSubSession ) - { - // If we have no registered initiator then we can't perform the request. - if ( !iComHandInitiator ) - { - User::Leave( KErrNotReady ); - } - - // If the request is DTMF stop, it is handled as emergency request. - TBool isDtmfCancel = - ( - ( aParams.iCommandHandlerCommand == EPhCltCommandVts ) && - ( aParams.iDtmfAction == EPhCltDtmfStop ) - ); - - // If the request is dial and the number is emergencynumber, it is - // handled as emergency request. - TBool isEmergencyCall = - ( aParams.iCommandHandlerCommand == EPhCltCommandAtd ); - - if( isEmergencyCall ) - { - isEmergencyCall = iServer.EmergencyNumberManagerL(). - EmergencyNumberManagerIsEmergencyNumberL( - ( TDes16& ) aParams.iTelNumber, - EPhCltEmergencyNumberQueryModeNormal ); - } - - // Panic if this is not the only request from this subsession. - if ( RequestAlreadyExists( aSubSession ) ) - { - // Cancel all ongoing requests first. - NegotiatorRequestCancel( aSubSession ); - - PhoneServerUtils::PanicClient( - EPhoneServerPanicTooManyRequestsOngoing, - aMessage ); - } - - // Normal request handling, request is ok. - else - { - CPhSrvComHandRequest* temp = NULL; - - // Emergency request handling. - if ( ( isDtmfCancel || isEmergencyCall ) && - ( *iOutstandingComHandRequests )[0]->SubSessionHandle() == 0 ) - { - ( *iOutstandingComHandRequests )[0]->UpdateEmergencyRequest( - aMessage, - aParams, - aSubSession.SubSessionUniqueHandle() ); - temp = ( *iOutstandingComHandRequests )[0]; - } - else - { - // Create pending request - CPhSrvComHandRequest* request = CPhSrvComHandRequest::NewLC( - aMessage, - aParams, - aSubSession.SubSessionUniqueHandle() ); - - User::LeaveIfError( - iOutstandingComHandRequests->Append( request ) ); - CleanupStack::Pop( request ); - temp = request; - } - - // Now see if the command handler notifier (initiator) is ready - if ( iComHandInitiator->InitiatorIsReadyToPerformRequest() ) - { - // Ask the call initiator to perform the request - // (basically completes the phone app engine's outstanding - // ComHand Notifier request). - iComHandInitiator->InitiatorMakeAsynchronousComHandRequest( - aParams ); - - iActiveRequest = temp; - } - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::NegotiatorRequestCancel -// -// Cancel a pending command handler request. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::NegotiatorRequestCancel( - CPhSrvSubSessionBase& aSubSession ) - { - // Obtain the subsessions handle - const TInt handle = aSubSession.SubSessionUniqueHandle(); - - // Now look for any pending requests that match. - const TInt count = iOutstandingComHandRequests->Count(); - for( TInt i = 0; i < count; i++ ) - { - CPhSrvComHandRequest* entry = ( *iOutstandingComHandRequests )[i]; - if ( entry->SubSessionHandle() == handle ) - { - if ( entry == iActiveRequest ) - { - // This request is active, so inform that it is deleted. - iActiveRequest = NULL; - } - - // Found matching entry, so cancel it and clean up - if ( i == 0 ) // 0 stands for emergency request - { - entry->Cancel(); - entry->ClearEmergencyRequest(); - } - else - { - iOutstandingComHandRequests->Remove( i ); - entry->Cancel(); - delete entry; - } - } - } - UpdateQueue(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::SetNegotiatorReadyRequestL -// -// Updates the negotiator so that it knows if the notifier -// session is able to perform the request. -// Does not leave. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::SetNegotiatorReadyRequestL( - MPhSrvComHandInitiator& aInitiator ) - { - // There mustn't already be a command handler initiator, or the existing - // initiator must be the same as the new one (otherwise, panic). - __ASSERT_ALWAYS( !iComHandInitiator || &aInitiator == iComHandInitiator, - PhoneServerUtils::Panic( - EPhoneServerPanicExistingComHandInitiatorFault ) ); - - // Update our pointer - iComHandInitiator = &aInitiator; - - UpdateQueue(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::SetNegotiatorReadyRequestCancel -// -// Indicates that the initiator is no longer available. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::SetNegotiatorReadyRequestCancel( - MPhSrvComHandInitiator& aInitiator ) - { - if ( iComHandInitiator && iComHandInitiator == &aInitiator ) - { - iComHandInitiator = NULL; - } - } - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::SetNegotiatorAttemptedRequestResponseValue -// -// Handle a response from the phone app engine - this is the -// result of attempting to perform a command handler request -// (based upon a previous clients external command handler request). -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::SetNegotiatorAttemptedRequestResponseValue( - TPhCltPhoneResults aResult ) - { - // Handle response event only if there is request that waits response. - if ( iActiveRequest ) - { - // Get the first item in the list - this is the oldest, and has the - // details of the command handler request we had previously initiated. - CPhSrvComHandRequest* head = NULL; - if ( ( *iOutstandingComHandRequests )[0]->SubSessionHandle() != 0 ) - { - head = ( *iOutstandingComHandRequests )[0]; - } - else - { - head = ( *iOutstandingComHandRequests )[1]; - } - // Complete the request so that the external command handler client - // knows the result of the request attempt - head->InformOfComHandRequestAttemptResult( aResult ); - - // Delete the pending request (now that it's been processed) and tidy - // up - if ( ( *iOutstandingComHandRequests )[0]->SubSessionHandle() != 0 ) - { - ( *iOutstandingComHandRequests )[0]->ClearEmergencyRequest(); - } - else - { - iOutstandingComHandRequests->Remove( 1 ); - delete head; - } - - // Reset the iActiveRequest variable. - iActiveRequest = NULL; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::UpdateQueue -// -// Update the request queue. -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::UpdateQueue() - { - // If we have no registered initiator then we do nothing here. - if ( iComHandInitiator ) - { - // If we have more than one item in the queue, then we - // try and fire of the next item here. - if ( iComHandInitiator->InitiatorIsReadyToPerformRequest() && - ( iOutstandingComHandRequests->Count() > 1 || - ( *iOutstandingComHandRequests )[0]->SubSessionHandle() != 0 ) ) - { - // Get the request at the top of the list (head of the queue) - CPhSrvComHandRequest* head = NULL; - if ( ( *iOutstandingComHandRequests )[0]->SubSessionHandle() != 0 ) - { - head = ( *iOutstandingComHandRequests )[0]; - } - else - { - head = ( *iOutstandingComHandRequests )[1]; - } - - iComHandInitiator->InitiatorMakeAsynchronousComHandRequest( - head->ComHandParameters() ); - - iActiveRequest = head; - } - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::RequestAlreadyExists -// -// Check whether there already is request(s) for the subsession given as -// parameter. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvComHandRequestManager::RequestAlreadyExists( - CPhSrvSubSessionBase& aSubSession ) - { - TBool isThereRequest = EFalse; - - // Obtain the subsessions handle - const TInt handle = aSubSession.SubSessionUniqueHandle(); - - // Look for any pending requests that match the handle. - const TInt count = iOutstandingComHandRequests->Count(); - TInt i = 0; - for( i = 0; i < count; i++ ) - { - CPhSrvComHandRequest* entry = - ( *iOutstandingComHandRequests )[i]; - if ( entry->SubSessionHandle() == handle ) - { - isThereRequest = ETrue; - } - } - return isThereRequest; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/CommandHandler/Commandhandler_Aiw/CPhSrvComHandRequestManagerStub.cpp --- a/phoneclientserver/phoneserver/Src/CommandHandler/Commandhandler_Aiw/CPhSrvComHandRequestManagerStub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: Command Handler Request Manager Stub implementation. -* -*/ - - - -// INCLUDES -#include "cphsrvcomhandrequestmanager.h" -#include "cphsrvcomhandrequest.h" -#include "cphsrvsubsessionbase.h" -#include "phsrvutils.h" - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::CPhSrvComHandRequestManager -// -// ----------------------------------------------------------------------------- -// -CPhSrvComHandRequestManager::CPhSrvComHandRequestManager( - CPhSrvServer& aServer ) -: iServer( aServer ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::~CPhSrvComHandRequestManager -// -// ----------------------------------------------------------------------------- -// -CPhSrvComHandRequestManager::~CPhSrvComHandRequestManager() - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::ConstructL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::ConstructL() - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::NegotiatorRequestL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::NegotiatorRequestL( - const RMessage2& /* aMessage */, - const TPhCltComHandCommandParameters& /* aParams */, - CPhSrvSubSessionBase& /* aSubSession */ ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::NegotiatorRequestCancel -// -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::NegotiatorRequestCancel( - CPhSrvSubSessionBase& /* aSubSession */ ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::SetNegotiatorReadyRequestL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::SetNegotiatorReadyRequestL( - MPhSrvComHandInitiator& /* aInitiator */ ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::SetNegotiatorReadyRequestCancel -// -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::SetNegotiatorReadyRequestCancel( - MPhSrvComHandInitiator& /* aInitiator */ ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvComHandRequestManager::SetNegotiatorAttemptedRequestResponseValue -// -// ----------------------------------------------------------------------------- -// -void CPhSrvComHandRequestManager::SetNegotiatorAttemptedRequestResponseValue( - TPhCltPhoneResults /* aResult */ ) - { - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/ImageHandler/CPhSrvSubSessionImageHandler.cpp --- a/phoneclientserver/phoneserver/Src/ImageHandler/CPhSrvSubSessionImageHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1103 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: Sub Session image handler. -* Does image saving and loading. -* -*/ - - - -// INCLUDE FILES -#include "cphsrvsubsessionimagehandler.h" -#include "cphsrvsession.h" -#include "cphsrvserver.h" -#include -#include -#include "phsrvdebuginfo.h" - -// CONSTANTS -_LIT( KPhSrvImageDriveRom, "z:" ); -_LIT( KPhSrvVTImageName, "vtstillimage" ); -_LIT( KPhSrvVTDefaultImageName, "vtdefaultimage." ); -_LIT( KPhSrvImageSuffix, ".mbm" ); -_LIT( KPhSrvImageWildCard, "*" ); -_LIT( KPhSrvLogoMncMccSeparator, "_" ); -_LIT( KPhSrvLogoTypeIndicatorOTA, "OTA" ); -_LIT( KPhSrvLogoTypeIndicatorProg, "Prog" ); -_LIT( KPhSrvOperatorLogoPrefix, "Logo" ); -const TInt KPhSrvNameMaxLen = 1024; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::CPhSrvSubSessionImageHandler -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionImageHandler::CPhSrvSubSessionImageHandler( - CPhSrvSession& aSession ) -: CPhSrvSubSessionBase( aSession, EPhSrvSubSessionTypeImageHandler ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Ctor" ) - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::~CPhSrvSubSessionImageHandler -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionImageHandler::~CPhSrvSubSessionImageHandler() - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Dtor" ) - iVTBitMaps.ResetAndDestroy(); - iOperatorLogos.ResetAndDestroy(); - PhoneSession().PhoneServer().DisconnectFBS(); - iFs.Close(); - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Dtor>" ) - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::NewL -// -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionBase* CPhSrvSubSessionImageHandler::NewL( - CPhSrvSession& aSession ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::NewL" ) - CPhSrvSubSessionBase* self = - new( ELeave ) CPhSrvSubSessionImageHandler( aSession ); - _DPRINT( 4, "CPhSrvSubSessionImageHandler::NewL>" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::ImageSaved -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::ImageSaved( TInt aResult ) - { - iImageSaver = NULL; - // Message for save request - iSaveVtImageMessage.Complete( aResult ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::PhSrvMessageDecoderCanProcessMessage -// -// Framework function. Returns ETrue for the op codes that -// this subsession can handle. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionImageHandler::PhSrvMessageDecoderCanProcessMessage( - TInt aFunction ) - { - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::CanProcess", aFunction ) - switch( aFunction ) - { - case EPhoneServerImageHandlerSubSessionOpen: - case EPhoneServerImageHandlerSubSessionClose: - case EPhoneServerImageHandlerSubSessionSave: - case EPhoneServerImageHandlerSubSessionLoad: - case EPhoneServerImageHandlerSubSessionCommitLoad: - case EPhoneServerOpenVtImage: - // new saving scheme - case EPhoneServerSaveVtImage: - case EPhoneServerSaveVtImageCancel: - return ETrue; - - default: - return EFalse; - } - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::PhSrvMessageProcessorHandleMessageL -// -// Framework function. Handle any op-codes here. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::PhSrvMessageProcessorHandleMessageL( - const RMessage2& aMessage ) - { - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::Handle", - aMessage.Function() ) - TBool permissionStatus ( EFalse ); - - // Check needed capabilities - TBool hasCapWriteDeviceData( EFalse ); - hasCapWriteDeviceData = aMessage.HasCapability( ECapabilityWriteDeviceData ); - TBool hasCapReadDeviceData( EFalse ); - hasCapReadDeviceData = aMessage.HasCapability( ECapabilityReadDeviceData ); - - switch( aMessage.Function() ) - { - case EPhoneServerImageHandlerSubSessionClose: - CmdSubSessionClose( aMessage ); - permissionStatus = ETrue; - break; - - case EPhoneServerImageHandlerSubSessionSave: - if ( hasCapWriteDeviceData ) - { - CmdSubSessionSaveImagesL( aMessage ); - permissionStatus = ETrue; - } - break; - - case EPhoneServerImageHandlerSubSessionCommitLoad: - if ( hasCapReadDeviceData ) - { - CmdSubSessionCommitLoadL( aMessage ); - permissionStatus = ETrue; - } - break; - - - case EPhoneServerImageHandlerSubSessionLoad: - if ( hasCapReadDeviceData ) - { - CmdSubSessionLoadImagesL( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerOpenVtImage: - if ( hasCapReadDeviceData ) - { - CmdSubSessionOpenDefaultVtImageL( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerSaveVtImage: - if ( hasCapWriteDeviceData ) - { - CmdSubSessionSaveVtImageL( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerSaveVtImageCancel: - if ( hasCapWriteDeviceData ) - { - permissionStatus = ETrue; - if ( iImageSaver ) - { - // saving in progress, cancel it. - iImageSaver->Cancel(); - } - else - { - // nothing to cancel or too late cancellation - iSaveVtImageMessage.Complete( KErrNotReady ); - } - } - break; - default: - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Handle: PANIC" ) - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicInvalidRequest ); - break; - } - - // If caps are not ok - if( !permissionStatus ) - { - aMessage.Complete( KErrPermissionDenied ); - } - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Handle>" ) - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::CmdSubSessionClose -// -// Close the sub-session. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::CmdSubSessionClose( - const RMessage2& aMessage ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Close" ) - PhoneSession().CloseSubSession( aMessage ); - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Close>" ) - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::CmdSubSessionSaveImagesL -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::CmdSubSessionSaveImagesL( - const RMessage2& aMessage ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Save" ) - TPhCltImageArray handles; - TPckg< TPhCltImageArray > pHandles( handles ); - - Read( aMessage, 0, pHandles ); - - // Version check in here, if multiple possibilities. - switch( pHandles().iType ) - { - case EPhCltTypeVTStill: - DoSaveVTImageL( handles ); - break; - case EPhCltTypeOperatorLogo: - DoSaveOperatorLogoL( handles ); - break; - default: - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Save US" ) - User::Leave( KErrNotSupported ); - } - - // Leave is propagated into framework. - aMessage.Complete( KErrNone ); - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Save>" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::CmdSubSessionLoadImagesL -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::CmdSubSessionLoadImagesL( - const RMessage2& aMessage ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Load" ) - TPhCltImageArray handles; - TPckg< TPhCltImageArray > pHandles( handles ); - - Read( aMessage, 0, pHandles ); - - // Version check in here, if multiple possibilities. - switch( pHandles().iType ) - { - case EPhCltTypeVTStill: - case EPhCltTypeVTDefault: - DoLoadVTImagesL( handles ); - break; - case EPhCltTypeOperatorLogo: - DoLoadOperatorLogoL( handles ); - break; - default: - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Load US" ) - User::Leave( KErrNotSupported ); - } - - Write( aMessage, 0, pHandles ); - aMessage.Complete( KErrNone ); - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Load>" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::CmdSubSessionOpenDefaultVtImageL -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::CmdSubSessionOpenDefaultVtImageL( - const RMessage2& aMessage ) - { - _DPRINT( 4, - "CPhSrvSubSessionImageHandler::CmdSubSessionOpenDefaultVtImageL<" ) - TBool defaultImage( ETrue ); - TPckg< TBool > pckg( defaultImage ); - Read( aMessage, 1, pckg ); - - // Currently only default still image uses file handle sharing. User - // defined image uses legacy scheme. If user defined image is attempted - // to open here, complete with error. - if ( !defaultImage ) - { - User::Leave( KErrNotSupported ); - } - - RFs fs; - RFile defaultVtImageFile; - TFileName fileName; - - // File extension may be any supported file type. Resolve which one is used. - User::LeaveIfError( ResolveDefaultVtImageFileName( fileName ) ); - - // Open separate session because ownwership of transferred file's - // session goes with the file (when file is closed by the client, - // related session is also closed) - User::LeaveIfError( fs.Connect() ); - CleanupClosePushL( fs ); - - User::LeaveIfError( defaultVtImageFile.Open( fs, fileName, EFileRead ) ); - - // Transfer file handle to client by writing file handle value to - // message argument 0 - User::LeaveIfError( - defaultVtImageFile.TransferToClient( aMessage, 0 ) ); - defaultVtImageFile.Close(); // file handle duplicated for client - CleanupStack::PopAndDestroy(); // fs, can be closed, handle duplicated - - _DPRINT( 4, - "CPhSrvSubSessionImageHandler::CmdSubSessionOpenDefaultVtImageL>" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::ResolveDefaultVtImageFileName -// -// Resolves file name of default VT image. Extension cannot be known -// in advance and directory entries must be read and parsed. -// ----------------------------------------------------------------------------- -// -TInt CPhSrvSubSessionImageHandler::ResolveDefaultVtImageFileName( - TDes& aFileName ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::ResolveDefaultVtImageFileName<" ) - CDir* entries = NULL; - TFileName path = KPhSrvImageDriveRom(); - - // read directory entries in the server private path - path.Append( iFilePath ); - TInt result = iFs.GetDir( path, KEntryAttNormal, EDirsLast, entries ); - if ( result == KErrNone && entries ) - { - const TInt entryCount( entries->Count() ); - // go through entries and stop when VT image file is found - for ( TInt index = 0; index < entryCount; index++ ) - { - const TEntry& entry = ( *entries )[index]; - if ( entry.iName.Find( KPhSrvVTDefaultImageName() ) > KErrNotFound ) - { - aFileName = path; - aFileName.Append( entry.iName ); - // fileName now contains full path - index = entryCount; // break loop - result = KErrNone; - } - } - } - delete entries; - _DPRINT( 4, "CPhSrvSubSessionImageHandler::ResolveDefaultVtImageFileName>" ) - return result; - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::CmdSubSessionSaveVtImageL -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::CmdSubSessionSaveVtImageL( - const RMessage2& aMessage ) - { - TFileName sourceFile; - TPckg pckg( sourceFile ); - - Read( aMessage, 0, pckg ); - CPhSrvImageSaver* saver = CPhSrvImageSaver::NewL( iFs, iFilePath, *this ); - CleanupStack::PushL( saver ); - saver->SaveImageL( sourceFile ); - CleanupStack::Pop(); - iImageSaver = saver; - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::CmdSubSessionCommitLoadL -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::CmdSubSessionCommitLoadL( - const RMessage2& aMessage ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Commit" ) - TPhCltImageArray handles; - TPckg< TPhCltImageArray > pHandles( handles ); - - Read( aMessage, 0, pHandles ); - - switch ( pHandles().iType ) - { - case EPhCltTypeVTStill: - case EPhCltTypeVTDefault: - DoCommitLoadVTL(); - break; - case EPhCltTypeOperatorLogo: - DoCommitLoadLogo( handles ); - break; - default: - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Commit US" ) - User::Leave( KErrNotSupported ); - } - aMessage.Complete( KErrNone ); - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Commit" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::DoCommitLoadVTL -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::DoCommitLoadVTL() - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::CommitVT" ) - iVTBitMaps.ResetAndDestroy(); - _DPRINT( 4, "CPhSrvSubSessionImageHandler::CommitVT>" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::DoCommitLoadLogo -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::DoCommitLoadLogo( TPhCltImageArray& aImages ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::CommitLogo" ) - for ( TInt i = 0; i < iOperatorLogos.Count(); i ++ ) - { - if ( aImages.iImages[ EPhCltExtCountryCodeIndex ] == - iOperatorLogos[ i ]->iCountryCode && - aImages.iImages[ EPhCltExtNetworkCodeIndex ] == - iOperatorLogos[ i ]->iNetworkCode ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::CommitLogo found" ) - delete iOperatorLogos[ i ]; - iOperatorLogos.Remove( i ); - break; - } - } - _DPRINT( 4, "CPhSrvSubSessionImageHandler::CommitLogo>" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::DoSaveVTImage -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::DoSaveVTImageL( TPhCltImageArray& aImages ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::SaveVT" ) - HBufC* hbuf = HBufC::NewLC(KPhSrvNameMaxLen); - TPtr buf = hbuf->Des(); - for ( TInt i = 0; i < aImages.iImageCount; i++ ) - { - buf.Zero(); - buf.Append( iDriveName ); - buf.Append( iFilePath ); - buf.Append( KPhSrvVTImageName ); - buf.AppendNum( i ); - buf.Append( KPhSrvImageSuffix ); - buf.ZeroTerminate(); -#ifdef __PHENG_DEBUG_INFO__ - RDebug::Print( _L("CPhSrvSubSessionImageHandler::SaveVT: %S"), &buf ); -#endif - CFbsBitmap* bitMap = new ( ELeave ) CFbsBitmap(); - CleanupStack::PushL( bitMap ); - User::LeaveIfError( bitMap->Duplicate( aImages.iImages[ i ] ) ); - User::LeaveIfError( bitMap->Save( buf ) ); - CleanupStack::PopAndDestroy( bitMap ); - } - CleanupStack::PopAndDestroy( hbuf ); - _DPRINT( 4, "CPhSrvSubSessionImageHandler::SaveVT>" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::DoLoadVTImagesL -// -// Loads images. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::DoLoadVTImagesL( TPhCltImageArray& aImages ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::LoadVT" ) - // Load the images from file. - const TBool loadDefaultImage = aImages.iType == EPhCltTypeVTDefault; - DoReadVTImagesL( loadDefaultImage ); - - // Copy handles. - aImages.iImageCount = iVTBitMaps.Count(); - for ( TInt i = 0; i < aImages.iImageCount; i++ ) - { - aImages.iImages[ i ] = iVTBitMaps[ i ]->Handle(); - _DDPRINT( 4, - "CPhSrvSubSessionImageHandler::LoadVT: ", aImages.iImages[ i ] ) - } - _DPRINT( 4, "CPhSrvSubSessionImageHandler::LoadVT>" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::DoReadVTImagesL -// -// Loads images. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::DoReadVTImagesL( const TBool aDefaultImage ) - { - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::ReadVT is default=", aDefaultImage ) - iVTBitMaps.ResetAndDestroy(); - - TPtrC path; // pointer to sub-string of searchPath containing drive+path - - // Search path = drive + path + file-name (with wildcard) + extension - HBufC* searchPath = ConstructVTImageSearchPathLC( - aDefaultImage, path ); - -#ifdef __PHENG_DEBUG_INFO__ - TPtr ptr = searchPath->Des(); // temp pointer to avoid lvalue compile warning - RDebug::Print( _L( - "CPhSrvSubSessionImageHandler::ReadVT: %S"), ( &ptr )); -#endif - RDir dir; - User::LeaveIfError( dir.Open( iFs, *searchPath, KEntryAttNormal ) ); - CleanupClosePushL( dir ); - - TEntryArray entryArray; - TInt readResult = dir.Read( entryArray ); - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::ReadVT res: ", readResult ) - HBufC* hbitmapName = HBufC::NewLC( KMaxFileName ); - TPtr bitmapName = hbitmapName->Des(); - - // If directory entry array read successfully... - while( ( readResult == KErrNone ) || ( readResult == KErrEof ) ) - { - const TInt arrayLength = entryArray.Count(); - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::DoReadVTImagesL count: ", arrayLength ) - // ...go through directory entries - for( TInt i = 0; i < arrayLength; i++ ) - { - const TEntry& entry = entryArray[ i ]; - const TDesC& name = entry.iName; - TBool load = EFalse; - // If client wanted default image, load it only - if ( aDefaultImage && - name.FindF( KPhSrvVTDefaultImageName ) == 0 ) - { - /* Next two statements for stopping to process - directory entries */ - i = arrayLength; - readResult = KErrEof; - load = ETrue; - } - // If client wanted still image, load it (or them) - else if ( !aDefaultImage && - name.FindF( KPhSrvVTImageName ) == 0 ) - { - load = ETrue; - } - if ( load ) - { - CFbsBitmap* bitmap = new ( ELeave ) CFbsBitmap(); - CleanupStack::PushL( bitmap ); - bitmapName = path; // initialize the file path - bitmapName.Append( name ); -#ifdef __PHENG_DEBUG_INFO__ - RDebug::Print( _L( - "CPhSrvSubSessionImageHandler::ReadVT BM: %S"), - &bitmapName ); -#endif - User::LeaveIfError( bitmap->Load( bitmapName ) ); - User::LeaveIfError( iVTBitMaps.Append( bitmap ) ); - CleanupStack::Pop(); // bitmap - } - } - - if ( readResult == KErrEof ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::ReadVT EOF" ) - break; - } - readResult = dir.Read( entryArray ); - } - CleanupStack::PopAndDestroy( 3 ); // hbitmapName, dir, search path - if( ( readResult != KErrNone ) && ( readResult != KErrEof ) ) - { - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::ReadVT Leave", readResult ) - User::Leave( readResult ); - } - _DPRINT( 4, "CPhSrvSubSessionImageHandler::ReadVT>" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::DoSaveOperatorLogoL -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::DoSaveOperatorLogoL( TPhCltImageArray& aImages ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::SaveLogo" ) - // Check the values prior saving, - // to check whether deletion is actually ongoing - const TPhCltCountryCode mcc = aImages.iImages[ EPhCltExtCountryCodeIndex ]; - const TPhCltNetworkCode mnc= aImages.iImages[ EPhCltExtNetworkCodeIndex ]; - const TInt handle = aImages.iImages[ EPhCltExtOperatorLogoIndex ]; - const TPhCltExtOperatorLogoType logoType = - ( TPhCltExtOperatorLogoType )aImages.iImages[ EPhCltExtLogoTypeIndex ]; - - // Only OTA logos can be saved and deleted. - if ( logoType == EPhCltLogoTypeProgrammable ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::SaveLogo PROG" ) - User::Leave( KErrAccessDenied ); - } - - _DPRINT( 4, "PhSrvImageHandler::SaveLogo test delete " ) - // Check if this a delete command. - // If no logo deleted, then this is save command. - if ( !DeleteLogoL( mcc, mnc, logoType, handle ) ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::SaveLogo Save" ) - HBufC* hbuf = HBufC::NewLC(KPhSrvNameMaxLen); - TPtr buf = hbuf->Des(); - ConstructLogoFileNameL( mcc, mnc, logoType, buf ); - CFbsBitmap* bitMap = new ( ELeave ) CFbsBitmap(); - CleanupStack::PushL( bitMap ); - User::LeaveIfError( bitMap->Duplicate( - aImages.iImages[ EPhCltExtOperatorLogoIndex ] ) ); - User::LeaveIfError( bitMap->Save( buf ) ); - CleanupStack::PopAndDestroy( 2, hbuf ); // hbuf, bitMap - NotifyListeners( // Error ignored. - mcc, mnc, TTelephonyOTALogoUpdate::EPSTelephonyLogoChanged ); - // new P&S key update - NotifyListeners( // Error ignored. - mcc, mnc, TTelOTALogoUpdate::EPSTelephonyLogoChanged ); - } - _DPRINT( 4, "CPhSrvSubSessionImageHandler::SaveLogo>" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::DoLoadOperatorLogoL -// -// Loads images. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler:: - DoLoadOperatorLogoL( TPhCltImageArray& aImages ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::LoadLogo" ) - // Construct the file path first. - HBufC* hbuf = HBufC::NewLC(KPhSrvNameMaxLen); - TPtr buf = hbuf->Des(); - TInt err( KErrNone ); - ConstructLogoFileNameL( aImages.iImages[ EPhCltExtCountryCodeIndex ], - aImages.iImages[ EPhCltExtNetworkCodeIndex ], - ( TPhCltExtOperatorLogoType ) aImages.iImages[ EPhCltExtLogoTypeIndex ], - buf ); - - // Load the image. - CFbsBitmap* bitMap = new ( ELeave ) CFbsBitmap(); - CleanupStack::PushL( bitMap ); - err = bitMap->Load( buf ); - if ( err == KErrPathNotFound ) - { - err = KErrNotFound; - } - User::LeaveIfError( err ); - - CPhSrvOperatorLogoContainer* logoContainer = - new (ELeave)CPhSrvOperatorLogoContainer( - aImages.iImages[ EPhCltExtCountryCodeIndex ], - aImages.iImages[ EPhCltExtNetworkCodeIndex ], - ( TPhCltExtOperatorLogoType ) aImages.iImages[ EPhCltExtLogoTypeIndex ], - bitMap ); - aImages.iImages[ EPhCltExtOperatorLogoIndex ] = bitMap->Handle(); - aImages.iImageCount = 1; - CleanupStack::PushL(logoContainer); - iOperatorLogos.AppendL( logoContainer ); - CleanupStack::Pop(logoContainer); - CleanupStack::Pop( bitMap ); - CleanupStack::PopAndDestroy( hbuf ); - - _DPRINT( 4, "CPhSrvSubSessionImageHandler::LoadLogo>" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::MakeImageDirL -// -// Creates directory structure. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::MakeImageDirL() - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::MakeDir" ) - TDriveNumber sysDrive; - User::LeaveIfError( BaflUtils::GetSystemDrive( sysDrive ) ); - iDriveName.Format( _L("%c:"), sysDrive +'A' ); - const TInt err( iFs.CreatePrivatePath( sysDrive ) ); - if ( err != KErrAlreadyExists && err != KErrNone ) - { - User::Leave( err ); - } - _DPRINT( 4, "CPhSrvSubSessionImageHandler::MakeDir>" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::ConstructVTImageSearchPathLC -// -// Construct search path for VT image. -// ----------------------------------------------------------------------------- -// -HBufC* CPhSrvSubSessionImageHandler::ConstructVTImageSearchPathLC( - const TBool aDefaultImage, - TPtrC& aPath ) const - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::ConstructVTImageSearchPathLC<" ) - HBufC* hfilePath = HBufC::NewLC( KMaxFileName ); - TPtr filePath = hfilePath->Des(); - - filePath = iFilePath; // = "\private\\" - - if ( aDefaultImage ) - { - // = "z:\private\\" - // == - filePath.Insert( 0, KPhSrvImageDriveRom ); - - aPath.Set( filePath ); - - // = "z:\private\\vtdefaultimage" - // ============== - filePath.Append( KPhSrvVTDefaultImageName() ); - } - else - { - // = "c:\private\\" - // == - filePath.Insert( 0, iDriveName ); - - aPath.Set( filePath ); - - // = "c:\private\\vtstillimage" - // ============ - filePath.Append( KPhSrvVTImageName() ); - } - // = "c:\private\\*" - // = - filePath.Append( KPhSrvImageWildCard() ); - - // = "c:\private\\*.mbm" - // ==== - filePath.Append( KPhSrvImageSuffix() ); - _DPRINT( 4, "CPhSrvSubSessionImageHandler::ConstructVTImageSearchPathLC>" ) - return hfilePath; - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::ConstructL -// -// 2nd phase construction. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::ConstructL() - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::CtorL" ) - PhoneSession().PhoneServer().ConnectFBS(); - User::LeaveIfError( iFs.Connect() ); - User::LeaveIfError( iFs.ShareProtected() ); - MakeImageDirL(); - User::LeaveIfError( iFs.PrivatePath( iFilePath ) ); - _DPRINT( 4, "CPhSrvSubSessionImageHandler::CtorL>" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::DeleteLogoL -// -// Checks if logo(s) should be deleted, and deletes them if needed. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionImageHandler::DeleteLogoL( - const TPhCltCountryCode aCountryCode, - const TPhCltNetworkCode aNetworkCode, - const TPhCltExtOperatorLogoType aLogoType, - const TInt aFileHandle ) - { - _DPRINT( 4, "PhSrvImageHandler::DeleteLogoL" ) - TBool deleted = EFalse; - - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::DelLogo ", aCountryCode ) - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::DelLogo ", aNetworkCode ) - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::DelLogo ", aLogoType ) - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::DelLogo ", aFileHandle ) - - // Check if all, one or none. - if ( aFileHandle == KPhCltDeleteOperatorLogo ) - { - HBufC* hbuf = HBufC::NewLC(KPhSrvNameMaxLen); - TPtr buf = hbuf->Des(); - if ( aCountryCode == KPhCltDeleteOperatorLogo && - aNetworkCode == KPhCltDeleteOperatorLogo ) - { - // Delete all logos. - TFindFile* finder = new(ELeave) TFindFile(iFs); - CleanupStack::PushL(finder); - - HBufC* hfilePath = HBufC::NewLC(KMaxFileName); - TPtr filePath = hfilePath->Des(); - filePath = iDriveName; - filePath.Append( iFilePath ); - - buf.Append( KPhSrvOperatorLogoPrefix ); - buf.Append( KPhSrvLogoMncMccSeparator ); - buf.Append( KPhSrvImageWildCard ); -#ifdef __PHENG_DEBUG_INFO__ - RDebug::Print( _L( - "CPhSrvSubSessionImageHandler::DelLogo: %S"), &buf ); -#endif - CDir* foundFiles = NULL; - const TInt err = finder->FindWildByDir( buf, filePath, foundFiles ); - if ( err != KErrNone ) - { - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::DelLogo Leave", err ) - delete foundFiles; - foundFiles = NULL; - User::Leave( err ); - } - for ( TInt i = 0; i < foundFiles->Count(); i++ ) - { - const TEntry& entry = foundFiles->operator[ ]( i ); -#ifdef __PHENG_DEBUG_INFO__ - RDebug::Print( _L( - "CPhSrvSubSessionImageHandler::DelLogo: rem %S"), &entry.iName ); -#endif - BaflUtils::DeleteFile( iFs, entry.iName ); - } - delete foundFiles; - deleted = ETrue; - NotifyListeners( // Error ignored. - KPhCltDeleteOperatorLogo, KPhCltDeleteOperatorLogo, - TTelephonyOTALogoUpdate::EPSTelephonyAllLogosDeleted ); - // new P&S key update - NotifyListeners( // Error ignored. - KPhCltDeleteOperatorLogo, KPhCltDeleteOperatorLogo, - TTelOTALogoUpdate::EPSTelephonyAllLogosDeleted ); - - CleanupStack::PopAndDestroy( 2, hfilePath ); // finder, hfilePath - } - else - { - // Delete specified logo. - ConstructLogoFileNameL( - aCountryCode, aNetworkCode, aLogoType, buf ); - BaflUtils::DeleteFile( iFs, buf ); - deleted = ETrue; - NotifyListeners( aCountryCode, aNetworkCode, - TTelephonyOTALogoUpdate::EPSTelephonyLogoDeleted ); - NotifyListeners( // Error ignored. - KPhCltDeleteOperatorLogo, KPhCltDeleteOperatorLogo, - TTelOTALogoUpdate::EPSTelephonyAllLogosDeleted ); - } - - CleanupStack::PopAndDestroy( hbuf ); - } - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::DelLogo>", deleted ) - return deleted; - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::ConstructLogoFileNameL -// -// Creates operator logo file name. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler::ConstructLogoFileNameL( - const TPhCltCountryCode aCountryCode, - const TPhCltNetworkCode aNetworkCode, - const TPhCltExtOperatorLogoType aLogoType, - TDes& aFileName ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::LogoName") - aFileName.Zero(); - if ( aLogoType == EPhCltLogoTypeOTA ) - { - aFileName.Append( iDriveName ); - } - else - { - aFileName.Append( KPhSrvImageDriveRom ); - } - aFileName.Append( iFilePath ); - aFileName.Append( KPhSrvOperatorLogoPrefix ); - aFileName.Append( KPhSrvLogoMncMccSeparator ); - aFileName.AppendNum( aCountryCode ); - aFileName.Append( KPhSrvLogoMncMccSeparator ); - aFileName.AppendNum( aNetworkCode ); - aFileName.Append( KPhSrvLogoMncMccSeparator ); - AppendLogoTypeAsTextL( aLogoType, aFileName ); - aFileName.Append( KPhSrvImageSuffix ); -#ifdef __PHENG_DEBUG_INFO__ - RDebug::Print( _L( - "CPhSrvSubSessionImageHandler::LogoName: %S"), &aFileName ); -#endif - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::AppendLogoTypeAsTextL -// -// Appends logo type to buffer. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionImageHandler:: - AppendLogoTypeAsTextL( - const TPhCltExtOperatorLogoType aLogoType, TDes& aType ) - { - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::LogoType: ", aLogoType ) - switch ( aLogoType ) - { - case EPhCltLogoTypeOTA: - aType.Append( KPhSrvLogoTypeIndicatorOTA ); - break; - case EPhCltLogoTypeProgrammable: - aType.Append( KPhSrvLogoTypeIndicatorProg ); - break; - default: - User::Leave( KErrNotSupported ); - break; - } - _DPRINT( 4, "CPhSrvSubSessionImageHandler::LogoType>" ) - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::NotifyListeners -// -// Updates publish & subscribe information with event happened. -// ----------------------------------------------------------------------------- -// -TInt CPhSrvSubSessionImageHandler:: - NotifyListeners( const TPhCltCountryCode aCountryCode, - const TPhCltNetworkCode aNetworkCode, - const TTelephonyOTALogoUpdate::TPSOperatorLogoUpdateEvent aEvent ) - { - TInt err( KErrNone ); - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::Notify ", aCountryCode ) - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::Notify ", aNetworkCode ) - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::Notify ", aEvent ) - // If not exist define key - if ( !iPropertyDefined ) - { - err = RProperty::Define( KPSUidPhoneClientServerInformation, - KTelOperatorLogoUpdated, RProperty::EByteArray, ECapability_None, ECapabilityWriteDeviceData); - - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::Notify defined: ", err ) - if ( err == KErrAlreadyExists ) - { - // No error. - err = KErrNone; - } - } - - // Set event - if ( err == KErrNone ) - { - TTelephonyOTALogoUpdate update; - TTelephonyOTALogoUpdate::TOTALogoUpdatePckg logoUpdate( update ); - logoUpdate().iEvent = aEvent; - logoUpdate().iMCC = aCountryCode; - logoUpdate().iMNC = aNetworkCode; - iPropertyDefined = ETrue; - err = RProperty::Set( - KPSUidPhoneClientServerInformation, KTelOperatorLogoUpdated, logoUpdate ); - } - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::Notify> ", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionImageHandler::NotifyListeners -// -// Updates publish & subscribe information with event happened. -// New P&S key used. -// ----------------------------------------------------------------------------- -// -TInt CPhSrvSubSessionImageHandler:: - NotifyListeners( const TPhCltCountryCode aCountryCode, - const TPhCltNetworkCode aNetworkCode, - const TTelOTALogoUpdate::TPSOperatorLogoUpdateEvent aEvent ) - { - TInt err( KErrNone ); - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::Notify ", aCountryCode ) - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::Notify ", aNetworkCode ) - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::Notify ", aEvent ) - // If not exist define key - if ( !iPropertyDefined ) - { - err = RProperty::Define( KPSUidPhoneClientServerInformation, - KTelOperatorLogoUpdated, RProperty::EByteArray, ECapability_None, ECapabilityWriteDeviceData); - - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::Notify defined: ", err ) - if ( err == KErrAlreadyExists ) - { - // No error. - err = KErrNone; - } - } - - // Set event - if ( err == KErrNone ) - { - TTelOTALogoUpdate update; - TTelOTALogoUpdate::TOTALogoUpdatePckg logoUpdate( update ); - logoUpdate().iEvent = aEvent; - logoUpdate().iMCC = aCountryCode; - logoUpdate().iMNC = aNetworkCode; - iPropertyDefined = ETrue; - err = RProperty::Set( - KPSUidPhoneClientServerInformation, KTelOperatorLogoUpdated, logoUpdate ); - } - _DDPRINT( 4, "CPhSrvSubSessionImageHandler::Notify> ", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CPhSrvOperatorLogoContainer::CPhSrvOperatorLogoContainer -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionImageHandler:: - CPhSrvOperatorLogoContainer::CPhSrvOperatorLogoContainer( - const TPhCltCountryCode aCountryCode, - const TPhCltNetworkCode aNetworkCode, - const TPhCltExtOperatorLogoType aLogoType, - CFbsBitmap* aBitmap ) : - iBitmap( aBitmap ), iCountryCode( aCountryCode ), - iNetworkCode( aNetworkCode ), iLogoType( aLogoType ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Container::Ctor" ) - } - -// ----------------------------------------------------------------------------- -// CPhSrvOperatorLogoContainer::~CPhSrvOperatorLogoContainer -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionImageHandler:: - CPhSrvOperatorLogoContainer::~CPhSrvOperatorLogoContainer( ) - { - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Container::Dtor" ) - delete iBitmap; - iBitmap = NULL; - _DPRINT( 4, "CPhSrvSubSessionImageHandler::Container::Dtor>" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/ImageHandler/cphsrvimagesaver.cpp --- a/phoneclientserver/phoneserver/Src/ImageHandler/cphsrvimagesaver.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,210 +0,0 @@ -/* -* 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: Image saver implementation -* -*/ - - -#include "cphsrvimagesaver.h" -#include "mphsrvimagesaverobserver.h" -#include -#include -#include - -// primary file name for VT image -_LIT( KPhSrvPrimaryVtImageFileName, "vtstillimage1" ); - -// file name used if primary file is in use while save occurs -_LIT( KPhSrvAlternateVtImageFileName, "vtstillimage2" ); - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// 1st constructor -// --------------------------------------------------------------------------- -// -CPhSrvImageSaver* CPhSrvImageSaver::NewL( - RFs& aFs, - const TFileName& aPrivatePath, - MPhSrvImageSaverObserver& aObserver ) - { - CPhSrvImageSaver* saver = new ( ELeave ) CPhSrvImageSaver( - aFs, aPrivatePath, aObserver ); - CleanupStack::PushL( saver ); - saver->ConstructL(); - CleanupStack::Pop(); - return saver; - } - -// --------------------------------------------------------------------------- -// destructor -// --------------------------------------------------------------------------- -// -CPhSrvImageSaver::~CPhSrvImageSaver() - { - delete iImageDecoder; - delete iFileManager; - delete iScaler; - } - -// --------------------------------------------------------------------------- -// Saves image -// 1) decode from file -// 2a) scale (for single frame images) and save to phone server private dir, or -// 2b) multiframe image - copy file as is to phone server private directory -// --------------------------------------------------------------------------- -// -void CPhSrvImageSaver::SaveImageL( const TDesC& aFileName ) - { - if ( IsActive() ) - { - User::Leave( KErrInUse ); - } - iImageDecoder = CImageDecoder::FileNewL( iFs, aFileName ); - const TInt frameCount = iImageDecoder->FrameCount(); - if ( frameCount > 1 ) - { - // decoder not needed because image is copied as is - delete iImageDecoder; - iImageDecoder = NULL; - CopyImageL( aFileName ); - } - else if ( frameCount == 1 ) - { - ScaleImageL(); - } - else - { - // invalid image? - User::Leave( KErrCorrupt ); - } - } - -// --------------------------------------------------------------------------- -// Copies the file -// --------------------------------------------------------------------------- -// -void CPhSrvImageSaver::CopyImageL( const TDesC& aFileName ) - { - TName targetFileName; - ConstructVtFileSaveName( aFileName, targetFileName ); - iFileManager = CFileMan::NewL( iFs ); - iFileManager->Copy( aFileName, targetFileName, - CFileMan::EOverWrite, iStatus ); - } - -// --------------------------------------------------------------------------- -// ScaleImageL -// --------------------------------------------------------------------------- -// -void CPhSrvImageSaver::ScaleImageL() - { - } - -// --------------------------------------------------------------------------- -// Checks if primary file is in use. -// --------------------------------------------------------------------------- -// -TInt CPhSrvImageSaver::IsPrimaryFileInUse( TBool& aIsInUse ) - { - CDir* entries = NULL; - TInt res = iFs.GetDir( iPath, KEntryAttNormal, EDirsLast, entries ); - if ( res == KErrNone && entries ) - { - const TInt entryCount( entries->Count() ); - for ( TInt index = 0; index < entryCount; index++ ) - { - const TEntry& entry = ( *entries )[index]; - if ( entry.iName.Compare( KPhSrvPrimaryVtImageFileName() ) >= 0 ) - { - // primary file name matches with directory entry (extension - // depends on file format) - res = iFs.IsFileOpen( entry.iName, aIsInUse ); - index = entryCount; // break loop - } - } - } - delete entries; - return res; - } - -// --------------------------------------------------------------------------- -// Constructs target file name for VT still image. Alternate name is used if -// file with primary name is open. -// --------------------------------------------------------------------------- -// -TInt CPhSrvImageSaver::ConstructVtFileSaveName( - const TDesC& aSourceFileName, - TName& aTargetFileName ) - { - TBool inUse( EFalse ); - TInt res( IsPrimaryFileInUse( inUse ) ); - if ( res == KErrNone ) - { - TParse sourceName; - sourceName.Set( aSourceFileName, NULL, NULL ); - aTargetFileName = iPath; - if ( inUse ) - { - // primary file in use (open), use alternalte name - aTargetFileName.Append( KPhSrvAlternateVtImageFileName() ); - } - else - { - aTargetFileName.Append( KPhSrvPrimaryVtImageFileName() ); - } - aTargetFileName.Append( sourceName.Ext() ); - } - return res; - } - -// --------------------------------------------------------------------------- -// CPhSrvImageSaver::RunL -// --------------------------------------------------------------------------- -// -void CPhSrvImageSaver::RunL() - { - iObserver.ImageSaved( iStatus.Int() ); - } - -// --------------------------------------------------------------------------- -// CPhSrvImageSaver::DoCancel -// --------------------------------------------------------------------------- -// -void CPhSrvImageSaver::DoCancel() - { - iObserver.ImageSaved( KErrCancel ); - } - -// --------------------------------------------------------------------------- -// CPhSrvImageSaver::ConstructL -// --------------------------------------------------------------------------- -// -void CPhSrvImageSaver::ConstructL() - { - User::Leave( KErrNotSupported ); - } - -// --------------------------------------------------------------------------- -// c++ constructor -// --------------------------------------------------------------------------- -// -CPhSrvImageSaver::CPhSrvImageSaver( RFs& aFs, const TFileName& aPrivatePath, - MPhSrvImageSaverObserver& aObserver) - : CActive( CActive::EPriorityStandard ), - iFs( aFs ), - iPath( aPrivatePath ), - iObserver( aObserver ) - { - } diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Messenger/CPhSrvMessengerObject.cpp --- a/phoneclientserver/phoneserver/Src/Messenger/CPhSrvMessengerObject.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,453 +0,0 @@ -/* -* Copyright (c) 2004 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: Messenger Object. -* -*/ - - -// INCLUDE FILES - -#include "cphsrvmessengerobject.h" -#include "cphsrvsubsessionbase.h" -#include "cphsrvsession.h" // Phone server session. -#include "phsrvdebuginfo.h" - - -// CONSTANTS - -// Null ID. -const TUint KPhSrvNullId = 0; - -// The minimum Default message size. -const TInt KPhSrvMinDefSize = 1; - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::CPhSrvMessengerObject -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvMessengerObject::CPhSrvMessengerObject( - CPhSrvSubSessionBase& aSubSession ) -: iSubSession( aSubSession ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::~CPhSrvMessengerObject -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvMessengerObject::~CPhSrvMessengerObject() - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::ConstructL -// -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerObject::ConstructL( - const TPhCltMessengerParameters& aParameters ) - { - TInt size = aParameters.iDefaultMessageSize; - if( size < KPhSrvMinDefSize ) - { - // Default message size must be at least KPhSrvMinDefSize. - User::Leave( KErrArgument ); - } - - iParameters.iCategoryUid = aParameters.iCategoryUid; - iParameters.iDefaultMessageSize = size; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::NewLC -// -// Static Symbian OS two-phase constructor. Return an instance -// and leave it on the cleanup stack. -// ----------------------------------------------------------------------------- -// -CPhSrvMessengerObject* CPhSrvMessengerObject::NewLC( - CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerParameters& aParameters ) - { - CPhSrvMessengerObject* self = new( ELeave ) CPhSrvMessengerObject( - aSubSession ); - - CleanupStack::PushL( self ); - self->ConstructL( aParameters ); - - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::InformOfMessengerRequest -// -// Complete a client request which will indicate the result -// of attempting to perform a request. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerObject::InformOfMessengerRequest( - const TPhCltPhoneResults aResultOfAttemptingRequest, - const TPhCltMessengerCommand aRequest ) - { - // Complete the client's pending request, indicating - // the result of the messenger request attempt. - if ( aRequest == EPhCltMesCommandSend ) - { - // Send command. - if ( iParameters.iSendDataValid ) - { - iParameters.iSendStatus.Complete( aResultOfAttemptingRequest ); - iParameters.iSendDataValid = EFalse; - } - } - else if ( aRequest == EPhCltMesCommandReceive ) - { - // Receive command. - if ( iParameters.iReceiveDataValid ) - { - iParameters.iReceiveMessage.Complete( aResultOfAttemptingRequest ); - iParameters.iReceiveDataValid = EFalse; - } - } - else - { - // Should never happen! - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::SubSessionHandle -// -// Return the handle of the subsession that initiated the -// original messenger request. -// ----------------------------------------------------------------------------- -// -TInt CPhSrvMessengerObject::SubSessionHandle() const - { - return iSubSession.SubSessionUniqueHandle(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::SetActive -// -// Set the request active. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerObject::SetActive( - const TPhCltMessengerParameters& aParameters, - const RMessage2& aMessage, - const TUint aSentDataId ) - { - TPhCltMessengerCommand request = aParameters.iMessengerCommand; - - switch( request ) - { - case EPhCltMesCommandSend: - { - // Set the Send data parameters. - iParameters.iSendStatus = aMessage; - iParameters.iSendDataValid = ETrue; - iParameters.iSentDataId = aSentDataId; - iParameters.iSendPayloadLength = aParameters.iSendPayloadLength; - break; - } - case EPhCltMesCommandReceive: - { - // Set the Receive parameters. - iParameters.iReceiveMessage = aMessage; - - iParameters.iReceiveBufferMaxSize = - aParameters.iReceiveBufferMaxSize; - - iParameters.iReceiveDataValid = ETrue; - - // Receive called, so Skip can not be active. - iParameters.iSkipNextMessage = EFalse; - iParameters.iSkippedSentDataId = KPhSrvNullId; - break; - } - case EPhCltMesCommandSkip: - { - iParameters.iSkipNextMessage = ETrue; - break; - } - - default: - // Should never happen! - break; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::IsRequestActive -// -// Check if there is already active request. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvMessengerObject::IsRequestActive( - const TPhCltMessengerCommand aRequest ) const - { - TBool isRequestActive = EFalse; - - switch( aRequest ) - { - case EPhCltMesCommandSend: - { - isRequestActive = iParameters.iSendDataValid; - break; - } - case EPhCltMesCommandReceive: - { - isRequestActive = iParameters.iReceiveDataValid; - break; - } - case EPhCltMesCommandSkip: - { - isRequestActive = iParameters.iSkipNextMessage; - break; - } - - default: - // Should never happen! - break; - } - return isRequestActive; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::IsReadyToReceive -// -// Check whether this object is ready to receive or not. -// If Receive is active but the length of the buffer -// ----------------------------------------------------------------------------- -// -TBool CPhSrvMessengerObject::IsReadyToReceive( - const TDesC8& aSentMessage, - const TUint aSentDataId ) - { - TBool ret = EFalse; - const TInt sendDataLength = aSentMessage.Length(); - - ret = IsMessageSkipped( aSentDataId ); - - // If the message is not skipped, handle it here. - if ( !ret ) - { - // If receive data is valid, then we can be ready to receive. - if( iParameters.iReceiveDataValid ) - { - // If the sent message does not fit to receive buffer, then complete - // Receive to indicate that bigger buffer is needed. - if ( sendDataLength > - iParameters.iReceiveBufferMaxSize ) - { - CompleteReceive( aSentMessage, aSentDataId ); - } - else - { - // Object can receive the sent message. - ret = ETrue; - } - } - } - return ret; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::CompleteReceive -// -// Complete the receive request. -// ----------------------------------------------------------------------------- -// -TInt CPhSrvMessengerObject::CompleteReceive( - const TDesC8& aSentMessage, - const TUint aSentDataId ) - { - _DPRINT( 4, "PhSrv.MesObj.CompleteReceive START" ); // debug print - - TBool ret = IsMessageSkipped( aSentDataId ); - TInt err = KErrNotReady; - - // If message is skipped, then we do not complete the request. - if( ret ) - { - err = KErrNone; - } - - // If err is not KErrNone, then receive is handled. - if ( err != KErrNone ) - { - // If request is not active, then it can not be completed, and - // something has gone wrong. However, recover (do nothing). - if ( iParameters.iReceiveDataValid ) - { - // Receive request active, it is handled. - - _DPRINT( 4, "PhSrv.MesObj.CompleteReceive WRITE1" ); // debug print - - const TInt recBufMaxSize = - iParameters.iReceiveBufferMaxSize; - - // Write the whole sent message or the beginnig of it to client data - // area, i.e ensure that receive message buffer is not overflowed. - iSubSession.Write( - iParameters.iReceiveMessage, - 1, - aSentMessage.Left( recBufMaxSize ) ); - - TInt length = aSentMessage.Length(); - TPckgC < TInt > intPckg( length ); - - _DPRINT( 4, "PhSrv.MesObj.CompleteReceive WRITE2" ); // debug print - - // Write the length information to user side. - iSubSession.Write( - iParameters.iReceiveMessage, - 2, - intPckg ); - - // If whole sent message was written to receive buffer, then - // completion was successful. - if ( length <= recBufMaxSize ) - { - err = KErrNone; - } - else - { - // The receive was not completed fully. - iParameters.iSkippedSentDataId = aSentDataId; - } - - _DPRINT( 4, "PhSrv.MesObj.CompleteReceive COMPLETE" ); // debug print - - // Complete the receive request. - if ( !iParameters.iReceiveMessage.IsNull() ) - { - iParameters.iReceiveMessage.Complete( KErrNone ); - } - iParameters.iReceiveDataValid = EFalse; - } - } - - _DPRINT( 4, "PhSrv.MesObj.CompleteReceive END" ); // debug print - - return err; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::GetSendDataLength -// -// Get the Send data. -// ----------------------------------------------------------------------------- -// -TInt CPhSrvMessengerObject::GetSendDataLength() - { - return iParameters.iSendPayloadLength; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::GetSendData -// -// Get the Send data. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerObject::GetSendData( TDes8& aDes ) const - { - // Read the Send data information from user side. - // Do not leave, but will panic if pointer not valid descriptor. - iSubSession.Read( - iParameters.iSendStatus, - 1, - aDes ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::GetUid -// -// Get the Uid. -// ----------------------------------------------------------------------------- -// -const TUid& CPhSrvMessengerObject::GetUid() const - { - return iParameters.iCategoryUid; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::SentDataId -// -// Get the sent data ID. -// ----------------------------------------------------------------------------- -// -TUint CPhSrvMessengerObject::SentDataId() - { - return iParameters.iSentDataId; - } - - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerObject::IsMessageSkipped -// -// Return information whether the message is skipped or not. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvMessengerObject::IsMessageSkipped( - const TUint aSentDataId ) - { - TBool ret = EFalse; // By default message is not skipped. - - // If Skip is active, then everything is OK. - if ( iParameters.iSkipNextMessage ) - { - // If the sent data is the same as that it was earlier, then it is - // skipped. If the sent message is not the same, then it is not skipped. - if ( iParameters.iSkippedSentDataId == aSentDataId ) - { - // This message is skipped. - ret = ETrue; - } - else - { - // This message is not skipped. - iParameters.iSkipNextMessage = EFalse; - iParameters.iSkippedSentDataId = KPhSrvNullId; // Set to not valid. - } - } - return ret; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Messenger/CPhSrvMessengerRequestManager.cpp --- a/phoneclientserver/phoneserver/Src/Messenger/CPhSrvMessengerRequestManager.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,671 +0,0 @@ -/* -* Copyright (c) 2004 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: Messenger Request Manager. -* The stub version of this file can be found from file -* CPhSrvMessengerRequestManagerStub.cpp -* -*/ - - - -// INCLUDES -#include "cphsrvmessengerrequestmanager.h" -#include "cphsrvmessengerobject.h" -#include "cphsrvsubsessionbase.h" -#include "phsrvutils.h" -#include "phsrvmessengertypes.h" -#include "phsrvdebuginfo.h" - - -// CONSTANTS - -// The default size of the Messenger object storage. -const TInt KPhSrvMessengerObjectGranularity = 4; - -// The size of the Sent message's storage. -const TInt KPhSrvMessengerPendingSendRequestGranularity - = KPhSrvMessengerObjectGranularity; - - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::CPhSrvMessengerRequestManager -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvMessengerRequestManager::CPhSrvMessengerRequestManager( - CPhSrvServer& aServer ) -: iServer( aServer ), - iSentDataIdGenerator( 1 ), // Is never 0. - iSendProcessOngoing( EFalse ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::~CPhSrvMessengerRequestManager -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvMessengerRequestManager::~CPhSrvMessengerRequestManager() - { - delete iDefaultSizeBuffer; - - RMessengerArray* array = SendChain(); - if ( array ) - { - // Objects not deleted, because they are not owned. - array->Reset(); - array->Close(); - delete array; - } - - array = MessengerArray(); - if ( array ) - { - array->ResetAndDestroy(); - array->Close(); - - delete array; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::ConstructL -// -// Complete construction. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerRequestManager::ConstructL() - { - iDefaultSizeBuffer = HBufC8::NewMaxL( KPhCltDefMesSize ); - - // Space for messenger objects (clients) - iMessengerObjects = new ( ELeave ) RPointerArray< - CPhSrvMessengerObject >( KPhSrvMessengerObjectGranularity ); - - // Space for the Send queue. - iSendChain = new ( ELeave ) RPointerArray< CPhSrvMessengerObject >( - KPhSrvMessengerPendingSendRequestGranularity ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::NegotiatorRequest -// -// Initiate a messenger request - called by the external messenger interface. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerRequestManager::NegotiatorRequest( - CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerParameters& aParameters, - const RMessage2& aMessage ) - { - _DPRINT( 4, "PhSrv.MRM.NegotiatorRequest START" ); // debug print - - // Panic if this is not the only request from this subsession. - if ( RequestAlreadyExists( - aSubSession, - aParameters, - aMessage ) ) - { - _DPRINT( 4, "PhSrv.MRM.NegotiatorRequest PANIC" ); // debug print - - // First delete all data related to this object. - NegotiatorRequestDelete( aSubSession ); - - PhoneServerUtils::PanicClient( - EPhoneServerPanicTooManyRequestsOngoing, - aMessage ); - } - else - { - _DPRINT( 4, "PhSrv.MRM.NegotiatorRequest HANDLE" ); // debug print - - // Request was set successfully, so handle it. - TPhCltMessengerCommand command = aParameters.iMessengerCommand; - - // Update the messenger chain. - UpdateMessengerChain( iRequestObject, command ); - - // Clear the request object. - iRequestObject = NULL; - - // Complete Skip request. - if ( command == EPhCltMesCommandSkip ) - { - aMessage.Complete( KErrNone ); - } - } - - _DPRINT( 4, "PhSrv.MRM.NegotiatorRequest END" ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::NegotiatorRequestCancel -// -// Cancel a messenger request handling. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerRequestManager::NegotiatorRequestCancel( - CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerCommand aRequestType ) - { - _DPRINT( 4, "PhSrv.MRM.NegotiatorRequestCancel START" ); // debug print - - RMessengerArray* messengerObjects = MessengerArray(); - - if ( aRequestType == EPhCltMesCommandSend || - aRequestType == EPhCltMesCommandReceive ) - { - // Obtain the subsession's handle - const TInt handle = aSubSession.SubSessionUniqueHandle(); - - // Now look for any object that match. - const TInt count = messengerObjects->Count(); - for( TInt i = 0; i < count; i++ ) - { - CPhSrvMessengerObject* entry = ( *messengerObjects )[i]; - if ( entry->SubSessionHandle() == handle ) - { - // Found matching entry, so cancel it's request. - entry->InformOfMessengerRequest( KErrCancel, aRequestType ); - - - TPhCltMessengerCommand request = aRequestType; - if ( aRequestType == EPhCltMesCommandSend ) - { - // Send request is canceled. - request = EPhCltMesCommandCancelSend; - } - else - { - // Receive request is canceled. - request = EPhCltMesCommandCancelReceive; - } - - // Update the messenger chain. - UpdateMessengerChain( entry, request ); - } - } - } - _DPRINT( 4, "PhSrv.MRM.NegotiatorRequestCancel STOP" ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::NegotiatorRequestConstructL -// -// Reserve all space needed for the subsession given as parameter. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerRequestManager::NegotiatorRequestConstructL( - CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerParameters& aParameters, - const RMessage2& aMessage ) - { - _DPRINT( 4, "PhSrv.MRM.NegotiatorRequestConstructL START" ); // debug print - - // Create pending request - CPhSrvMessengerObject* object = CPhSrvMessengerObject::NewLC( - aSubSession, - aParameters ); - - RMessengerArray* sendArray = SendChain(); - RMessengerArray* messengerObjects = MessengerArray(); - - ///////////////////////////////////////////////////////////////// - // First try that there is enough space in send array. - ///////////////////////////////////////////////////////////////// - const CPhSrvMessengerObject* entry = NULL; - TInt err = KErrNone; - // The number of existing messenger objects + the new one. - const TInt count = ( messengerObjects->Count() + 1 ); - - TInt i = 0; - for ( i = 0; ( i < count ) && ( err == KErrNone ); i++ ) - { - // If Append failed, there is not enough memory and err != KErrNone. - err = sendArray->Append( entry ); - } - - // Remove now the added objects -> Buffer remains reserved for them. - const TInt sendChainCount = ( sendArray->Count() - 1 ); - for( i = sendChainCount; i >= 0; i-- ) - { - if( ( * sendArray )[i] == NULL ) - { - // This object was added, so remove it. - sendArray->Remove( i ); - } - } - - // Leave if addition to send chain were not successful. - User::LeaveIfError( err ); - - _DPRINT( 4, "PhSrv.MRM.NegotiatorRequestConstructL MIDDLE" ); // debug print - - ///////////////////////////////////////////////////////////////// - // There was enough space in send array, so next try to append the - // object to the object array. - ///////////////////////////////////////////////////////////////// - User::LeaveIfError( - messengerObjects->Append( object ) ); - CleanupStack::Pop( object ); - - aMessage.Complete( KErrNone ); - - _DPRINT( 4, "PhSrv.MRM.NegotiatorRequestConstructL STOP" ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::NegotiatorRequestDelete -// -// Delete all space reserved for the subsession given as parameter. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerRequestManager::NegotiatorRequestDelete( - CPhSrvSubSessionBase& aSubSession ) - { - _DPRINT( 4, "PhSrv.MRM.NegotiatorRequestDelete START" ); // debug print - - // Obtain the subsessions handle - const TInt handle = aSubSession.SubSessionUniqueHandle(); - - RMessengerArray* messengerObjects = MessengerArray(); - - // Now look for any object that match. - TInt count = messengerObjects->Count() - 1; - for( TInt i = count; i >= 0; i-- ) - { - CPhSrvMessengerObject* entry = ( *messengerObjects )[i]; - if ( entry->SubSessionHandle() == handle ) - { - // Found matching entry, so cancel it and clean up. - - // This object is not in handled objects anymore. - // This means also that objects receive is also canceled. - messengerObjects->Remove( i ); - - // Update the messenger chain, cancel Send. - UpdateMessengerChain( entry, EPhCltMesCommandCancelSend ); - - // Send and receive were canceled, so this entry can be destroyed. - delete entry; - } - } - _DPRINT( 4, "PhSrv.MRM.NegotiatorRequestDelete STOP" ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::UpdateMessengerChain -// -// Update the request objects. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerRequestManager::UpdateMessengerChain( - CPhSrvMessengerObject* aEntry, - TPhCltMessengerCommand aCommand ) - { - _DPRINT( 4, "PhSrv.MRM.Negotiator.Update START" ); // debug print - - TInt err = KErrNone; - RMessengerArray* sendArray = SendChain(); - - - if ( aEntry ) - { - switch ( aCommand ) - { - case EPhCltMesCommandSend: - { - // If this is new request, append it to send queue. - if( sendArray->Find( aEntry ) == KErrNotFound ) - { - err = sendArray->Append( aEntry ); - if ( err ) - { - // Should never happen because of space pre-reservation - // in construction phase. However, recover. - - // If Append did not succeed, inform Sender of failure. - aEntry->InformOfMessengerRequest( - err, - EPhCltMesCommandSend ); - } - } - - // If Append was not performed or if it was successful. - if ( !err ) - { - // Handle all Send requests that exist. - HandleAllSendRequests( aEntry, sendArray ); - } - break; - } - case EPhCltMesCommandReceive: - case EPhCltMesCommandSkip: - case EPhCltMesCommandCancelReceive: - { - // Handle all Send requests that exist. - HandleAllSendRequests( NULL, sendArray ); - break; - } - - case EPhCltMesCommandCancelSend: - { - // Remove this Send object from chain. - // Pending Receive requests not completed. - TInt location = sendArray->Find( aEntry ); - if ( location >= 0 ) - { - // If this is the first object in Send chain, then - // Send request processing is canceled. - if( aEntry == ( *sendArray )[0] ) - { - iSendProcessOngoing = EFalse; - } - sendArray->Remove( location ); - } - - // Handle all other Send requests that exist. - HandleAllSendRequests( NULL, sendArray ); - break; - } - - default: - // Should never happen! - break; - } - } - _DPRINT( 4, "PhSrv.MRM.Negotiator.Update STOP" ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::HandleAllSendRequests -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerRequestManager::HandleAllSendRequests( - CPhSrvMessengerObject* aEntry, - RMessengerArray* aSendArray ) - { - CPhSrvMessengerObject* entry = aEntry; - - // If aEntry is NULL, try to set it as valid object. - if ( !entry ) - { - if ( aSendArray->Count() ) - { - entry = ( *aSendArray )[0]; // Take the first object in send chain. - } - } - - // Handle all Send requests that exists. - while ( HandleSendRequest( entry, aSendArray ) ) - { - entry = NULL; - if ( aSendArray->Count() ) - { - entry = ( *aSendArray )[0]; // Take the first object in send chain. - } - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::HandleSendRequest -// -// -// ----------------------------------------------------------------------------- -// -TBool CPhSrvMessengerRequestManager::HandleSendRequest( - CPhSrvMessengerObject* aEntry, - RMessengerArray* aSendArray ) - { - TBool ret = EFalse; - RMessengerArray* messengerObjects = MessengerArray(); - - - // Handling is done only if there is Send request and - // aEntry is valid object. - if( aSendArray->Count() && aEntry ) - { - if ( aEntry == ( *aSendArray )[0] ) - { - // This was the first Send operation so complete Receives. - - // Some pre-work needs to be done if this Send has not been - // handled before. - if( !iSendProcessOngoing ) - { - // Now this Send request process is ongoing. - iSendProcessOngoing = ETrue; - - const TInt sentDataLength = aEntry->GetSendDataLength(); - - if ( sentDataLength > - iDefaultSizeBuffer->Des().MaxLength() ) - { - // The sent data is longer than the default buffer. - // We need to try reserve bigger buffer. If this does not - // succeed, then only the current size buffer is used in - // sending. - - HBufC8* variableSizeBuffer = NULL; - variableSizeBuffer = HBufC8::New( sentDataLength ); - if ( variableSizeBuffer != NULL ) - { - // Reservation was successful, so use reserved buffer - // as a new default buffer. - // But first delete the old buffer. - if( iDefaultSizeBuffer ) - { - delete iDefaultSizeBuffer; - iDefaultSizeBuffer = NULL; - } - iDefaultSizeBuffer = variableSizeBuffer; - } - } - // Read the sent message. - TPtr8 ptr = iDefaultSizeBuffer->Des(); - aEntry->GetSendData( ptr ); - } - - - const TDesC8& sendData = *iDefaultSizeBuffer; - const TUid& senderUid = aEntry->GetUid(); - const TUint sentDataId = aEntry->SentDataId(); - - TBool completeSend = ETrue; - TInt interested = 0; - - TInt count = messengerObjects->Count(); - - //////////////////////////////////////////////////////// - // Check that all the objects are ready to receive. - //////////////////////////////////////////////////////// - for( TInt i = 0; i < count; i++ ) - { - CPhSrvMessengerObject* entry = ( *messengerObjects )[i]; - - // Check only other objects. - if ( aEntry->SubSessionHandle() != entry->SubSessionHandle() ) - { - // We need to care only of those objects that want to - // listen messages same type as the sent was. - if( senderUid == entry->GetUid() ) - { - // This object wants to receive this sent message. - interested++; - - if ( !entry->IsReadyToReceive( sendData, sentDataId ) ) - { - // The object was not ready to receive, so Send can - // not be completed yet. - completeSend = EFalse; - } - } - } - } - - - //////////////////////////////////////////////////////// - // If all objects were ready to receive, complete them. - // If there were no objects interested of the sent message, - // do nothing. - //////////////////////////////////////////////////////// - if ( completeSend && interested ) - { - for( TInt i = 0; i < count; i++ ) - { - CPhSrvMessengerObject* entry = ( *messengerObjects )[i]; - - // Complete only other's Receive requests. - if ( aEntry->SubSessionHandle() != - entry->SubSessionHandle() ) - { - // We complete only those object's receives that have - // the same category UID as the sent was. - if( senderUid == entry->GetUid() ) - { - TInt err = entry->CompleteReceive( - sendData, - sentDataId ); - if( err ) - { - // This should never fail because pre-check was - // successful. However, you can try to recover. - } - } - } - } - // All receives were compeled, so complete Send. - aEntry->InformOfMessengerRequest( - KErrNone, - EPhCltMesCommandSend ); - // Remove the object whose Send was handled from chain. - aSendArray->Remove( 0 ); - - // The send process was completed. - iSendProcessOngoing = EFalse; - - // Send was fully handled. - ret = ETrue; - } - } - } - return ret; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::RequestAlreadyExists -// -// Check whether there already is request(s) for the subsession given as -// parameter. If not, then sets it active. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvMessengerRequestManager::RequestAlreadyExists( - const CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerParameters& aParameters, - const RMessage2& aMessage ) - { - TBool isThereRequest = EFalse; - const TPhCltMessengerCommand command = aParameters.iMessengerCommand; - - // Check is only done for Send and Receive and Skip. - if ( command == EPhCltMesCommandSend || - command == EPhCltMesCommandReceive || - command == EPhCltMesCommandSkip ) - { - // Obtain the subsessions handle - const TInt handle = aSubSession.SubSessionUniqueHandle(); - - RMessengerArray* messengerObjects = MessengerArray(); - - // Look for any pending requests that match the handle. - TInt i = 0; - for( i = 0; i < messengerObjects->Count(); i++ ) - { - CPhSrvMessengerObject* entry = ( *messengerObjects )[i]; - if ( entry->SubSessionHandle() == handle ) - { - isThereRequest = entry->IsRequestActive( command ); - if ( !isThereRequest ) - { - TUint sentDataId = 0; - if( command == EPhCltMesCommandSend ) - { - // This was sent command, so set ID for it. - sentDataId = iSentDataIdGenerator; - // New Id for next sent message, must never be 0! - iSentDataIdGenerator++; - if( !iSentDataIdGenerator ) - { - // Value was 0, so set to 1. - iSentDataIdGenerator++; - } - } - // Request was not active, so set it active. - entry->SetActive( aParameters, aMessage, sentDataId ); - } - - // Set the object who initiated this request. - iRequestObject = entry; - break; - } - } - } - return isThereRequest; - } - - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::MessengerArray -// -// -// ----------------------------------------------------------------------------- -// -RMessengerArray* CPhSrvMessengerRequestManager::MessengerArray() - { - return iMessengerObjects; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::SendChain -// -// -// ----------------------------------------------------------------------------- -// -RMessengerArray* CPhSrvMessengerRequestManager::SendChain() - { - return iSendChain; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Messenger/CPhSrvMessengerRequestManagerStub.cpp --- a/phoneclientserver/phoneserver/Src/Messenger/CPhSrvMessengerRequestManagerStub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* -* Copyright (c) 2004 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: Stub version of CPhSrvMessengerRequestManager.cpp -* -*/ - - - -// INCLUDES -#include "cphsrvmessengerrequestmanager.h" - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::CPhSrvMessengerRequestManager -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvMessengerRequestManager::CPhSrvMessengerRequestManager( - CPhSrvServer& aServer ) -: iServer( aServer ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::~CPhSrvMessengerRequestManager -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvMessengerRequestManager::~CPhSrvMessengerRequestManager() - { - // Stub. - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::ConstructL -// -// Complete construction. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerRequestManager::ConstructL() - { - // Stub. - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::NegotiatorRequest -// -// Initiate a messenger request - called by the external messenger interface. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerRequestManager::NegotiatorRequest( - CPhSrvSubSessionBase& /*aSubSession*/, - const TPhCltMessengerParameters& /*aParameters*/, - const RMessage2& /*aMessage*/ ) - { - // Stub. - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::NegotiatorRequestCancel -// -// Cancel a messenger request handling. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerRequestManager::NegotiatorRequestCancel( - CPhSrvSubSessionBase& /*aSubSession*/, - const TPhCltMessengerCommand /*aRequestType*/ ) - { - // Stub. - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::NegotiatorRequestConstructL -// -// Reserve all space needed for the subsession given as parameter. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerRequestManager::NegotiatorRequestConstructL( - CPhSrvSubSessionBase& /*aSubSession*/, - const TPhCltMessengerParameters& /*aParameters*/, - const RMessage2& /*aMessage*/ ) - { - // Stub. - } - - -// ----------------------------------------------------------------------------- -// CPhSrvMessengerRequestManager::NegotiatorRequestDelete -// -// Delete all space reserved for the subsession given as parameter. -// ----------------------------------------------------------------------------- -// -void CPhSrvMessengerRequestManager::NegotiatorRequestDelete( - CPhSrvSubSessionBase& /*aSubSession*/ ) - { - // Stub. - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Messenger/CPhSrvSubSessionMessenger.cpp --- a/phoneclientserver/phoneserver/Src/Messenger/CPhSrvSubSessionMessenger.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,404 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Sub Session Messenger. -* The stub version of this file can be found from file -* CPhSrvSubSessionMessengerStub.cpp -* -*/ - - - -// INCLUDE FILES -#include "cphsrvsubsessionmessenger.h" -#include "cphsrvsession.h" -#include "cphsrvserver.h" -#include -#include "mphsrvmessengernegotiators.h" -#include "phsrvmessengertypes.h" - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::CPhSrvSubSessionMessenger -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionMessenger::CPhSrvSubSessionMessenger( - CPhSrvSession& aSession ) -: CPhSrvSubSessionBase( aSession, EPhSrvSubSessionTypeMessenger ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::~CPhSrvSubSessionMessenger -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionMessenger::~CPhSrvSubSessionMessenger() - { - Clean(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::NewL -// -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionBase* CPhSrvSubSessionMessenger::NewL( - CPhSrvSession& aSession ) - { - // Just to make sure that the negotiator will exist. - aSession.PhoneServer().MessengerNegotiatorL(); - - CPhSrvSubSessionBase* self = - new( ELeave ) CPhSrvSubSessionMessenger( aSession ); - - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::PhSrvMessageDecoderCanProcessMessage -// -// Framework function. Returns ETrue for the op codes that -// this subsession can handle. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionMessenger::PhSrvMessageDecoderCanProcessMessage( - TInt aFunction ) - { - switch( aFunction ) - { - case EPhoneServerMessengerSubSessionOpen: - case EPhoneServerMessengerSubSessionClose: - case EPhoneServerMessengerSubSessionConstruct: - case EPhoneServerMessengerSubSessionReceive: - case EPhoneServerMessengerSubSessionSend: - case EPhoneServerMessengerSubSessionSkip: - case EPhoneServerMessengerSubSessionCancel: - return ETrue; - - default: - return EFalse; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::PhSrvMessageProcessorHandleMessageL -// -// Framework function. Handle any op-codes here. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionMessenger::PhSrvMessageProcessorHandleMessageL( - const RMessage2& aMessage ) - { - TBool permissionStatus ( EFalse ); - - // Check needed capabilities - TBool hasCapWriteDeviceData( EFalse ); - hasCapWriteDeviceData = aMessage.HasCapability( ECapabilityWriteDeviceData ); - - switch( aMessage.Function() ) - { - case EPhoneServerMessengerSubSessionClose: - CmdSubSessionClose( aMessage ); - permissionStatus = ETrue; - break; - - case EPhoneServerMessengerSubSessionConstruct: - CmdSubSessionMessengerConstructL( aMessage ); - permissionStatus = ETrue; - break; - - case EPhoneServerMessengerSubSessionReceive: - if ( hasCapWriteDeviceData ) - { - CmdSubSessionMessengerReceive( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerMessengerSubSessionSend: - if ( hasCapWriteDeviceData ) - { - CmdSubSessionMessengerSend( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerMessengerSubSessionSkip: - if ( hasCapWriteDeviceData ) - { - CmdSubSessionMessengerSkip( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerMessengerSubSessionCancel: - if ( hasCapWriteDeviceData ) - { - CmdSubSessionMessengerCancel( aMessage ); - permissionStatus = ETrue; - } - break; - - default: - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicInvalidRequest ); - break; - } - - // If caps are not ok - if ( !permissionStatus ) - { - aMessage.Complete( KErrPermissionDenied ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::CmdSubSessionClose -// -// Close the sub-session. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionMessenger::CmdSubSessionClose( - const RMessage2& aMessage ) - { - Clean(); - - PhoneSession().CloseSubSession( aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::CmdSubSessionMessengerConstructL -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionMessenger::CmdSubSessionMessengerConstructL( - const RMessage2& aMessage ) - { - TPhCltMessengerParameters parameters; - - // Check the Construct parameters. - TPckg< TPhCltMessengerParameters > recParPckg( - parameters ); - Read( - aMessage, - 0, - recParPckg ); - - // Ask the messenger negotiator to reserve all needed space - // for this subsession. - MPhSrvMessengerNegotiator& messengerNegotiator = GetMessengerNegotiator(); - - messengerNegotiator.NegotiatorRequestConstructL( - *this, - parameters, - aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::CmdSubSessionMessengerReceive -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionMessenger::CmdSubSessionMessengerReceive( - const RMessage2& aMessage ) - { - - TPhCltMessengerParameters parameters; - - // Check the Receive parameters. - TPckg< TPhCltMessengerParameters > recParPckg( - parameters ); - Read( - aMessage, - 0, - recParPckg ); - - // This is Receive request. - parameters.iMessengerCommand = EPhCltMesCommandReceive; - - // Ask the messenger negotiator to handle this request. - ForwardRequest( - *this, - parameters, - aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::CmdSubSessionMessengerSend -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionMessenger::CmdSubSessionMessengerSend( - const RMessage2& aMessage ) - { - TPhCltMessengerParameters parameters; - - // Check the Send parameters. - TPckg< TPhCltMessengerParameters > sendParPckg( - parameters ); - Read( - aMessage, - 0, - sendParPckg ); - - // This is Send request. - parameters.iMessengerCommand = EPhCltMesCommandSend; - - // Ask the messenger negotiator to handle this request. - ForwardRequest( - *this, - parameters, - aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::CmdSubSessionMessengerSkip -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionMessenger::CmdSubSessionMessengerSkip( - const RMessage2& aMessage ) - { - TPhCltMessengerParameters parameters; - - // This is Skip request. - parameters.iMessengerCommand = EPhCltMesCommandSkip; - - // Ask the messenger negotiator to handle this request. - ForwardRequest( - *this, - parameters, - aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::CmdSubSessionMessengerCancel -// -// Handle command handler client's cancel request. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionMessenger::CmdSubSessionMessengerCancel( - const RMessage2& aMessage ) - { - TInt returnValue = KErrArgument; - - TPhCltMessengerParameters parameters; - - // Check the Cancel parameters. - TPckg< TPhCltMessengerParameters > recParPckg( - parameters ); - Read( - aMessage, - 0, - recParPckg ); - - TPhCltMessengerRequest request = parameters.iCancelRequest; - - - TPhCltMessengerCommand mesCommand = EPhCltMesCommandUnknown; - if ( request == EPhCltMesRequestReceive) - { - mesCommand = EPhCltMesCommandReceive; - } - else if ( request == EPhCltMesRequestSend ) - { - mesCommand = EPhCltMesCommandSend; - } - - // Perform cancel only if that was valid request. - if ( mesCommand != EPhCltMesCommandUnknown ) - { - // Ask the messenger negotiator to cancel the pending request - // for this subsession. - MPhSrvMessengerNegotiator& messengerNegotiator = - GetMessengerNegotiator(); - - messengerNegotiator.NegotiatorRequestCancel( *this, mesCommand ); - - returnValue = KErrNone; - } - aMessage.Complete( returnValue ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::GetMessengerNegotiator -// -// Return the messenger negotiator. -// ----------------------------------------------------------------------------- -// -MPhSrvMessengerNegotiator& CPhSrvSubSessionMessenger::GetMessengerNegotiator() - { - // Messenger negotiator created already in NewL. - return PhoneSession().PhoneServer().MessengerNegotiator(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::ForwardRequest -// -// Forward request to negotiator. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionMessenger::ForwardRequest( - CPhSrvSubSessionBase& aSubSession, - const TPhCltMessengerParameters& aParameters, - const RMessage2& aMessage ) - { - // Ask the messenger negotiator to handle this request. - MPhSrvMessengerNegotiator& messengerNegotiator = GetMessengerNegotiator(); - - messengerNegotiator.NegotiatorRequest( - aSubSession, - aParameters, - aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::Clean -// -// Clean the negotiator side. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionMessenger::Clean() - { - // Ask the messenger negotiator to release all reserved space - // for this subsession. - MPhSrvMessengerNegotiator& messengerNegotiator = GetMessengerNegotiator(); - - messengerNegotiator.NegotiatorRequestDelete( *this ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Messenger/CPhSrvSubSessionMessengerStub.cpp --- a/phoneclientserver/phoneserver/Src/Messenger/CPhSrvSubSessionMessengerStub.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -/* -* Copyright (c) 2004 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: Sub Session Messenger. -* The stub version of CPhSrvSubSessionMessenger.cpp -* -*/ - - - -// INCLUDE FILES -#include "cphsrvsubsessionmessenger.h" -#include "phcltclientserver.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::CPhSrvSubSessionMessenger -// -// Constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionMessenger::CPhSrvSubSessionMessenger( - CPhSrvSession& aSession ) -: CPhSrvSubSessionBase( aSession, EPhSrvSubSessionTypeMessenger ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::~CPhSrvSubSessionMessenger -// -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionMessenger::~CPhSrvSubSessionMessenger() - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::NewL -// -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionBase* CPhSrvSubSessionMessenger::NewL( - CPhSrvSession& /*aSession*/ ) - { - // Stub version, so not supported. - User::Leave( KErrNotSupported ); - - return NULL; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::PhSrvMessageDecoderCanProcessMessage -// -// Framework function. Returns ETrue for the op codes that -// this subsession can handle. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionMessenger::PhSrvMessageDecoderCanProcessMessage( - TInt aFunction ) - { - switch( aFunction ) - { - case EPhoneServerMessengerSubSessionOpen: - case EPhoneServerMessengerSubSessionClose: - case EPhoneServerMessengerSubSessionConstruct: - case EPhoneServerMessengerSubSessionReceive: - case EPhoneServerMessengerSubSessionSend: - case EPhoneServerMessengerSubSessionSkip: - case EPhoneServerMessengerSubSessionCancel: - return ETrue; - - default: - return EFalse; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionMessenger::PhSrvMessageProcessorHandleMessageL -// -// Framework function. Handle any op-codes here. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionMessenger::PhSrvMessageProcessorHandleMessageL( - const RMessage2& /*aMessage*/ ) - { - // Stub implementation, i.e. functionality not supported. - User::Leave( KErrNotSupported ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Resources/PhoneServer.hrh --- a/phoneclientserver/phoneserver/Src/Resources/PhoneServer.hrh Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,34 +0,0 @@ -/* -* Copyright (c) 2002 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: PhoneServer resource header file. -* Contains common definitions for menu id:s. -* -*/ - - -#ifndef PHONESERVER_HRH -#define PHONESERVER_HRH - -// The menu commands. -enum TDlgMenuCommand - { - ENoteWithNoImage, // Note without image is shown. - EWaitNote, // Wait note is shown. - ESoftKeyOK // Softkey OK is shown. - }; - -#endif // PHONESERVER_HRH - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Resources/PhoneServer.rss --- a/phoneclientserver/phoneserver/Src/Resources/PhoneServer.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* -* Copyright (c) 2002 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: This file contains all the resources for the Phone Server. -* -*/ - - -// RESOURCE IDENTIFIER -NAME PHSV - -// INCLUDES -#include -#include -#include -#include -#include - -#include - - -// RESOURCE DEFINITIONS - -// --------------------------------------------------------- -// -// RSS_SIGNATURE -// Signature. -// -// --------------------------------------------------------- -// -RESOURCE RSS_SIGNATURE { } - - -// --------------------------------------------------------- -// -// TBUF -// Name of the buffer. -// -// --------------------------------------------------------- -// -RESOURCE TBUF { buf="ussdserver"; } - - -// --------------------------------------------------------- -// -// r_phsrv_ussd_mesquery_message -// Contains USSD message query text. -// -// --------------------------------------------------------- -// -RESOURCE LBUF r_phsrv_ussd_mesquery_message - { - txt = qtn_ussd_mesquery_message; - } - -// --------------------------------------------------------- -// -// r_phsrv_text_done -// Contains done text. -// -// --------------------------------------------------------- -// -RESOURCE LBUF r_phsrv_text_done - { - txt = text_done; - } - - -// --------------------------------------------------------- -// -// r_phsrv_ihf_activated_confirmation_note_text -// IHF activation note text. -// -// --------------------------------------------------------- -// -RESOURCE LBUF r_phsrv_ihf_activated_confirmation_note_text - { - txt = qtn_hf_conf_activate; - } - -// --------------------------------------------------------- -// -// r_phone_ihf_deactivated_confirmation_note_text -// IHF deactivation note text. -// -// --------------------------------------------------------- -// -RESOURCE LBUF r_phsrv_ihf_deactivated_confirmation_note_text - { - txt = qtn_hf_conf_earpiece; - } - -// --------------------------------------------------------- -// -// r_phsrv_text_unread -// Contains notify unread text. -// -// --------------------------------------------------------- -// -RESOURCE LBUF r_phsrv_text_unread - { - txt = qtn_ss_unread_ussd_msgs_query; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/CPhSrvEmergencyNumberManager.cpp --- a/phoneclientserver/phoneserver/Src/Standard/CPhSrvEmergencyNumberManager.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,139 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Emergency Number Manager. -* -*/ - - - -// INCLUDE FILES -#include "cphsrvemergencynumbermanager.h" -#include "mphsrvphoneinterface.h" -#include "phsrvdebuginfo.h" -#include - -// CONSTANTS -_LIT(KPhSrvDosEnPolicyLibName, "dosenpolicy.dll"); // DOS emergency number policy -_LIT(KPhSrvSosEnPolicyLibName, "sosenpolicy.dll"); // SOS emergency number policy - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvEmergencyNumberManager::CPhSrvEmergencyNumberManager() -// -// C++ constructor -// ----------------------------------------------------------------------------- -// -CPhSrvEmergencyNumberManager::CPhSrvEmergencyNumberManager( - MPhSrvPhoneInterface& aPhone ) : iPhone( aPhone ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvEmergencyNumberManager::~CPhSrvEmergencyNumberManager() -// -// C++ destructor -// ----------------------------------------------------------------------------- -// -CPhSrvEmergencyNumberManager::~CPhSrvEmergencyNumberManager() - { - delete iEmergencyNumberPolicy; - iEnPolicyLib.Close(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvEmergencyNumberManager::ConstructL() -// -// Symbian OS 2nd phase constructor -// ----------------------------------------------------------------------------- -// -void CPhSrvEmergencyNumberManager::ConstructL( TBool aIsDosEnPolicy ) - { - if ( aIsDosEnPolicy ) - { - // Dynamically load Dos emergency DLL. - User::LeaveIfError( iEnPolicyLib.Load( KPhSrvDosEnPolicyLibName ) ); - } - else - { - // Dynamically load Sos emergency DLL. - User::LeaveIfError( iEnPolicyLib.Load( KPhSrvSosEnPolicyLibName ) ); - } - - if ( iEnPolicyLib.Type()[1] != KEnPolicyUid ) - { - iEnPolicyLib.Close(); - User::Leave( KErrNotFound ); - } - - TLibraryFunction entry=iEnPolicyLib.Lookup(1); - CEmergencyNumberPolicy* enPolicy = ( CEmergencyNumberPolicy* ) entry(); - CleanupStack::PushL( enPolicy ); - enPolicy->ConstructL( iPhone.PhSrvETelServer() ); - CleanupStack::Pop(); - - iEmergencyNumberPolicy = enPolicy; - - } - - -// ----------------------------------------------------------------------------- -// CPhSrvEmergencyNumberManager::EmergencyNumberManagerIsEmergencyNumberL() -// -// Enquire as to whether the specified number would result -// in an emergency call being placed. -// -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -/***************************************************** -* Series 60 Customer / DOS -* Needs customer DOS implementation -*****************************************************/ -TBool CPhSrvEmergencyNumberManager::EmergencyNumberManagerIsEmergencyNumberL( - TDes& aNumber, - TPhCltEmergencyNumberQueryMode aMode - ) - { - _DPRINT( 4, "PSrv.EN.IsEmergency.begin" ); // debug print - - // check length of number, it must be between 1..6 - if ( aNumber.Length() < 1 ) - { - // Empty. No further checking needed. - return EFalse; - } - - TBool isEmergencyNumber = EFalse; - TInt err = - iEmergencyNumberPolicy->IsEmergencyNumber ( - static_cast< TPhCltTelephoneNumber& >(aNumber), - aMode, - isEmergencyNumber ); - - if ( err != KErrNone ) - { - // error in checking - isEmergencyNumber = EFalse; - } - - return isEmergencyNumber; - } - -// End of File. diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/CPhSrvPhoneController.cpp --- a/phoneclientserver/phoneserver/Src/Standard/CPhSrvPhoneController.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,169 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Phone Controller. -* -*/ - - - -// INCLUDE FILES -#include "cphsrvphonecontroller.h" -#include - - -// CONSTANTS -#define KPhSrvTsyName KMmTsyModuleName - -const TInt KPhSrvTSYNameMaxLength( 80 ); -const TInt KPhSrvETelRetryCount = 7; -const TInt KPhSrvETelRetryTimeout = 100000; // us - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvPhoneController::~CPhSrvPhoneController -// -// C++ destructor -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -CPhSrvPhoneController::~CPhSrvPhoneController() - { - iCustomPhone.Close(); - iMobilePhone.Close(); - iETelServer.Close(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvPhoneController::ConstructL -// -// Symbian OS 2nd phase constructor -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CPhSrvPhoneController::ConstructL() - { - TInt err = KErrNone; - TInt phones = 0; // no phones. - - - // Retry ETel connection if needed: - for ( TInt a = 0 ; a < KPhSrvETelRetryCount ; a++ ) - { - err = iETelServer.Connect(); - if ( err == KErrNone ) - { - break; - } - User::After( KPhSrvETelRetryTimeout ); - } - User::LeaveIfError( err ); - - err = iETelServer.LoadPhoneModule(KPhSrvTsyName); - if ( err != KErrNone && err != KErrAlreadyExists ) - { - User::Leave( err ); - } - - RTelServer::TPhoneInfo info; - TBuf< KPhSrvTSYNameMaxLength > tsyName; - iETelServer.EnumeratePhones( phones ); - - TInt i = 0; // index starts from zero. - for (; i < phones ; i++ ) - { - err = iETelServer.GetPhoneInfo( i, info ); - User::LeaveIfError( err ); - - err = iETelServer.GetTsyName( i, tsyName ); - User::LeaveIfError( err ); - - if ( !tsyName.CompareF( KPhSrvTsyName ) ) - { - break; - } - } - - if ( i == phones ) - { - User::Leave( KErrNotSupported ); - } - - User::LeaveIfError( - iETelServer.SetExtendedErrorGranularity( RTelServer::EErrorExtended ) ); - - User::LeaveIfError( iMobilePhone.Open( iETelServer , info.iName ) ); - - User::LeaveIfError( iCustomPhone.Open( iMobilePhone ) ); - - } - - -// ----------------------------------------------------------------------------- -// CPhSrvPhoneController::PhSrvETelServer -// -// Access the ETel session. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -RTelServer& CPhSrvPhoneController::PhSrvETelServer() - { - return iETelServer; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvPhoneController::PhSrvMobilePhone -// -// Access the GSM phone subsession. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -RMobilePhone& CPhSrvPhoneController::PhSrvMobilePhone() - { - return iMobilePhone; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvPhoneController::PhSrvCustomPhone -// -// Access the custom phone subsession. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -RMmCustomAPI& CPhSrvPhoneController::PhSrvCustomPhone() - { - return iCustomPhone; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/CPhSrvResourceManager.cpp --- a/phoneclientserver/phoneserver/Src/Standard/CPhSrvResourceManager.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Resource Manager. -* -*/ - - - -// INCLUDE FILES -#include "cphsrvresourcemanager.h" -#include "phcltclientserver.h" -#include - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvResourceManager::CPhSrvResourceManager -// -// C++ constructor -// ----------------------------------------------------------------------------- -// -CPhSrvResourceManager::CPhSrvResourceManager( RFs& aFsSession ) -: iFsSession(aFsSession) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvResourceManager::~CPhSrvResourceManager -// -// C++ destructor -// ----------------------------------------------------------------------------- -// -CPhSrvResourceManager::~CPhSrvResourceManager() - { - iResourceFile.Close(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvResourceManager::ConstructL -// -// Symbian OS 2nd phase constructor -// ----------------------------------------------------------------------------- -// -void CPhSrvResourceManager::ConstructL() - { - TFileName resourceFile( KPhCltServerZDrive ); - resourceFile.Append( KDC_RESOURCE_FILES_DIR ); - resourceFile.Append( KPhClientAndServerResourceFileName ); - resourceFile.Append( KPhClientAndServerResourceFileExtensionNoWild ); - resourceFile.ZeroTerminate(); - - BaflUtils::NearestLanguageFile( iFsSession, resourceFile ); - iResourceFile.OpenL( iFsSession, resourceFile ); - iResourceFile.ConfirmSignatureL( KPhSrvMagicResourceFileSignature ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvResourceManager::ReadResourceLC -// -// Read resource text -// ----------------------------------------------------------------------------- -// -HBufC* CPhSrvResourceManager::ReadResourceLC( TUint aResourceId ) - { - HBufC8* resourceBuffer = iResourceFile.AllocReadLC( aResourceId ); - - TResourceReader reader; - reader.SetBuffer( resourceBuffer ); - - HBufC* ret = reader.ReadHBufCL(); - CleanupStack::PopAndDestroy( resourceBuffer ); - - CleanupStack::PushL( ret ); - return ret; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/CPhSrvScheduler.cpp --- a/phoneclientserver/phoneserver/Src/Standard/CPhSrvScheduler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Scheduler. -* -*/ - - -// INCLUDE FILES -#include "cphsrvscheduler.h" -#include "phsrvutils.h" - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvScheduler::CPhSrvScheduler -// -// C++ Constructor -// ----------------------------------------------------------------------------- -// -CPhSrvScheduler::CPhSrvScheduler() - { - } - -// ----------------------------------------------------------------------------- -// CPhSrvScheduler::Error -// -// Panic the server. -// ----------------------------------------------------------------------------- -// -void CPhSrvScheduler::Error( TInt /*aError*/ ) const - { - PhoneServerUtils::Panic( EPhoneServerPanicSchedulerError ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/CPhSrvServer.cpp --- a/phoneclientserver/phoneserver/Src/Standard/CPhSrvServer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,681 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Server. -* -*/ - - -// INCLUDE FILES -#include "cphsrvserver.h" -#include "cphsrvsession.h" -#include "cphsrvscheduler.h" -#include "cphsrvussdmanager.h" -#include "cphsrvresourcemanager.h" -#include "cphsrvphonecontroller.h" -#include "cphsrvcallrequestmanager.h" -#include "cphsrvemergencyrequestmanager.h" -#include "cphsrvemergencynumbermanager.h" - -#include "phsrvutils.h" -#include "kphsrvconfigure.h" // debugprints ON/OFF -#include "phsrvdebuginfo.h" - -#include "mphsrvcomhandnegotiators.h" -#include "cphsrvcomhandrequestmanager.h" -#include "mphsrvmessengernegotiators.h" -#include "cphsrvmessengerrequestmanager.h" -#include - - - -// CONSTANTS -const TInt KPhSrvServerPriority = 100; // phone server priority - - -// The create function enumerations. -enum - { - ECreateIdle, // Create idle. - ECreateEmergencyNegotiator, // Create Emergency Call negotiator - ECreateCallNegotiator, // Create Call Negotiator. - ECreateUssdManager, // Create USSD Manager. - ECreatePhoneInterface, // Create Phone Interface. - ECreateEmergencyNumber, // Create Emergency Number Manager. - ECreateComHandManager, // Create command handler manager. - ECreateMessengerManager // Create Messenger manager. - }; - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvServer::New -// -// Create and start a new server. -// ----------------------------------------------------------------------------- -// -CPhSrvServer* CPhSrvServer::NewL() - { - // Create - CPhSrvServer* self = new ( ELeave ) CPhSrvServer( KPhSrvServerPriority ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::CPhSrvServer -// -// C++ constructor -// ----------------------------------------------------------------------------- -// -CPhSrvServer::CPhSrvServer( TInt aPriority ) - : CServer2( aPriority ), - iFBSConnections( 0 ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::CPhSrvServer -// -// C++ Destructor -// ----------------------------------------------------------------------------- -// -CPhSrvServer::~CPhSrvServer() - { - CompleteCreateAll( KErrCancel ); - - delete iCreateAll; - delete iObjectConIx; - delete iUssdManager; - delete iEmergencyNumberManager; - delete iResourceFileManager; - delete iCallRequestManager; - delete iPhoneController; - delete iComHandRequestManager; - delete iMessengerRequestManager; - - iFsSession.Close(); - DisconnectFBS( ETrue ); - - - // Frees the TLS! Must be done after FeatureManager is used. - FeatureManager::UnInitializeLib(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::ConstructL -// -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhSrvServer::ConstructL() - { - // Sets up TLS, must be done before FeatureManager is used. - FeatureManager::InitializeLibL(); - - - // Start server - TInt ret = Start( PHONE_SERVER_NAME ); - __ASSERT_ALWAYS( ret == KErrNone || ret == KErrAlreadyExists, - PhoneServerUtils::Panic( EPhoneServerPanicCouldNotStartServer ) ); - User::LeaveIfError( ret ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::NewSessionL -// -// Create a new session. -// ----------------------------------------------------------------------------- -// -CSession2* CPhSrvServer::NewSessionL( - const TVersion& aVersion, - const RMessage2& /*aMessage*/ ) const - { - // Check the right version - TVersion v( KPhoneServerMajorVersionNumber, - KPhoneServerMinorVersionNumber, - KPhoneServerBuildVersionNumber ); - - if( !User::QueryVersionSupported( v, aVersion ) ) - { - User::Leave( KErrNotSupported ); - } - - // Create a new session - CSession2* session = CPhSrvSession::NewL( - *const_cast< CPhSrvServer* >( this ) ); - - return session; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::CreateAllL -// ----------------------------------------------------------------------------- -// -void CPhSrvServer::CreateAllL( CPhSrvSession& aSession ) - { - if ( !iCreateAll ) - { - iCreateAll = CIdle::NewL( CActive::EPriorityStandard ); - } - - User::LeaveIfError( iCreateAllArray.Append( &aSession ) ); - - if ( !iCreateAll->IsActive() ) - { - iCreateAllStep = ECreateIdle; - iCreateAllError = KErrNone; - - iCreateAll->Start( TCallBack( DoCreateAllStepL, this ) ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::CancelCreateAll -// ----------------------------------------------------------------------------- -// -void CPhSrvServer::CancelCreateAll( CPhSrvSession& aSession ) - { - TInt pos = iCreateAllArray.Find( &aSession ); - if ( pos != KErrNotFound ) - { - iCreateAllArray.Remove( pos ); - aSession.CompleteCreateAll( KErrCancel ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::NewContainerL -// -// Create a new object container for session. -// ----------------------------------------------------------------------------- -// -CObjectCon* CPhSrvServer::NewContainerL() const - { - if ( !iObjectConIx ) - { - iObjectConIx = CObjectConIx::NewL(); - } - - return iObjectConIx->CreateL(); - } - -// ----------------------------------------------------------------------------- -// CPhSrvServer::RemoveContainer -// -// Remove object container. -// ----------------------------------------------------------------------------- -// -void CPhSrvServer::RemoveContainer( CObjectCon* aCon ) - { - iObjectConIx->Remove( aCon ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvServer::CallNegotiatorL -// -// Access the call negotiator -// ----------------------------------------------------------------------------- -// -MPhSrvNegotiatorCall& CPhSrvServer::CallNegotiatorL() - { - if ( !iCallRequestManager ) - { - CPhSrvCallRequestManager* self = - new (ELeave) CPhSrvCallRequestManager(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - iCallRequestManager = self; - } - - return *iCallRequestManager; - } - -// ----------------------------------------------------------------------------- -// CPhSrvServer::CallNegotiator -// -// Access the call negotiator -// ----------------------------------------------------------------------------- -// -MPhSrvNegotiatorCall& CPhSrvServer::CallNegotiator() const - { - __ASSERT_DEBUG( IsCallNegotiator(), - PhoneServerUtils::Panic( EPhoneServerPanicNoCallInitiatorFault ) ); - return *iCallRequestManager; - } - -// ----------------------------------------------------------------------------- -// CPhSrvServer::EmergencyCallNegotiatorL -// -// Access the emergency call negotiator -// ----------------------------------------------------------------------------- -// -MPhSrvEmergencyNegotiatorCall& CPhSrvServer::EmergencyCallNegotiatorL() - { - if ( !iEmergencyRequestManager ) - { - CPhSrvEmergencyRequestManager* self = - new (ELeave) CPhSrvEmergencyRequestManager(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - iEmergencyRequestManager = self; - } - - return *iEmergencyRequestManager; - } - -// ----------------------------------------------------------------------------- -// CPhSrvServer::EmergencyCallNegotiatorL -// -// Access the emergency call negotiator -// ----------------------------------------------------------------------------- -// -MPhSrvEmergencyNegotiatorCall& CPhSrvServer::EmergencyCallNegotiator() const - { - __ASSERT_DEBUG( IsCallNegotiator(), - PhoneServerUtils::Panic( EPhoneServerPanicMissingEmerNegotiator ) ); - return *iEmergencyRequestManager; - } - -// ----------------------------------------------------------------------------- -// CPhSrvServer::IsEmergencyCallNegotiator -// ----------------------------------------------------------------------------- -// -TBool CPhSrvServer::IsEmergencyCallNegotiator() const - { - return ( iEmergencyRequestManager != NULL ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvServer::UssdManagerL -// ----------------------------------------------------------------------------- -// -CPhSrvUssdManager& CPhSrvServer::UssdManagerL() - { - if ( !iUssdManager ) - { - CPhSrvUssdManager* self = - new ( ELeave ) CPhSrvUssdManager( - FsSessionL(), - ResourceManagerL() - ); - - CleanupStack::PushL( self ); - self->ConstructL( PhoneInterfaceL() ); - CleanupStack::Pop( self ); - - iUssdManager = self; - } - - return *iUssdManager; - } - -// ----------------------------------------------------------------------------- -// CPhSrvServer::PhoneInterfaceL -// ----------------------------------------------------------------------------- -// -MPhSrvPhoneInterface& CPhSrvServer::PhoneInterfaceL() - { - if ( !iPhoneController ) - { - CPhSrvPhoneController* self = - new( ELeave ) CPhSrvPhoneController(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - iPhoneController = self; - } - - return *iPhoneController; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::EmergencyNumberManagerL -// ----------------------------------------------------------------------------- -// -MPhSrvEmergencyNumberManager& CPhSrvServer::EmergencyNumberManagerL() - { - if ( !iEmergencyNumberManager ) - { - PhoneInterfaceL(); // if succeeds iPhoneController ok after this - - CPhSrvEmergencyNumberManager* self = - new ( ELeave ) CPhSrvEmergencyNumberManager( *iPhoneController ); - - TBool isDosEnPolicy = - FeatureManager::FeatureSupported( KFeatureIdEnPolicyDos ); - CleanupStack::PushL( self ); - self->ConstructL( isDosEnPolicy ); - CleanupStack::Pop( self ); - - iEmergencyNumberManager = self; - } - - return *iEmergencyNumberManager; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::IsCallNegotiator -// ----------------------------------------------------------------------------- -// -TBool CPhSrvServer::IsCallNegotiator() const - { - return ( iCallRequestManager != NULL ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::IsUssdManager -// ----------------------------------------------------------------------------- -// -TBool CPhSrvServer::IsUssdManager() const - { - return ( iUssdManager != NULL ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::ComHandNegotiatorL -// -// Access the command handler negotiator. -// ----------------------------------------------------------------------------- -// -MPhSrvComHandNegotiator& CPhSrvServer::ComHandNegotiatorL() - { - if ( !iComHandRequestManager ) - { - CPhSrvComHandRequestManager* self = - new ( ELeave ) CPhSrvComHandRequestManager( *this ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - iComHandRequestManager = self; - } - - return *iComHandRequestManager; - } - -// ----------------------------------------------------------------------------- -// CPhSrvServer::ComHandNegotiatorL -// -// Access the command handler negotiator. -// ----------------------------------------------------------------------------- -// -MPhSrvComHandNegotiator& CPhSrvServer::ComHandNegotiator() const - { - __ASSERT_DEBUG( IsComHandNegotiator(), - PhoneServerUtils::Panic( EPhoneServerPanicMissingComInitiator ) ); - return *iComHandRequestManager; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::IsComHandNegotiator -// ----------------------------------------------------------------------------- -// -TBool CPhSrvServer::IsComHandNegotiator() const - { - return ( iComHandRequestManager != NULL ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::MessengerNegotiatorL -// -// Access the Messenger negotiator. -// ----------------------------------------------------------------------------- -// -MPhSrvMessengerNegotiator& CPhSrvServer::MessengerNegotiatorL() - { - if ( !iMessengerRequestManager ) - { - CPhSrvMessengerRequestManager* self = - new ( ELeave ) CPhSrvMessengerRequestManager( *this ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - iMessengerRequestManager = self; - } - - return *iMessengerRequestManager; - } - -// ----------------------------------------------------------------------------- -// CPhSrvServer::MessengerNegotiator -// -// Access the Messenger negotiator. -// ----------------------------------------------------------------------------- -// -MPhSrvMessengerNegotiator& CPhSrvServer::MessengerNegotiator() const - { - __ASSERT_DEBUG( IsMessengerNegotiator(), - PhoneServerUtils::Panic( EPhoneServerPanicMissingMessNegotiator ) ); - return *iMessengerRequestManager; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::IsMessengerNegotiator -// ----------------------------------------------------------------------------- -// -TBool CPhSrvServer::IsMessengerNegotiator() const - { - return ( iMessengerRequestManager != NULL ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::FsSessionL -// ----------------------------------------------------------------------------- -// -RFs& CPhSrvServer::FsSessionL() - { - if ( !iFsSession.Handle() ) - { - User::LeaveIfError( iFsSession.Connect() ); - } - - return iFsSession; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::ResourceManagerL -// ----------------------------------------------------------------------------- -// -CPhSrvResourceManager& CPhSrvServer::ResourceManagerL() - { - if ( !iResourceFileManager ) - { - CPhSrvResourceManager* self = - new ( ELeave ) CPhSrvResourceManager( FsSessionL() ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - iResourceFileManager = self; - } - - return *iResourceFileManager; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::CreateAllStepL -// ----------------------------------------------------------------------------- -// -TInt CPhSrvServer::CreateAllStepL() - { - TInt old = iCreateAllStep; - TRAPD( err, PerformNextStepL() ); - if ( old == iCreateAllStep ) - { - iCreateAllStep = ECreateIdle; - err = KErrGeneral; - } - - iCreateAllError = Min( iCreateAllError, err ); - - if ( iCreateAllStep == ECreateIdle ) - { - CompleteCreateAll( iCreateAllError ); - return 0; // To stop idle - } - - return 1; // To continue idle processing - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::PerformNextStepL -// ----------------------------------------------------------------------------- -// -void CPhSrvServer::PerformNextStepL() - { - switch ( iCreateAllStep ) - { - case ECreateEmergencyNegotiator: - iCreateAllStep = ECreateCallNegotiator; - EmergencyCallNegotiatorL(); - break; - - case ECreateCallNegotiator: - iCreateAllStep = ECreateUssdManager; - CallNegotiatorL(); - break; - - case ECreateUssdManager: - iCreateAllStep = ECreatePhoneInterface; - UssdManagerL(); - break; - - case ECreatePhoneInterface: - iCreateAllStep = ECreateEmergencyNumber; - PhoneInterfaceL(); - break; - - case ECreateEmergencyNumber: - iCreateAllStep = ECreateComHandManager; - EmergencyNumberManagerL(); - break; - - case ECreateComHandManager: - iCreateAllStep = ECreateMessengerManager; - ComHandNegotiatorL(); - break; - - case ECreateMessengerManager: - iCreateAllStep = ECreateIdle; - // Create messenger negotiator only if needed. - if ( FeatureManager::FeatureSupported( - KFeatureIdCsVideoTelephony ) ) - { - MessengerNegotiatorL(); - } - break; - - case ECreateIdle: - default: - iCreateAllStep = ECreateEmergencyNegotiator; - break; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::CompleteCreateAll -// ----------------------------------------------------------------------------- -// -void CPhSrvServer::CompleteCreateAll( TInt aError ) - { - TInt count = iCreateAllArray.Count(); - TInt index; - - for ( index = 0; index < count; index++ ) - { - iCreateAllArray[ index ]->CompleteCreateAll( aError ); - } - - iCreateAllArray.Close(); - - delete iCreateAll; - iCreateAll = NULL; - - iCreateAllError = KErrNone; - iCreateAllStep = ECreateIdle; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvServer::DoCreateAllStepL -// ----------------------------------------------------------------------------- -// -TInt CPhSrvServer::DoCreateAllStepL( TAny* aAny ) - { - return static_cast< CPhSrvServer* >( aAny )->CreateAllStepL(); - } - -// ----------------------------------------------------------------------------- -// CPhSrvServer::ConnectFBS -// ----------------------------------------------------------------------------- -// -TInt CPhSrvServer::ConnectFBS() - { - TInt err( KErrNone ); - if ( iFBSConnections == 0 ) - { - err = RFbsSession::Connect(); - } - - if ( err == KErrNone ) - { - iFBSConnections++; - } - return err; - } - -// ----------------------------------------------------------------------------- -// CPhSrvServer::DisconnectFBS -// ----------------------------------------------------------------------------- -// -void CPhSrvServer::DisconnectFBS( TBool aForce ) - { - iFBSConnections--; - if ( iFBSConnections == 0 || aForce ) - { - RFbsSession::Disconnect(); - } - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/CPhSrvSession.cpp --- a/phoneclientserver/phoneserver/Src/Standard/CPhSrvSession.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,417 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Session. -* -*/ - - - -// INCLUDE FILES -#include "cphsrvserver.h" -#include "cphsrvsession.h" -#include "cphsrvsubsessionbase.h" -#include "phsrvsubsessionfactory.h" -#include "phcltclientserver.h" - -// CONSTANTS - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvSession::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSession* CPhSrvSession::NewL( CPhSrvServer& aServer ) - { - CPhSrvSession* self = new ( ELeave ) CPhSrvSession(); - CleanupStack::PushL( self ); - self->ConstructL( aServer ); - CleanupStack::Pop(); - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::CPhSrvSession -// C++ constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -CPhSrvSession::CPhSrvSession() - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::~CPhSrvSession -// Destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvSession::~CPhSrvSession() - { - if ( iServer ) - { - iServer->CancelCreateAll( *this ); - } - - delete iObjectIx; - - if ( iContainer ) - { - iServer->RemoveContainer( iContainer ); - iContainer = NULL; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::ServiceL -// -// Calls DispatchMessageL under trap harness. -// ----------------------------------------------------------------------------- -// -void CPhSrvSession::ServiceL( const RMessage2& aMessage ) - { - TRAPD( err, ProcessRequestL( aMessage ) ); - if ( err != KErrNone ) - { - aMessage.Complete( err ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::ProcessRequestL -// -// Checks the function specified by the client message -// and depending on the type, performs an appropriate action. -// -// If the function is one of the "special" factory sub-session -// creation op-codes, then this session will process it. -// -// If the function is a generic subsession function, then the -// subsession which can handle this function is identified by -// it's unique handle, and it is asked to process the request. -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSession::ProcessRequestL( const RMessage2& aMessage ) - { - if ( HandleCommandL( aMessage ) ) - { - return; - } - - const TInt function = aMessage.Function(); - const TUint32 sid = aMessage.SecureId().iId; - - // Is this a message that results in a new subsession? - if ( PhSrvSubSessionFactory::PhSrvSubSessionFactoryIsCreationFunction( - function ) ) - { - if ( !PhSrvSubSessionFactory::PhSrvSubSessionFactoryIsCreationAllowed( - function, - sid ) ) - { - aMessage.Complete( KErrPermissionDenied ); - } - else - { - // Need to create a new subsession - CPhSrvSubSessionBase* subSession = - PhSrvSubSessionFactory::PhSrvSubSessionFactoryCreateLC( - function, - *this ); - - // Add to container (takes ownership) - iContainer->AddL( subSession ); - if (function != EPhoneServerImageHandlerSubSessionOpen ) - { - CleanupStack::Pop( subSession ); - } - // Get a handle for the object - const TInt handle = iObjectIx->AddL( subSession ); - - // Inform client of the handle its been allocated - TPckg handlePckg( handle ); - Write( - aMessage, - 3, - handlePckg ); - - if ( !aMessage.IsNull() ) - { - // Complete the message - aMessage.Complete( KErrNone ); - } - } - } - else - { - // Find an appropriate object and pass the message to it - // for processing... - const TInt handle = aMessage.Int3(); - - // Fetch the sub-session by its handle - CObject* object = iObjectIx->At( handle ); - if ( !object ) - { - PanicClient( - aMessage, - EPhCltServerInitiatedPanicInvalidHandle ); - } - - // We can cast the object to a subsession instance, since that's - // all we store in the object container - CPhSrvSubSessionBase* subSession = - static_cast< CPhSrvSubSessionBase* >( object ); - - if ( subSession ) - { - // Check that the subsession can handle this request - if ( !subSession->PhSrvMessageDecoderCanProcessMessage( function ) ) - { - PanicClient( - aMessage, - EPhCltServerInitiatedPanicInvalidHandle ); - } - else - { - // Get it to process this request - subSession->PhSrvMessageProcessorHandleMessageL( aMessage ); - } - } - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::SubSessionCount -// -// Return the number of subsessions -// ----------------------------------------------------------------------------- -// -TInt CPhSrvSession::SubSessionCount() const - { - return iContainer->Count(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::SubSessionA -// -// Return a subsession from an index -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionBase& CPhSrvSession::SubSessionAt( TInt aIndex ) const - { - return *static_cast< CPhSrvSubSessionBase* >( ( *iContainer )[ aIndex ] ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::CloseSubsession -// -// Remove object from object index -// ----------------------------------------------------------------------------- -// -void CPhSrvSession::CloseSubSession( const RMessage2& aMessage ) - { - TInt handle = aMessage.Int3(); - - CObject* obj = iObjectIx->At( handle ); - __ASSERT_ALWAYS( obj, - PanicClient( - aMessage, - EPhCltServerInitiatedPanicInvalidHandle ) ); - iObjectIx->Remove( handle ); - - if ( !aMessage.IsNull() ) - { - aMessage.Complete( KErrNone ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::PanicClient -// -// Panic the client's thread -// ----------------------------------------------------------------------------- -// -void CPhSrvSession::PanicClient( - const RMessage2& aMessage, - TPhCltServerInitiatedPanic aPanic ) const - { - if ( !aMessage.IsNull() ) - { - _LIT( KPhServerPanicCategory, "PhSrvServer" ); - aMessage.Panic( KPhServerPanicCategory, aPanic ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::ConstructL -// -// Symbian OS 2nd phase constructor -// ----------------------------------------------------------------------------- -// -void CPhSrvSession::ConstructL( CPhSrvServer& aServer ) - { - iContainer = aServer.NewContainerL(); - iObjectIx = CObjectIx::NewL(); - - iServer = &aServer; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::SubSessionUniqueHandle -// -// Return the unique handle for the specified subsession -// ----------------------------------------------------------------------------- -// -TInt CPhSrvSession::SubSessionUniqueHandle( - const CPhSrvSubSessionBase& aSubSession ) const - { - // Ensure that the handle really is unique. - // return iObjectIx->At( &aSubSession ); is unique only in same session. - return reinterpret_cast( &aSubSession ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::PhoneServer -// -// Returns the Phone Server -// ----------------------------------------------------------------------------- -// -CPhSrvServer& CPhSrvSession::PhoneServer() const - { - return *static_cast< CPhSrvServer* >( const_cast< CServer2* >( Server() ) ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::Write -// -// Write to the client address space. Panic client upon error -// ----------------------------------------------------------------------------- -// -void CPhSrvSession::Write( - const RMessage2& aMessage, - TInt aLocation, - const TDesC8& aDes, - TInt aOffset ) - { - TInt ret = aMessage.Write( aLocation, aDes, aOffset ); - if ( ret != KErrNone ) - { - PanicClient( - aMessage, - EPhCltServerInitiatedPanicBadDescriptor ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::Read -// -// Read from the client address space. Panic client upon error -// ----------------------------------------------------------------------------- -// -void CPhSrvSession::Read( - const RMessage2& aMessage, - TInt aLocation, - TDes8& aDes, - TInt aOffset ) - { - TInt ret = aMessage.Read( aLocation, aDes, aOffset ); - if ( ret != KErrNone ) - { - PanicClient( - aMessage, - EPhCltServerInitiatedPanicBadDescriptor ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::Read -// -// Read from the client address space. Panic client upon error -// ----------------------------------------------------------------------------- -// -void CPhSrvSession::Read( - const RMessage2& aMessage, - TInt aLocation, - TDes& aDes, - TInt aOffset ) - { - TInt ret = aMessage.Read( aLocation, aDes, aOffset ); - if ( ret != KErrNone ) - { - PanicClient( - aMessage, - EPhCltServerInitiatedPanicBadDescriptor ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::CompleteCreateAll -// ----------------------------------------------------------------------------- -// -void CPhSrvSession::CompleteCreateAll( TInt aError ) - { - if ( iCreateAll ) - { - iCreateAll = EFalse; - iCreateAllMsg.Complete( aError ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSession::HandleCommandL -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSession::HandleCommandL( const RMessage2& aMessage ) - { - TBool result = EFalse; - - switch ( aMessage.Function() ) - { - case EPhoneCreateAll: - result = ETrue; - - iServer->CancelCreateAll( *this ); - iServer->CreateAllL( *this ); - - iCreateAll = ETrue; - iCreateAllMsg = aMessage; - break; - - default: - break; - } - - return result; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/CPhSrvSubSessionBase.cpp --- a/phoneclientserver/phoneserver/Src/Standard/CPhSrvSubSessionBase.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Sub Session Base. -* -*/ - - - -// INCLUDE FILES -#include "cphsrvsubsessionbase.h" -#include "cphsrvsession.h" -#include "cphsrvsubsessionnotifier.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionBase::CPhSrvSubSessionBase -// -// C++ Constructor -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionBase::CPhSrvSubSessionBase( - CPhSrvSession& aSession, - TPhSrvSubSessionType aType ) -: iSession(aSession), - iSubSessionType(aType) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionBase::PhoneSession -// -// Access a non-constant phone session -// ----------------------------------------------------------------------------- -// -CPhSrvSession& CPhSrvSubSessionBase::PhoneSession() - { - return iSession; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionBase::PhoneSession -// -// Access the session -// ----------------------------------------------------------------------------- -// -const CPhSrvSession& CPhSrvSubSessionBase::PhoneSession() const - { - return iSession; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionBase::SubSessionUniqueHandle -// -// Return the unique handle for this subsession -// ----------------------------------------------------------------------------- -// -TInt CPhSrvSubSessionBase::SubSessionUniqueHandle() const - { - return PhoneSession().SubSessionUniqueHandle( *this ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionBase::Type -// -// The type of the subsession -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionBase::TPhSrvSubSessionType CPhSrvSubSessionBase::Type() const - { - return iSubSessionType; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionBase::Write -// -// Write to client address space -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionBase::Write( - const RMessage2& aMessage, - TInt aLocation, - const TDesC8& aDes, - TInt aOffset ) - { - PhoneSession().Write( - aMessage, - aLocation, - aDes, - aOffset ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionBase::Read -// -// Read from client address space -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionBase::Read( - const RMessage2& aMessage, - TInt aLocation, - TDes8& aDes, - TInt aOffset ) - { - PhoneSession().Read( - aMessage, - aLocation, - aDes, - aOffset ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/CPhSrvSubSessionUssd.cpp --- a/phoneclientserver/phoneserver/Src/Standard/CPhSrvSubSessionUssd.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,380 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Sub Session Ussd. -* -*/ - - -// INCLUDE FILES -#include "cphsrvsubsessionussd.h" - -#include // ETel - -#include "phsrvutils.h" -#include "cphsrvsession.h" -#include "cphsrvserver.h" - -#include "cphsrvussdmanager.h" - -#include - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::CPhSrvSubSessionUssd -// -// C++ Constructor -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionUssd::CPhSrvSubSessionUssd( CPhSrvSession& aSession ) -: CPhSrvSubSessionBase( aSession, EPhSrvSubSessionTypeUssd ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::PhSrvMessageDecoderCanProcessMessage -// -// Framework function. Returns ETrue for the op codes that -// this subsession can handle. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionUssd::PhSrvMessageDecoderCanProcessMessage( - TInt aFunction ) - { - switch( aFunction ) - { - case EPhoneServerUSSDSubSessionClose: - case EPhoneServerUSSDSubSessionSendMessage: - case EPhoneServerUSSDSubSessionSendMessageCancel: - case EPhoneServerUSSDSubSessionStartEditing: - case EPhoneServerUSSDSubSessionAppStarting: - case EPhoneServerUSSDSubSessionAppTerminating: - case EPhoneServerUSSDSubSessionAppToForeground: - case EPhoneServerUSSDSubSessionAppToBackground: - case EPhoneServerUSSDSubSessionStartSAT: - case EPhoneServerUSSDSubSessionStopSAT: - return ETrue; - - default: - return EFalse; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::PhSrvMessageProcessorHandleMessageL -// -// Framework function. Handle any op-codes here. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionUssd::PhSrvMessageProcessorHandleMessageL( - const RMessage2& aMessage ) - { - TBool permissionStatus ( EFalse ); - - // Check needed capabilities - TBool hasCapNetworkControlAndServices ( EFalse ); - TBool hasCapWriteDeviceData ( EFalse ); - hasCapNetworkControlAndServices = aMessage.HasCapability( ECapabilityNetworkControl, - ECapabilityNetworkServices ); - hasCapWriteDeviceData = aMessage.HasCapability( ECapabilityWriteDeviceData ); - // Check Security ID - TBool hasUssdSID = ( aMessage.SecureId().iId == KUssdSecureId.iUid ) ? ETrue : EFalse; - TBool hasSatSID = ( aMessage.SecureId().iId == KSatSecureId.iUid ) ? ETrue : EFalse; - - switch( aMessage.Function() ) - { - case EPhoneServerUSSDSubSessionClose: - CmdSubSessionCloseL( aMessage ); - permissionStatus = ETrue; - break; - case EPhoneServerUSSDSubSessionSendMessage: - if ( hasCapNetworkControlAndServices && hasCapWriteDeviceData ) - { - CmdSubSessionSendMessageL( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerUSSDSubSessionSendMessageCancel: - if ( hasCapNetworkControlAndServices && hasCapWriteDeviceData ) - { - CmdSubSessionSendMessageCancelL( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerUSSDSubSessionStartEditing: - CmdSubSessionStartEditingL( aMessage ); - permissionStatus = ETrue; - break; - case EPhoneServerUSSDSubSessionAppStarting: - if ( hasUssdSID ) - { - CmdSubSessionAppStartingL( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerUSSDSubSessionAppTerminating: - if ( hasUssdSID ) - { - CmdSubSessionAppTerminatingL( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerUSSDSubSessionAppToForeground: - if ( hasUssdSID ) - { - CmdSubSessionAppToForegroundL( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerUSSDSubSessionAppToBackground: - if ( hasUssdSID ) - { - CmdSubSessionAppToBackgroundL( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerUSSDSubSessionStartSAT: - if ( hasSatSID ) - { - CmdSubSessionStartSATL( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerUSSDSubSessionStopSAT: - if ( hasSatSID ) - { - CmdSubSessionStopSATL( aMessage ); - permissionStatus = ETrue; - } - break; - - default: - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicInvalidRequest ); - break; - } - - // If caps are not ok - if( !permissionStatus ) - { - aMessage.Complete( KErrPermissionDenied ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::UssdMessageSentObserverHandleResult -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionUssd::UssdMessageSentObserverHandleResult( TInt aError ) - { - __ASSERT_DEBUG( iHavePendingSendMessagePointer, - PhoneServerUtils::Panic( EPhoneServerPanicNoPendingSendRequestFault ) ); - - // Notify observer - if ( iHavePendingSendMessagePointer ) - { - if ( !iPendingSendMessagePointer.IsNull() ) - { - iPendingSendMessagePointer.Complete( aError ); - } - iHavePendingSendMessagePointer = EFalse; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::CmdSubSessionCloseL -// -// Close the sub-session -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionUssd::CmdSubSessionCloseL( const RMessage2& aMessage ) - { - PhoneSession().CloseSubSession( aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::CmdSubSessionSendMessageL -// -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CPhSrvSubSessionUssd::CmdSubSessionSendMessageL( - const RMessage2& aMessage ) - { - if (iHavePendingSendMessagePointer) - { - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicRequestAlreadyActive ); - } - else - { - // Get text buffer, 0 buffer, 1 length, 2 attributes - HBufC8* message = HBufC8::NewLC( aMessage.Int1() ); - TPtr8 pMessage(message->Des()); - PhoneSession().Read( - aMessage, - 0, - pMessage ); - - RMobileUssdMessaging::TMobileUssdAttributesV1* attributes = - new ( ELeave ) RMobileUssdMessaging::TMobileUssdAttributesV1; - CleanupStack::PushL( attributes ); - RMobileUssdMessaging::TMobileUssdAttributesV1Pckg - pAttributes( *attributes ); - PhoneSession().Read( - aMessage, - 2, - pAttributes ); - - // Try and send the message - PhoneSession().PhoneServer().UssdManagerL().SendUssdL( - *message, - *attributes, - *this ); - CleanupStack::PopAndDestroy(2); // attributes, message - - iHavePendingSendMessagePointer = ETrue; - iPendingSendMessagePointer = aMessage; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::CmdSubSessionSendMessageCancelL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionUssd::CmdSubSessionSendMessageCancelL( - const RMessage2& aMessage ) - { - // Cancel Send - PhoneSession().PhoneServer().UssdManagerL().SendUssdCancel(); - - // Complete old request - if ( iHavePendingSendMessagePointer ) - { - if ( !iPendingSendMessagePointer.IsNull() ) - { - iPendingSendMessagePointer.Complete( KErrCancel ); - } - iHavePendingSendMessagePointer = EFalse; - } - aMessage.Complete( KErrNone ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::CmdSubSessionStartEditingL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionUssd::CmdSubSessionStartEditingL( - const RMessage2& aMessage ) - { - - PhoneSession().PhoneServer().UssdManagerL().RequestStartEditingL(); - aMessage.Complete( KErrNone ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::CmdSubSessionAppStartingL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionUssd::CmdSubSessionAppStartingL( - const RMessage2& aMessage ) - { - PhoneSession().PhoneServer().UssdManagerL().InformUssdApplicationStarting(); - aMessage.Complete( KErrNone ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::CmdSubSessionAppTerminatingL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionUssd::CmdSubSessionAppTerminatingL( - const RMessage2& aMessage ) - { - PhoneSession().PhoneServer().UssdManagerL( - ).InformUssdApplicationTerminatingL( aMessage ); - - // Complete the message. - aMessage.Complete( KErrNone ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::CmdSubSessionAppToForegroundL -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionUssd::CmdSubSessionAppToForegroundL( - const RMessage2& aMessage ) - { - TInt ret = PhoneSession().PhoneServer().UssdManagerL( - ).InformUssdApplicationToForeground(); - aMessage.Complete( ret ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::CmdSubSessionAppToBackgroundL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionUssd::CmdSubSessionAppToBackgroundL( - const RMessage2& aMessage ) - { - PhoneSession().PhoneServer().UssdManagerL( - ).InformUssdApplicationToBackground(); - aMessage.Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::CmdSubSessionStartSATL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionUssd::CmdSubSessionStartSATL( const RMessage2& aMessage ) - { - PhoneSession().PhoneServer().UssdManagerL().InformStartSAT( aMessage ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionUssd::CmdSubSessionStartSATL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionUssd::CmdSubSessionStopSATL( const RMessage2& aMessage ) - { - PhoneSession().PhoneServer().UssdManagerL().InformStopSAT(); - aMessage.Complete( KErrNone ); - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/PhSrvDebugInfo.cpp --- a/phoneclientserver/phoneserver/Src/Standard/PhSrvDebugInfo.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,185 +0,0 @@ -/* -* Copyright (c) 2002-2003 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: Debug information implementation. -* -*/ - - -// INCLUDE FILES - -#include // tls -#include // rdebug -#include // file and FS -#include // converter -#include "phsrvdebuginfo.h" // this -#include "kphsrvconfigure.h" // defines - - -// Initialize -#ifdef __PHSRV_DEBUG_INFO__ - -// CONSTANTS -// max length with number and extension is 25! -_LIT( KPhSrvDebugFileName, "C:\\PhSrvDebug"); -_LIT( KPhSrvDebugFileExt, ".txt" ); -const TInt KPhSrvDebugFileNameLength( 25 ); - -#ifdef __PHSRV_DEBUG_WRITE_LOG__ -_LIT( KPhSrvDebugEOF, "\n" ); -#endif // _PHSRV_DEBUG_WRITE_LOG__ - - - - -//---------------------------------------------------------------------------- -// PhSrvDebugInfo::Print -//---------------------------------------------------------------------------- -// -void PhSrvDebugInfo::Print(TInt/* aArea*/,const TDesC& aText ) -{ - - - - // LOG TO FILE -#ifdef __PHSRV_DEBUG_WRITE_LOG__ - - TBuf8<128> toFile; - CnvUtfConverter::ConvertFromUnicodeToUtf8( toFile, aText.Left(126) ); - toFile.Append( KPhSrvDebugEOF ); - - PhSrvDebugInfo::CPhSrvDebugData* data = NULL; - if( !data ) - { - data = CreateData(); - } - if( data ) - { - data->CreateFile(); - data->WriteFile( toFile ); - } -#endif // __PHSRV_DEBUG_WRITE_LOG__ -#ifdef __PHSRV_PRINT_DEBUG_INFO__ - RDebug::Print( aText ); -#endif // __PHSRV_PRINT_DEBUG_INFO__ - // } - // } - } - - -//---------------------------------------------------------------------------- -// PhSrvDebugInfo::CreateDataL -//---------------------------------------------------------------------------- -// -PhSrvDebugInfo::CPhSrvDebugData* PhSrvDebugInfo::CreateData() - { - PhSrvDebugInfo::CPhSrvDebugData* data = - new PhSrvDebugInfo::CPhSrvDebugData(); - - return data; - } - - -//---------------------------------------------------------------------------- -// PhSrvDebugInfo::CPhSrvDebugData::~CPhSrvDebugData -//---------------------------------------------------------------------------- -// -PhSrvDebugInfo::CPhSrvDebugData::~CPhSrvDebugData() - { - ReleaseFile(); - } - - -//---------------------------------------------------------------------------- -// PhSrvDebugInfo::CPhSrvDebugData::CreateFileL -//---------------------------------------------------------------------------- -// -void PhSrvDebugInfo::CPhSrvDebugData::CreateFile() - { - if ( !IsFile() ) - { - if ( !iFs ) - iFs = new RFs(); - if ( !iFs ) - return; - if ( iFs->Connect() != KErrNone ) - return; - - TBuf name; - TInt err = KErrGeneral; - TInt i = 0; - - if ( !iFile ) - { - name.Zero(); - name.Append( KPhSrvDebugFileName ); - name.AppendNum( i ); - name.Append( KPhSrvDebugFileExt ); - - iFile = new RFile(); - if ( !iFile ) - return; - err = iFile->Create( *iFs, name, - EFileStreamText|EFileWrite|EFileShareAny ); - } - - if( err != KErrNone ) - { - err = iFile->Open( *iFs, name, - EFileStreamText|EFileWrite|EFileShareAny ); - } - - } - } - - -void PhSrvDebugInfo::CPhSrvDebugData::ReleaseFile() - { - if ( iFile ) - { - iFile->Close(); - delete iFile; - iFile = NULL; - } - if ( iFs ) - { - iFs->Close(); - delete iFs; - iFs = NULL; - } - } - - -TBool PhSrvDebugInfo::CPhSrvDebugData::IsFile() const - { - return ( iFile != NULL ); - } - - -void PhSrvDebugInfo::CPhSrvDebugData::WriteFile(const TDesC8& aDes) - { - if ( IsFile() ) - { - TInt place =0 ; - iFile->Seek( ESeekEnd,place ); - iFile->Write( place, aDes ); - iFile->Flush(); - } - } - - -#endif - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/PhSrvStartUp.cpp --- a/phoneclientserver/phoneserver/Src/Standard/PhSrvStartUp.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Start Up functionality of Phone Server. -* -*/ - - - -// INCLUDE FILES -#include "phsrvstartup.h" -#include "cphsrvscheduler.h" -#include "cphsrvserver.h" -#include "phsrvutils.h" - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// PhoneServerStartUpUtils::CreateAndRunServerL -// -// Creates a server instance, active scheduler, etc, and -// starts the server going by starting the active scheduler. -// ----------------------------------------------------------------------------- -// -void PhoneServerStartUpUtils::CreateAndRunServerL() - { - CPhSrvScheduler* scheduler = new( ELeave ) CPhSrvScheduler(); - CleanupStack::PushL( scheduler ); - CActiveScheduler::Install( scheduler ); - - // Create the server - CPhSrvServer* server = CPhSrvServer::NewL(); - CleanupStack::PushL( server ); - - // Attempt to rename the thread - it isn't critial if this fails -#ifdef _DEBUG - TInt err = -#endif // _DEBUG - - User::RenameThread( KPhServerThreadName ); - - __ASSERT_DEBUG( err == KErrNone, - PhoneServerUtils::Panic(EPhoneServerPanicCouldNotRenameServerThread ) ); - - // Now that the server has been started okay, we can signal the - // client so that they can attempt to connect. - - RProcess::Rendezvous( KErrNone ); - - // The final step in the chain is to start the active scheduler - // which will allow the server to be fully operational and enable - // request processing. - CActiveScheduler::Start(); - - // Cleanup the server and scheduler - // Check also that the last poped item was scheduler. - CleanupStack::PopAndDestroy( 2, scheduler ); - } - - -// ----------------------------------------------------------------------------- -// PhoneServerStartUpUtils::PrepareServerEnvironment -// -// Creates a cleanup stack trap harness and attemps to run -// the server. -// ----------------------------------------------------------------------------- -// -TInt PhoneServerStartUpUtils::PrepareServerEnvironment() - { - TInt err = KErrNoMemory; - - CTrapCleanup* cleanup = CTrapCleanup::New(); - if ( cleanup ) - { - TRAP( err, CreateAndRunServerL() ); - } - delete cleanup; - - return err; - } - - - -// ----------------------------------------------------------------------------- -// E32Main (MARM ONLY - RUNNING SERVER IN THREAD INSIDE PROCESS) -// -// Satisfies EPOCEXE build criteria. Called by Kernel when -// a new process is created, and is used to start the server going. -// ----------------------------------------------------------------------------- -// -GLDEF_C TInt E32Main() - { - TInt err; - - err = PhoneServerStartUpUtils::PrepareServerEnvironment(); - - return err; - } - - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/PhSrvSubSessionFactory.cpp --- a/phoneclientserver/phoneserver/Src/Standard/PhSrvSubSessionFactory.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,151 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Sub Session Factory. -* -*/ - - - - -// INCLUDES -#include "phcltclientserver.h" - -#include "phsrvsubsessionfactory.h" -#include "cphsrvsubsessionnotifier.h" -#include "cphsrvsubsessionextcall.h" -#include "cphsrvsubsessionussd.h" -#include "cphsrvsubsessionemergencynum.h" -#include "cphsrvsubsessioncommandhandler.h" -#include "cphsrvsubsessionmessenger.h" -#include "cphsrvsubsessionimagehandler.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// PhSrvSubSessionFactory::PhSrvSubSessionFactoryIsCreationFunction -// -// A processing function that allows certain IPC op-codes -// to be intercepted and processed by the session rather than -// a subsession. This function returns ETrue if it is one of -// these special IPC op codes. -// ----------------------------------------------------------------------------- -// -TBool PhSrvSubSessionFactory::PhSrvSubSessionFactoryIsCreationFunction( - TInt aFunction ) - { - switch( aFunction ) - { - case EPhoneServerExtCallSubSessionOpen: - case EPhoneServerNotifySubSessionOpen: - case EPhoneServerUSSDSubSessionOpen: - case EPhoneServerEmergencyNumberSubSessionOpen: - case EPhoneServerComHandSubSessionOpen: - case EPhoneServerMessengerSubSessionOpen: - case EPhoneServerImageHandlerSubSessionOpen: - return ETrue; - - default: - return EFalse; - } - } - - -// ----------------------------------------------------------------------------- -// PhSrvSubSessionFactory::PhSrvSubSessionFactoryCreateLC -// -// Creates a new instance of a subsession based upon the -// IPC op code specified. -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionBase* PhSrvSubSessionFactory::PhSrvSubSessionFactoryCreateLC( - TInt aFunction, - CPhSrvSession& aSession ) - { - CPhSrvSubSessionBase* subSession = NULL; - - switch( aFunction ) - { - case EPhoneServerExtCallSubSessionOpen: - subSession = new( ELeave ) CPhSrvSubSessionExtCall( aSession ); - break; - case EPhoneServerNotifySubSessionOpen: - subSession = new( ELeave ) CPhSrvSubSessionNotifier( aSession ); - break; - case EPhoneServerUSSDSubSessionOpen: - subSession = new( ELeave ) CPhSrvSubSessionUssd( aSession ); - break; - case EPhoneServerEmergencyNumberSubSessionOpen: - subSession = new( ELeave ) CPhSrvSubSessionEmergencyNum( aSession ); - break; - case EPhoneServerComHandSubSessionOpen: - subSession = - CPhSrvSubSessionCommandHandler::NewL( aSession ); - break; - case EPhoneServerMessengerSubSessionOpen: - subSession = - CPhSrvSubSessionMessenger::NewL( aSession ); - break; - - case EPhoneServerImageHandlerSubSessionOpen: - subSession = CPhSrvSubSessionImageHandler::NewL( aSession ); - break; - default: - break; - } - - // Complete construction - if ( aFunction != EPhoneServerImageHandlerSubSessionOpen ) - { - CleanupStack::PushL( subSession ); - } - subSession->ConstructL(); - return subSession; - } - -// ----------------------------------------------------------------------------- -// PhSrvSubSessionFactory::PhSrvSubSessionFactoryIsCreationAllowed -// -// This function returns ETrue if Creation a new instance of a subsession based upon -// the IPC op code specified is allowed for the Secure ID of the process which -// sent this message. -// ----------------------------------------------------------------------------- -// -TBool PhSrvSubSessionFactory::PhSrvSubSessionFactoryIsCreationAllowed( - TInt aFunction, - TUint32 aSID ) - { - switch( aFunction ) - { - case EPhoneServerNotifySubSessionOpen: - case EPhoneServerComHandNotifySubSessionOpen: - if ( aSID == KPhoneSecureId.iUid -#if defined(__WINSCW__) - // To enable module testing using EUnit - || aSID == KEunitExeRunnerId.iUid -#endif // __WINSCW__ - ) - { - return ETrue; - } - else - { - return EFalse; - } - default: - return ETrue; - } - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/PhSrvUtils.cpp --- a/phoneclientserver/phoneserver/Src/Standard/PhSrvUtils.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Contains utility functions for Phone Server. -* -*/ - - -// INCLUDES -#include -#include "phsrvutils.h" - - -// CONSTANTS -_LIT( KPhoneServerPanicCategory, "PhSrvFault" ); - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// PhoneServerUtils::Panic -// -// Panic the server. -// ----------------------------------------------------------------------------- -// -void PhoneServerUtils::Panic( TPhoneServerPanic aPanic ) - { - User::Panic( KPhoneServerPanicCategory, aPanic ); - } - - -// ----------------------------------------------------------------------------- -// PhoneServerUtils::PanicClient -// -// Panic the client using server. -// ----------------------------------------------------------------------------- -// -void PhoneServerUtils::PanicClient( - TPhoneServerPanic aPanic, - const RMessage2& aMessage ) - { - aMessage.Panic( - KPhoneServerPanicCategory, - aPanic ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhCltExtPhoneDialData.cpp --- a/phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhCltExtPhoneDialData.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,748 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Ext Phone Dial Data. -* -*/ - - - -// INCLUDE FILES -#include -#include - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneDialData::CPhCltExtPhoneDialData -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltExtPhoneDialData::CPhCltExtPhoneDialData(): CPhCltDialData() - { - } - - -// --------------------------------------------------------------------------- -// -// Symbian OS constructor -// -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::ConstructL() - { - CPhCltDialData::ConstructL(); - } - -// --------------------------------------------------------------------------- -// -// Symbian OS constructor -// Initialises the member data from package. -// -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::ConstructL( - const TDesC8& aPackage ) - { - RDesReadStream stream( aPackage ); - CleanupClosePushL( stream ); - - stream >> iTelNumber; - iCallType = static_cast( stream.ReadInt32L() ); - stream >> iName; - iWindowGroup = stream.ReadInt32L(); - iRedial = stream.ReadInt32L(); - iRedialMaximumDuration = stream.ReadInt32L(); - ReadDescriptorFromStreamL( stream, iContactLink ); - stream >> iSubAddress; - iShowNumber = stream.ReadInt32L(); - iAllowMatch = stream.ReadInt32L(); - iSATCall = stream.ReadInt32L(); - iEndOtherCalls = stream.ReadInt32L(); - stream >> iBearer; - iSendKey = stream.ReadInt32L(); - iReturnToNumberEntryOnFailure = stream.ReadInt32L(); - iInitCall = stream.ReadInt32L(); - iFlags = stream.ReadUint32L(); - iServiceId = stream.ReadUint32L(); - ReadDescriptorFromStreamL( stream, iUUI ); - CleanupStack::PopAndDestroy( 1 ); // stream; - } -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneDialData::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltExtPhoneDialData* CPhCltExtPhoneDialData::NewL() - { - CPhCltExtPhoneDialData* self = CPhCltExtPhoneDialData::NewLC(); - CleanupStack::Pop( self ); - return self; - } - -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneDialData::NewLC -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhCltExtPhoneDialData* CPhCltExtPhoneDialData::NewLC( ) - { - CPhCltExtPhoneDialData* self = new( ELeave ) CPhCltExtPhoneDialData; - CleanupStack::PushL( self ); - self->ConstructL(); - return self; - } - -// --------------------------------------------------------------------------- -// -// First phase constructor -// Initialises the member data from package. -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPhCltExtPhoneDialData* CPhCltExtPhoneDialData::NewL( - const TDesC8& aPackage ) - { - CPhCltExtPhoneDialData* self = CPhCltExtPhoneDialData::NewLC( aPackage ); - CleanupStack::Pop( self ); - return self; - } - -// --------------------------------------------------------------------------- -// -// First phase constructor -// Initialises the member data from package. -// -// --------------------------------------------------------------------------- -// -EXPORT_C CPhCltExtPhoneDialData* CPhCltExtPhoneDialData::NewLC( - const TDesC8& aPackage ) - { - CPhCltExtPhoneDialData* self = new( ELeave ) CPhCltExtPhoneDialData; - CleanupStack::PushL( self ); - self->ConstructL( aPackage ); - return self; - } - -// Destructor -EXPORT_C CPhCltExtPhoneDialData::~CPhCltExtPhoneDialData() - { - } - - - - - // Access - Setters - -// --------------------------------------------------------------------------- -// Sets allow match. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetAllowMatch( TBool aAllowMatch ) - { - iAllowMatch = aAllowMatch; - } - -// --------------------------------------------------------------------------- -// Sets bearer. -// --------------------------------------------------------------------------- -void CPhCltExtPhoneDialData::SetBearerL ( -const TPhCltBearerCapability& aBearer ) - { - iBearer = aBearer; - } - -// --------------------------------------------------------------------------- -// Sets call type. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetCallType( TPhCltCallType aCallType ) - { - iCallType = aCallType; - } - -// --------------------------------------------------------------------------- -// Sets used contact link. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetContactLinkL( const TDesC8& aContactLink ) - { - CopyDescriptorToMemberDescriptorL( aContactLink, iContactLink ); - } - -// --------------------------------------------------------------------------- -// Sets end other calls. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetEndOtherCalls( TBool aEndCalls ) - { - iEndOtherCalls = aEndCalls ; - } - - // --------------------------------------------------------------------------- -// Set initiate call. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetInitiateCall( TBool aInitCall ) - { - iInitCall = aInitCall; - } -// --------------------------------------------------------------------------- -// Set name. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetNameL( const TPhCltNameBuffer& aName ) - { - iName = aName; - } - -// --------------------------------------------------------------------------- -// Sets phone number. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetTelephoneNumber( - const TPhCltTelephoneNumber& aNumber ) - { - iTelNumber = aNumber; - } - -// --------------------------------------------------------------------------- -// Sets redial value. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetRedial( TInt aRedial ) - { - iRedial = aRedial; - } - -// --------------------------------------------------------------------------- -// Sets redial max duration time. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetRedialMaximumDuration( - TTimeIntervalSeconds aMaximumRedialDuration ) - { - iRedialMaximumDuration = aMaximumRedialDuration; - } - -// --------------------------------------------------------------------------- -// Sets SAT call. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetSATCall( TBool aIsSATCall ) - { - iSATCall = aIsSATCall; - } - -// ----------------------------------------------------------------------------- -// SetSendKeyPressed -// -// -// ----------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetSendKeyPressed( TBool aSendKey ) - { - iSendKey = aSendKey; - } - -// --------------------------------------------------------------------------- -// Set show number. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetShowNumber( TBool aShowNumber ) - { - iShowNumber = aShowNumber; - } - -// --------------------------------------------------------------------------- -// Sets SubAddress for SAT call. -// --------------------------------------------------------------------------- -void CPhCltExtPhoneDialData::SetSubAddressL( - const TPhCltSubAddress& aSubAddress ) - { - iSubAddress = aSubAddress; - } - -// --------------------------------------------------------------------------- -// Sets window group. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetWindowGroup( TInt aWindowGroup ) - { - iWindowGroup = aWindowGroup; - } - -// --------------------------------------------------------------------------- -// Sets window group. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetUUIL( const TDesC& aUUI ) - { - CopyDescriptorToMemberDescriptorL( aUUI, iUUI ); - } - -// Access - Getters - -// --------------------------------------------------------------------------- -// Return allow match. -// --------------------------------------------------------------------------- -// -TBool CPhCltExtPhoneDialData::AllowMatch() const - { - return iAllowMatch; - } - -// --------------------------------------------------------------------------- -// Returns bearer. -// --------------------------------------------------------------------------- -// -const TPhCltBearerCapability& CPhCltExtPhoneDialData::Bearer() const - { - return iBearer; - } - -// --------------------------------------------------------------------------- -// Returns call type. -// --------------------------------------------------------------------------- -// -TPhCltCallType CPhCltExtPhoneDialData::CallType() const - { - return iCallType; - } - -// --------------------------------------------------------------------------- -// Return contact link. -// --------------------------------------------------------------------------- -// -const TDesC8& CPhCltExtPhoneDialData::ContactLink() const - { - return *iContactLink; - } - -// --------------------------------------------------------------------------- -// Returns end other calls value. -// --------------------------------------------------------------------------- -// -TBool CPhCltExtPhoneDialData::EndOtherCalls() const - { - return iEndOtherCalls; - } - -// --------------------------------------------------------------------------- -// Returns initiate call. -// --------------------------------------------------------------------------- -// -TBool CPhCltExtPhoneDialData::InitiateCall() const - { - return iInitCall; - } - -// --------------------------------------------------------------------------- -// Returns name. -// --------------------------------------------------------------------------- -// -const TPhCltNameBuffer& CPhCltExtPhoneDialData::Name() const - { - return iName; - } - -// --------------------------------------------------------------------------- -// Returns phone number. -// --------------------------------------------------------------------------- -// -const TPhCltTelephoneNumber& CPhCltExtPhoneDialData::TelephoneNumber() const - { - return iTelNumber; - } - -// --------------------------------------------------------------------------- -// Return redial value. -// --------------------------------------------------------------------------- -// -TInt CPhCltExtPhoneDialData::Redial() const - { - return iRedial; - } -// --------------------------------------------------------------------------- -// Returns redial max duration. -// --------------------------------------------------------------------------- -// -const TTimeIntervalSeconds CPhCltExtPhoneDialData::RedialMaximumDuration() const - { - return iRedialMaximumDuration; - } - -// --------------------------------------------------------------------------- -// Returns SAT call value. -// --------------------------------------------------------------------------- -// -TBool CPhCltExtPhoneDialData::SATCall() const - { - return iSATCall; - } - - // ----------------------------------------------------------------------------- -// SendKeyPressed -// -// -// ----------------------------------------------------------------------------- -// -TBool CPhCltExtPhoneDialData::SendKeyPressed() const - { - return iSendKey; - } - -// --------------------------------------------------------------------------- -// Returns show number. -// --------------------------------------------------------------------------- -// -TBool CPhCltExtPhoneDialData::ShowNumber() const - { - return iShowNumber; - } - -// --------------------------------------------------------------------------- -// Returns subaddress. -// --------------------------------------------------------------------------- -// -const TPhCltSubAddress& CPhCltExtPhoneDialData::SubAddress() const - { - return iSubAddress; - } - -// --------------------------------------------------------------------------- -// Return window group. -// --------------------------------------------------------------------------- -// -TInt CPhCltExtPhoneDialData::WindowGroup() const - { - return iWindowGroup; - } - -// --------------------------------------------------------------------------- -// Return user to user information -// --------------------------------------------------------------------------- -// -const TDesC& CPhCltExtPhoneDialData::UUI() const - { - return *iUUI; - } - - // Other member functions - -// --------------------------------------------------------------------------- -// Calculates the size of descriptor in package. Note that to retreave -// a descriptor from stream in ConstructL we need to know the size of a -// descriptor in order to allocate right size descriptor. This is the reason -// for adding sizeof( int ) to descriptor length. -// --------------------------------------------------------------------------- -// -TInt CPhCltExtPhoneDialData::CalculateDescriptorSize( const TDesC& aDescriptor ) const - { - // sizeof( TInt ) is for the length of a descriptor. - return sizeof( TInt ) + aDescriptor.Length() * 2; // unicode takes 2 bytes. - } - -// --------------------------------------------------------------------------- -// Calculates the size of descriptor in package. Note that to retreave -// a descriptor from stream in ConstructL we need to know the size of a -// descriptor in order to allocate right size descriptor. This is the reason -// for adding sizeof( int ) to descriptor length. -// --------------------------------------------------------------------------- -// -TInt CPhCltExtPhoneDialData::CalculateDescriptorSize( const TDesC8& aDescriptor ) const - { - // sizeof( TInt ) is for the length of a descriptor in stream - return sizeof( TInt ) + aDescriptor.Length(); - } - -// --------------------------------------------------------------------------- -// Calculates the size of all member data. -// --------------------------------------------------------------------------- -// -EXPORT_C TInt CPhCltExtPhoneDialData::CalculatePackageSize() const - { - TInt packageSize = 0; - packageSize += CalculateDescriptorSize( iTelNumber ); - packageSize += sizeof( iCallType ); - packageSize += CalculateDescriptorSize( iName ); - packageSize += sizeof( iWindowGroup ); - packageSize += sizeof( iRedial ); - packageSize+=sizeof( iRedialMaximumDuration.Int() ); - if ( iContactLink ) - { - packageSize += CalculateDescriptorSize( *iContactLink ); - } - packageSize += CalculateDescriptorSize( iSubAddress ); - packageSize += sizeof( iShowNumber); - packageSize += sizeof( iAllowMatch ); - packageSize += sizeof( iSATCall ); - packageSize += sizeof( iEndOtherCalls ); - packageSize += CalculateDescriptorSize( iBearer ); - packageSize += sizeof (iSendKey ); - packageSize += sizeof( iReturnToNumberEntryOnFailure); - packageSize += sizeof (iInitCall ); - packageSize += sizeof( iFlags ); - packageSize += sizeof( iServiceId ); - packageSize += CalculateDescriptorSize( *iUUI ); - return packageSize; - } - -// --------------------------------------------------------------------------- -// Checks that descriptorLength is not longer than maximum allowed descriptor -// length. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::CheckDescriptorMaxLengthL( - TInt aDescriptorLength, TInt aMaxAllowedDescriptorLength ) const - { - if( aDescriptorLength > aMaxAllowedDescriptorLength ) - { - User::Leave( KErrArgument ); - } - } - -// --------------------------------------------------------------------------- -// Copies aSource descriptor to aMemberDescriptor. This quarantees that member -// descriptor will be valid even if the allocation fails. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::CopyDescriptorToMemberDescriptorL( - const TDesC& aSource, - HBufC*& aMemberDescriptor ) - { - HBufC* temp = aSource.AllocL(); - delete aMemberDescriptor; - aMemberDescriptor = temp; - } - -// --------------------------------------------------------------------------- -// Copies aSource descriptor to aMemberDescriptor. This quarantees that member -// descriptor will be valid even if the allocation fails. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::CopyDescriptorToMemberDescriptorL( - const TDesC8& aSource, - HBufC8*& aMemberDescriptor ) - { - HBufC8* temp = aSource.AllocL(); - delete aMemberDescriptor; - aMemberDescriptor = temp; - } - - -// --------------------------------------------------------------------------- -// Reads descriptor from stream. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::ReadDescriptorFromStreamL( - RDesReadStream& aStream, - HBufC8*& aDescriptor - ) - { - const TInt descLength( aStream.ReadInt32L() ); - if ( aDescriptor ) - { - delete aDescriptor; - } - // Not to cleanupstack, aDescriptor is member variable - aDescriptor = HBufC8::NewL( descLength ); - TPtr8 ptr = aDescriptor->Des(); - aStream.ReadL( ptr, descLength ); - } - -// --------------------------------------------------------------------------- -// Reads descriptor from stream. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::ReadDescriptorFromStreamL( - RDesReadStream& aStream, - HBufC*& aDescriptor ) - { - const TInt descLength( aStream.ReadInt32L() ); - if ( aDescriptor ) - { - delete aDescriptor; - } - // Not to cleanupstack, aDescriptor will be member variable - aDescriptor = HBufC::NewL( descLength ); - TPtr16 ptr = aDescriptor->Des(); - aStream.ReadL( ptr, descLength ); - } - -// --------------------------------------------------------------------------- -// Writes descriptor to stream. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::WriteDescriptorToStreamL( - RDesWriteStream& aStream, - const TDesC8& aDescriptor ) - { - aStream.WriteInt32L( aDescriptor.Length() ); - aStream.WriteL( aDescriptor ); - } - -// --------------------------------------------------------------------------- -// Writes descriptor to stream. -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::WriteDescriptorToStreamL( - RDesWriteStream& aStream, - const TDesC& aDescriptor ) - { - aStream.WriteInt32L( aDescriptor.Length() ); - aStream.WriteL( aDescriptor ); - } - -// --------------------------------------------------------------------------- -// Packs the member data to descriptor. Ownershipd of returned descriptor -// is given for caller. -// --------------------------------------------------------------------------- -// -EXPORT_C HBufC8* CPhCltExtPhoneDialData::PackLC() - { - HBufC8* package = HBufC8::NewLC( CalculatePackageSize() ); - - TPtr8 des = package->Des(); - RDesWriteStream stream( des ); - - CleanupClosePushL( stream ); - - stream << iTelNumber; - stream.WriteInt32L( iCallType ); - stream << iName; - stream.WriteInt32L( iWindowGroup ); - stream.WriteInt32L( iRedial ); - stream.WriteInt32L( iRedialMaximumDuration.Int() ); - if ( iContactLink ) - { - WriteDescriptorToStreamL( stream, *iContactLink ); - } - stream << iSubAddress; - stream.WriteInt32L( iShowNumber ); - stream.WriteInt32L( iAllowMatch ); - stream.WriteInt32L( iSATCall); - stream.WriteInt32L( iEndOtherCalls ); - stream << iBearer; - stream.WriteInt32L( iSendKey ); - stream.WriteInt32L( iReturnToNumberEntryOnFailure ); - stream.WriteInt32L( iInitCall ); - - - iFlags = EPhCltCallFlagsDefault; - - if ( iShowNumber ) - { - iFlags |= EPhCltCallFlagsAllowNumberShowing; - } - - if ( iAllowMatch ) - { - iFlags |= - EPhCltCallFlagsAllowPersonalDirectoryMatching; - } - if ( iEndOtherCalls ) - { - iFlags |= EPhCltCallFlagsEndBeforeDial; - } - - if ( iSATCall ) - { - iFlags |= EPhCltCallFlagsSAT; - } - - if ( ( iCallType == EPhCltVideo ) || ( iCallType == EPhCltForcedVideo ) ) - { - iFlags |= EPhCltCallFlagsVideoCall; - } - - if ( iCallType == EPhCltCallVoIP ) - { - iFlags |= EPhCltCallFlagsVoIPCall; - } - - if ( iSendKey ) - { - iFlags |= EPhCltCallFlagsSendKey; - } - - stream.WriteUint32L( iFlags ); - stream.WriteUint32L( iServiceId ); - WriteDescriptorToStreamL( stream, *iUUI ); - stream.CommitL(); - - CleanupStack::PopAndDestroy( 1 ); // stream - - return package; - - } - -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneDialData::SetServiceId -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhCltExtPhoneDialData::SetServiceId( TUint32 aServiceId ) - { - iServiceId = aServiceId; - } - -// ----------------------------------------------------------------------------- -// CPhCltExtPhoneDialData::ServiceId -// -// -// ----------------------------------------------------------------------------- -// -EXPORT_C TUint32 CPhCltExtPhoneDialData::ServiceId() const - { - return iServiceId; - } - -// --------------------------------------------------------------------------- -// Sets dial data values using given package -// -// --------------------------------------------------------------------------- -// -void CPhCltExtPhoneDialData::SetParamsL( - const TDesC8& aPackage ) - { - RDesReadStream stream( aPackage ); - CleanupClosePushL( stream ); - - stream >> iTelNumber; - iCallType = static_cast( stream.ReadInt32L() ); - stream >> iName; - iWindowGroup = stream.ReadInt32L(); - iRedial = stream.ReadInt32L(); - iRedialMaximumDuration = stream.ReadInt32L(); - ReadDescriptorFromStreamL( stream, iContactLink ); - stream >> iSubAddress; - iShowNumber = stream.ReadInt32L(); - iAllowMatch = stream.ReadInt32L(); - iSATCall = stream.ReadInt32L(); - iEndOtherCalls = stream.ReadInt32L(); - stream >> iBearer; - iSendKey = stream.ReadInt32L(); - iReturnToNumberEntryOnFailure = stream.ReadInt32L(); - iInitCall = stream.ReadInt32L(); - iFlags = stream.ReadUint32L(); - iServiceId = stream.ReadUint32L(); - ReadDescriptorFromStreamL( stream, iUUI ); - - CleanupStack::PopAndDestroy( 1 ); // stream; - } -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhSrvCallRequest.cpp --- a/phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhSrvCallRequest.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,185 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Call Request. -* -*/ - - -// INCLUDE FILES - -#include "cphsrvcallrequest.h" -#include "phsrvutils.h" - - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CPhSrvNotificationManager::CPhSrvCallRequest -// -// C++ constructor -// ----------------------------------------------------------------------------- -// -CPhSrvCallRequest::CPhSrvCallRequest( - const RMessage2& aMessage, - CPhCltExtPhoneDialData& aArguments, - TInt aSubSessionHandle ) - : iPendingRequestPointer( aMessage ), - iSubSessionHandle( aSubSessionHandle ) - { - iCallArguments = &aArguments; - } - -// ----------------------------------------------------------------------------- -// CPhSrvNotificationManager::CPhSrvCallRequest -// -// C++ constructor -// ----------------------------------------------------------------------------- -// -CPhSrvCallRequest::CPhSrvCallRequest() - { - } - -// ----------------------------------------------------------------------------- -// CPhSrvNotificationManager::NewLC -// -// Static Symbian OS two-phase constructor. Return an instance -// and leave it on the cleanup stack. -// ----------------------------------------------------------------------------- -// -CPhSrvCallRequest* CPhSrvCallRequest::NewLC( - const RMessage2& aMessage, - CPhCltExtPhoneDialData& aArguments, - TInt aSubSessionHandle ) - { - CPhSrvCallRequest* self = new( ELeave ) CPhSrvCallRequest( - aMessage, - aArguments, - aSubSessionHandle ); - CleanupStack::PushL( self ); - - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvNotificationManager::NewL -// -// Static Symbian OS two-phase constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvCallRequest* CPhSrvCallRequest::NewL() - { - CPhSrvCallRequest* self = new( ELeave ) CPhSrvCallRequest(); - - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvNotificationManager::InformOfCallAttemptResult -// -// Complete a client request which will indicate the result -// of attempting to dial a number. -// ----------------------------------------------------------------------------- -// -void CPhSrvCallRequest::InformOfCallAttemptResult( - TPhCltPhoneResults aResultOfAttemptingCall ) - { - // Complete the client's pending request, indicating - // the result of the attempt. - iPendingRequestPointer.Complete( aResultOfAttemptingCall ); - } - - - -// ----------------------------------------------------------------------------- -// CPhSrvNotificationManager::Cancel -// -// Complete the client's request with KErrCancel -// ----------------------------------------------------------------------------- -// -void CPhSrvCallRequest::Cancel() - { - iPendingRequestPointer.Complete( KErrCancel ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvNotificationManager::SubSessionHandle -// -// Return the handle of the subsession that initiated the -// original dial request. -// ----------------------------------------------------------------------------- -// -TInt CPhSrvCallRequest::SubSessionHandle() const - { - return iSubSessionHandle; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvNotificationManager::CallArguments -// -// Returns the call arguments -// ----------------------------------------------------------------------------- -// -CPhCltExtPhoneDialData& CPhSrvCallRequest::CallArguments() const - { - return *iCallArguments; - - } - -// ----------------------------------------------------------------------------- -// CPhSrvNotificationManager::UpdateEmercgencyCall -// -// Set new parameter to emergency object. -// ----------------------------------------------------------------------------- -// -void CPhSrvCallRequest::UpdateEmercgencyCall( - const RMessage2& aMessage, - CPhCltExtPhoneDialData& aArguments, - TInt aSubSessionHandle) - { - - __ASSERT_ALWAYS( aArguments.TelephoneNumber() == KPhSrvUsedEmergencyCallNumber, - PhoneServerUtils::Panic( - EPhoneServerPanicEmergencyCallRequestFailure ) ); - - iPendingRequestPointer = aMessage; - iCallArguments = &aArguments; - iSubSessionHandle = aSubSessionHandle; - } - -// ----------------------------------------------------------------------------- -// CPhSrvNotificationManager::ClearEmergencyCall -// -// Emtpies Emergency call data -// ----------------------------------------------------------------------------- -// -void CPhSrvCallRequest::ClearEmergencyCall() - { - if ( iSubSessionHandle == 0 ) - { - return; - } - __ASSERT_ALWAYS( - iCallArguments->TelephoneNumber() == KPhSrvUsedEmergencyCallNumber, - PhoneServerUtils::Panic( - EPhoneServerPanicEmergencyCallRequestFailure ) ); - iSubSessionHandle = 0; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhSrvCallRequestManager.cpp --- a/phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhSrvCallRequestManager.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,291 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Call Request Manager. -* -*/ - - - -// INCLUDES -#include "cphsrvcallrequestmanager.h" -#include "cphsrvcallrequest.h" -#include "cphsrvsubsessionbase.h" -#include "phsrvutils.h" - - -// CONSTANTS - -// The size of the Notification manager storage. -const TInt KPhSrvNotificationManagerPendingCallGranularity = 4; - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvCallRequestManager::CPhSrvCallRequestManager -// -// C++ constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvCallRequestManager::CPhSrvCallRequestManager() - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvCallRequestManager::~CPhSrvCallRequestManager -// -// C++ destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvCallRequestManager::~CPhSrvCallRequestManager() - { - if ( iOutstandingRequestsCall ) - { - iOutstandingRequestsCall->ResetAndDestroy(); - iOutstandingRequestsCall->Close(); - } - delete iOutstandingRequestsCall; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvCallRequestManager::ConstructL -// -// Complete construction. -// ----------------------------------------------------------------------------- -// -void CPhSrvCallRequestManager::ConstructL() - { - iOutstandingRequestsCall = new ( ELeave ) RPointerArray< - CPhSrvCallRequest >( KPhSrvNotificationManagerPendingCallGranularity ); - - CPhSrvCallRequest* emergencyCallRequest = CPhSrvCallRequest::NewL(); - CleanupStack::PushL( emergencyCallRequest ); - User::LeaveIfError( - iOutstandingRequestsCall->Append( emergencyCallRequest ) ); - CleanupStack::Pop(); // emergencyCallRequest - } - - -// ----------------------------------------------------------------------------- -// CPhSrvCallRequestManager::NegotiatorDialL -// -// Initiate a dial request - called by the external call -// interface. -// ----------------------------------------------------------------------------- -// -void CPhSrvCallRequestManager::NegotiatorDialL( - const RMessage2& aMessage, - CPhCltExtPhoneDialData& aArgs, - CPhSrvSubSessionBase& aSubSession ) - { - // If we have no registered initiator then we can't make a call. - if ( !iCallInitiator ) - { - User::Leave( KErrNotReady ); - } - - if ( aArgs.TelephoneNumber() == KPhSrvUsedEmergencyCallNumber && - ( *iOutstandingRequestsCall )[0]->SubSessionHandle() == 0 ) - { - ( *iOutstandingRequestsCall )[0]->UpdateEmercgencyCall( - aMessage, - aArgs, - aSubSession.SubSessionUniqueHandle() ); - } - else - { - // Create pending request - CPhSrvCallRequest* request = CPhSrvCallRequest::NewLC( - aMessage, - aArgs, - aSubSession.SubSessionUniqueHandle() ); - - User::LeaveIfError( iOutstandingRequestsCall->Append( request ) ); - CleanupStack::Pop( request ); - } - - // Now see if the call notifier (initiator) is ready - if ( iCallInitiator->InitiatorIsReadyToMakeCall() ) - { - // Ask the call initiator to make the call (basically completes the - //phone app engine's outstanding call notifier request). - iCallInitiator->InitiatorMakeAsynchronousCallL( aArgs ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvCallRequestManager::NegotiatorDialCancel -// -// Cancel a pending dial request. -// ----------------------------------------------------------------------------- -// -void CPhSrvCallRequestManager::NegotiatorDialCancelL( - CPhSrvSubSessionBase& aSubSession ) - { - // Obtain the subsessions handle - const TInt handle = aSubSession.SubSessionUniqueHandle(); - - // Now look for any pending requests that match. - const TInt count = iOutstandingRequestsCall->Count(); - for( TInt i = 0; i < count; i++ ) - { - CPhSrvCallRequest* entry = ( *iOutstandingRequestsCall )[i]; - if ( entry->SubSessionHandle() == handle ) - { - // Found matching entry, so cancel it and clean up - if ( i == 0 ) // 0 stands for emergency call - { - entry->Cancel(); - entry->ClearEmergencyCall(); - } - else - { - iOutstandingRequestsCall->Remove( i ); - entry->Cancel(); - delete entry; - } - - // If we have more than one item in the queue, then we - // try and fire of the next item here. - if ( iCallInitiator->InitiatorIsReadyToMakeCall() && - ( iOutstandingRequestsCall->Count() > 1 || - ( *iOutstandingRequestsCall )[0]->SubSessionHandle() != 0 ) ) - { - // Get the call at the top of the list (head of the queue) - CPhSrvCallRequest* head = NULL; - if ( ( *iOutstandingRequestsCall )[0]->SubSessionHandle() != 0 ) - { - head = ( *iOutstandingRequestsCall )[0]; - } - else - { - head = ( *iOutstandingRequestsCall )[1]; - } - - - iCallInitiator->InitiatorMakeAsynchronousCallL( - head->CallArguments() ); - } - - return; - } - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvCallRequestManager::SetNegotiatorReadyCall -// -// Updates the negotiator so that it knows if the notifier -// session is able to make a call. -// ----------------------------------------------------------------------------- -// -void CPhSrvCallRequestManager::SetNegotiatorReadyCallL( - MPhSrvInitiatorCall& aInitiator ) - { - // There mustn't already be a call initiator, or the existing call - // initiator must be the same as the new one (otherwise, panic). - __ASSERT_ALWAYS( !iCallInitiator || &aInitiator == iCallInitiator, - PhoneServerUtils::Panic( - EPhoneServerPanicExistingCallInitiatorFault ) ); - - // Update our pointer - iCallInitiator = &aInitiator; - - // If we have more than one item in the queue, then we - // try and fire of the next item here. - if ( iCallInitiator->InitiatorIsReadyToMakeCall() && - ( iOutstandingRequestsCall->Count() > 1 || - ( *iOutstandingRequestsCall )[0]->SubSessionHandle() != 0 ) ) - { - // Get the call at the top of the list (head of the queue) - CPhSrvCallRequest* head = NULL; - if ( ( *iOutstandingRequestsCall )[0]->SubSessionHandle() != 0 ) - { - head = ( *iOutstandingRequestsCall )[0]; - } - else - { - head = ( *iOutstandingRequestsCall )[1]; - } - - iCallInitiator->InitiatorMakeAsynchronousCallL( - head->CallArguments() ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvCallRequestManager::SetNegotiatorReadyCallCancel -// -// Indicates that the initiator is no longer available -// ----------------------------------------------------------------------------- -// -void CPhSrvCallRequestManager::SetNegotiatorReadyCallCancel( - MPhSrvInitiatorCall& aInitiator ) - { - if ( iCallInitiator && iCallInitiator == &aInitiator ) - { - iCallInitiator = NULL; - } - } - -// ----------------------------------------------------------------------------- -// CPhSrvCallRequestManager::SetNegotiatorAttemptedCallResponseValue -// -// Handle a response from the phone app engine - this is the -// result of attempting to make a call (based upon a previous -// clients external call request) -// ----------------------------------------------------------------------------- -// -void CPhSrvCallRequestManager::SetNegotiatorAttemptedCallResponseValue( - TPhCltPhoneResults aResult ) - { - if ( iOutstandingRequestsCall->Count() > 1 || - ( *iOutstandingRequestsCall )[0]->SubSessionHandle() != 0 ) - { - // Get the first item in the list - this is the oldest, and has the - // details of the call we had previously initiated. - CPhSrvCallRequest* head = NULL; - if ( ( *iOutstandingRequestsCall )[0]->SubSessionHandle() != 0 ) - { - head = ( *iOutstandingRequestsCall )[0]; - } - else - { - head = ( *iOutstandingRequestsCall )[1]; - } - // Complete the request so that the external call client knows the - // result of the call attempt - head->InformOfCallAttemptResult( aResult ); - - // Delete the pending request (now that it's been processed) and tidy - // up - if ( ( *iOutstandingRequestsCall )[0]->SubSessionHandle() != 0 ) - { - ( *iOutstandingRequestsCall )[0]->ClearEmergencyCall(); - } - else - { - iOutstandingRequestsCall->Remove( 1 ); - delete head; - } - } - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhSrvEmergencyRequestManager.cpp --- a/phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhSrvEmergencyRequestManager.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,201 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Call Request Manager. -* -*/ - - - -// INCLUDES -#include "cphsrvemergencyrequestmanager.h" -#include "cphsrvsubsessionbase.h" -#include "phsrvutils.h" - - -// CONSTANTS - -// The size of the Notification manager storage. -//const TInt KPhSrvNotificationManagerPendingCallGranularity = 4; - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvEmergencyRequestManager::CPhSrvEmergencyRequestManager -// -// C++ constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvEmergencyRequestManager::CPhSrvEmergencyRequestManager() - : iIsRequestPending( EFalse ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvEmergencyRequestManager::~CPhSrvEmergencyRequestManager -// -// C++ destructor. -// ----------------------------------------------------------------------------- -// -CPhSrvEmergencyRequestManager::~CPhSrvEmergencyRequestManager() - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvEmergencyRequestManager::ConstructL -// -// Complete construction. -// ----------------------------------------------------------------------------- -// -void CPhSrvEmergencyRequestManager::ConstructL() - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvEmergencyRequestManager::EmergencyDialL -// -// Initiate a dial request - called by the external call -// interface. Checks if emergency initiator is ready and sets request pending if -// emergency initiator hasn't been registered yet -// ----------------------------------------------------------------------------- -// -void CPhSrvEmergencyRequestManager::EmergencyDialL( - const RMessage2& aMessage ) - { - // If we have no registered initiator then we can't make a call. - if ( !iEmergencyInitiator ) - { - if( iIsRequestPending ) - { - User::Leave( KErrAlreadyExists ); - } - else - { - iPendingRequest = aMessage; - iIsRequestPending = ETrue; - } - } - else - { - DoMakeEmergencyDial( aMessage ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvEmergencyRequestManager::DoMakeEmergencyDial -// -// Do the actual emergency dial request for emergency initiator. -// ----------------------------------------------------------------------------- -// -void CPhSrvEmergencyRequestManager::DoMakeEmergencyDial( const RMessage2& aMessage ) - { - iPendingRequestPointer= aMessage; - - // Clear pending request status - iIsRequestPending = EFalse; - - // Now see if the call notifier (initiator) is ready - if ( iEmergencyInitiator ->InitiatorIsReadyToMakeEmergencyCall() ) - { - // Ask the call initiator to make the call (basically completes the - //phone app engine's outstanding call notifier request). - iEmergencyInitiator ->InitiatorMakeEmergencyCall( aMessage ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvEmergencyRequestManager::EmergencyDialCancel -// -// Cancel a pending dial request. -// ----------------------------------------------------------------------------- -// -void CPhSrvEmergencyRequestManager::EmergencyDialCancel() - { - // Clear pending request status - iIsRequestPending = EFalse; - - if ( !iPendingRequestPointer.IsNull() ) - { - iPendingRequestPointer.Complete( KErrCancel ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvEmergencyRequestManager::SetNegotiatorReadyCall -// -// Updates the negotiator so that it knows if the notifier -// session is able to make a call. -// ----------------------------------------------------------------------------- -// -void CPhSrvEmergencyRequestManager::SetNegotiatorReadyCall( - MPhSrvEmergencyCall& aInitiator ) - { - // There mustn't already be a call initiator, or the existing call - // initiator must be the same as the new one (otherwise, panic). - __ASSERT_ALWAYS( !iEmergencyInitiator || &aInitiator == iEmergencyInitiator, - PhoneServerUtils::Panic( - EPhoneServerPanicExistingCallInitiatorFault ) ); - - // Update our pointer - iEmergencyInitiator = &aInitiator; - - if( iIsRequestPending ) - { - DoMakeEmergencyDial( iPendingRequest ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvEmergencyRequestManager::SetNegotiatorReadyCallCancel -// -// Indicates that the initiator is no longer available -// ----------------------------------------------------------------------------- -// -void CPhSrvEmergencyRequestManager::SetNegotiatorReadyCallCancel( - MPhSrvEmergencyCall& aInitiator ) - { - if ( iEmergencyInitiator && iEmergencyInitiator == &aInitiator ) - { - iEmergencyInitiator = NULL; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvEmergencyRequestManager::SetNegotiatorAttemptedCallResponseValue -// -// Handle a response from the phone app engine - this is the -// result of attempting to make a call (based upon a previous -// clients external call request) -// ----------------------------------------------------------------------------- -// -void CPhSrvEmergencyRequestManager::SetNegotiatorAttemptedCallResponseValue( - TPhCltPhoneResults aResult ) - { - if ( !iPendingRequestPointer.IsNull() ) - { - iPendingRequestPointer.Complete( aResult ); - } - } - - -// End of File - diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhSrvSubSessionEmergencyNum.cpp --- a/phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhSrvSubSessionEmergencyNum.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,238 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Sub Session Emergency Num. -* -*/ - - - -// INCLUDE FILES -#include "cphsrvsubsessionemergencynum.h" -#include -#include -#include "cphsrvsession.h" -#include "cphsrvserver.h" -#include "mphsrvphoneinterface.h" -#include "mphsrvemergencynumbermanager.h" -#include "mphsrvemergencynegotiators.h" -#include "phsrvdebuginfo.h" - -// CONSTANTS - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionEmergencyNum::CPhSrvSubSessionEmergencyNum -// -// C++ Constructor -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionEmergencyNum::CPhSrvSubSessionEmergencyNum( - CPhSrvSession& aSession ) -: CPhSrvSubSessionBase( aSession, EPhSrvSubSessionTypeEmergencyNumber ) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionEmergencyNum::ConstructL -// -// Symbian OS 2nd phase constructor -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionEmergencyNum::ConstructL() - { - CPhSrvSubSessionBase::ConstructL(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionEmergencyNum::PhSrvMessageDecoderCanProcessMessage -// -// Framework function. Returns ETrue for the op codes that -// this subsession can handle. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionEmergencyNum::PhSrvMessageDecoderCanProcessMessage( - TInt aFunction ) - { - switch(aFunction) - { - case EPhoneServerEmergencyNumberSubSessionClose: - case EPhoneServerEmergencyNumberSubSessionIsEmergencyNumber: - case EPhoneServerEmergencyNumberSubsessionEmergencyDial: - case EPhoneServerEmergencyNumberSubsessionEmergencyDialCancel: - return ETrue; - - default: - return EFalse; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionEmergencyNum::PhSrvMessageProcessorHandleMessageL -// -// Framework function. Handle any op-codes here. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionEmergencyNum::PhSrvMessageProcessorHandleMessageL( - const RMessage2& aMessage ) - { - TBool permissionStatus ( EFalse ); - - // Check needed capabilities - TBool hasCapNetworkControlAndServices ( EFalse ); - hasCapNetworkControlAndServices = aMessage.HasCapability( ECapabilityNetworkControl, - ECapabilityNetworkServices ); - switch( aMessage.Function() ) - { - case EPhoneServerEmergencyNumberSubSessionClose: - CmdSubSessionCloseL( aMessage ); - permissionStatus = ETrue; - break; - case EPhoneServerEmergencyNumberSubSessionIsEmergencyNumber: - CmdSubSessionIsEmergencyNumberL( aMessage ); - permissionStatus = ETrue; - break; - case EPhoneServerEmergencyNumberSubsessionEmergencyDial: - if ( hasCapNetworkControlAndServices ) - { - CmdSubSessionDialEmergencyCallL( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerEmergencyNumberSubsessionEmergencyDialCancel: - if ( hasCapNetworkControlAndServices ) - { - CmdSubSessionDialEmergencyCallCancelL( aMessage ); - permissionStatus = ETrue; - } - break; - - default: - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicInvalidRequest ); - break; - } - - // If caps are not ok - if( !permissionStatus ) - { - aMessage.Complete( KErrPermissionDenied ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionEmergencyNum::CmdSubSessionCloseL -// -// Close the sub-session -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionEmergencyNum::CmdSubSessionCloseL( - const RMessage2& aMessage ) - { - PhoneSession().CloseSubSession( aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionEmergencyNum::CmdSubSessionIsEmergencyNumberL -// -// Check if the specified number is an emergency number -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionEmergencyNum::CmdSubSessionIsEmergencyNumberL( - const RMessage2& aMessage ) - { - _DPRINT( 4, "PhSrv.CPhSrvSubSessionEmergencyNum:Start"); - // Read from client-side - TPhCltTelephoneNumber number; - TPckg< TPhCltTelephoneNumber > pNumber( number ); - Read( - aMessage, - 0, - pNumber ); - - const TPhCltEmergencyNumberQueryMode mode = - static_cast< TPhCltEmergencyNumberQueryMode >( aMessage.Int2() ); - - // Is this an emergency number? - const TBool isEmergencyNumber = - PhoneSession().PhoneServer().EmergencyNumberManagerL(). - EmergencyNumberManagerIsEmergencyNumberL( number, mode ); - const TPckg< TBool > pIsEmergencyNumber( isEmergencyNumber ); - - // Write back to client - if ( mode == EPhCltEmergencyNumberQueryModeAdvanced && isEmergencyNumber || - mode == EPhCltEmergencyNumberQueryModeNormalWriteback && isEmergencyNumber ) - { - TPckg< TPhCltTelephoneNumber > pNumber2( number ); - Write( - aMessage, - 0, - pNumber2 // write emergency number back. - ); - } - - Write( - aMessage, - 1, // write emergency number check result back. - pIsEmergencyNumber ); - - aMessage.Complete( KErrNone ); -_DPRINT( 4, "PhSrv.CPhSrvSubSessionEmergencyNum.End" ); // debug print - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionEmergencyNum::CmdSubSessionDialEmergencyCall -// -// Initiates emergency call -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionEmergencyNum::CmdSubSessionDialEmergencyCallL( - const RMessage2& aMessage ) - { - _DPRINT( 4, "PhSrv.CPhSrvSubSessionEmergencyNum.DialEM" ); // debug print - // Submit a new request to the call manager - MPhSrvEmergencyNegotiatorCall& callNegotiator = - PhoneSession().PhoneServer().EmergencyCallNegotiatorL(); - callNegotiator.EmergencyDialL( aMessage ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionEmergencyNum::CmdSubSessionDialEmergencyCallCancelL -// -// Cancel emergency call -// -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionEmergencyNum::CmdSubSessionDialEmergencyCallCancelL( - const RMessage2& aMessage ) - { - _DPRINT( 4, "PhSrv.CPhSrvSubSessionEmergencyNum.EMCancel" ); // debug print - // Submit a new request to the call manager - MPhSrvEmergencyNegotiatorCall& callNegotiator = - PhoneSession().PhoneServer().EmergencyCallNegotiatorL(); - callNegotiator.EmergencyDialCancel(); - aMessage.Complete( KErrNone ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhSrvSubSessionExtCall.cpp --- a/phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhSrvSubSessionExtCall.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,236 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Sub Session Ext Call. -* -*/ - - -// INCLUDE FILES -#include "cphsrvsubsessionextcall.h" -#include "cphsrvsession.h" -#include "cphsrvserver.h" -#include "mphsrvobjectnegotiators.h" - -// Hash mark -_LIT( KPhoneHash, "#" ); - -// dtmf chars -_LIT( KPhoneDtmfNumberChars, "pw" ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionExtCall::CPhSrvSubSessionExtCall -// -// C++ Constructor -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionExtCall::CPhSrvSubSessionExtCall(CPhSrvSession& aSession) -: CPhSrvSubSessionBase(aSession, EPhSrvSubSessionTypeExternalCall) - { - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionExtCall::PhSrvMessageDecoderCanProcessMessage -// -// Framework function. Returns ETrue for the op codes that -// this subsession can handle. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionExtCall::PhSrvMessageDecoderCanProcessMessage( - TInt aFunction ) - { - switch( aFunction ) - { - case EPhoneServerExtCallSubSessionClose: - case EPhoneServerExtCallSubSessionMakeCall: - case EPhoneServerExtCallSubSessionMakeCallCancel: - return ETrue; - - default: - return EFalse; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionEmergencyNum::PhSrvMessageProcessorHandleMessageL -// -// Framework function. Handle any op-codes here. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionExtCall::PhSrvMessageProcessorHandleMessageL( - const RMessage2& aMessage ) - { - TBool permissionStatus ( EFalse ); - TBool dtmfNumber( EFalse ); //contains 'p' or 'w' - TBool isSSUssd( EFalse ); //is USSD/SS string - TBool hasUssdSSCaps( EFalse ); //has USSD/SS string correct capabilities - - TBool hasCapNetworkServices( EFalse ); - TBool hasCapNetworkControlAndServices( EFalse ); - TBool hasCapWriteAndReadDeviceData ( EFalse ); - // Capabilities needed if NOT USSD/SS string - hasCapNetworkServices = aMessage.HasCapability( ECapabilityNetworkServices ); - - switch( aMessage.Function() ) - { - case EPhoneServerExtCallSubSessionClose: - CmdSubSessionCloseL( aMessage ); - permissionStatus = ETrue; - break; - case EPhoneServerExtCallSubSessionMakeCall: - CreateCallArgsL( aMessage ); - // Checks if telephone number contains dtmf string - dtmfNumber = IsDtmfPhoneNumber( iCallArgs->TelephoneNumber()); - if ( !dtmfNumber ) - { - // Checks if telephone number is USSD/SS string - isSSUssd = ( iCallArgs->TelephoneNumber().Right( KPhoneHash().Length() ) == KPhoneHash ); - if ( isSSUssd ) - { - // Capabilities needed if USSD/SS string - hasCapNetworkControlAndServices = aMessage.HasCapability( ECapabilityNetworkControl, - ECapabilityNetworkServices ); - hasCapWriteAndReadDeviceData = aMessage.HasCapability( ECapabilityReadDeviceData, ECapabilityWriteDeviceData ); - hasUssdSSCaps = hasCapNetworkControlAndServices && hasCapWriteAndReadDeviceData; - } - } - if ( ( hasCapNetworkServices && !isSSUssd ) || hasUssdSSCaps ) - { - CmdSubSessionMakeCallL( aMessage ); - permissionStatus = ETrue; - } - break; - case EPhoneServerExtCallSubSessionMakeCallCancel: - if ( hasCapNetworkServices ) - { - CmdSubSessionMakeCallCancelL( aMessage ); - permissionStatus = ETrue; - } - break; - - default: - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicInvalidRequest ); - break; - } - - // If caps are not ok - if( !permissionStatus ) - { - aMessage.Complete( KErrPermissionDenied ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionExtCall::CmdSubSessionCloseL -// -// Close the sub-session -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionExtCall::CmdSubSessionCloseL( const RMessage2& aMessage ) - { - delete iCallArgs; - iCallArgs =NULL; - PhoneSession().CloseSubSession( aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionExtCall::CmdSubSessionMakeCallL -// -// Setup an asynchronous request to handle external interface -// call requests. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionExtCall::CmdSubSessionMakeCallL( - const RMessage2& aMessage ) - { - - // Submit a new request to the call manager - MPhSrvNegotiatorCall& callNegotiator = PhoneSession().PhoneServer( - ).CallNegotiatorL(); - callNegotiator.NegotiatorDialL( aMessage, *iCallArgs, *this ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionExtCall::CmdSubSessionMakeCallCancelL -// -// Cancel an outstanding request to handle call initiations. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionExtCall::CmdSubSessionMakeCallCancelL( - const RMessage2& aMessage ) - { - // Ask the negotiator to delete any pending call request for this - // subsession. It will panic the client if one can't be found. - MPhSrvNegotiatorCall& callNegotiator = PhoneSession().PhoneServer( - ).CallNegotiatorL(); - - callNegotiator.NegotiatorDialCancelL( *this ); - aMessage.Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionExtCall::CreateCallArgs -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionExtCall::CreateCallArgsL( const RMessage2& aMessage ) - { - HBufC8* package = HBufC8::NewLC( aMessage.Int1() ); - TPtr8 calldata( package->Des() ); - PhoneSession().Read( - aMessage, - 0, - calldata ); - - iCallArgs = CPhCltExtPhoneDialData::NewL( *package ); - CleanupStack::PopAndDestroy( package ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionExtCall::IsDtmfPhoneNumber -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionExtCall::IsDtmfPhoneNumber( - const TDesC& aString ) - { - - - // String must contain 'p' or 'w'. - TBool must = EFalse; - - { - TPtrC chs( KPhoneDtmfNumberChars ); - const TInt length = chs.Length(); - TInt index; - - for ( index = 0; index < length; index++ ) - { - if ( aString.Locate( chs[ index ] ) != KErrNotFound ) - { - must = ETrue; - break; - } - } - } - - return must; - } -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhSrvSubSessionNotifier.cpp --- a/phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/CPhSrvSubSessionNotifier.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,623 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Sub Session Notifier. -* -*/ - - - -// INCLUDE FILES -#include -#include "cphsrvsubsessionnotifier.h" -#include "cphsrvsession.h" -#include "cphsrvserver.h" -#include "mphsrvemergencynegotiators.h" -#include "mphsrvobjectnegotiators.h" -#include "mphsrvcomhandnegotiators.h" - -// CONSTANTS -// None. - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::CPhSrvSubSessionNotifier -// -// C++ Constructor -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionNotifier::CPhSrvSubSessionNotifier( CPhSrvSession& aSession ) - : CPhSrvSubSessionBase( aSession, EPhSrvSubSessionTypeCallNotifier ), - iTelNumberPckg( iTelNumber ) - { - - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::~CPhSrvSubSessionNotifier -// -// C++ Destructor -// ----------------------------------------------------------------------------- -// -CPhSrvSubSessionNotifier::~CPhSrvSubSessionNotifier() - { - if ( PhoneSession().PhoneServer().IsCallNegotiator() ) - { - PhoneSession(). - PhoneServer(). - CallNegotiator(). - SetNegotiatorReadyCallCancel( *this ); - } - if ( PhoneSession().PhoneServer().IsEmergencyCallNegotiator() ) - { - PhoneSession(). - PhoneServer(). - EmergencyCallNegotiator(). - SetNegotiatorReadyCallCancel( *this ); - } - if ( PhoneSession().PhoneServer().IsComHandNegotiator() ) - { - PhoneSession(). - PhoneServer(). - ComHandNegotiator(). - SetNegotiatorReadyRequestCancel( *this ); - - } - delete iDialData; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::ConstructL -// -// Symbian OS 2nd phase constructor -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CPhSrvSubSessionNotifier::ConstructL() - { - CPhSrvSubSessionBase::ConstructL(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::PhSrvMessageDecoderCanProcessMessage -// -// Framework function. Returns ETrue for the op codes that -// this subsession can handle. -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionNotifier::PhSrvMessageDecoderCanProcessMessage( - TInt aFunction ) - { - switch( aFunction ) - { - case EPhoneServerNotifySubSessionClose: - case EPhoneServerNotifySubSessionNotifyCallRequest: - case EPhoneServerNotifySubSessionNotifyCallRequestCancel: - case EPhoneServerNotifySubSessionReportCallResult: - case EPhoneServerNotifySubSessionDialData: - - case EPhoneServerNotifyEmergencySubSessionNotifyCallRequest: - case EPhoneServerNotifyEmergencySubSessionNotifyCallRequestCancel: - case EPhoneServerNotifyEmergencySubSessionReportCallResult: - - case EPhoneServerComHandNotifySubSessionComHandRequest: - case EPhoneServerComHandNotifySubSessionComHandRequestCancel: - case EPhoneServerComHandNotifySubSessionReportComHandResult: - - return ETrue; - - default: - return EFalse; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::PhSrvMessageProcessorHandleMessageL -// -// Framework function. Handle any op-codes here. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::PhSrvMessageProcessorHandleMessageL( - const RMessage2& aMessage ) - { - switch( aMessage.Function() ) - { - case EPhoneServerNotifySubSessionClose: - CmdSubSessionCloseL( aMessage ); - break; - case EPhoneServerNotifySubSessionNotifyCallRequest: - CmdSubSessionNotifyCallRequestL( aMessage ); - break; - case EPhoneServerNotifySubSessionNotifyCallRequestCancel: - CmdSubSessionNotifyCallRequestCancelL( aMessage ); - break; - case EPhoneServerNotifySubSessionReportCallResult: - CmdSubSessionReportCallResultL( aMessage ); - break; - case EPhoneServerNotifySubSessionDialData: - CmdSubSessionDialDataL( aMessage ); - break; - case EPhoneServerNotifyEmergencySubSessionNotifyCallRequest: - CmdSubSessionNotifyEmergencyL( aMessage ); - break; - case EPhoneServerNotifyEmergencySubSessionNotifyCallRequestCancel: - CmdSubSessionNotifyEmergencyCancel( aMessage ); - break; - case EPhoneServerNotifyEmergencySubSessionReportCallResult: - CmdSubSessionReportEmergencyCallResultL( aMessage ); - break; - case EPhoneServerComHandNotifySubSessionComHandRequest: - CmdSubSessionComHandNotifyRequestL( aMessage ); - break; - case EPhoneServerComHandNotifySubSessionComHandRequestCancel: - CmdSubSessionComHandNotifyRequestCancelL( aMessage ); - break; - case EPhoneServerComHandNotifySubSessionReportComHandResult: - CmdSubSessionComHandNotifyReportL( aMessage ); - break; - default: - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicInvalidRequest ); - break; - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::InitiatorMakeAsynchronousCall -// -// Called by the phone call negotiator when it wants this -// object to initiate a call (on behalf of the external -// interface). -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::InitiatorMakeAsynchronousCallL( - CPhCltExtPhoneDialData& aArgs ) - { - // data length to send - const TInt dataLength = aArgs.CalculatePackageSize(); - - const TPckg< TInt > pDataLength( dataLength ); - //save dial data - CmdSubSessionCloneDialDataL( aArgs ); - - PhoneSession().Write( - iPendingDialRequestPointer, - 0, - pDataLength ); - - // Indicate that the phone notifier should try and make the call. - if ( !iPendingDialRequestPointer.IsNull() ) - { - iPendingDialRequestPointer.Complete( KErrNone ); - } - iHavePendingDialRequestPointer = EFalse; - - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::InitiatorIsReadyToMakeCall -// -// Does this session have a pending request? -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionNotifier::InitiatorIsReadyToMakeCall() const - { - return iHavePendingDialRequestPointer; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::CmdSubSessionCloseL -// -// Close the sub-session -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::CmdSubSessionCloseL( - const RMessage2& aMessage ) - { - PhoneSession().CloseSubSession( aMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::CmdSubSessionNotifyCallRequestL -// -// Setup an asynchronous request to handle external interface -// call requests. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::CmdSubSessionNotifyCallRequestL( - const RMessage2& aMessage ) - { - // Update our pending request pointer if it's not already set - if ( iHavePendingDialRequestPointer ) - { - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicRequestAlreadyActive ); - } - else - { - iPendingDialRequestPointer = aMessage; - iHavePendingDialRequestPointer = ETrue; - - // The phone app engine is ready to process a call request. - // Tell the negotiator that we're ready to process any pending - // requests. - MPhSrvNegotiatorCall& callNegotiator = - PhoneSession().PhoneServer().CallNegotiatorL(); - callNegotiator.SetNegotiatorReadyCallL( *this ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::CmdSubSessionNotifyCallRequestCancelL -// -// Cancel an outstanding request to handle call initiations. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::CmdSubSessionNotifyCallRequestCancelL( - const RMessage2& aMessage ) - { - if ( !iHavePendingDialRequestPointer ) - { - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicRequestNotActive ); - } - else - { - if ( !iPendingDialRequestPointer.IsNull() ) - { - iPendingDialRequestPointer.Complete( KErrCancel ); - } - iHavePendingDialRequestPointer = EFalse; - } - - aMessage.Complete( KErrNone ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::CmdSubSessionReportCallResultL -// -// Tell the external call interface client the result of -// dialing a call. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::CmdSubSessionReportCallResultL( - const RMessage2& aMessage ) - { - // Get result - const TPhCltPhoneResults result = - static_cast< TPhCltPhoneResults >( aMessage.Int0() ); - - // Tell call negotiator of result - MPhSrvNegotiatorCall& callNegotiator = - PhoneSession().PhoneServer().CallNegotiatorL(); - callNegotiator.SetNegotiatorAttemptedCallResponseValue( result ); - - // Complete the request - aMessage.Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::CmdSubSessionCloneDialData -// -// Clones call arguments to object -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::CmdSubSessionCloneDialDataL( - CPhCltExtPhoneDialData& aArgs ) - { - iDialData = CPhCltExtPhoneDialData::NewL(); - iDialData->SetTelephoneNumber( aArgs.TelephoneNumber() ); - iDialData->SetCallType( aArgs.CallType() ); - iDialData->SetNameL( aArgs.Name() ); - iDialData->SetWindowGroup( aArgs.WindowGroup() ); - iDialData->SetRedial( aArgs.Redial() ); - iDialData->SetRedialMaximumDuration( aArgs.RedialMaximumDuration() ); - iDialData->SetContactLinkL( aArgs.ContactLink() ); - iDialData->SetSubAddressL( aArgs.SubAddress() ); - iDialData->SetShowNumber( aArgs.ShowNumber() ); - iDialData->SetAllowMatch( aArgs.AllowMatch() ); - iDialData->SetSATCall( aArgs.SATCall() ); - iDialData->SetEndOtherCalls( aArgs.EndOtherCalls() ); - iDialData->SetBearerL( aArgs.Bearer() ); - iDialData->SetSendKeyPressed( aArgs.SendKeyPressed() ); - iDialData->SetInitiateCall( aArgs.InitiateCall() ); - iDialData->SetServiceId( aArgs.ServiceId() ); - iDialData->SetUUIL( aArgs.UUI() ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::CmdSubSessionDialDataL -// -// Tell the external call interface client the result of -// dialing a call. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::CmdSubSessionDialDataL ( - const RMessage2& aMessage ) - { - HBufC8* package = NULL; - package = iDialData->PackLC(); - if ( package ) - { - PhoneSession().Write( - aMessage, - 0, - *package ); - aMessage.Complete( KErrNone ); - CleanupStack::PopAndDestroy( package ); - } - delete iDialData; - iDialData = NULL; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::InitiatorMakeAsynchronousCall -// -// Called by the phone call negotiator when it wants this -// object to initiate a call (on behalf of the external -// interface). -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::InitiatorMakeEmergencyCall( const RMessage2& aMessage ) - { - - // Write to phone notifier's address space - PhoneSession().Read( - aMessage, - 0, - iTelNumberPckg ); - - PhoneSession().Write( - iPendingEmergencyRequestPointer, - 0, - iTelNumberPckg ); - - // Indicate that the phone notifier should try and make the call. - if ( !iPendingEmergencyRequestPointer.IsNull() ) - { - iPendingEmergencyRequestPointer.Complete( KErrNone ); - } - iHavePendingEmergencyRequestPointer = EFalse; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::InitiatorIsReadyToMakeCall -// -// Does this session have a pending request? -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionNotifier::InitiatorIsReadyToMakeEmergencyCall() const - { - return iHavePendingEmergencyRequestPointer; - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::CmdSubSessionNotifyCallRequestL -// -// Setup an asynchronous request to handle external interface -// call requests. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::CmdSubSessionNotifyEmergencyL( - const RMessage2& aMessage ) - { - // Update our pending request pointer if it's not already set - if ( iHavePendingEmergencyRequestPointer ) - { - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicRequestAlreadyActive ); - } - else - { - iPendingEmergencyRequestPointer = aMessage; - iHavePendingEmergencyRequestPointer = ETrue; - - // The phone app engine is ready to process a call request. - // Tell the negotiator that we're ready to process any pending - // requests. - MPhSrvEmergencyNegotiatorCall& emergencyNegotiator = - PhoneSession().PhoneServer().EmergencyCallNegotiatorL(); - emergencyNegotiator.SetNegotiatorReadyCall( *this ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::CmdSubSessionNotifyCallRequestCancelL -// -// Cancel an outstanding request to handle call initiations. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::CmdSubSessionNotifyEmergencyCancel( - const RMessage2& aMessage ) - { - if ( !iHavePendingEmergencyRequestPointer ) - { - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicRequestNotActive ); - } - else - { - if ( !iPendingEmergencyRequestPointer.IsNull() ) - { - iPendingEmergencyRequestPointer.Complete( KErrCancel ); - } - iHavePendingEmergencyRequestPointer = EFalse; - } - - aMessage.Complete( KErrNone ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::CmdSubSessionReportEmergencyCallResultL -// -// Tell the external call interface client the result of -// dialing a call. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::CmdSubSessionReportEmergencyCallResultL( - const RMessage2& aMessage ) - { - // Get result - const TPhCltPhoneResults result = - static_cast< TPhCltPhoneResults >( aMessage.Int0() ); - - // Tell call negotiator of result - MPhSrvEmergencyNegotiatorCall& emergencyNegotiator = - PhoneSession().PhoneServer().EmergencyCallNegotiatorL(); - emergencyNegotiator.SetNegotiatorAttemptedCallResponseValue( result ); - - // Complete the request - aMessage.Complete( KErrNone ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::InitiatorMakeAsynchronousComHandRequest -// -// Called by the command handler negotiator when it wants this object to -// initiate a command handler request (on behalf of the external interface). -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier:: - InitiatorMakeAsynchronousComHandRequest( - const TPhCltComHandCommandParameters& aParams ) - { - // Package up the data to send - TPckgC< TPhCltComHandCommandParameters > - comHandDetails( aParams ); - - // Write to command handler notifier's address space - PhoneSession().Write( - iPendingComHandRequestPointer, - 0, - comHandDetails ); - - // Indicate that the command handler notifier should try to perform the - // request. - if ( !iPendingComHandRequestPointer.IsNull() ) - { - iPendingComHandRequestPointer.Complete( KErrNone ); - } - iHavePendingComHandRequestPointer = EFalse; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::InitiatorIsReadyToPerformRequest -// -// Does this session have a pending request? -// ----------------------------------------------------------------------------- -// -TBool CPhSrvSubSessionNotifier::InitiatorIsReadyToPerformRequest() - const - { - return iHavePendingComHandRequestPointer; - } - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::CmdSubSessionComHandNotifyRequestL -// -// Handle command handler notifier's request. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::CmdSubSessionComHandNotifyRequestL( - const RMessage2& aMessage ) - { - // Update our pending request pointer if it's not already set - if ( iHavePendingComHandRequestPointer ) - { - PhoneSession().PanicClient( - aMessage, - EPhCltServerInitiatedPanicRequestAlreadyActive ); - } - else - { - iPendingComHandRequestPointer = aMessage; - iHavePendingComHandRequestPointer = ETrue; - - // The phone app engine is ready to process a command handler request. - // Tell the negotiator that we're ready to process any pending - // requests. - MPhSrvComHandNegotiator& comHandNegotiator = - PhoneSession().PhoneServer().ComHandNegotiatorL(); - comHandNegotiator.SetNegotiatorReadyRequestL( *this ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier:: -// CmdSubSessionComHandNotifyRequestCancelL -// -// Handle command handler notifier's request cancel. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier:: - CmdSubSessionComHandNotifyRequestCancelL( - const RMessage2& aMessage ) - { - if ( iHavePendingComHandRequestPointer ) - { - iPendingComHandRequestPointer.Complete( KErrCancel ); - iHavePendingComHandRequestPointer = EFalse; - } - - aMessage.Complete( KErrNone ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvSubSessionNotifier::CmdSubSessionComHandNotifyReportL -// -// Tell the result of the request execution to the command handler client. -// ----------------------------------------------------------------------------- -// -void CPhSrvSubSessionNotifier::CmdSubSessionComHandNotifyReportL( - const RMessage2& aMessage ) - { - // Get result - const TPhCltPhoneResults result = - static_cast< TPhCltPhoneResults >( aMessage.Int0() ); - - // Tell command handler negotiator of result - MPhSrvComHandNegotiator& comHandNegotiator = - PhoneSession().PhoneServer().ComHandNegotiatorL(); - comHandNegotiator.SetNegotiatorAttemptedRequestResponseValue( result ); - - // Complete the request - aMessage.Complete( KErrNone ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/cphcltdialdata.cpp --- a/phoneclientserver/phoneserver/Src/Standard/Standard_Aiw/cphcltdialdata.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Ext Phone Dial Data. -* -*/ - - - -// INCLUDE FILES -#include -#include "cphcltextphonedialdata.h" // For correct default values - -// ============================ MEMBER FUNCTIONS =============================== - - -// ----------------------------------------------------------------------------- -// CPhCltDialData::CPhCltDialData -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhCltDialData::CPhCltDialData(): - iTelNumber( KNullDesC ), - iCallType( EPhCltVoice ), - iName( KNullDesC ), - iWindowGroup( KPhCltGoToIdle ), - iRedial( KPhCltRedialDefault ), - iSubAddress( KNullDesC ), - iShowNumber( ETrue ), - iAllowMatch( KPhCltDefaultAllowMatch ), - iSATCall( EFalse ), - iEndOtherCalls( EFalse ), - iBearer( KNullDesC8 ), - iSendKey( EFalse ), - iReturnToNumberEntryOnFailure( KPhCltDefaultNumberEntry ), - iInitCall ( EFalse ), - iFlags( CPhCltExtPhoneDialData::EPhCltCallFlagsDefault ), - iServiceId( NULL ) - { - iRedialMaximumDuration = 0; - } - - -// Destructor -CPhCltDialData::~CPhCltDialData() - { - delete iContactLink; - iContactLink = NULL; - delete iUUI; - iUUI = NULL; - } - -void CPhCltDialData::ConstructL() - { - iContactLink = KNullDesC8().AllocL(); - iUUI = KNullDesC().AllocL(); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdManager.cpp --- a/phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdManager.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2192 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: USSD Manager. -* -*/ - -// INCLUDE FILES -#include "cphsrvussdmanager.h" -#include "phsrvutils.h" -#include "cphsrvussdsendhandler.h" -#include "cphsrvussdreceivehandler.h" -#include "cphsrvussdnotifynwrelease.h" -#include "cphsrvresourcemanager.h" -#include "cphsrvussdreplytimer.h" -#include "mphsrvussdmessagesentobserver.h" -#include "mphsrvphoneinterface.h" -#include "cphsrvussdsessioncancelwaiter.h" - -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include "phsrvdebuginfo.h" -#include -#include -#include - - -// CONSTANTS -const TInt KPhSrvDefaultValue = 0x00000000; -// See SharedDataKeysVariant.h or NcnListInternalPSKeys.h -// const TInt KPhSrvUssdNoTone = 0; -// const TInt KPhSrvUssdTimeOutObserverGranularity = 2; -// const TInt KPhSrvUssdSentMessageObserverGranularity = 2; -// See KUssdSecureId in phcltclientserver.h -//const TInt KPhSrvUssdAppUID = 0x10005955; - -const TInt KPhSrvUssdMessageQueryInterval = 500000; // 0.5 sec -//const TInt KPhSrvUssdNoteExitPeriod = 500000; // 0.5 sec -// -const TUint KPhSrvUssdDefaultDCS = 0x0f; // 00001111 - -const TUint KPhSrvUssdDcsAlphabetDefaultPrecededLanguage = 0x10;// 00010000 -const TUint KPhSrvUssdDcsAlphabetDefaultPrecededLanguageSkipChars3 = 3; -const TUint KPhSrvUssdDcsAlphabetDefaultPrecededLanguageSkipChars2 = 2; -const TUint KPhSrvUssdDcsAlphabetDefaultPrecededLanguageStartBit = 5; - -const TUint KPhSrvUssdDcsAlphabetUCS2PrecededLanguage = 0x11; // 00010001 -const TUint KPhSrvUssdDcsAlphabetUCS2PrecededLanguageSkipChars = 2; - -const TUint KPhSrvUssdDcsGeneralInformationMask = 0xc0; // 11000000 -const TUint KPhSrvUssdDcsGeneralInformation = 0x40; // 01xxxxxx -const TUint KPhSrvUssdDcsGeneralInformationCompressed = 0x20; // xx1xxxxx -const TUint KPhSrvUssdDcsGeneralInformationSimMask = 0x13; // 00010011 -const TUint KPhSrvUssdDcsGeneralInformationSim = 0x12; // xxx1xx10 -const TUint KPhSrvUssdDcsGeneralInformationAlphabetMask = 0x0c; // 00001100 -const TUint KPhSrvUssdDcsGeneralInformationAlphabet8Bit = 0x04; // xxxx01xx -const TUint KPhSrvUssdDcsGeneralInformationAlphabetUCS2 = 0x08; // xxxx10xx - -const TUint KPhSrvUssdDcsMessageHandlingAlphabetMask = 0xf4; // 11110100 -const TUint KPhSrvUssdDcsMessageHandlingAlphabet8Bit = 0xf4; // 1111x1xx -const TInt KPhrUssdNotifyArraySize = 1; - -// Refers to HbPopup::NoDismiss = 0 -const TInt KPhSrvUssdPopupDismissPolicy = 0; -// The time out only for testing, from CPhSrvUssdReplyTimer.cpp -const TUint KPhSrvUssdTimeout = 300000000; - -// Use QT style localization -_LIT(KUssdLocFilename, "ussd_"); -_LIT(KCommonLocFilename, "common_"); -_LIT(KLocPath, "z:\\resource\\qt\\translations"); -_LIT(KUssdReply, "txt_ussd_button_reply"); // Reply -_LIT(KUssdExit, "txt_ussd_button_exit"); // Exit -_LIT(KUssdNext, "txt_ussd_button_next"); //Next -_LIT(KUssdYes, "txt_common_button_yes"); // Yes -_LIT(KUssdNo, "txt_common_button_no"); // No -_LIT(KUssdTitle, "txt_ussd_title_message"); // Message -_LIT(KUssdDone, "txt_ussd_dpopinfo_done"); // Done -_LIT(KUssdConfirm, "txt_ussd_info_there_are_still_unread_notifications"); - -// MACROS - -#define _DPRINT_FLAGS() \ - _DDPRINT( 4, "PhSrv.FLAGS.MsgTypeReply ", iMsgTypeReply ); \ - _DDPRINT( 4, "PhSrv.FLAGS.NwReleased ", iNetworkReleased ); \ - _DDPRINT( 4, "PhSrv.FLAGS.SendingAck ", iSendingAck ); \ - _DDPRINT( 4, "PhSrv.FLAGS.AcksToBeSent ", iAcksToBeSent ); \ - _DDPRINT( 4, "PhSrv.FLAGS.iSendRelease ", iSendRelease ); \ - _DDPRINT( 4, "PhSrv.FLAGS.iClearArray ", iClearArray ); \ - _DDPRINT( 4, "PhSrv.FLAGS.iLaunchGMQ ", iLaunchGMQ ); \ - _DDPRINT( 4, "PhSrv.FLAGS.NotifyCount ", NotifyCount() ); \ - _DDPRINT( 4, "PhSrv.FLAGS.iShowDone ", iShowDone ); - -// ============================= LOCAL FUNCTIONS =============================== - -// CLASS DECLARATION - -#ifndef TPHSRVUSSDALPHABETPACKER_H -#define TPHSRVUSSDALPHABETPACKER_H - -// CONSTANTS -const TUint8 KPhSrvUssdCarriageReturn = 0x0d; - -/** -* Packs and unpacks data encoded in an Ussd alphabet. -* -* @since 1.0 -*/ -class TPhSrvUssdAlphabetPacker - { - public: // Constructors and destructor - - /** - * Constructor. - * - * @param aAlphabet The alphabet that is used. - * @param aIsBinary Is the data binary, that will be converted. - * @param aStartBit The start bit for conversion. - */ - TPhSrvUssdAlphabetPacker( - TSmsDataCodingScheme::TSmsAlphabet aAlphabet, - TBool aIsBinary, - TInt aStartBit ); - - - public: // New functions - - /** - * Unpacks 7-bit buffer to 8-bit buffer. - * - * @param aIn Descriptor where the 7-bit buffer is. - * @param aOut 8-bit buffer to set the result. - * @param aNumUDUnits Buffer length. - * @return Length of the result buffer. - */ - TInt UnpackL( - const TDesC8& aIn, - TDes8& aOut, - TInt aNumUDUnits ); - - /** - * Unpacks 7-bit buffer to 8-bit and converts to unicode. - * - * @param aCharacterSetConverter Does the converting. - * @param aFs File server session. - * @param aIn Packed 7-bit buffer. - * @param aOut Unicode buffer. - * @param aNumUDUnits Number of charahters. - * @return Number of used octets in 8-bit buffer. - */ - TInt UnpackAndConvertL( - CCnvCharacterSetConverter& aCharacterSetConverter, - RFs& aFs, - const TDesC8& aIn, - TDes& aOut, - TInt aNumUDUnits ); - - /** - * Counts the needed octet amout. - * - * @param aNumUDUnits Number of source characters. - * @return Octets needed. - */ - TInt PackedOctetsRequiredL( TInt aNumUDUnits ) const; - - - private: - - // Private helper methods - TInt ElementSizeInBitsL() const; - - - private: // Data - - // The used coding alphabet. - TSmsDataCodingScheme::TSmsAlphabet iAlphabet; - - // Is the packed data binary. - TBool iIsBinary; - - // The start bit for packing. - TInt iStartBit; - }; - -#endif // TPHSRVUSSDALPHABETPACKER_H - - -// ----------------------------------------------------------------------------- -// TPhSrvUssdAlphabetPacker::TPhSrvUssdAlphabetPacker -// Constructor. -// -// ----------------------------------------------------------------------------- -// -TPhSrvUssdAlphabetPacker::TPhSrvUssdAlphabetPacker( - TSmsDataCodingScheme::TSmsAlphabet aAlphabet, - TBool aIsBinary, - TInt aStartBit) - : iAlphabet( aAlphabet ),iIsBinary( aIsBinary ),iStartBit( aStartBit ) - { - } - - -// ----------------------------------------------------------------------------- -// TPhSrvUssdAlphabetPacker::UnpackL -// Unpacks user data units from aIn and appends to aOut. -// -// ----------------------------------------------------------------------------- -// -TInt TPhSrvUssdAlphabetPacker::UnpackL( - const TDesC8& aIn, - TDes8& aOut, - TInt aNumUDUnits ) - { - TInt length = aNumUDUnits; - // Ensure we've got enough output buffer - if ( aOut.Length() + length > aOut.MaxLength() ) - { - User::Leave(KErrCorrupt); - } - - TInt elementSizeInBits = ElementSizeInBitsL(); - if ( elementSizeInBits == 8 ) // 8-bit data? - { - aOut.Append( aIn ); - } - else if ( elementSizeInBits == 7 ) // need unpacking from 7-bit data - { - // Get raw pointers and do unpacking - TUint8* outPtr = ( TUint8* )aOut.Ptr() + aOut.Length(); - const TUint8* inPtr = aIn.Ptr(); - - for ( TInt i = 0; i < length; i++ ) - { - TInt from = ( *inPtr >> iStartBit ) & 0x7F; // Take seven bits - if ( iStartBit ) - { - inPtr++; - // Take more from next byte - from |= ( *inPtr << ( 8 - iStartBit ) ) & 0x7F; - } - outPtr[i] = ( TUint8 ) from; - iStartBit = ( iStartBit + 7 ) % 8; // roll: 0,1,2,...,6,7,0,1,2... - } - - // The last character will be ignored if message ends - // on an octet bounday with CR. - if ( outPtr[ length-1 ] == KPhSrvUssdCarriageReturn && iStartBit == 0 ) - { - length--; - } - aOut.SetLength( aOut.Length() + length ); - } - else - { - __ASSERT_DEBUG(EFalse, - PhoneServerUtils::Panic( EPhoneServerPanicModeLogicFault ) ); - } - return length; - } - - -// ----------------------------------------------------------------------------- -// TPhSrvUssdAlphabetPacker::UnpackAndConvertL -// Unpacks the converts the input data, aIn, and appends to aOut -// -// ----------------------------------------------------------------------------- -// -TInt TPhSrvUssdAlphabetPacker::UnpackAndConvertL( - CCnvCharacterSetConverter& aCharacterSetConverter, - RFs& aFs, - const TDesC8& aIn, - TDes& aOut, - TInt aNumUDUnits ) - { - - // Unpack first - HBufC8* unpackedBuffer = HBufC8::NewLC( aNumUDUnits ); - TPtr8 unpackedBufferPtr( unpackedBuffer->Des() ); - UnpackL( aIn, unpackedBufferPtr,aNumUDUnits ); - - // Convert - CSmsAlphabetConverter* converter = - CSmsAlphabetConverter::NewLC( - aCharacterSetConverter, aFs, iAlphabet, iIsBinary ); - - TPtrC convertedPtr = converter->ConvertToNativeL( *unpackedBuffer ); - if ( convertedPtr.Length() > ( aOut.MaxLength() - aOut.Length() ) ) - { - User::Leave( KErrCorrupt ); - } - // Cleanup and return - aOut.Append( convertedPtr ); - CleanupStack::PopAndDestroy( 2 ); // unpackedBuffer, converter - return aNumUDUnits; - } - - -// ----------------------------------------------------------------------------- -// TPhSrvUssdAlphabetPacker::PackedOctetsRequiredL -// Returns the number of octets needed to pack the specified number of -// -// ----------------------------------------------------------------------------- -// -TInt TPhSrvUssdAlphabetPacker::PackedOctetsRequiredL( TInt aNumUDUnits ) const - - { - TInt octetsRequired = 0; - TInt elementSizeInBits = ElementSizeInBitsL(); - if ( elementSizeInBits == 8 ) - { - octetsRequired=aNumUDUnits; - } - else - { - octetsRequired = - ( iStartBit+aNumUDUnits * elementSizeInBits + 7 ) / 8; // Rounds up - } - return octetsRequired; - } - -// ----------------------------------------------------------------------------- -// TPhSrvUssdAlphabetPacker::ElementSizeInBitsL -// Returns the size in bits of a UDL element for the alphabet. Leaves if -// invalid data coding scheme. -// ----------------------------------------------------------------------------- -// -TInt TPhSrvUssdAlphabetPacker::ElementSizeInBitsL() const - { - if (iIsBinary) - return 8; - switch ( iAlphabet ) - { - case TSmsDataCodingScheme::ESmsAlphabet7Bit: - { - return 7; - } - case TSmsDataCodingScheme::ESmsAlphabet8Bit: - case TSmsDataCodingScheme::ESmsAlphabetUCS2: - { - return 8; - } - default: - { - User::Leave(KErrGsmSMSDataCodingSchemeNotSupported); - return 8; - } - } - } - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::CPhSrvUssdManager -// -// Constructor -// -// ----------------------------------------------------------------------------- -// -CPhSrvUssdManager::CPhSrvUssdManager( - RFs& aFsSession, - CPhSrvResourceManager& aResourceManager - ) - :CActive( EPriorityLow ), - iFsSession( aFsSession ), - iResourceManager( aResourceManager ), - iDeviceDialog( NULL ), - iDCS ( KPhCltDcsUnknown ), - iReturnResultPckg ( iReturnResult ), - iTextResolver ( EFalse ), - iTextBuffer ( NULL ) - { - CActiveScheduler::Add( this ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::~CPhSrvUssdManager -// -// Destructor -// -// ----------------------------------------------------------------------------- -// -CPhSrvUssdManager::~CPhSrvUssdManager() - { - _DPRINT( 4, "PhSrv.~CPhSrvUssdManager.start" ); - - - delete iUssdSendHandler; - iUssdSendHandler = NULL; - - delete iUssdReceiveHandler; - iUssdReceiveHandler = NULL; - - delete iUssdNotifyNWRelease; - iUssdNotifyNWRelease = NULL; - - Cancel(); - - iTimer.Close(); - - delete iTextBuffer; - iTextBuffer = NULL; - - delete iDeviceDialog; - iDeviceDialog = NULL; - - if ( iNotifyArray ) - { - iNotifyArray->Reset(); - } - delete iNotifyArray; - if ( iUssdReplyTimer ) - { - iUssdReplyTimer->Stop(); - } - delete iUssdReplyTimer; - iUssdReplyTimer = NULL; - - iFsSession.Close(); - - iMobileUssdMessaging.Close(); - - delete iMoAckCallback; - - _DPRINT( 4, "PhSrv.~CPhSrvUssdManager.end" ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::ConstructL -// -// Symbian OS 2nd phase constructor -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::ConstructL( MPhSrvPhoneInterface& aPhoneInterface ) - { - _DPRINT( 4, "PhSrv.ConstructL.Start" ); - iTextResolver = HbTextResolverSymbian::Init( - KUssdLocFilename, KLocPath ); - _DDPRINT( 4, "PhSrv.ConstructL.ussd loc:", iTextResolver ); - User::LeaveIfError( iTimer.CreateLocal() ); - - User::LeaveIfError( iMobileUssdMessaging.Open( aPhoneInterface.PhSrvMobilePhone() ) ); - - // Check support - RMobileUssdMessaging::TMobileUssdCapsV1 caps; - RMobileUssdMessaging::TMobileUssdCapsV1Pckg pckgCaps( caps ); - User::LeaveIfError( iMobileUssdMessaging.GetCaps( pckgCaps ) ); - - if ( !( ( caps.iUssdTypes & RMobileUssdMessaging::KCapsMTUssd ) == 0 && - ( caps.iUssdFormat & RMobileUssdMessaging::KCapsPackedString ) == 0 ) ) - { - _DPRINT( 4, "PhSrv.CPhSrvUssdManager::ConstructL" ); - iUssdReceiveHandler = new( ELeave ) CPhSrvUssdReceiveHandler( - *this, - iMobileUssdMessaging ); - iUssdReceiveHandler->ConstructL(); - - iUssdNotifyNWRelease = new( ELeave ) CPhSrvUssdNotifyNWRelease( - *this, - iMobileUssdMessaging ); - - iUssdNotifyNWRelease->ConstructL(); - } - - iPhoneInterface = &aPhoneInterface; - - SendHandlerL(); - - iMoAckCallback = new (ELeave) CAsyncCallBack( TCallBack( MoAckCallback, this ), CActive::EPriorityIdle ); - - iVariantReadOnlyValues = KPhSrvDefaultValue; - - User::LeaveIfError( GetTelephonyVariantData() ); - - _DDPRINT( 4, "PhSrv.ConstructL.iSatCanceled ", iSatCanceled ); - _DDPRINT( 4, "PhSrv.ConstructL.iShowDone ", iShowDone ); - iNotifyArray = new( ELeave ) CDesCArrayFlat( KPhrUssdNotifyArraySize ); - _DPRINT( 4, "PhSrv.ConstructL.End" ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::SendHandlerL -// -// The send handler. -// -// ----------------------------------------------------------------------------- -// -CPhSrvUssdSendHandler& CPhSrvUssdManager::SendHandlerL() - { - // If SendHandler is not created, first check that MO Ussd - // is supported by the TSY. - _DPRINT( 4, "PhSrv.SendHandlerL.Start" ); - if ( iUssdSendHandler == NULL ) - { - _DPRINT( 4, "PhSrv.SendHandlerL.iUssdSendHandler.NULL" ); - RMobileUssdMessaging::TMobileUssdCapsV1 caps; - RMobileUssdMessaging::TMobileUssdCapsV1Pckg pckgCaps( caps ); - User::LeaveIfError( iMobileUssdMessaging.GetCaps( pckgCaps ) ); - _DPRINT( 4, "PhSrv.SendHandlerL.iMobileUssdMessaging.GetCaps" ); - - if ( ( caps.iUssdTypes & RMobileUssdMessaging::KCapsMOUssd ) == 0 || - ( caps.iUssdFormat & RMobileUssdMessaging::KCapsPackedString ) - == 0 ) - { - _DPRINT( 4, "PhSrv.SendHandlerL.KErrNotSupported" ); - User::Leave( KErrNotSupported ); - } - - iUssdSendHandler = - new( ELeave ) CPhSrvUssdSendHandler( - *this, - iMobileUssdMessaging, - *iPhoneInterface ); - } - _DPRINT( 4, "PhSrv.SendHandlerL.End" ); - return *iUssdSendHandler; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::SendUssdL -// -// Send the USSD message. -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::SendUssdL( - const TDesC8& aMsgData, - RMobileUssdMessaging::TMobileUssdAttributesV1& aMsgAttribute, - MPhSrvUssdMessageSentObserver& aObserver ) - { - _DPRINT( 4, "PhSrv.SendUssdL.Start ######" ); - _DPRINT_FLAGS(); - - if ( iObserver && iNetworkReleased ) - { - // Network has been released but the previous send request is still alive. - // Cancel the pervious send operation, complete the old request with error - // and clean up the pointer. - _DPRINT( 4, "PhSrv.SendUssdL.Error.Complete.Existing" ); - if ( iUssdSendHandler ) - { - iUssdSendHandler->Cancel(); - } - iObserver->UssdMessageSentObserverHandleResult( KErrSessionClosed ); - iObserver = NULL; - } - - if ( iObserver || iSendingAck ) - { - _DPRINT( 4, "PhSrv.SendUssdL.KErrInUse" ); - // Other client is using the service. - User::Leave( KErrInUse ); - } - - // Check that message type is set - if( ( aMsgAttribute.iFlags & RMobileUssdMessaging::KUssdMessageType ) - == 0 ) - _DPRINT( 4, "PhSrv.SendUssdL.KUssdMessageType.0" ); - { - // Mesasge type not set -> Set it. - aMsgAttribute.iFlags |= RMobileUssdMessaging::KUssdMessageType; - if ( NetworkWaitingForAnAnswer() ) - { - // Network is waiting for an answer - _DPRINT( 4, "PhSrv.SendUssdL.EUssdMOReply" ); // debug print - aMsgAttribute.iType = RMobileUssdMessaging::EUssdMOReply; - } - else - { - _DPRINT( 4, "PhSrv.SendUssdL.EUssdMORequest" ); // debug print - aMsgAttribute.iType = RMobileUssdMessaging::EUssdMORequest; - } - } - - RMobileUssdMessaging::TMobileUssdAttributesV1Pckg attribs( aMsgAttribute ); - iShowDone = ETrue; - _DPRINT( 4, "PhSrv.SendUssdL.iShowDone.ETrue" ); - _DPRINT( 4, "PhSrv.SendUssdL.Send" ); - SendHandlerL().SendUssdL( aMsgData , attribs ); - iObserver = &aObserver; - // Not closing nor closed anymore - iNetworkReleased = EFalse; - iSendRelease = EFalse; - iClearArray = EFalse; - - // Reply timer can be killed here... Receive event might come right after this - // which will setup the timer again if needed. - if ( NetworkWaitingForAnAnswer() ) - { - _DPRINT( 4, "PhSrv.SendUssdCancel.TimerStop" ); // debug print - iUssdReplyTimer->Stop(); - } - _DPRINT( 4, "PhSrv.SendUssdL.End" ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::NetworkWaitingForAnAnswer -// ----------------------------------------------------------------------------- -// -TBool CPhSrvUssdManager::NetworkWaitingForAnAnswer() - { - return iUssdReplyTimer && iUssdReplyTimer->IsTimerActive(); - } -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::SendUssdCancel -// -// Cancel the USSD sending. -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::SendUssdCancel() - { - _DPRINT( 4, "PhSrv.SendUssdCancel.Start #######" ); - - // Ack sending should not be canceled unless it's about terminating - // the whole session - _DPRINT_FLAGS(); - if ( !iSendingAck || iSendRelease ) - { - _DPRINT( 4, "PhSrv.SendUssdCancel.DoingCancel" ); - iUssdSendHandler->SendUssdCancel(); - } - - if ( iHavePendingSatMessagePointer ) - { - _DPRINT( 4, "PhSrv.SendUssdCancel.SatCancel" ); - iSatCanceled = ETrue; - } - iObserver = NULL; - - SetActiveIfPendingNotificationsExist(); - _DPRINT( 4, "PhSrv.SendUssdCancel.End" ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::SetActiveIfPendingNotificationsExist -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::SetActiveIfPendingNotificationsExist() - { - if ( !IsActive() && NotifyCount() > 0 ) - { - _DPRINT( 4, "PhSrv.AcrtivateIf.NotActiveSelf" ); - iLaunchGMQ = ETrue; - iNotifyMessage = ETrue; - _DPRINT( 4, "PhSrv.SendUssdCancel.iNotifyMessage.ETrue" ); - iTimer.After( iStatus , KPhSrvUssdMessageQueryInterval ); - SetActive(); - _DPRINT_FLAGS(); - _DDPRINT( 4, "PhSrv.AcrtivateIf.SetActive ", iStatus.Int() ); - } - } -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::UssdNetworkObserverHandleSendEventL -// -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::UssdNetworkObserverHandleSendEventL( TInt aError ) - { - // debug print - _DDPRINT( - 4, - "PhSrv.UssdNetworkObserverHandleSendEventL.Start: ##### ", - aError ); - - // complete SAT if needed - if ( aError < KErrNone ) - { - - _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleSendEventL.CompleteSat" ); - CompleteSatL( NULL, aError ); - } - - if ( iObserver ) - { - - _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleSendEventL.Observer" ); - - iObserver->UssdMessageSentObserverHandleResult( aError ); - iObserver = NULL; - } - - iSendingAck = EFalse; - - AsyncProcessMoAcks(); - - // debug print - _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleSendEventL.End" ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::UssdAppTaskExists -// -// -// -// ----------------------------------------------------------------------------- -// -TBool CPhSrvUssdManager::UssdAppTaskExistsL() -{ - TBool ret = EFalse; - RWsSession wsSession; - User::LeaveIfError(wsSession.Connect()); - _DPRINT( 4, "PhSrv.UssdAppTaskExists.wsSession.Connect" ); - CleanupClosePushL(wsSession); - TApaTaskList tasklist(wsSession); - TApaTask task = tasklist.FindApp( KUssdSecureId ); - ret = task.Exists(); - - CleanupStack::PopAndDestroy(); - return ret; -} - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::UssdNetworkObserverHandleReceivedEventL -// -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::UssdNetworkObserverHandleReceivedEventL( - const TDes8& aMsgData, - const RMobileUssdMessaging::TMobileUssdAttributesV1& aMsgAttributes, - TInt aError ) - { - _DDPRINT( - 4, - "PhSrv.UssdNetworkObserverHandleReceivedEventL.Start: ### ", - aError ); - _DPRINT_FLAGS(); - if ( aError != KErrNone ) - { - TurnLightsOn(); //Ensure lights on - - _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleReceivedEventL.ShErNote" ); - ShowErrorNoteL( aError ); - } - else if ( iSendRelease ) - { - // Ignore if sendrelease is to be done. If the message was - _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleReceivedEventL.SendRelease.Ignore" ); - } - else - { - UssdHandleReceivedEventL( aMsgData, aMsgAttributes ); - } - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::UssdHandleReceivedEventL -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::UssdHandleReceivedEventL( - const TDes8& aMsgData, - const RMobileUssdMessaging::TMobileUssdAttributesV1& aMsgAttributes ) - { - // This always is either ongoing transaction or starting a new based - // on incoming message, mark transaction to be open. - iNetworkReleased = EFalse; - - // 2. Complete Send with some positive value. - if ( iObserver ) - { - - _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.Observer" ); - UssdNetworkObserverHandleSendEventL( 1 ); // some positive value - } - - if ( aMsgAttributes.iFlags&RMobileUssdMessaging::KUssdMessageType && - aMsgAttributes.iType == RMobileUssdMessaging::EUssdMTRequest ) - { - // 3. Stop old reply timer and start new one if needed. - RestartReplyTimerL(); - _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleReceivedEventL.Timer.Stop" ); - _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleReceivedEventL.Timer.New" ); - } - _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.Decode" ); - TUint8 dcs = KPhSrvUssdDefaultDCS; - if(aMsgAttributes.iFlags & RMobileUssdMessaging::KUssdMessageDcs) - { - dcs = aMsgAttributes.iDcs; - } - iDecodedMessage.Zero(); - iReceivedMessage.Zero(); - DecodeL(aMsgData, iDecodedMessage, dcs); - if(iDecodedMessage.Length() > 0) - { - iReceivedMessage = iDecodedMessage; - } - // 5. Show note. - // debug print - _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.Note" ); - if ( !( aMsgAttributes.iFlags & RMobileUssdMessaging::KUssdMessageType ) || - aMsgAttributes.iType != RMobileUssdMessaging::EUssdMTRequest ) - { - if ( !ShowNotesL() ) - { - - _DPRINT( 4, - "PhSrv.UssdHandleReceivedEventL.SAtReturn" ); - return; - } - } - - // empty string is handled as ok message - if ( !iDecodedMessage.Length() ) - { - TurnLightsOn(); //Ensure lights on - - _DPRINT( 4, - "PhSrv.UssdHandleReceivedEventL.EmptyString" ); - - ShowDoneNoteL(); - - - _DPRINT( 4, - "PhSrv.UssdHandleReceivedEventL.EmptyString.OK" ); - } - else - { - _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.String" ); - iNotifyMessage = ( aMsgAttributes.iType == RMobileUssdMessaging::EUssdMTNotify ); - _DDPRINT( 4, "PhSrv.UssdHandleReceivedEventL.iNotifyMessage: ", iNotifyMessage ); - _DDPRINT( 4, "PhSrv.UssdNOHREventL.iNotifyMessage: ", iNotifyMessage ); - iMsgTypeReply = ( aMsgAttributes.iType == RMobileUssdMessaging::EUssdMTReply ); - _DDPRINT( 4, "PhSrv.UssdHandleReceivedEventL.iMsgTypeReply: ", iMsgTypeReply ); - - if ( iNotifyMessage ) - { - // need to send an MO ack - iAcksToBeSent ++; - } - - if ( !iDeviceDialog ){ - iDeviceDialog = CHbDeviceMessageBoxSymbian::NewL( - CHbDeviceMessageBoxSymbian::EInformation ); - iDeviceDialog->SetObserver( this ); - iDeviceDialog->SetTimeout( KPhSrvUssdTimeout ); - iDeviceDialog->SetDismissPolicy ( KPhSrvUssdPopupDismissPolicy ); - - // Show left key with empty string accoring to ui concept - iDeviceDialog->SetButton( - CHbDeviceMessageBoxSymbian::EAcceptButton, EFalse ); - // Show Exit Key always - iDeviceDialog->SetButton( - CHbDeviceMessageBoxSymbian::ERejectButton, ETrue ); - iDeviceDialog->SetButtonTextL( - CHbDeviceMessageBoxSymbian::ERejectButton, - LoadDefaultString( KUssdExit ) ); - _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.Exit" ); - } - - if ( iNotifyMessage || iMsgTypeReply ) - { - //This is for reply message in notifyarray - iNotifyMessage = ETrue; - _DDPRINT( 4, "PhSrv.UssdHandleReceivedEventL.iNotifyMessage: ", iNotifyMessage ); - - //Notify added to array - iNotifyArray->AppendL( iReceivedMessage ); - - _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.AppendL" ); - UpdateNotifyMessageL(); - - if ( !iSendRelease && NotifyCount() <= 1 ) - { - _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.!SendRelease.Cancel" ); - Cancel(); - } - } - else - { - // New message deletes old message, i.e. Cancel existing query. - Cancel(); - _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.NewAnswerable" ); - } - - // Remove Reply key - if( !( aMsgAttributes.iFlags & RMobileUssdMessaging::KUssdMessageType ) - || aMsgAttributes.iType != RMobileUssdMessaging::EUssdMTRequest ) - { - // Remove Answer key - iDeviceDialog->SetButton( - CHbDeviceMessageBoxSymbian::EAcceptButton, EFalse ); - _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.NoAnswer" ); - } - // Show Reply key - else - { - iDeviceDialog->SetButton( - CHbDeviceMessageBoxSymbian::EAcceptButton, ETrue ); - iDeviceDialog->SetButtonTextL( - CHbDeviceMessageBoxSymbian::EAcceptButton, - LoadDefaultString( KUssdReply ) ); - _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.WithAnswer" ); - } - - - _DPRINT( 4, - "PhSrv.UssdHandleReceivedEventL.String.Middle" ); - - // Play the USSD tone if needed. Logically should be in RunL, but here - // to give better balancing with voice and visible message. - // <-- QT PHONE START--> - /* - if ( IsTelephonyFeatureSupported( KTelephonyLVFlagUssdTone ) ) - { - _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.PlayTone" ); - PlayUssdTone(); - } - */ - // <-- QT PHONE END--> - // Launch the new message query - if ( !IsActive() ) - { - iLaunchGMQ = ETrue; - iTimer.After( iStatus , KPhSrvUssdMessageQueryInterval ); - SetActive(); - } - AsyncProcessMoAcks(); - } - _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.Editor" ); - if( aMsgAttributes.iType == RMobileUssdMessaging::EUssdMTRequest && UssdAppTaskExistsL() ) - { - iEmptyEditor = ETrue; - } - _DPRINT( 4, "PhSrv.UssdHandleReceivedEventL.End" ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::RestartReplyTimerL -// -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::RestartReplyTimerL() - { - if ( iUssdReplyTimer ) - { - _DPRINT( 4, "PhSrv.RestartReplyTimerL.Stop" ); - iUssdReplyTimer->Stop(); - } - - if ( !iUssdReplyTimer ) - { - _DPRINT( 4, "PhSrv.RestartReplyTimerL.New" ); - iUssdReplyTimer = CPhSrvUssdReplyTimer::NewL( *this ); - } - - _DPRINT( 4, "PhSrv.RestartReplyTimerL.Start" ); - iUssdReplyTimer->Start(); - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::UssdNetworkObserverHandleNotifyNWReleaseL -// -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::UssdNetworkObserverHandleNotifyNWReleaseL( -const RMobilePhone::TMobilePhoneSendSSRequestV3 & aReturnResult, -TInt aError ) - { - _DDPRINT( 4, "PhSrv.UssdNotifyNWRelease ##### ", aError ); // debug print - _DPRINT_FLAGS(); - TBool showNotes = ShowNotesL(); - iNetworkReleased = ETrue; - iSendingAck = EFalse; - iSendRelease = EFalse; - iAcksToBeSent = 0; - - if ( iHavePendingSatMessagePointer ) - { - iReturnResult = aReturnResult; - if ( !iSatCanceled ) - { - CompleteSatL(&iReceivedMessage, aError ); - _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleNotifyNWReleaseL.CompleteSat" ); - } - } - if ( iUssdReplyTimer && iUssdReplyTimer->IsTimerActive() ) - { - _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleNotifyNWReleaseL.Timer.Stop" ); - iUssdReplyTimer->Stop(); - Cancel(); - CheckArray(); - } - if ( showNotes && iShowDone ) - { - ShowDoneNoteL(); - } - if ( iUssdSendHandler && iSendingAck ) - { - // if we are sending ack, it can be canceled. - iUssdSendHandler->Cancel(); - } - - iSatCanceled = EFalse; - _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleNotifyNWReleaseL.iSatCanceled.EFalse" ); - iShowDone = EFalse; - _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleNotifyNWReleaseL.Ending" ); - _DPRINT_FLAGS(); - _DPRINT( 4, "PhSrv.UssdNetworkObserverHandleNotifyNWReleaseL.End" ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::ShowDoneNoteL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::ShowDoneNoteL() - { - _DDPRINT( 4, "PhSrv.ShowDoneNoteL.iShowDone", iShowDone ); - // Show global confirmation note "Done" - CHbDeviceMessageBoxSymbian::InformationL( - LoadDefaultString( KUssdDone ) ); - iShowDone = EFalse; - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::ShowErrorNoteL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::ShowErrorNoteL( TInt aError ) - { - _DDPRINT( 4, "PhSrv.ShowErrorNoteL.Start ", aError ); - if ( aError == KErrCancel ) - { - _DPRINT( 4, "PhSrv.ShowErrorNoteL.Return" ); - return; - } - - // Show specific error message - CTextResolver* textResolver = CTextResolver::NewLC(); - HBufC* buffer = textResolver->ResolveErrorString( aError ).AllocLC(); - - CHbDeviceMessageBoxSymbian::InformationL( buffer ->Des() ); - - CleanupStack::PopAndDestroy( buffer ); - CleanupStack::PopAndDestroy( textResolver ); - - - _DPRINT( 4, "PhSrv.ShowErrorNoteL.End" ); - return; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::DecodeL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::DecodeL( - const TDesC8& aSrc, - TDes& aDes , - TUint8 aDcs ) - { - _DPRINT( 4, "PhSrv.DecodeL.Start" ); - aDes.Zero(); - CCnvCharacterSetConverter* charConv = CCnvCharacterSetConverter::NewLC(); - - iDCS = KPhCltDcsUnknown; // default - - // Check DCS - TSmsDataCodingScheme::TSmsAlphabet alphabet = - TSmsDataCodingScheme::ESmsAlphabet7Bit; // default - TUint cutChars = 0; - TUint startBit = 0; - - // Codes from GSM 03.38 - if ( aDcs == KPhSrvUssdDcsAlphabetDefaultPrecededLanguage ) - { - FindFirstCarriageReturnL( aSrc , cutChars , startBit ); - } - else if ( aDcs == KPhSrvUssdDcsAlphabetUCS2PrecededLanguage ) - { - alphabet = TSmsDataCodingScheme::ESmsAlphabetUCS2; - cutChars = KPhSrvUssdDcsAlphabetUCS2PrecededLanguageSkipChars; - } - else if ( (aDcs&KPhSrvUssdDcsGeneralInformationMask) == - KPhSrvUssdDcsGeneralInformation ) // General data coding information - { - //Is text compressed? - if ( aDcs & KPhSrvUssdDcsGeneralInformationCompressed ) - { - _DPRINT( 4, "PhSrv.DecodeL.KErrNotSupported" ); - User::Leave( KErrNotSupported ); - } - // Is SIM specific message - else if ( ( aDcs & KPhSrvUssdDcsGeneralInformationSimMask ) - == KPhSrvUssdDcsGeneralInformationSim ) - { - _DPRINT( 4, "PhSrv.DecodeL.KErrAbort" ); - User::Leave( KErrAbort ); // Do not show any messages - } - // 8 bit data? - else if ( ( aDcs&KPhSrvUssdDcsGeneralInformationAlphabetMask ) == - KPhSrvUssdDcsGeneralInformationAlphabet8Bit ) - { - alphabet = TSmsDataCodingScheme::ESmsAlphabet8Bit; - } - // UCS2 bit data? - else if ( ( aDcs&KPhSrvUssdDcsGeneralInformationAlphabetMask ) == - KPhSrvUssdDcsGeneralInformationAlphabetUCS2 ) - { - alphabet = TSmsDataCodingScheme::ESmsAlphabetUCS2; - } - } - // Data coding/message handling - else if ( ( aDcs & KPhSrvUssdDcsMessageHandlingAlphabetMask ) - == KPhSrvUssdDcsMessageHandlingAlphabet8Bit ) - { - alphabet = TSmsDataCodingScheme::ESmsAlphabet8Bit; - } - - TPhSrvUssdAlphabetPacker* packer = - new ( ELeave ) TPhSrvUssdAlphabetPacker( alphabet , EFalse, startBit ); - CleanupStack::PushL( packer ); - - if ( alphabet == TSmsDataCodingScheme::ESmsAlphabet7Bit ) - { - TInt numberOfElem = ( ( aSrc.Length() - cutChars ) * 8 - startBit ) / 7; - packer->UnpackAndConvertL( - *charConv , - iFsSession , - aSrc.Right( aSrc.Length() - cutChars ), - aDes , - numberOfElem ); - - // DCS was 7-bit data. - iDCS = KPhCltDcs7Bit; - } - else // ESmsAlphabet8Bit || ESmsAlphabetUCS2 - { - CSmsAlphabetConverter* converter = - CSmsAlphabetConverter::NewLC( - *charConv , iFsSession,alphabet,EFalse ); - - aDes = converter->ConvertToNativeL( - aSrc.Right( aSrc.Length() - cutChars ) ); - CleanupStack::PopAndDestroy( converter ); - - if( alphabet == TSmsDataCodingScheme::ESmsAlphabet8Bit ) - { - // DCS was 8-bit data. - iDCS = KPhCltDcs8Bit; - } - else if( alphabet == TSmsDataCodingScheme::ESmsAlphabetUCS2 ) - { - // DCS was UCS2 data. - iDCS = KPhCltDcsUcs2; - } - // If DCS not 8-bit or UCS2, then EPhCltDcsUnknown is returned. - } - - // - CleanupStack::PopAndDestroy(2); // packer, charConv - _DPRINT( 4, "PhSrv.DecodeL.End" ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::FindFirstCarriageReturnL -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::FindFirstCarriageReturnL( - const TDesC8& aBuffer , - TUint& aSkipChars , - TUint& aStartBit ) - { - _DPRINT( 4, "PhSrv.FindFirstCarriageReturnL.Start" ); - if ( aBuffer.Length() < 3 ) - { - _DPRINT( 4, "PhSrv.FindFirstCarriageReturnL.KErrUnderflow" ); - User::Leave( KErrUnderflow ); - } - - aSkipChars = 0; - aStartBit = 0; - - // Try out two different cases: - // 1. Find CR from thrid byte - // 2. Find CR from second byte, starting from bit 6 - - // 1.: - if ( aBuffer[2] == KPhSrvUssdCarriageReturn ) - { - aSkipChars = KPhSrvUssdDcsAlphabetDefaultPrecededLanguageSkipChars3; - aStartBit = 0; - _DPRINT( 4, "PhSrv.FindFirstCarriageReturnL.ThirdByte.Return" ); - return; - } - - // 2.: - // First put the pieces together and then compare - // Take last 2 bits from the second byte: - TUint result1 = aBuffer[1]; - result1 = result1 >> 6; - - // Take first 5 bits from the third byte: - TUint result2 = aBuffer[2]; - result2 = result2 & 0x1f; // bits 0-4. - result2 = result2 << 2; // move to bits 2-6. - - TUint result = result1 + result2; // 0000 00xx + 0xxx xx00 - if ( result == KPhSrvUssdCarriageReturn ) - { - aSkipChars = KPhSrvUssdDcsAlphabetDefaultPrecededLanguageSkipChars2; - aStartBit = KPhSrvUssdDcsAlphabetDefaultPrecededLanguageStartBit; - _DPRINT( 4, "PhSrv.FindFirstCarriageReturnL.SecondByte.Return" ); - return; - } - - // Is was not case 1. or 2. so we are not supporting sort of string. - User::Leave( KErrNotSupported ); - _DPRINT( 4, "PhSrv.FindFirstCarriageReturnL.KErrNotSupported" ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::UssdReplyTimerObserverHandleExpired -// -// -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::UssdReplyTimerObserverHandleExpiredL( TInt aError ) - { - _DDPRINT( 4, "PhSrv.ReplyTimer.Start.aError ", aError ); // debug print - delete iUssdReplyTimer; - iUssdReplyTimer = NULL; - - if ( aError == KErrNone && - IsActive() && - iDeviceDialog ) - { - Cancel(); - // Terminates USSD session. - _DPRINT( 4, "PhSrv.ReplyTimer.SendRelease" ); // debug print - if ( iNotifyArray ) - { - iNotifyArray->Reset(); - } - TryCloseSession(); - } - _DPRINT( 4, "PhSrv.ReplyTimer.End" ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::MessageBoxClosed -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::MessageBoxClosed( - const CHbDeviceMessageBoxSymbian* aMessageBox, - CHbDeviceMessageBoxSymbian::TButtonId aButton) - { - _DPRINT( 4, "PhSrv.MsgClose.Start" ); - // ussd device dialog observer callback function - TPtrC leftBtn = aMessageBox->ButtonText( - CHbDeviceMessageBoxSymbian::EAcceptButton ); - TPtrC rightBtn = aMessageBox->ButtonText( - CHbDeviceMessageBoxSymbian::ERejectButton ); - - TInt err = KErrNone; - // Click Yes on Confirmation note (Yes, No) - if ( !leftBtn.Compare( - LoadDefaultString( KUssdYes ) ) && - ( CHbDeviceMessageBoxSymbian::EAcceptButton == aButton ) ) - { - _DPRINT( 4, "PhSrv.MsgClose.SK.Yes" ); - iClearArray = EFalse; - iNotifyArray->Reset(); - TryCloseSession(); - } - // Click "No" on Confirmation note (Yes, No) - else if ( !rightBtn.Compare( - LoadDefaultString( KUssdNo ) ) && - ( CHbDeviceMessageBoxSymbian::ERejectButton == aButton ) ) - { - _DPRINT( 4, "PhSrv.MsgClose.SK.No" ); - iClearArray = EFalse; - iNotifyMessage = ETrue; // for removing the yes/no query - CheckArray(); - TryCloseSession(); - } - // Click "Next" on Notification note (Next, Exit) - else if ( !leftBtn.Compare( - LoadDefaultString( KUssdNext ) ) && - ( CHbDeviceMessageBoxSymbian::EAcceptButton == aButton ) ) - { - _DPRINT( 4, "PhSrv.MsgClose.SK.Next" ); - CheckArray(); - TryCloseSession(); - } - // Click "Exit" on Notification note (Next, Exit or only Exit) - else if ( !rightBtn.Compare( - LoadDefaultString( KUssdExit ) ) && - ( CHbDeviceMessageBoxSymbian::ERejectButton == aButton ) ) - { - TRAP( err, ClearArrayL() ); - _DDPRINT( 4, "PhSrv.MsgClose.SK.Clear.%d", err ); - TryCloseSession(); - _DPRINT( 4, "PhSrv.MsgClose.SK.Exit" ); - } - // Click "Reply" on Message note (Reply, Exit) - else if ( !leftBtn.Compare( - LoadDefaultString( KUssdReply ) ) && - ( CHbDeviceMessageBoxSymbian::EAcceptButton == aButton ) ) - { - // Answer - iStartEditor = ETrue; - iShowDone = EFalse; - // Start the USSD editor now. - TRAP( err, RequestStartEditingL() ); - _DDPRINT( 4, "PhSrv.MsgClose.RequestStartEditingL.%d", err ); - } - else - { - _DPRINT( 4, "PhSrv.MsgClose.SK.Default" ); - } - - _DPRINT( 4, "PhSrv.MsgClose.End" ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::RunL -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::RunL() - { - _DPRINT( 4, "PhSrv.RunL.Start" ); - - ProcessMoAcksL(); - - if ( iLaunchGMQ ) - { - LaunchGlobalMessageQueryL(); - // Do not launch Global Message Query next time. - iLaunchGMQ = EFalse; - _DPRINT( 4, "PhSrv.iLaunchGMQ.EFalse" ); - } - else - { - iStartEditor = EFalse; - // update device dialog - _DPRINT( 4, "PhSrv.RunL.End" ); // debug print - } - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::LaunchGlobalMessageQueryL -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::LaunchGlobalMessageQueryL() - { - _DPRINT( 4, "PhSrv.LGMQ.start" ); - _DPRINT_FLAGS(); - - if ( iNotifyMessage ) - { - _DDPRINT( 4, "PhSrv.LGMQ.NotifyMessage", iNotifyMessage ); - iNotifyMessage = ETrue; - TInt count = NotifyCount(); - //check softkey in avkon.rss - if ( count > 1 ) - { - // Next, Exit - iDeviceDialog->SetButton( - CHbDeviceMessageBoxSymbian::EAcceptButton, ETrue ); - iDeviceDialog->SetButtonTextL( - CHbDeviceMessageBoxSymbian::EAcceptButton, - LoadDefaultString( KUssdNext ) ); - iDeviceDialog->SetButton( - CHbDeviceMessageBoxSymbian::ERejectButton, ETrue ); - iDeviceDialog->SetButtonTextL( - CHbDeviceMessageBoxSymbian::ERejectButton, - LoadDefaultString( KUssdExit ) ); - _DPRINT( 4, "PhSrv.LGMQ.Next&Exit" ); - } - else - { - // Only Exit - iDeviceDialog->SetButton( - CHbDeviceMessageBoxSymbian::EAcceptButton, EFalse ); - iDeviceDialog->SetButton( - CHbDeviceMessageBoxSymbian::ERejectButton, ETrue ); - iDeviceDialog->SetButtonTextL( - CHbDeviceMessageBoxSymbian::ERejectButton, - LoadDefaultString( KUssdExit ) ); - _DPRINT( 4, "PhSrv.LGMQ.onlyExit" ); - } - if ( iClearArray ) - { - iTextResolver = HbTextResolverSymbian::Init( - KCommonLocFilename, KLocPath ); - _DPRINT( 4, "PhSrv.LGMQ.use common loc file" ); - // Yes, No - iDeviceDialog->SetButton( - CHbDeviceMessageBoxSymbian::EAcceptButton, ETrue ); - iDeviceDialog->SetButtonTextL( - CHbDeviceMessageBoxSymbian::EAcceptButton, - LoadDefaultString( KUssdYes ) ); - iDeviceDialog->SetButton( - CHbDeviceMessageBoxSymbian::ERejectButton, ETrue ); - iDeviceDialog->SetButtonTextL( - CHbDeviceMessageBoxSymbian::ERejectButton, - LoadDefaultString( KUssdNo ) ); - _DPRINT( 4, "PhSrv.LGMQ.Yes&No" ); - iTextResolver = HbTextResolverSymbian::Init( - KUssdLocFilename, KLocPath ); - _DPRINT( 4, "PhSrv.LGMQ.back up to use ussd loc file" ); - } - iReceivedMessage.Zero(); - iReceivedMessage = (*iNotifyArray)[0]; - } - TurnLightsOn(); //Ensure lights on - - _DPRINT( 4, "PhSrv.LGMQ.ShMsgQuery" ); // debug print - // Launch Global MessageQuery as requested. - // Dialog not support header text, this code is only - // for testing, not final solution. - TInt receiveLength = iReceivedMessage.Length(); - _DDPRINT( 4, "PhSrv.LGMQ.ShMsgQuery.MsgLength", receiveLength ); - - TInt titleLength = LoadDefaultString( KUssdTitle ).Length(); - _DDPRINT( 4, "PhSrv.LGMQ.ShMsgQuery.TilteLength", titleLength ); - - TInt length = receiveLength + titleLength; - _DDPRINT( 4, "PhSrv.LGMQ.ShMsgQuery.TotalLength", length ); - - HBufC* titleAndText = HBufC::NewLC( length ); - titleAndText->Des().Append( LoadDefaultString( KUssdTitle ) ); - titleAndText->Des().Append( iReceivedMessage ); - iDeviceDialog->SetTextL( titleAndText->Des() ); - CleanupStack::Pop( titleAndText ); - - iDeviceDialog->Close(); - iDeviceDialog->ShowL(); - iShowDone = EFalse; - - // Do nothing else in RunL this time. - _DPRINT( 4, "PhSrv.LGMQ.ShMsgQuery.ret" ); // debug print - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::ProcessMoAcksL() -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::ProcessMoAcksL() - { - //Acknowledgment is sent if notify message - if ( iNotifyMessage && iAcksToBeSent ) - { - _DPRINT( 4, "PhSrv.LGMQ.SendMoAcknowledgementL, start" ); - _DPRINT_FLAGS(); - if ( iUssdSendHandler && !iUssdSendHandler->IsActive() && - !iNetworkReleased && !iSendRelease && !iSendingAck ) - { - _DPRINT( 4, "PhSrv.LGMQ.MoAckNeededToBeSent" ); - SendMoAcknowledgementL(); - iAcksToBeSent--; - iSendingAck = ETrue; - } - _DPRINT( 4, "PhSrv.LGMQ.SendMoAcknowledgementL, end" ); - } - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::AsyncProcessMoAcks() -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::AsyncProcessMoAcks() - { - if ( iMoAckCallback ) - { - iMoAckCallback->CallBack(); - _DPRINT( 4, "PhSrv.LGMQ.AsyncProcessMoAcksL, queued" ); - } - } -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::MoAckCallback() -// ----------------------------------------------------------------------------- -// -TInt CPhSrvUssdManager::MoAckCallback( TAny *aUssdManager ) - { - _DPRINT( 4, "PhSrv.MoAckCallback.start" ); - if ( aUssdManager ) - { - CPhSrvUssdManager* manager = static_cast( aUssdManager ); - TRAP_IGNORE( manager->ProcessMoAcksL() ); - } - _DPRINT( 4, "PhSrv.MoAckCallback.end" ); - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::TryCloseSession() -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::TryCloseSession() - { - // Dismiss, cancel the session. - _DPRINT( 4, "PhSrv.CheckAndCloseSession.close" ); // debug print - - iShowDone = EFalse; - iEmptyEditor = EFalse; - - // If the notification array is empty, close the session. - if ( NotifyCount() == 0 && !iNetworkReleased ) - { - CloseSession(); - } - } -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::CloseSession() -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::CloseSession() - { - iSendRelease = ETrue; - iClearArray = EFalse; - iAcksToBeSent = 0; - _DPRINT( 4, "PhSrv.CheckAndCloseSession.canceling" ); - SendUssdCancel(); - Cancel(); - - // Terminates USSD session. - if ( !iNetworkReleased ) - { - iUssdSendHandler->SendReleaseSession(); - } - if ( iUssdReplyTimer ) - { - _DPRINT( 4, "PhSrv.CheckAndCloseSession.Timer.Stop" ); - iUssdReplyTimer->Stop(); - } - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::CheckArray() -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::CheckArray() - { - _DPRINT( 4, "PhSrv.CheckArray.Start" ); // debug print - if (iNotifyArray && NotifyCount() > 0) - { - if ( !iNotifyMessage && !iClearArray ) - { - iLaunchGMQ = ETrue; - iNotifyMessage = ETrue; - _DPRINT( 4, "PhSrv.CheckArray.iNotifyMessage.ETrue" ); - iTimer.After( iStatus , KPhSrvUssdMessageQueryInterval ); - _DDPRINT( 4, "PhSrv.CheckArray.SetActive.NoNotifyMessage ", iStatus.Int() ); - SetActive(); - } - else if( NotifyCount() > 1 ) - { - ( iNotifyArray )->Delete( 0 ); - ( iNotifyArray )->Compress(); - iLaunchGMQ = ETrue; - iNotifyMessage = ETrue; - _DPRINT( 4, "PhSrv.CheckArray.iNotifyMessage.ETrue" ); - iTimer.After( iStatus , KPhSrvUssdMessageQueryInterval ); - _DDPRINT( 4, "PhSrv.CheckArray.SetActive.NotifyCount>1 ", iStatus.Int() ); - SetActive(); - } - else - { - iNotifyArray->Reset(); - iNotifyMessage = EFalse; - _DPRINT( 4, "PhSrv.CheckArray.iNotifyMessage.EFalse" ); - } - } - _DPRINT_FLAGS(); - _DPRINT( 4, "PhSrv.CheckArray.End" ); // debug print - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::ClearArray() -// ----------------------------------------------------------------------------- -// - void CPhSrvUssdManager::ClearArrayL() - { - _DPRINT( 4, "PhSrv.ClearArrayL.Start" ); // debug print - if (iNotifyArray && NotifyCount() > 0) - { - if (iNotifyMessage && NotifyCount()== 1 ) - { - iNotifyArray->Reset(); - } - else - { - iReceivedMessage.Zero(); - iReceivedMessage.Append( - LoadDefaultString( KUssdConfirm ) ); - iNotifyArray->InsertL( 0, iReceivedMessage ); - iLaunchGMQ = ETrue; - iNotifyMessage = ETrue; - _DPRINT( 4, "PhSrv.ClearArrayL.iNotifyMessage.ETrue" ); - iClearArray = ETrue; - iTimer.After( iStatus , KPhSrvUssdMessageQueryInterval ); - _DDPRINT( 4, "PhSrv.ClearArrayL.iTimer ", iStatus.Int() ); - SetActive(); - } - } - _DPRINT_FLAGS(); - _DPRINT( 4, "PhSrv.ClearArrayL.End" ); // debug print - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::NotifyCount() -// ----------------------------------------------------------------------------- -// -TInt CPhSrvUssdManager:: NotifyCount() -{ - TInt count = iNotifyArray->Count(); - _DDPRINT( 4, "PhSrv.NotifyCount:", count ); // debug print - return count; -} - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::UpdateNotifyMessageL() -// ----------------------------------------------------------------------------- -// - void CPhSrvUssdManager:: UpdateNotifyMessageL() - { - _DDPRINT( 4, "PhSrv.UpdateNotifyMessageL.Start, clear: ", iClearArray ); // debug print - - // Show left softkey - "Next" - if (NotifyCount() > 1 && !iClearArray ) - { - _DPRINT( 4, "PhSrv.UpdateNotifyMessageL" ); // debug print - iDeviceDialog->SetButton( - CHbDeviceMessageBoxSymbian::EAcceptButton, ETrue ); - iDeviceDialog->SetButtonTextL( - CHbDeviceMessageBoxSymbian::EAcceptButton, - LoadDefaultString( KUssdNext ) ); - } - // Remove left softkey - else - { - iDeviceDialog->SetButton( - CHbDeviceMessageBoxSymbian::EAcceptButton, EFalse ); - } - iDeviceDialog->UpdateL(); - - _DPRINT( 4, "PhSrv.UpdateNotifyMessageL.End" ); // debug print - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::DoCancel -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::DoCancel() - { - _DPRINT( 4, "PhSrv.DoCancel.Start" ); // debug print - iTimer.Cancel(); - iLaunchGMQ = EFalse; - if ( iDeviceDialog ) - { - _DPRINT( 4, "PhSrv.DoCancel" ); // debug print - iDeviceDialog->Close(); - delete iDeviceDialog; - iDeviceDialog = NULL; - } - _DPRINT( 4, "PhSrv.DoCancel.End" ); // debug print - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::RunError -// -// Because the RunL can leave, this function exists. -// In case of error, just returning KErrNone is OK. -// ----------------------------------------------------------------------------- -// -TInt CPhSrvUssdManager::RunError( TInt /*aError*/ ) - { - _DPRINT( 4, "PhSrv.RunError.Start" ); // debug print - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::RequestStartEditingL -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::RequestStartEditingL() - { - _DPRINT( 4, "PhSrv.UssdM.RequestStartEditingL.start" ); // debug print - - RWsSession wsSession; - User::LeaveIfError( wsSession.Connect() ); - _DPRINT( 4, "PhSrv.RequestStartEditingL.wsSession.connect" ); // debug print - CleanupClosePushL( wsSession ); - - // Find the task with name - TApaTaskList tasklist( wsSession ); - TApaTask task = tasklist.FindApp( KUssdSecureId ); - - // If task exists, bring it to foreground - if ( task.Exists() ) - { - _DPRINT( 4, "PhSrv.UssdM.RequestStartEditingL.task.BringToForeground" ); - task.BringToForeground(); - } - else - { - // Start new app - RApaLsSession apaLsSession; - User::LeaveIfError( apaLsSession.Connect() ); - _DPRINT( 4, "PhSrv.RequestStartEditingL.apaLsSession.connect" ); // debug print - CleanupClosePushL( apaLsSession ); - - TApaAppInfo appInfo; - - TInt err = apaLsSession.GetAppInfo( appInfo, KUssdSecureId ); - _DDPRINT( 4, "PhSrv.RequestStartEditingL.GetAppInfo ", err ); // debug print - - if ( err == KErrNone ) - { - #ifndef SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1 - CApaCommandLine* apaCommandLine = CApaCommandLine::NewLC(); - apaCommandLine->SetExecutableNameL( appInfo.iFullName ); - #else // SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1 - CApaCommandLine* apaCommandLine = - CApaCommandLine::NewLC( appInfo.iFullName ); - #endif // SYMBIAN_SUPPORT_UI_FRAMEWORKS_V1 - - TThreadId id( static_cast( 0 ) ); - err = apaLsSession.StartApp( *apaCommandLine, id ); - _DDPRINT( 4, "PhSrv.RequestStartEditingL.ThreadId ", id ); - CleanupStack::PopAndDestroy( apaCommandLine ); - } - CleanupStack::PopAndDestroy( &apaLsSession ); // apaLsSession - - // bring the ussd editor to foreground, only for testing - TApaTaskList tasklist( wsSession ); - TApaTask task = tasklist.FindApp( KUssdSecureId ); - if ( task.Exists() ) - { - _DPRINT( 4, "PhSrv.UssdM.RequestStartEditingL.task.BringToForeground" ); - task.BringToForeground(); - } - // bring the ussd editor to foreground, only for testing - } - CleanupStack::PopAndDestroy(); // wsSession - - _DPRINT( 4, "PhSrv.UssdM.RequestStartEditingL.end" ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::InformUssdApplicationStarting -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::InformUssdApplicationStarting() - { - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppStarting.start" ); // debug print - if ( iUssdReplyTimer ) - { - _DPRINT( 4, "PhSrv.InformUssdApplicationStarting.iUssdReplyTimer" ); - if ( iUssdReplyTimer->IsTimerActive() ) - { - _DPRINT( 4, "PhSrv.InformUssdApplicationStarting.iUssdReplyTimer.active" ); - iUssdReplyTimer->Pause(); - } - } - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppStarting.end" ); // debug print - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::InformUssdApplicationTerminatingL -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::InformUssdApplicationTerminatingL( - const RMessage2& aMessage ) - { - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppTerminatingL.start" ); // debug print - if ( iUssdReplyTimer ) - { - if ( iUssdReplyTimer->IsTimerActive() ) - { - - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppTerminatingL.timer" ); - - // Read the information what is the reason - // for application termination. - TPhCltUssdAppExitReason exitReason = EPhCltExitReasonUnknown; - TPckg< TPhCltUssdAppExitReason > exitReasonPckg( exitReason ); - aMessage.ReadL( - 0, - exitReasonPckg ); - - - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppTerminatingL.timer2" ); - - // If reason was the completion of send operation, the USSD - // session is not canceled, otherwise it is canceled. - if ( exitReason != EPhCltSendCompleted ) - { - - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppTerminatingL.SendRelease" ); - CloseSession(); - } - } - } - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppTerminatingL.end" ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::InformUssdApplicationToForeground -// ----------------------------------------------------------------------------- -// -TInt CPhSrvUssdManager::InformUssdApplicationToForeground() - { - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppToForeground.start" ); // debug print - - // Do the same actions as in InformUssdApplicationStarting, - // that is why it is called. - InformUssdApplicationStarting(); - - if ( iEmptyEditor ) - { - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppToForeground.empty" ); // debug print - iEmptyEditor = EFalse; - return 1; // some positive number - } - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppToForeground.end" ); // debug print - return KErrNone; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::InformUssdApplicationToBackground -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::InformUssdApplicationToBackground() - { - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppToBackground.start" ); // debug print - if ( iUssdReplyTimer ) - { - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppToBackground.timer" ); // debug print - if ( iUssdReplyTimer->IsTimerActive() ) - { - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppToBackground.timer.Active" ); // debug print - iUssdReplyTimer->Continue(); - } - } - _DPRINT( 4, "PhSrv.UssdM.InfUssdAppToBackground.end" ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::InformStartSAT -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::InformStartSAT( const RMessage2& aSatMessage ) - { - _DPRINT( 4, "PhSrv.InformStartSAT.Start" ); // debug print - - if ( iHavePendingSatMessagePointer ) - { - _DPRINT( 4, "PhSrv.InformStartSAT.Complete.InUse" ); // debug print - aSatMessage.Complete( KErrInUse ); - } - else - { - _DPRINT( 4, "PhSrv.InformStartSAT.Set" ); - - // There was not pending SAT message - iHavePendingSatMessagePointer = ETrue; - _DDPRINT( 4, "PhSrv.UssdM.InformStartSAT.PendingSatPointer ", iHavePendingSatMessagePointer ); - iPendingSatMessagePointer = aSatMessage; - } - - _DPRINT( 4, "PhSrv.InformStartSAT.End" ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::InformStopSAT -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::InformStopSAT() - { - _DPRINT( 4, "PhSrv.InformStopSAT.Start" ); - - // Do the actions only if there is pending SAT message. - if ( iHavePendingSatMessagePointer ) - { - _DPRINT( 4, "PhSrv.InformStopSAT.Complete.Cancel" ); // debug print - if ( !iPendingSatMessagePointer.IsNull() ) - { - iPendingSatMessagePointer.Complete( KErrCancel ); - _DPRINT( 4, "PhSrv.InformStopSAT.Complete.KErrCancel" ); - } - iHavePendingSatMessagePointer = EFalse; - } - _DPRINT( 4, "PhSrv.InformStopSAT.End" ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::ShowNotes -// ----------------------------------------------------------------------------- -// - - -TBool CPhSrvUssdManager::ShowNotesL() -{ -_DPRINT( 4, "PhSrv.ShowNotesL.Start" ); - -if ( !iHavePendingSatMessagePointer ) - { - if ( iSatCanceled ) - { - _DPRINT( 4, "PhSrv.ShowNotesL, EFalse" ); // debug print - return EFalse; - } - else - { - _DPRINT( 4, "PhSrv.ShowNotesL, ETrue" ); // debug print - return ETrue; - } - } -// Read the information whether the notes are shown or not. - TUint notesShown = 0; - TPckg< TUint > noShPckg( notesShown ); - iPendingSatMessagePointer.ReadL( - 0, - noShPckg ); - - TBool showNotes = EFalse; - _DPRINT( 4, "PhSrv.ShowNotes Sat= EFalse" ); // debug print - if ( notesShown == KPhCltShowNotes ) - { - _DPRINT( 4, "PhSrv.ShowNotes Sat= ETrue" ); // debug print - showNotes = ETrue; - } - _DPRINT( 4, "PhSrv.ShowNotesL.End" ); - return showNotes; -} - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::CompleteSatL -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::CompleteSatL( - TDesC* aReceiveString, - TInt aError ) - { - _DPRINT( 4, "PhSrv.CompleteSatL.Start" ); - if ( aReceiveString ) - { - if ( aReceiveString->Length() ) - { - _DPRINT( 4, "PhSrv.CompleteSatL.recString.>0" ); // debug print - // copy the received string to client side. - if ( iPendingSatMessagePointer.Int1() < aReceiveString->Length() ) - { - - _DPRINT( 4, "PhSrv.CompleteSatL.recString.LengthError" ); - if ( !iPendingSatMessagePointer.IsNull() ) - { - iPendingSatMessagePointer.Complete( KErrOverflow ); - _DPRINT( 4, "PhSrv.CompleteSatLComplete.KErrOverFlow" ); - } - iHavePendingSatMessagePointer = EFalse; - } - else - { - _DPRINT( 4, "PhSrv.CompleteSatL.recString.Write" ); // debug print - iPendingSatMessagePointer.WriteL( - 2, - *aReceiveString ); - - _DPRINT( 4, "PhSrv.CompleteSatL.recString.Write2" ); // debug print - TPckg< TUint > dcsPackage( iDCS ); - iPendingSatMessagePointer.WriteL( - 0, - dcsPackage ); - } - } - } - _DPRINT( 4, "PhSrv.CompleteSatL.Middle" ); - if ( !iPendingSatMessagePointer.IsNull() ) - { - if ( aReceiveString && !iSatCanceled ) - { - _DDPRINT( 4, "PhSrv.CompleteSatL.Complete.", iReturnResult.iOpCode ); // debug print - iPendingSatMessagePointer.Complete( iReturnResult.iOpCode ); // Some positive value - } - else - { - _DPRINT( 4, "PhSrv.CompleteSatL.Complete.aError" ); // debug print - iPendingSatMessagePointer.Complete( aError ); - } - } - - iHavePendingSatMessagePointer = EFalse; - - _DPRINT( 4, "PhSrv.CompleteSatL.End" ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::IsTelephonyFeatureSupported -// -// ----------------------------------------------------------------------------- -// -TBool CPhSrvUssdManager::IsTelephonyFeatureSupported( - const TInt aFeatureId ) - { - return ( aFeatureId & iVariantReadOnlyValues ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::PlayUssdTone -// -// ----------------------------------------------------------------------------- -// -TInt CPhSrvUssdManager::PlayUssdTone() - { - _DPRINT( 4, "PhSrv.UssdM.PlayTone.start" ); - - TInt err = KErrNone; -// <-- QT PHONE START--> -// RProperty::Define( KPSUidNcnList, KNcnPlayAlertTone, RProperty::EInt, ECapability_None , ECapabilityWriteDeviceData ); -// RProperty::Set( KPSUidNcnList, KNcnPlayAlertTone, KPhSrvUssdTone ); -// <-- QT PHONE END--> - - // debug print - _DDPRINT( - 4, - "PhSrv.UssdM.PlayTone.end", - err ); - return err; - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::GetTelephonyVariantData -// -// ----------------------------------------------------------------------------- -// -TInt CPhSrvUssdManager::GetTelephonyVariantData() - { - _DPRINT( 4, "PhSrv.UssdM.GetTelephonyVariantData.Start" ); - TInt err = KErrNone; -// <-- QT PHONE START--> -/* - // Variation data should be unchangable during run-time, - // therefore, if once succesfully read, later reads are - // not allowed. - if ( iVariantReadOnlyValues == KPhSrvDefaultValue ) - { - CRepository* cenRepSession = NULL; - TRAP ( err , - cenRepSession = CRepository::NewL( KCRUidTelVariation ) ); - if ( err == KErrNone ) - { - err = cenRepSession->Get( KTelVariationFlags, - iVariantReadOnlyValues ); - } - delete cenRepSession; - } - - _DDPRINT( 4, "PhSrv.UssdM.variant", iVariantReadOnlyValues ); // debug print - _DPRINT( 4, "PhSrv.UssdM.GetTelephonyVariantData.End" ); - */ -// <-- QT PHONE END--> - return err; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::SendMoAcknowledgementL -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::SendMoAcknowledgementL() - { - _DPRINT( 4, "PhSrv.SendMoAckL.Start" ); - - // Acknowledge MT USSD message. - RMobileUssdMessaging::TMobileUssdAttributesV1 msgAttribs; - msgAttribs.iFlags = - RMobileUssdMessaging::KUssdMessageType + - RMobileUssdMessaging::KUssdDataFormat + - RMobileUssdMessaging::KUssdMessageDcs; - - msgAttribs.iType = RMobileUssdMessaging::EUssdMOAcknowledgement; - _DDPRINT( 4, "PhSrv.SendMoAckL.msgAttribs.iType ", msgAttribs.iType ); - msgAttribs.iFormat = RMobileUssdMessaging::EFormatUnspecified; - _DDPRINT( 4, "PhSrv.SendMoAckL.msgAttribs.iFormat ", msgAttribs.iFormat ); - msgAttribs.iDcs = KPhSrvUssdDefaultDCS; - - RMobileUssdMessaging::TMobileUssdAttributesV1Pckg attribs = msgAttribs; - SendHandlerL().SendUssdL( KNullDesC8() , attribs ); - - _DPRINT( 4, "PhSrv.SendMoAckL.End" ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::TurnLightsOn -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdManager::TurnLightsOn() - { - _DPRINT( 4, "PhSrv.TurnLightsOn.Start" ); - - - // Change the bit on and off. SysAp will detect that - // the lights should be switched on for the specified time. - // - RProperty::Set(KPSUidCoreApplicationUIs, KLightsControl, ELightsOn); - TInt err = RProperty::Set(KPSUidCoreApplicationUIs, KLightsControl, ELightsOff); - - if ( err != KErrNone ) - { - _DDPRINT( 4,"PhSrv.TurnLightsOn.Error: ",err );// debug print - } - - _DPRINT( 4, "PhSrv.TurnLightsOn.End" ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdManager::LoadDefaultString -// ----------------------------------------------------------------------------- -// -const TPtrC CPhSrvUssdManager::LoadDefaultString( const TDesC& aText ) - { - _DPRINT( 4, "PhSrv.LoadDefaultString.Start" ); - - if ( iTextBuffer ) - { - delete iTextBuffer; - iTextBuffer = NULL; - _DPRINT( 4, "PhSrv.LoadDefaultString.Clear" ); - } - TInt err = KErrNone; - TPtrC ptr( aText ); - if ( iTextResolver && ptr.Length() ) - { - TRAP( err, iTextBuffer = HbTextResolverSymbian::LoadL( ptr ) ); - _DDPRINT( 4, "PhSrv.LoadDefaultString.LoadL.%d", err ); - if ( iTextBuffer ) - { - ptr.Set( iTextBuffer->Des() ); - _DPRINT( 4, "PhSrv.LoadDefaultString.Set" ); - } - } - _DPRINT( 4, "PhSrv.LoadDefaultString.End" ); - return ptr; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdNotifyNWRelease.cpp --- a/phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdNotifyNWRelease.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,158 +0,0 @@ -/* -* Copyright (c) 2002 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: Ussd Handler Receive. -* -*/ - - - -// INCLUDE FILES -#include "cphsrvussdnotifynwrelease.h" -#include "mphsrvussdnetworkobserver.h" -#include "phsrvdebuginfo.h" - -// CONSTANTS -const TInt KPhSrvUssdReceiverPriority = CActive::EPriorityLow + 2; - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvUssdNotifyNWRelease::CPhSrvUssdNotifyNWRelease -// -// C++ constructor -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -CPhSrvUssdNotifyNWRelease::CPhSrvUssdNotifyNWRelease( - MPhSrvUssdNetworkObserver& aObserver, - RMobileUssdMessaging& aUssdMessaging) - : CActive(KPhSrvUssdReceiverPriority), - - iObserver( aObserver ), - iUssdMessaging( aUssdMessaging ), - iReturnResultPckg ( iReturnResult ) - - { - CActiveScheduler::Add( this ); - - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdNotifyNWRelease::~CPhSrvUssdNotifyNWRelease -// -// C++ Destructor -// ----------------------------------------------------------------------------- -// -CPhSrvUssdNotifyNWRelease::~CPhSrvUssdNotifyNWRelease() - { - Cancel(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdNotifyNWRelease::ConstructL -// -// Symbian OS 2nd phase constructor -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdNotifyNWRelease::ConstructL() - { - // Start notify a client of a MT USSD release message to the mobile device - NotifyNetworkRelease(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdNotifyNWRelease::StartReceiving -// -// Start receiving a message -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -TInt CPhSrvUssdNotifyNWRelease::NotifyNetworkRelease() - { - if ( IsActive() ) - { - return KErrInUse; - } - _DPRINT( 4, "PhSrv.NotifyNetworkRelease" ); - iUssdMessaging.NotifyNetworkRelease( iStatus, iReturnResultPckg ); - SetActive(); - return KErrNone; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdNotifyNWRelease::RunL -// -// Called when a message is received -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdNotifyNWRelease::RunL() - { - TInt error = iStatus.Int(); - if ( error == KErrCancel ) - { - return; - } - _DPRINT( 4, "PhSrv.NotifyNetworkRelease:RunL" ); - iObserver.UssdNetworkObserverHandleNotifyNWReleaseL( - iReturnResult, - error ); - NotifyNetworkRelease(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdNotifyNWRelease::DoCancel -// -// Cancel a pending request -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CPhSrvUssdNotifyNWRelease::DoCancel() - { - iUssdMessaging.CancelAsyncRequest( EMobileUssdMessagingNotifyNetworkRelease ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdNotifyNWRelease::RunError -// -// Called when RunL leaves -// ----------------------------------------------------------------------------- -// -TInt CPhSrvUssdNotifyNWRelease::RunError( TInt aError ) - { - - TRAP_IGNORE( iObserver.UssdNetworkObserverHandleNotifyNWReleaseL( - iReturnResult, aError ) ); - - return KErrNone; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdReceiveHandler.cpp --- a/phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdReceiveHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,169 +0,0 @@ -/* -* Copyright (c) 2002 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: Ussd Handler Receive. -* -*/ - - - -// INCLUDE FILES -#include "cphsrvussdreceivehandler.h" -#include "mphsrvussdnetworkobserver.h" - - -// CONSTANTS -const TInt KPhSrvUssdReceiverPriority = CActive::EPriorityLow + 2; - - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReceiveHandler::CPhSrvUssdReceiveHandler -// -// C++ constructor -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -CPhSrvUssdReceiveHandler::CPhSrvUssdReceiveHandler( - MPhSrvUssdNetworkObserver& aObserver, - RMobileUssdMessaging& aUssdMessaging) - : CActive(KPhSrvUssdReceiverPriority), - iAutoReceive( ETrue ), // the value is hardcoded here. - iObserver( aObserver ), - iUssdMessaging( aUssdMessaging ), - iMsgAttributesPckg( iMsgAttributes ) - { - CActiveScheduler::Add( this ); - iMsgData.Zero(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReceiveHandler::~CPhSrvUssdReceiveHandler -// -// C++ Destructor -// ----------------------------------------------------------------------------- -// -CPhSrvUssdReceiveHandler::~CPhSrvUssdReceiveHandler() - { - Cancel(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReceiveHandler::ConstructL -// -// Symbian OS 2nd phase constructor -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdReceiveHandler::ConstructL() - { - // Start receiving automatically if wanted. - if ( iAutoReceive ) - { - User::LeaveIfError( StartReceiving() ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReceiveHandler::StartReceiving -// -// Start receiving a message -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -TInt CPhSrvUssdReceiveHandler::StartReceiving() - { - if ( IsActive() ) - { - return KErrInUse; - } - - iUssdMessaging.ReceiveMessage( iStatus, iMsgData , iMsgAttributesPckg ); - SetActive(); - return KErrNone; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReceiveHandler::RunL -// -// Called when a message is received -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdReceiveHandler::RunL() - { - TInt error = iStatus.Int(); - if ( error == KErrCancel ) - { - return; - } - iObserver.UssdNetworkObserverHandleReceivedEventL( - iMsgData, - iMsgAttributes, - error ); - - if ( iAutoReceive && error != KErrCancel && error != KErrNotSupported ) - { - StartReceiving(); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReceiveHandler::DoCancel -// -// Cancel a pending request -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CPhSrvUssdReceiveHandler::DoCancel() - { - iUssdMessaging.CancelAsyncRequest( EMobileUssdMessagingReceiveMessage ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReceiveHandler::RunError -// -// Called when RunL leaves -// ----------------------------------------------------------------------------- -// -TInt CPhSrvUssdReceiveHandler::RunError( TInt aError ) - { - // Shows an error note. - TRAP_IGNORE( iObserver.UssdNetworkObserverHandleReceivedEventL( - iMsgData, iMsgAttributes , aError ) ); - - if ( iAutoReceive ) - { - StartReceiving(); - } - - return KErrNone; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdReplyTimer.cpp --- a/phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdReplyTimer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,196 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: USSD Reply Timer. -* -*/ - - - -// INCLUDE FILES -#include "cphsrvussdreplytimer.h" -#include "mphsrvussdreplytimerobserver.h" - - -// CONSTANTS -const TUint KPhSrvUssdReplyTimerInterval = 300000000; // 5 min - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReplyTimer::CPhSrvUssdReplyTimer -// -// Constructor -// -// ----------------------------------------------------------------------------- -// -CPhSrvUssdReplyTimer::CPhSrvUssdReplyTimer( - MPhSrvUssdReplyTimerObserver& aObserver ) -: CTimer( CActive::EPriorityStandard ), - iObserver( aObserver ) - { - CActiveScheduler::Add( this ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReplyTimer::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhSrvUssdReplyTimer* CPhSrvUssdReplyTimer::NewL( - MPhSrvUssdReplyTimerObserver& aObserver ) - { - CPhSrvUssdReplyTimer* self = - new( ELeave ) CPhSrvUssdReplyTimer( aObserver ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); // self - return self; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReplyTimer::~CPhSrvUssdReplyTimer -// -// Destructor -// -// ----------------------------------------------------------------------------- -// -CPhSrvUssdReplyTimer::~CPhSrvUssdReplyTimer() - { - Cancel(); - iTimer.Close(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReplyTimer::ConstructL -// -// Symbian OS second phase constructor -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdReplyTimer::ConstructL() - { - CTimer::ConstructL(); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReplyTimer::IsTimerActive -// ----------------------------------------------------------------------------- -// -TBool CPhSrvUssdReplyTimer::IsTimerActive() const - { - return iTimeLeft.Int() != 0; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReplyTimer::Start -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdReplyTimer::Start() - { - Cancel(); - iTimeLeft = KPhSrvUssdReplyTimerInterval; - iLastStartTime.UniversalTime(); - After( iTimeLeft ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReplyTimer::Pause -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdReplyTimer::Pause() - { - if ( !IsActive() ) - { - return; - } - Cancel(); - iTimeLeft = KPhSrvUssdReplyTimerInterval; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReplyTimer::Continue -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdReplyTimer::Continue() - { - if ( IsActive() ) - { - return; - } - - if ( iTimeLeft.Int() <= 0 ) - { - iTimeLeft = 0; - TRAP_IGNORE( iObserver.UssdReplyTimerObserverHandleExpiredL( KErrNone ) ); - return; - } - - iLastStartTime.UniversalTime(); - After( iTimeLeft ); - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReplyTimer::Stop -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdReplyTimer::Stop() - { - Cancel(); - iTimeLeft = 0; - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReplyTimer::RunL -// -// Called when the timer expires. Notify observer -// -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdReplyTimer::RunL() - { - // Called only when status is KErrNone, since when the system - // time is changed, timers may be completed with KErrAbort. - iTimeLeft = 0; - if ( iStatus.Int() == KErrNone ) - { - iObserver.UssdReplyTimerObserverHandleExpiredL( KErrNone ); - } - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdReplyTimer::RunError -// -// Called when RunL leaves. -// The RunL can leave in observer side, then it is ok to just return KErrNone. -// -// ----------------------------------------------------------------------------- -// -TInt CPhSrvUssdReplyTimer::RunError( TInt /*aError*/ ) - { - return KErrNone; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdSendHandler.cpp --- a/phoneclientserver/phoneserver/Src/Ussd/CPhSrvUssdSendHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,206 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Ussd Handler Send. -* -*/ - - -// INCLUDE FILES -#include "cphsrvussdsendhandler.h" -#include "mphsrvussdnetworkobserver.h" -#include "mphsrvphoneinterface.h" -#include "cphsrvussdsessioncancelwaiter.h" -#include "phsrvdebuginfo.h" //debug prints - -#include -#include -#include - -//CONSTANTS -const TInt KPhSrvUssdSenderPriority = CActive::EPriorityLow + 1; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhSrvUssdSendHandler::CPhSrvUssdSendHandler -// -// Constructor -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -CPhSrvUssdSendHandler::CPhSrvUssdSendHandler( - MPhSrvUssdNetworkObserver& aObserver, - RMobileUssdMessaging& aUssdMessaging, - MPhSrvPhoneInterface& aPhoneInterface ) - : CActive( KPhSrvUssdSenderPriority ), - iObserver( aObserver ), - iUssdMessaging( aUssdMessaging ), - iPhoneInterface( aPhoneInterface ) - { - CActiveScheduler::Add( this ); - - // R&D SOLUTION -> - iSessionCancelWaiter = new CPhSrvUssdSessionCancelWaiter; - __ASSERT_ALWAYS( iSessionCancelWaiter, User::Invariant() ); - // <- - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdSendHandler::~CPhSrvUssdSendHandler -// -// Destructor -// ----------------------------------------------------------------------------- -// -CPhSrvUssdSendHandler::~CPhSrvUssdSendHandler() - { - _DPRINT( 4, "PhSrv.Sendhandler.Destructor.Start" ); // debug print - Cancel(); - - // R&D solution -> - if ( iSessionCancelWaiter ) - { - if ( iSessionCancelWaiter->IsActive() ) - { - _DPRINT( 4, "PhSrv.Sendhandler.Destructor.IsActive.SendRelease" ); - iUssdMessaging.CancelAsyncRequest( EMobileUssdMessagingSendRelease ); - } - delete iSessionCancelWaiter; - iSessionCancelWaiter = NULL; - } - // <- - - delete iMsgData; - iMsgData = NULL; - - delete iMsgAttribute; - iMsgAttribute = NULL; - _DPRINT( 4, "PhSrv.Sendhandler.Destructor.End" ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdSendHandler::SendUssdL -// -// Send the USSD data. -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdSendHandler::SendUssdL( - const TDesC8& aMsgData, - const TDesC8& aMsgAttribute ) - { - _DPRINT( 4, "PhSrv.Sendhandler.SendUssd.Start" ); // debug print - // R&D SOLUTION -> - - // If cancel is going on, don't try to send anything. - if ( IsActive() || iSessionCancelWaiter->IsActive() ) - { - _DPRINT( 4, "PhSrv.Sendhandler.SendUssd.KErrInUse" ); // debug print - User::Leave( KErrInUse ); - } - // <- - - delete iMsgData; - iMsgData = NULL; - iMsgData = aMsgData.AllocL(); - - delete iMsgAttribute; - iMsgAttribute = NULL; - iMsgAttribute = aMsgAttribute.AllocL(); - iUssdMessaging.SendMessage( iStatus , *iMsgData , *iMsgAttribute ); - SetActive(); - _DPRINT( 4, "PhSrv.Sendhandler.SendUssd.End" ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdSendHandler::SendUssdCancel -// -// Cancel USSD sending. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CPhSrvUssdSendHandler::SendUssdCancel() - { - _DPRINT( 4, "PhSrv.Sendhandler.SendUssdCancel.Start" ); // debug print - Cancel(); - _DPRINT( 4, "PhSrv.Sendhandler.SendUssdCancel.End" ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdSendHandler::DoCancel -// -// Cancel request. -// ----------------------------------------------------------------------------- -// -/***************************************************** -* Series 60 Customer / ETel -* Series 60 ETel API -*****************************************************/ -void CPhSrvUssdSendHandler::DoCancel() - { - _DDPRINT( 4, "PhSrv.Sendhandler.DoCancel.Start", iStatus.Int() ); // debug print - - iUssdMessaging.CancelAsyncRequest( EMobileUssdMessagingSendMessage ); - delete iMsgData; - iMsgData = NULL; - delete iMsgAttribute; - iMsgAttribute = NULL; - _DDPRINT( 4, "PhSrv.Sendhandler.DoCancel.End", iStatus.Int() ); // debug print - } - - -// ----------------------------------------------------------------------------- -// CPhSrvUssdSendHandler::RunL -// -// When iStatusRequest is changed. -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdSendHandler::RunL() - { - _DDPRINT( 4, "PhSrv.SendHandler.RunL.Start", iStatus.Int() ); - iObserver.UssdNetworkObserverHandleSendEventL( iStatus.Int() ); - _DPRINT( 4, "PhSrv.Sendhandler.RunL.End" ); - } - -// ----------------------------------------------------------------------------- -// CPhSrvUssdSendHandler::SendReleaseSession -// -// Terminates Ussd session. -// ----------------------------------------------------------------------------- -// -void CPhSrvUssdSendHandler::SendReleaseSession() - { - _DPRINT( 4, "PhSrv.Sendhandler.SendReleaseSession.Start" ); // debug print - if ( !iSessionCancelWaiter->IsActive() ) - { - _DPRINT( 4, "PhSrv.Sendhandler.SendReleaseSession" ); // debug print - iUssdMessaging.SendRelease( - iSessionCancelWaiter->iStatus, - iSessionCancelWaiter->iSSRequestPckg ); - _DPRINT( 4, "PhSrv.Sendhandler.SendReleaseSession2" ); - iSessionCancelWaiter->SetActive(); - _DDPRINT( 4, "PhSrv.Sendhandler.SRS.iUssdMessaging", iStatus.Int() ); - } - _DPRINT( 4, "PhSrv.Sendhandler.SendReleaseSession.End" ); // debug print - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/group/phoneserver.mmp --- a/phoneclientserver/phoneserver/group/phoneserver.mmp Mon Aug 23 15:50:31 2010 +0300 +++ b/phoneclientserver/phoneserver/group/phoneserver.mmp Fri Sep 03 13:59:20 2010 +0300 @@ -113,16 +113,11 @@ USERINCLUDE ../../phoneclient/inc/sharedclientserver -// <-- QT PHONE START--> MW_LAYER_SYSTEMINCLUDE -// <-- QT PHONE END--> SYSTEMINCLUDE ../../../inc SYSTEMINCLUDE ../../inc // for RPhCltEmergencyCall.h, CPhCltExtPhoneDialData.h -// TEMPORARY DEFINITION FOR TELEPHONY VARIATION HEADERS -SYSTEMINCLUDE ../../../../../app/phone/inc - // TEMPORARY DEFINITION FOR Orbit Device Dialog SYSTEMINCLUDE /epoc32/include/mw/hb/hbwidgets SYSTEMINCLUDE /epoc32/include/mw/hb/hbcore diff -r 35488577e233 -r 2fa1fa551b0b phoneclientserver/phoneserver/rom/PhoneServer.iby --- a/phoneclientserver/phoneserver/rom/PhoneServer.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: IBY file of PhoneServer -* -*/ - - -#ifndef __PhoneServer_IBY__ -#define __PhoneServer_IBY__ - -file=ABI_DIR\BUILD_DIR\PhoneServer.exe PROGRAMS_DIR\PhoneServer.exe -data=ZSYSTEM\install\PhoneServer_stub.sis system\install\PhoneServer_stub.sis -#ifndef DATAZ_ - define DATAZ_ EPOCROOT##epoc32\data\Z -#endif - - data = ZPRIVATE\10000850\backup_registration.xml PRIVATE\10000850\backup_registration.xml - -#endif diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/BWINS/PHONECMDHANDLERU.DEF --- a/phonecmdhandler/phonecmdhnlr/BWINS/PHONECMDHANDLERU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,5 +0,0 @@ -EXPORTS - ??1CPhoneHandler@@UAE@XZ @ 1 NONAME ; CPhoneHandler::~CPhoneHandler(void) - ?NewL@CPhoneHandler@@SAPAV1@XZ @ 2 NONAME ; class CPhoneHandler * CPhoneHandler::NewL(void) - ?NewL@CPhoneHandler@@SAPAV1@AAVCRemConInterfaceSelector@@@Z @ 3 NONAME ; class CPhoneHandler * CPhoneHandler::NewL(class CRemConInterfaceSelector &) - diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/group/PhoneCmdHandler.mmp --- a/phonecmdhandler/phonecmdhnlr/group/PhoneCmdHandler.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Project specification file for PhoneCmdHandler module. -* -*/ - - -#include - -TARGET phonecmdhandler.dll -TARGETTYPE DLL -UID 0x1000008d 0x10205046 - -CAPABILITY CAP_GENERAL_DLL -VENDORID VID_DEFAULT - -SOURCEPATH ../src - -SOURCE phonehandler.cpp -SOURCE phonehandlercontrol.cpp -SOURCE phonehandleractive.cpp -SOURCE phonehandlercallbase.cpp -SOURCE phonehandleranswercall.cpp -SOURCE phonehandlerendcall.cpp -SOURCE phonehandlerdialcall.cpp -SOURCE phonehandlervoicedial.cpp -SOURCE phonehandlerredial.cpp -SOURCE phonehandlermultipartycall.cpp -SOURCE phonehandlerdtmf.cpp -SOURCE phonehandlerresponse.cpp -SOURCE phonehandlercallstate.cpp - -USERINCLUDE ../inc - -APP_LAYER_SYSTEMINCLUDE - -LIBRARY euser.lib -LIBRARY remconinterfacebase.lib -LIBRARY remconextensionapi.lib -LIBRARY phoneclient.lib -LIBRARY logcli.lib -LIBRARY efsrv.lib -// <-- QT PHONE START --> -//LIBRARY pbkeng.lib -// <-- QT PHONE END --> - -MACRO API_TRACE_FLAG -MACRO COMPONENT_TRACE_FLAG - diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/group/phonecmdhandler.mmp --- a/phonecmdhandler/phonecmdhnlr/group/phonecmdhandler.mmp Mon Aug 23 15:50:31 2010 +0300 +++ b/phonecmdhandler/phonecmdhnlr/group/phonecmdhandler.mmp Fri Sep 03 13:59:20 2010 +0300 @@ -51,9 +51,6 @@ LIBRARY phoneclient.lib LIBRARY logcli.lib LIBRARY efsrv.lib -// <-- QT PHONE START --> -//LIBRARY pbkeng.lib -// <-- QT PHONE END --> MACRO API_TRACE_FLAG MACRO COMPONENT_TRACE_FLAG diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerActive.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerActive.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declaration of CPhoneHandlerActive class. -* -*/ - - -#ifndef CPHONEHANDLERACTIVE_H -#define CPHONEHANDLERACTIVE_H - -// INCLUDES -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class MPhoneHandlerObserver; - -// CLASS DECLARATION - -/** -* Active object used to call asynchronous requests. -* -* @lib PhoneCmdHandler -* @since S60 3.1 -*/ -NONSHARABLE_CLASS( CPhoneHandlerActive ) : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneHandlerActive* NewL( MPhoneHandlerObserver& aObserver ); - - /** - * Destructor. - */ - ~CPhoneHandlerActive(); - - public: // New functions - - /** - * From CActive. Indicates that the active object has issued a request - * and that it is now outstanding. - * @since S60 3.1 - * @return - */ - void SetActive(); - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - /** - * From CActive. Handles an active object’s request completion event. - */ - void RunL(); - - /** - * From CActive. Implements cancellation of an outstanding request. - */ - void DoCancel(); - - /** - * From CActive. Handles a leave occurring in the request completion - * event handler RunL(). - */ - TInt RunError( TInt aError ); - - private: - - /** - * C++ default constructor. - */ - CPhoneHandlerActive( MPhoneHandlerObserver& aObserver ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - public: // Data - - protected: // Data - - private: // Data - - // Notifies caller of an asynchronous request when request has been - // completed. - MPhoneHandlerObserver& iObserver; - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - }; - -#endif // CPHONEHANDLERACTIVE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerAnswerCall.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerAnswerCall.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declaration of CPhoneHandlerAnswerCall class. -* -*/ - - -#ifndef CPHONEHANDLERANSWERCALL_H -#define CPHONEHANDLERANSWERCALL_H - -// INCLUDES -#include "phonehandlercallbase.h" -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CPhoneHandlerControl; - -// CLASS DECLARATION - -/** -* Handles answer call key press. -* -* @lib PhoneCmdHandler -* @since S60 3.1 -*/ -NONSHARABLE_CLASS( CPhoneHandlerAnswerCall ) : public CPhoneHandlerCallBase - - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneHandlerAnswerCall* NewL( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation - = ERemConExtAnswerCall ); - - /** - * Destructor. - */ - virtual ~CPhoneHandlerAnswerCall(); - - public: // New functions - - public: // Functions from base classes - - /** - * From MPhoneHandlerService. Starts processing service. - * @since S60 3.1 - * @return void - */ - void Process(); - - /** - * From MPhoneHandlerService. Deletes service. - * @since S60 3.1 - * @return void - */ - void Delete(); - - /** - * From MPhoneHandlerObserver. Notifies when asynchronous request has - * been completed. - * @since S60 3.1 - * @param aError request error code - * @return void - */ - void RequestCompleted( const TInt aError ); - - protected: // New functions - - protected: // Functions from base classes - - private: - - /** - * C++ default constructor. - */ - CPhoneHandlerAnswerCall( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - public: // Data - - protected: // Data - - private: // Data - - // reference to control - CPhoneHandlerControl& iControl; - - // RemConExtensionApi command which initiates answer call in BT case - // is either ERemConExtAnswerCall or ERemConExtAnswerEnd. - // RemConExtensionApi command which initiates end call in wired case - // is ERemConExtAnswerEnd. - // iOperation is used to give response to exact RemConExtensionApi - // command. - TRemConExtCallHandlingApiOperationId iOperation; - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -#endif // CPHONEHANDLERANSWERCALL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerCallBase.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerCallBase.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,179 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declaration of CPhoneHandlerCallBase class. -* -*/ - - -#ifndef CPHONEHANDLERCALLBASE -#define CPHONEHANDLERCALLBASE - -// INCLUDES -#include "phonehandlerservice.h" -#include "phonehandlerobserver.h" -#include -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// CLASS DECLARATION -class CPhoneHandlerActive; -class CPhCltCommandHandler; - -/** -* Base class for services. -* -* @lib PhoneCmdHandler -* @since S60 3.1 -*/ -NONSHARABLE_CLASS( CPhoneHandlerCallBase ) : public CBase, - public MPhoneHandlerService, - public MPhoneHandlerObserver - { - protected: // Constructors and destructor - - /** - * C++ default constructor. - */ - CPhoneHandlerCallBase(); - - /** - * Destructor. - */ - virtual ~CPhoneHandlerCallBase(); - - public: // New functions - - public: // Functions from base classes - - /** - * From MPhoneHandlerService. Starts to process an asynchronous request. - * @since Series 60 3.1 - * @param - * @return - */ - virtual void Process() = 0; - - /** - * From MPhoneHandlerService. Deletes service object. - * @since Series 60 3.1 - * @param - * @return - */ - virtual void Delete() = 0; - - /** - * From MPhoneHandlerObserver. Notifies when asynchronous request has - * been completed. - * @since S60 3.1 - * @param aError Result code of request processing. - * @return void - */ - virtual void RequestCompleted( const TInt aError ) = 0; - - protected: // New functions - - /** - * Initializes service that executes call handling key presses. - * @since S60 3.1 - * @param void - * @return void - */ - void LoadServiceL(); - - /** - * Increments state parameter of service. - * @since S60 3.1 - * @param void - * @return void - */ - void NextState(); - - /** - * Called when service isn't running (e.g. when it's completed). - * @since S60 3.1 - * @param void - * @return void - */ - void IdleState(); - - /** - * Returns an active object's TRequestStatus for asynchronous calls. - * @since S60 3.1 - * @param void - * @return void - */ - TRequestStatus& GetStatus(); - - /** - * Activates an active object for asynchronous calls. - * @since S60 3.1 - * @param void - * @return void - */ - void Activate(); - - protected: // Functions from base classes - - private: - - public: // Data - - protected: // Data - - // call handling service states - enum TPhoneHandlerServiceState - { - EPhoneHandlerStateIdle = 0, - EPhoneHandlerState1 = 1, - EPhoneHandlerState2 = 2, - EPhoneHandlerState3 = 3 - }; - - // stores service state - TPhoneHandlerServiceState iState; - - // pointer to API providing call handling services - CPhCltCommandHandler* iCommandHandler; // owned - - private: // Data - - // Provides a handle to a dynamically loadable DLL. - RLibrary iLibrary; - - // Client side remote class of phone server session - RPhCltServer iServer; - - // active object for asynchronous requests - CPhoneHandlerActive* iActive; // owned - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -#endif // CPHONEHANDLERCALLBASE - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerCallState.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerCallState.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,117 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Declaration of CPhoneHandlerCallState class. -* -* -*/ - - -#ifndef CPHONEHANDLERCALLSTATE_H -#define CPHONEHANDLERCALLSTATE_H - -// INCLUDES -#include -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CPhoneHandlerControl; - -// CLASS DECLARATION - -/** -* Active object that listens to S60 call states. -* -* @lib RemConAsy -* @since S60 3.1 -*/ -NONSHARABLE_CLASS( CPhoneHandlerCallState ) : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneHandlerCallState* NewL( CPhoneHandlerControl& aControl ); - - /** - * Destructor. - */ - ~CPhoneHandlerCallState(); - - public: // New functions - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - /** - * From CActive. Handles S60 start up state change event. - */ - void RunL(); - - /** - * From CActive. Implements cancellation of an outstanding Subscibe() - * request. - */ - void DoCancel(); - - private: - - /** - * C++ default constructor. - */ - CPhoneHandlerCallState( CPhoneHandlerControl& aControl ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Starts to listen change in S60 start up state. - **/ - void Subscribe(); - - public: // Data - - protected: // Data - - private: // Data - - // Publish and Subscribe handle used to listen changes in call states - RProperty iProperty; - - // reference to control - CPhoneHandlerControl& iControl; - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - }; - -#endif // CPHONEHANDLERCALLSTATE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerControl.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerControl.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,277 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declaration of CPhoneHandlerControl class. -* -*/ - - -#ifndef CPHONEHANDLERCONTROL_H -#define CPHONEHANDLERCONTROL_H - -// INCLUDES -#include "phonehandlerservice.h" -#include -#include -#include -#include -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// CLASS DECLARATION -class CRemConInterfaceSelector; -class CRemConCallHandlingTarget; -class CPhoneHandlerResponse; -class CPhoneHandlerCallState; - -/** -* Receives call handling related key presses from accessories and executes -* them. -* -* @lib PhoneCmdHandler -* @since S60 3.1 -*/ -NONSHARABLE_CLASS( CPhoneHandlerControl ) : public CBase, - public MRemConCallHandlingTargetObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneHandlerControl* NewL( - CRemConInterfaceSelector* aIfSelector = NULL ); - - /** - * Destructor. - */ - virtual ~CPhoneHandlerControl(); - - public: // New functions - - /** - * Returns phone number for dial or speed dial. - * @since S60 3.1 - * @param void - * @return TPhCltTelephoneNumber phone number - */ - const TPhCltTelephoneNumber& TelephoneNumber() const; - - /** - * Returns voice dial status for voice dial. - * @since S60 3.1 - * @param void - * @return TBool status - */ - const TBool& VoiceDialStatus() const; - - /** - * Returns CHLD command for multiparty call. - * @since S60 3.1 - * @param void - * @return TInt CHLD command - */ - const TInt& ChldCommand() const; - - /** - * Returns CHLD call number for multiparty call. - * @since S60 3.1 - * @param void - * @return TInt CHLD command number - */ - const TInt& ChldCallNumber() const; - - /** - * Returns DTMF tone to be sent. - * @since S60 3.1 - * @param void - * @return TChar DTMF tone - */ - const TChar& Tone() const; - - /** - * Returns reference to API used to communicate with accessory who - * initiated key press. - * @since S60 3.1 - * @param void - * @return CRemConCallHandlingTarget& reference to API - */ - CRemConCallHandlingTarget& CommandInitiator() const; - - /** - * Informs the latest call state. - * @since S60 3.1 - * @param aState Call state from KTelephonyCallState P&S key - * @return void - */ - void NotifyCallState( const TInt aState ); - - /** - * Get iSwitchCall flag, if this flag is ETrue, it means - * "Send" key in remote target is pressed in multiparty call, - * otherwise EFalse - * @since S60 3.1 - * @return TBool - */ - TBool SwitchCall(); - - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: - - /** - * C++ default constructor. - */ - CPhoneHandlerControl(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( CRemConInterfaceSelector* aIfSelector = NULL ); - - /** - * From MRemConCallHandlingTargetObserver. Answer an incoming phone call. - */ - virtual void AnswerCall(); - - /** - * From MRemConCallHandlingTargetObserver. End an incoming/ongoing - * phone call. - */ - virtual void EndCall(); - - /** - * From MRemConCallHandlingTargetObserver. Answer an incoming phone call, - * or end an ongoing call according to call status. - */ - virtual void AnswerEndCall(); - - /** - * From MRemConCallHandlingTargetObserver. Make a voice call. - */ - virtual void VoiceDial( const TBool aActivate ); - - /** - * From MRemConCallHandlingTargetObserver. Redial last phone call. - */ - virtual void LastNumberRedial(); - - /** - * From MRemConCallHandlingTargetObserver. Dial a phone call. - */ - virtual void DialCall( const TDesC8& aTelNumber ); - - /** - * From MRemConCallHandlingTargetObserver. Make multiparty call. - */ - virtual void MultipartyCalling( const TDesC8& aData ); - - /** - * Generates DTMF signal. - */ - virtual void GenerateDTMF( const TChar aChar ); - - /** - * From MRemConCallHandlingTargetObserver. Make a speed dial call. - */ - virtual void SpeedDial( const TInt aIndex ); - - /** - * Starts processing service corresponding to key press. - */ - void StartProcessing( - const TRemConExtCallHandlingApiOperationId aOperation ); - - /** - * Creates service. - */ - MPhoneHandlerService* CreateServiceL( - const TRemConExtCallHandlingApiOperationId aOperation ); - - /** - * Returns call status. - */ - void CallStatusL( RPhone::TLineInfo& aLineInfo ); - - - private: // Data - - // Provides e.g. service to listen accessory key presses. - CRemConInterfaceSelector* iInterfaceSelector; // owned - - // API notifying PhoneCmdHandler about call handling key presses. - CRemConCallHandlingTarget* iTarget; // owned - - // Phone number for dial call/speed dial. - TPhCltTelephoneNumber iTelNumber; - - // Voice recognition status - TBool iActivate; - - // Multiparty call command - TInt iChldCommand; - - // Multiparty call number - TInt iChldCallNumber; - - // Type of DTMF tone - TChar iChar; - - // Speed dial index. - TInt iIndex; - - // Sends responses to RemCon FW - CPhoneHandlerResponse* iResponse; - - // Interface to P&S key that returns call state - RProperty iProperty; - - // Previous call state - TInt iPrevState; - - // Number of active calls - // Used to determine whether there's a multicall case when call state - TInt iActiveCalls; - - // switch phonecall by press "Send" key - TBool iSwitchCall; - - // Listens to phone call state changes. - CPhoneHandlerCallState* iCallStateObserver; - - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -#endif // CPHONEHANDLERCONTROL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerDTMF.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerDTMF.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declaration of CPhoneHandlerDTMF class. -* -*/ - - - -#ifndef CPHONEHANDLERDTMF_H -#define CPHONEHANDLERDTMF_H - -// INCLUDES -#include "phonehandlercallbase.h" -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CPhoneHandlerControl; - -// CLASS DECLARATION - -/** -* Handles DTMF tone. -* -* @lib PhoneCmdHandler -* @since S60 3.1 -*/ -NONSHARABLE_CLASS( CPhoneHandlerDTMF ) : public CPhoneHandlerCallBase - - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneHandlerDTMF* NewL( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation - = ERemConExtGenerateDTMF - ); - - /** - * Destructor. - */ - virtual ~CPhoneHandlerDTMF(); - - public: // New functions - - public: // Functions from base classes - - /** - * From MPhoneHandlerService. Starts processing service. - * @since S60 3.1 - * @return void - */ - void Process(); - - /** - * From MPhoneHandlerService. Deletes service. - * @since S60 3.1 - * @return void - */ - void Delete(); - - /** - * From MPhoneHandlerObserver. Notifies when asynchronous request has - * been completed. - * @since S60 3.1 - * @param aError request error code - * @return void - */ - void RequestCompleted( const TInt aError ); - - protected: // New functions - - protected: // Functions from base classes - - private: - - /** - * C++ default constructor. - */ - CPhoneHandlerDTMF( CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - public: // Data - - protected: // Data - - private: // Data - - // reference to control - CPhoneHandlerControl& iControl; - - // iOperation is used to give response to exact RemConExtensionApi - // command - TRemConExtCallHandlingApiOperationId iOperation; - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -#endif // CPHONEHANDLERDTMF_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerDebug.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerDebug.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,258 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Macro definitions for tracing and debugging purposes. -* -*/ - - -#ifndef PHONECMDHANDLER_DEBUG_H -#define PHONECMDHANDLER_DEBUG_H - -#ifdef _DEBUG - -// INCLUDES -#include - -// CONSTANTS -_LIT( KComponent, "[PHONECMDHANDLER]" ); -_LIT( KThisFile, "[PHONECMDHANDLER] - Trace this file: %s, line: %d, compiled: %s %s" ); -_LIT( KAssertion, "[PHONECMDHANDLER] - Assertion failed: File: %s, line: %d, compiled: %s %s" ); -_LIT( KPanic, "[PHONECMDHANDLER] - Panic occurred: File: %s, line: %d, compiled: %s %s" ); -_LIT( KMystic, "[PHONECMDHANDLER] - Mystic failure: File: %s, line: %d, compiled: %s %s" ); -_LIT8( KDATE, __DATE__ ); -_LIT8( KTIME, __TIME__ ); - -const TInt KTraceMaxSize = 256; - -// DATA TYPES -enum TTraceType - { - ETraceInit, - ETraceAssert, - ETracePanic - }; - -// INLINE FUNCTIONS - - // ----------------------------------------------------------------------------- - // ThisFileFunc - // ----------------------------------------------------------------------------- - inline void ThisFileFunc( const TDesC8& aFile, - TInt aLine, - TTraceType aType = ETraceInit ) - { - HBufC* fileBuf = HBufC::New( aFile.Length() + 1 ); - HBufC* dateBuf = HBufC::New( 32 ); - HBufC* timeBuf = HBufC::New( 32 ); - - if ( fileBuf != NULL && dateBuf != NULL && timeBuf != NULL ) - { - fileBuf->Des().Copy( aFile ); - timeBuf->Des().Copy( KTIME ); - dateBuf->Des().Copy( KDATE ); - - if ( aType == ETraceInit ) - { - RDebug::Print( KThisFile, - fileBuf->Des().PtrZ(), - aLine, - dateBuf->Des().PtrZ(), - timeBuf->Des().PtrZ() ); - } - - else if ( aType == ETraceAssert ) - { - RDebug::Print( KAssertion, - fileBuf->Des().PtrZ(), - aLine, - dateBuf->Des().PtrZ(), - timeBuf->Des().PtrZ() ); - } - - else if ( aType == ETracePanic ) - { - RDebug::Print( KPanic, - fileBuf->Des().PtrZ(), - aLine, - dateBuf->Des().PtrZ(), - timeBuf->Des().PtrZ() ); - } - - else - { - RDebug::Print( KMystic, - fileBuf->Des().PtrZ(), - aLine, - dateBuf->Des().PtrZ(), - timeBuf->Des().PtrZ() ); - } - } - - else - { - RDebug::Print( _L( "Assertion and memory allocation failed!" ) ); - } - - delete fileBuf; - delete dateBuf; - delete timeBuf; - } - - // ----------------------------------------------------------------------------- - // TraceAssertFunc - // ----------------------------------------------------------------------------- - inline void TraceAssertFunc( const TDesC8& aFile, TInt aLine ) - { - ThisFileFunc( aFile, aLine, ETraceAssert ); - } - - // ----------------------------------------------------------------------------- - // TracePanicFunc - // ----------------------------------------------------------------------------- - inline void TracePanicFunc( const TDesC8& aFile, TInt aLine ) - { - ThisFileFunc( aFile, aLine, ETracePanic ); - User::Panic( KComponent, KErrGeneral ); - } - -// MACROS - #define PANIC_IF_FALSE( a ) if ( !( a ) )\ - TracePanicFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ ) - - #define PANIC_IF_TRUE( a ) if ( ( a ) )\ - TracePanicFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ ) - - #define PANIC_ALWAYS\ - TracePanicFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ ) - - // ----------------------------------------------------------------------------- - // COMPONENT_TRACE_FLAG - // ----------------------------------------------------------------------------- - #ifdef COMPONENT_TRACE_FLAG - - #define COMPONENT_TRACE_THIS_FILE\ - ThisFileFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ ) - - #define COM_TRACE_( AAA ) do\ - { _LIT( logStr, AAA ); RDebug::Print( logStr ); } while ( 0 ) - - #define COM_TRACE_1( AAA, BBB ) do\ - { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB ); } while ( 0 ) - - #define COM_TRACE_2( AAA, BBB, CCC ) do\ - { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC ); } while ( 0 ) - - #define COM_TRACE_3( AAA, BBB, CCC, DDD ) do\ - { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC, DDD ); } while ( 0 ) - - #define COM_TRACE_4( AAA, BBB, CCC, DDD, EEE ) do\ - { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC, DDD, EEE ); } while ( 0 ) - - #define COM_TRACE_RAW_( AAA ) do\ - { RDebug::RawPrint( AAA ); } while ( 0 ) - - #define COM_TRACE_RAW_1( AAA, BBB ) do\ - { _LIT( logStr, AAA ); TBuf buffer; buffer.Append( logStr ); buffer.Append( BBB );\ - RDebug::RawPrint( buffer ); } while ( 0 ) - - #else - - #define COMPONENT_TRACE_THIS_FILE - - #define COM_TRACE_( AAA ) - #define COM_TRACE_1( AAA, BBB ) - #define COM_TRACE_2( AAA, BBB, CCC ) - #define COM_TRACE_3( AAA, BBB, CCC, DDD ) - #define COM_TRACE_4( AAA, BBB, CCC, DDD, EEE ) - #define COM_TRACE_RAW_( AAA ) - #define COM_TRACE_RAW_1( AAA, BBB ) - - #endif // COMPONENT_TRACE_FLAG - - #define TRACE_ASSERT( a ) if ( !( a ) )\ - TraceAssertFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ ) - - #define TRACE_ASSERT_RETURN( a ) if ( !( ( a ) == KErrNone ) )\ - TraceAssertFunc( TPtrC8( ( TText8* ) __FILE__), __LINE__ ) - - #define TRACE_ASSERT_ALWAYS\ - TraceAssertFunc( TPtrC8( ( TText8* ) __FILE__ ), __LINE__ ) - - // ----------------------------------------------------------------------------- - // API_TRACE_FLAG - // ----------------------------------------------------------------------------- - #ifdef API_TRACE_FLAG - - #define API_TRACE_( AAA ) do\ - { _LIT( logStr, AAA ); RDebug::Print( logStr ); } while ( 0 ) - - #define API_TRACE_1( AAA, BBB ) do\ - { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB ); } while ( 0 ) - - #define API_TRACE_2( AAA, BBB, CCC ) do\ - { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC ); } while ( 0 ) - - #define API_TRACE_3( AAA, BBB, CCC, DDD ) do\ - { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC, DDD ); } while ( 0 ) - - #define API_TRACE_4( AAA, BBB, CCC, DDD, EEE ) do\ - { _LIT( logStr, AAA ); RDebug::Print( logStr, BBB, CCC, DDD, EEE ); } while ( 0 ) - - #define API_TRACE_RAW_1( AAA, BBB ) do\ - { _LIT( logStr, AAA ); TBuf buffer; buffer.Append( logStr ); buffer.Append( BBB );\ - RDebug::RawPrint( buffer ); } while ( 0 ) - - #else - - #define API_TRACE_( AAA ) - #define API_TRACE_1( AAA, BBB ) - #define API_TRACE_2( AAA, BBB, CCC ) - #define API_TRACE_3( AAA, BBB, CCC, DDD ) - #define API_TRACE_4( AAA, BBB, CCC, DDD, EEE ) - #define API_TRACE_RAW_1( AAA, BBB ) - - #endif // API_TRACE_FLAG - -#else // _DEBUG - - #define TRACE_ASSERT( a ) - #define TRACE_ASSERT_RETURN( a ) a - #define TRACE_ASSERT_ALWAYS - - #define COM_TRACE_( AAA ) - #define COM_TRACE_1( AAA, BBB ) - #define COM_TRACE_2( AAA, BBB, CCC ) - #define COM_TRACE_3( AAA, BBB, CCC, DDD ) - #define COM_TRACE_4( AAA, BBB, CCC, DDD, EEE ) - #define COM_TRACE_RAW_( AAA ) - #define COM_TRACE_RAW_1( AAA, BBB ) - - #define API_TRACE_( AAA ) - #define API_TRACE_1( AAA, BBB ) - #define API_TRACE_2( AAA, BBB, CCC ) - #define API_TRACE_3( AAA, BBB, CCC, DDD ) - #define API_TRACE_4( AAA, BBB, CCC, DDD, EEE ) - #define API_TRACE_RAW_1( AAA, BBB ) - - #define COMPONENT_TRACE_THIS_FILE - - #define PANIC_IF_FALSE( a ) - #define PANIC_IF_TRUE( a ) - #define PANIC_ALWAYS - -#endif // _DEBUG - -#endif // PHONECMDHANDLER_DEBUG_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerDialCall.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerDialCall.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,134 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declaration of CPhoneHandlerDialCall class. -* -*/ - - - -#ifndef CPHONEHANDLERDIALCALL_H -#define CPHONEHANDLERDIALCALL_H - -// INCLUDES -#include "phonehandlercallbase.h" -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CPhoneHandlerControl; - -// CLASS DECLARATION - -/** -* Handles dial and speed dial key presses. -* -* @lib PhoneCmdHandler -* @since S60 3.1 -*/ -NONSHARABLE_CLASS( CPhoneHandlerDialCall ) : public CPhoneHandlerCallBase - - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneHandlerDialCall* NewL( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation - = ERemConExtDialCall ); - - /** - * Destructor. - */ - virtual ~CPhoneHandlerDialCall(); - - public: // New functions - - public: // Functions from base classes - - /** - * From MPhoneHandlerService. Starts processing service. - * @since S60 3.1 - * @return void - */ - void Process(); - - /** - * From MPhoneHandlerService. Deletes service. - * @since S60 3.1 - * @return void - */ - void Delete(); - - /** - * From MPhoneHandlerObserver. Notifies when asynchronous request has - * been completed. - * @since S60 3.1 - * @param aError request error code - * @return void - */ - void RequestCompleted( const TInt aError ); - - protected: // New functions - - protected: // Functions from base classes - - private: - - /** - * C++ default constructor. - */ - CPhoneHandlerDialCall( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - public: // Data - - protected: // Data - - private: // Data - - // reference to control - CPhoneHandlerControl& iControl; - - // RemConExtensionApi commands which can initiate dial call are - // ERemConExtDialCall and ERemConExtSpeedDial. - // iOperation is used to give response to exact RemConExtensionApi - // command. - TRemConExtCallHandlingApiOperationId iOperation; - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -#endif // CPHONEHANDLERDIALCALL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerEndCall.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerEndCall.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declaration of CPhoneHandlerEndCall class. -* -*/ - - -#ifndef CPHONEHANDLERENDCALL_H -#define CPHONEHANDLERENDCALL_H - -// INCLUDES -#include "phonehandlercallbase.h" -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CPhoneHandlerControl; - -// CLASS DECLARATION - -/** -* Handles end call and reject call key presses. -* -* @lib PhoneCmdHandler -* @since S60 3.1 -*/ -NONSHARABLE_CLASS( CPhoneHandlerEndCall ) : public CPhoneHandlerCallBase - - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneHandlerEndCall* NewL( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation - = ERemConExtEndCall ); - - /** - * Destructor. - */ - virtual ~CPhoneHandlerEndCall(); - - public: // New functions - - public: // Functions from base classes - - /** - * From MPhoneHandlerService. Starts processing service. - * @since S60 3.1 - * @return void - */ - void Process(); - - /** - * From MPhoneHandlerService. Deletes service. - * @since S60 3.1 - * @return void - */ - void Delete(); - - /** - * From MPhoneHandlerObserver. Notifies when asynchronous request has - * been completed. - * @since S60 3.1 - * @param aError request error code - * @return void - */ - void RequestCompleted( const TInt aError ); - - protected: // New functions - - protected: // Functions from base classes - - private: - - /** - * C++ default constructor. - */ - CPhoneHandlerEndCall( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - public: // Data - - protected: // Data - - private: // Data - - // reference to control - CPhoneHandlerControl& iControl; - - // RemConExtensionApi command which initiates end call in BT case - // is either ERemConExtEndCall or ERemConExtAnswerEnd. - // RemConExtensionApi command which initiates end call in wired case - // is ERemConExtAnswerEnd. - // iOperation is used to give response to exact RemConExtensionApi - // command. - TRemConExtCallHandlingApiOperationId iOperation; - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -#endif // CPHONEHANDLERENDCALL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerMultipartyCall.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerMultipartyCall.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declaration of CPhoneHandlerMultipartyCall class. -* -*/ - - -#ifndef CPHONEHANDLERMULTIPARTYCALL_H -#define CPHONEHANDLERMULTIPARTYCALL_H - -// INCLUDES -#include "phonehandlercallbase.h" -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CPhoneHandlerControl; - -// CLASS DECLARATION - -/** -* Handles multiparty call key press. -* -* @lib PhoneCmdHandler -* @since S60 3.1 -*/ -NONSHARABLE_CLASS( CPhoneHandlerMultipartyCall ) : public CPhoneHandlerCallBase - - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneHandlerMultipartyCall* NewL( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation - = ERemConExt3WaysCalling - ); - - /** - * Destructor. - */ - virtual ~CPhoneHandlerMultipartyCall(); - - public: // New functions - - public: // Functions from base classes - - /** - * From MPhoneHandlerService. Starts processing service. - * @since S60 3.1 - * @return void - */ - void Process(); - - /** - * From MPhoneHandlerService. Deletes service. - * @since S60 3.1 - * @return void - */ - void Delete(); - - /** - * From MPhoneHandlerObserver. Notifies when asynchronous request has - * been completed. - * @since S60 3.1 - * @param aError request error code - * @return void - */ - void RequestCompleted( const TInt aError ); - - protected: // New functions - - protected: // Functions from base classes - - private: - - /** - * C++ default constructor. - */ - CPhoneHandlerMultipartyCall( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - public: // Data - - protected: // Data - - private: // Data - - // reference to control - CPhoneHandlerControl& iControl; - - // iOperation is used to give response to exact RemConExtensionApi - // command - TRemConExtCallHandlingApiOperationId iOperation; - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -#endif // CPHONEHANDLERMULTIPARTYCALL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerObserver.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declaration of MPhoneHandlerObserver interface. -* -*/ - - -#ifndef MPHONEHANDLEROBSERVER_H -#define MPHONEHANDLEROBSERVER_H - -// INCLUDES -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* Interface used to notify PhoneCmdHandler objects about completed -* asynchronous request. -* -* @lib PhoneCmdHandler -* @since S60 3.1 -*/ -class MPhoneHandlerObserver - { - public: // Constructors and destructor - - - public: // New functions - - /** - * Asynchronous request has been completed. - * @since S60 3.1 - * @param aError Result code of request processing. - * @return void - */ - virtual void RequestCompleted( const TInt aError ) = 0; - - public: // Functions from base classes - - - protected: // New functions - - - protected: // Functions from base classes - - - private: - - - public: // Data - - protected: // Data - - private: // Data - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -#endif //MPHONEHANDLEROBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerRedial.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerRedial.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declaration of CPhoneHandlerLastNumberRedial class. -* -*/ - - - -#ifndef CPHONEHANDLERLASTNUMBERREDIAL_H -#define CPHONEHANDLERLASTNUMBERREDIAL_H - -// INCLUDES -#include "phonehandlercallbase.h" -#include -#include -#include -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// CLASS DECLARATION -class CPhoneHandlerControl; - -/** -* Handles last number redial key press. -* -* @lib PhoneCmdHandler -* @since S60 3.1 -*/ -NONSHARABLE_CLASS( CPhoneHandlerLastNumberRedial ) : public CPhoneHandlerCallBase - - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneHandlerLastNumberRedial* - NewL( CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation - = ERemConExtLastNumberRedial ); - - /** - * Destructor. - */ - virtual ~CPhoneHandlerLastNumberRedial(); - - public: // New functions - - public: // Functions from base classes - - /** - * From MPhoneHandlerService. Starts processing service. - * @since S60 3.1 - * @return void - */ - void Process(); - - /** - * From MPhoneHandlerService. Deletes service. - * @since S60 3.1 - * @return void - */ - void Delete(); - - /** - * From MPhoneHandlerObserver. Notifies when asynchronous request has - * been completed. - * @since S60 3.1 - * @param aError request error code - * @return void - */ - void RequestCompleted( const TInt aError ); - - protected: // New functions - - protected: // Functions from base classes - - private: - - /** - * C++ default constructor. - */ - CPhoneHandlerLastNumberRedial( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - public: // Data - - protected: // Data - - private: // Data - - // A handle to a file server session. - RFs iFsSession; - - // Log Engine implementation - CLogClient* iLogClientPtr; // owned - - // A view on a recent event list. - CLogViewRecent* iLogViewRecentPtr; // owned - - // reference to control - CPhoneHandlerControl& iControl; - - // iOperation is used to give response to exact RemConExtensionApi - // command - TRemConExtCallHandlingApiOperationId iOperation; - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - - -#endif // CPHONEHANDLERLASTNUMBERREDIAL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerResponse.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerResponse.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declaration of CPhoneHandlerResponse class. -* -*/ - - -#ifndef CPHONEHANDLERRESPONSE_H -#define CPHONEHANDLERRESPONSE_H - -// INCLUDES -#include "phonehandlerservice.h" -#include "phonehandlerobserver.h" -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CPhoneHandlerControl; -class CPhoneHandlerActive; - -// CLASS DECLARATION - -/** -* Handles answer call key press. -* -* @lib PhoneCmdHandler -* @since S60 3.1 -*/ -NONSHARABLE_CLASS( CPhoneHandlerResponse ) : public CBase, - public MPhoneHandlerService, - public MPhoneHandlerObserver - - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneHandlerResponse* NewL( CPhoneHandlerControl& aControl ); - - /** - * Destructor. - */ - virtual ~CPhoneHandlerResponse(); - - public: // New functions - - /** - * Sets response message. This method has to be called before Process() - * is called. - * @since S60 3.1 - * @param aOperation operation to which response is sent - * @param aError Symbian OS error code - * @return void - */ - void SetResponse( TRemConExtCallHandlingApiOperationId aOperation, - TInt aError ); - - public: // Functions from base classes - - /** - * From MPhoneHandlerService. Sends response to RemCon FW. - * @since S60 3.1 - * @return void - */ - void Process(); - - /** - * From MPhoneHandlerService. Deletes service. - * @since S60 3.1 - * @return void - */ - void Delete(); - - /** - * From MPhoneHandlerObserver. Notifies when asynchronous request has - * been completed. - * @since S60 3.1 - * @param aError request error code - * @return void - */ - void RequestCompleted( const TInt aError ); - - protected: // New functions - - protected: // Functions from base classes - - private: - - /** - * C++ default constructor. - */ - CPhoneHandlerResponse( CPhoneHandlerControl& aControl ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - public: // Data - - protected: // Data - - private: // Data - - // active object for asynchronous requests - CPhoneHandlerActive* iActive; - - // reference to control - CPhoneHandlerControl& iControl; - - // iOperation is used to give response to exact RemConExtensionApi - // command - TRemConExtCallHandlingApiOperationId iOperation; - - // Response code - TInt iError; - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -#endif // CPHONEHANDLERRESPONSE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerService.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerService.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declaration of MPhoneHandlerService interface. -* -*/ - - -#ifndef MPHONEHANDLERSERVICE_H -#define MPHONEHANDLERSERVICE_H - -// INCLUDES -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* Interface to control objects that perform call handling key presses. -* -* @lib PhoneCmdHandler -* @since S60 3.1 -*/ -class MPhoneHandlerService - { - public: // Constructors and destructor - - public: // New functions - - /** - * Starts to process an asynchronous request. - * @since Series 60 3.1 - * @param - * @return - */ - virtual void Process() = 0; - - /** - * Deletes service object. - * @since Series 60 3.1 - * @param - * @return - */ - virtual void Delete() = 0; - - public: // Functions from base classes - - protected: // New functions - - protected: // Functions from base classes - - private: - - public: // Data - - protected: // Data - - private: // Data - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -#endif // MPHONEHANDLERSERVICE_H - -// End of File - diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerVoiceDial.h --- a/phonecmdhandler/phonecmdhnlr/inc/PhoneHandlerVoiceDial.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declaration of CPhoneHandlerVoiceDial class. -* -*/ - - -#ifndef CPHONEHANDLERVOICEDIAL_H -#define CPHONEHANDLERVOICEDIAL_H - -// INCLUDES -#include "phonehandlercallbase.h" -#include - -// CONSTANTS - -// MACROS - -// DATA TYPES - -// FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS -class CPhoneHandlerControl; - -// CLASS DECLARATION - -/** -* Handles dial and speed dial key presses. -* -* @lib PhoneCmdHandler -* @since S60 3.1 -*/ -NONSHARABLE_CLASS( CPhoneHandlerVoiceDial ) : public CPhoneHandlerCallBase - - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneHandlerVoiceDial* NewL( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation = - ERemConExtVoiceDial ); - - /** - * Destructor. - */ - virtual ~CPhoneHandlerVoiceDial(); - - public: // New functions - - public: // Functions from base classes - - /** - * From MPhoneHandlerService. Starts processing service. - * @since S60 3.1 - * @return void - */ - void Process(); - - /** - * From MPhoneHandlerService. Deletes service. - * @since S60 3.1 - * @return void - */ - void Delete(); - - /** - * From MPhoneHandlerObserver. Notifies when asynchronous request has - * been completed. - * @since S60 3.1 - * @param aError request error code - * @return void - */ - void RequestCompleted( const TInt aError ); - - protected: // New functions - - protected: // Functions from base classes - - - private: - - /** - * C++ default constructor. - */ - CPhoneHandlerVoiceDial( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - public: // Data - - protected: // Data - - private: // Data - - // reference to control - CPhoneHandlerControl& iControl; - - // Command which initiates voice call in BT case is ERemConExtVoiceDial. - // Command which initiates voice call in wired case is - // ERemConExtEndCall. - // iOperation is used to give response to exact RemConExtensionApi - // command - TRemConExtCallHandlingApiOperationId iOperation; - - public: // Friend classes - - protected: // Friend classes - - private: // Friend classes - - }; - -#endif // CPHONEHANDLERVOICEDIAL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/src/PhoneHandler.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,108 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Provides interface for client to load PhoneCmdHandler. -* -*/ - - -// INCLUDE FILES -#include "phonehandlercontrol.h" -#include "phonehandlerdebug.h" -#include "PhoneHandler.h" - -// EXTERNAL DATA STRUCTURES - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -// MACROS - -// LOCAL CONSTANTS AND MACROS - -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneHandler::CPhoneHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhoneHandler::CPhoneHandler() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhoneHandler::ConstructL( CRemConInterfaceSelector* aIfSelector ) - { - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandler::ConstructL() *aIfSelector=%d", aIfSelector ); - - iControl = CPhoneHandlerControl::NewL( aIfSelector ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhoneHandler* CPhoneHandler::NewL() - { - CPhoneHandler* self = new ( ELeave ) CPhoneHandler(); - - CleanupStack::PushL( self ); - self->ConstructL( NULL ); - CleanupStack::Pop( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhoneHandler* CPhoneHandler::NewL( - CRemConInterfaceSelector& aIfSelector ) - { - CPhoneHandler* self = new ( ELeave ) CPhoneHandler(); - - CleanupStack::PushL( self ); - self->ConstructL( &aIfSelector ); - CleanupStack::Pop( self ); - - return self; - } - -// Destructor -EXPORT_C CPhoneHandler::~CPhoneHandler() - { - delete iControl; - } - -// ======================== OTHER EXPORTED FUNCTIONS =========================== - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/src/PhoneHandlerActive.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerActive.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,125 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Active object used to call asynchronous requests. -* -*/ - - -// INCLUDE FILES -#include "phonehandleractive.h" -#include "phonehandlerobserver.h" -#include "phonehandlerdebug.h" - -// EXTERNAL DATA STRUCTURES - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -// MACROS - -// LOCAL CONSTANTS AND MACROS - -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - - -// ============================ MEMBER FUNCTIONS =============================== - -CPhoneHandlerActive* CPhoneHandlerActive::NewL( MPhoneHandlerObserver& aObserver ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerActive::NewL() start" ); - CPhoneHandlerActive* self = new(ELeave) CPhoneHandlerActive( aObserver ); - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerActive::NewL() end" ); - return self; - } - -CPhoneHandlerActive::~CPhoneHandlerActive() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerActive::~CPhoneHandlerActive() start" ); - - Cancel(); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerActive::~CPhoneHandlerActive() end" ); - } - -CPhoneHandlerActive::CPhoneHandlerActive( MPhoneHandlerObserver& aObserver ) -: CActive(CActive::EPriorityStandard), - iObserver(aObserver) - { - CActiveScheduler::Add(this); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerActive::SetActive() -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerActive::SetActive() - { - CActive::SetActive(); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerActive::RunL() -// Informs caller of an asynchronous request that it has been completed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerActive::RunL() - { - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerActive::RunL() iStatus.Int()=%d", iStatus.Int() ); - - TInt error( iStatus.Int() ); - iStatus = KErrNone; - iObserver.RequestCompleted( error ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerActive::RunError -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CPhoneHandlerActive::RunError( TInt aError ) - { - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerActive::RunError(%d)", aError ); - - // Avoid Panic in CActiveScheduler - aError = KErrNone; - - COM_TRACE_( "[AccFW:PHONECMDHANDLER] CPhoneHandlerActive::RunError() - return KErrNone" ); - - return aError; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerActive::DoCancel -// No need to cancel an asynchronous request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerActive::DoCancel() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerActive::DoCancel() start" ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerActive::DoCancel() end" ); - } - -// -// End of file diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/src/PhoneHandlerAnswerCall.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerAnswerCall.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,171 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Handles answer call key press. -* -*/ - - -// INCLUDE FILES -#include "phonehandleranswercall.h" -#include "phonehandlercontrol.h" -#include "phonehandlerdebug.h" -#include - -#include - -// EXTERNAL DATA STRUCTURES - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -// MACROS - -// LOCAL CONSTANTS AND MACROS - -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneHandlerAnswerCall::CPhoneHandlerAnswerCall -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerAnswerCall::CPhoneHandlerAnswerCall( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) -: iControl( aControl ), - iOperation( aOperation ) - { - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerAnswerCall::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerAnswerCall::ConstructL() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerAnswerCall::ConstructL() start" ); - - LoadServiceL(); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerAnswerCall::ConstructL() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerAnswerCall::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerAnswerCall* CPhoneHandlerAnswerCall::NewL( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerAnswerCall::NewL() start" ); - - CPhoneHandlerAnswerCall* self = new( ELeave ) CPhoneHandlerAnswerCall( - aControl, - aOperation ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerAnswerCall::NewL() end" ); - - return self; - } - -// Destructor -CPhoneHandlerAnswerCall::~CPhoneHandlerAnswerCall() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerAnswerCall::~CPhoneHandlerAnswerCall()" ); - - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerAnswerCall::Process -// Starts to process service. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerAnswerCall::Process() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerAnswerCall::Process()" ); - - iCommandHandler->Ata( GetStatus() ); - Activate(); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerAnswerCall::Delete -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerAnswerCall::Delete() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerAnswerCall::Delete()" ); - - delete this; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerAnswerCall::RequestCompleted -// Handler for completed asynchronous calls. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerAnswerCall::RequestCompleted( const TInt aError ) - { - COM_TRACE_2( "[PHONECMDHANDLER] CPhoneHandlerAnswerCall::RequestCompleted() aError=%d, iState=%d", aError, iState ); - - switch( iState ) - { - case EPhoneHandlerState1: - { - NextState(); - iControl.CommandInitiator().SendResponse( GetStatus(), - iOperation, - aError ); - Activate(); - break; - } - - case EPhoneHandlerState2: - { - IdleState(); - delete this; - break; - } - - default: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerAnswerCall::RequestCompleted() Unspecified state" ); - break; - } - }; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/src/PhoneHandlerCallBase.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerCallBase.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,152 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Base class for services. -* -*/ - - - -// INCLUDE FILES -#include "phonehandlercallbase.h" -#include "phonehandleractive.h" -#include "phonehandlerdebug.h" - -#include - -// EXTERNAL DATA STRUCTURES - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -// MACROS - -// LOCAL CONSTANTS AND MACROS - -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneHandlerCallBase::CPhoneHandlerCallBase -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerCallBase::CPhoneHandlerCallBase() - : iState( EPhoneHandlerState1 ) - { - } - -// Destructor -CPhoneHandlerCallBase::~CPhoneHandlerCallBase() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallBase::~CPhoneHandlerCallBase()" ); - - iServer.Close(); - delete iCommandHandler; - delete iActive; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerCallBase::LoadServiceL -// Initializes API that is used to request call handling related services. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerCallBase::LoadServiceL() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallBase::LoadServiceL() start" ); - - - - iCommandHandler = CPhCltCommandHandler::NewL(); - - User::LeaveIfError( iServer.Connect() ); // create session - - // Create active object - iActive = CPhoneHandlerActive::NewL( *this ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallBase::LoadServiceL() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerCallBase::NextState -// Increments state used to control service. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerCallBase::NextState() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallBase::NextState() start" ); - - TInt temp = static_cast( iState ); - ++temp; - iState = static_cast( temp ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallBase::NextState() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerCallBase::IdleState -// Sets a specific state when service has been completed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerCallBase::IdleState() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallBase::IdleState() start" ); - - iState = EPhoneHandlerStateIdle; - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallBase::IdleState() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerCallBase::GetStatus -// Returns active object's TRequestStatus for asynchronous calls. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TRequestStatus& CPhoneHandlerCallBase::GetStatus() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallBase::GetStatus() start" ); - - return iActive->iStatus; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerCallBase::Activate -// Activates an active object for asynchronous calls. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerCallBase::Activate() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallBase::Activate() start" ); - - iActive->SetActive(); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallBase::Activate() end" ); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/src/PhoneHandlerCallState.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerCallState.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,155 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Listens to call state changes and informs control. -* -*/ - - -// INCLUDE FILES -#include "phonehandlercallstate.h" -#include "phonehandlercontrol.h" -#include "phonehandlerdebug.h" -#include - -// EXTERNAL DATA STRUCTURES - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -// MACROS - -// LOCAL CONSTANTS AND MACROS - -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneHandlerCallState::CPhoneHandlerCallState -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerCallState::CPhoneHandlerCallState( CPhoneHandlerControl& aControl ) -: CActive(CActive::EPriorityStandard), - iControl( aControl ) - { - CActiveScheduler::Add(this); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerCallState::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerCallState::ConstructL() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallState::ConstructL() start" ); - - // Allows CPhoneHandlerCallState to start to listen S60 call states. - User::LeaveIfError( - iProperty.Attach( KPSUidCtsyCallInformation, KCTsyCallState ) ); - - Subscribe(); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallState::ConstructL() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerCallState::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -CPhoneHandlerCallState* CPhoneHandlerCallState::NewL( CPhoneHandlerControl& aControl ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallState::NewL()" ); - - CPhoneHandlerCallState* self = new(ELeave) CPhoneHandlerCallState( aControl ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - -// Destructor -CPhoneHandlerCallState::~CPhoneHandlerCallState() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallState::~CPhoneHandlerCallState() start" ); - - Cancel(); - iProperty.Cancel(); - iProperty.Close(); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallState::~CPhoneHandlerCallState() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerCallState::RunL() -// Informs caller of an asynchronous request that it has been completed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerCallState::RunL() - { - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerCallState::RunL() - return code = %d", iStatus.Int() ); - - TInt state( 0 ); - iProperty.Get( state ); - - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerCallState - KTelephonyCallState = %d", state ); - - if( iStatus.Int() == KErrNone ) - { - iControl.NotifyCallState( state ); - } - - Subscribe(); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerCallState::DoCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerCallState::DoCancel() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallState::DoCancel()" ); - - iProperty.Cancel(); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerCallState::Subscribe -// Start to listen changes in call state. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerCallState::Subscribe() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerCallState::Subscribe()" ); - - iProperty.Subscribe( iStatus ); - SetActive(); - } - -// -// End of file diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/src/PhoneHandlerControl.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerControl.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,715 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Receives call handling related key presses from accessories and -* executes them. -* -*/ - - - -// INCLUDE FILES -#include "phonehandlercontrol.h" -#include "phonehandlerservice.h" -#include "phonehandleranswercall.h" -#include "phonehandlerendcall.h" -#include "phonehandlerdialcall.h" -#include "phonehandlervoicedial.h" -#include "phonehandlerredial.h" -#include "phonehandlermultipartycall.h" -#include "phonehandlerdtmf.h" -#include "phonehandleractive.h" -#include "phonehandlerresponse.h" -#include "phonehandlercallstate.h" -#include "phonehandlerdebug.h" -#include -#include -#include - -#if 0 -#include -#endif - -#include - -// EXTERNAL DATA STRUCTURES - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -// MACROS - -// LOCAL CONSTANTS AND MACROS - -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES -const TInt KMultipartyCallMinParam = 1; -const TInt KMultipartyCallMaxParam = 2; - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::CPhoneHandlerControl -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerControl::CPhoneHandlerControl() - : iPrevState( EPSCTsyCallStateNone ) - { - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerControl::ConstructL( CRemConInterfaceSelector* aIfSelector ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::ConstructL() start" ); - - if( !aIfSelector ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::ConstructL() Create connection to RemCon." ); - - // Target connection to RemCon FW hasn't been done. - iInterfaceSelector = CRemConInterfaceSelector::NewL(); - iTarget = CRemConCallHandlingTarget::NewL( *iInterfaceSelector, *this ); - iInterfaceSelector->OpenTargetL(); - } - else - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::ConstructL() Don't create connection to RemCon." ); - - // Connection to RemCon FW as target has already been done in a process. - iTarget = CRemConCallHandlingTarget::NewL( *aIfSelector, *this ); - } - - iResponse = CPhoneHandlerResponse::NewL( *this ); - iCallStateObserver = CPhoneHandlerCallState::NewL( *this ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::ConstructL() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerControl* CPhoneHandlerControl::NewL( - CRemConInterfaceSelector* aIfSelector ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::NewL() start" ); - - CPhoneHandlerControl* self = new ( ELeave ) CPhoneHandlerControl(); - - CleanupStack::PushL( self ); - self->ConstructL( aIfSelector ); - CleanupStack::Pop( self ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::NewL() end" ); - - return self; - } - -// Destructor -CPhoneHandlerControl::~CPhoneHandlerControl() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::~CPhoneHandlerControl() start" ); - - if( iInterfaceSelector ) - { - delete iInterfaceSelector; - } - - if( iResponse ) - { - iResponse->Delete(); - } - - if( iCallStateObserver ) - { - delete iCallStateObserver; - } - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::~CPhoneHandlerControl() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::TelephoneNumber -// Provides phone number for service. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const TPhCltTelephoneNumber& - CPhoneHandlerControl::TelephoneNumber() const - { - return iTelNumber; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::VoiceDialStatus -// Provides voice dial status for service. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const TBool& - CPhoneHandlerControl::VoiceDialStatus() const - { - return iActivate; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::ChldCommand -// Provides CHLD command for service. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const TInt& - CPhoneHandlerControl::ChldCommand() const - { - return iChldCommand; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::ChldCallNumber -// Provides CHLD call number for service. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const TInt& - CPhoneHandlerControl::ChldCallNumber() const - { - return iChldCallNumber; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::Tone -// Provides DTMF tone for service. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const TChar& - CPhoneHandlerControl::Tone() const - { - return iChar; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::CommandInitiator -// Provides API that service uses to send reponse to command. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CRemConCallHandlingTarget& - CPhoneHandlerControl::CommandInitiator() const - { - return *iTarget; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::NotifyCallState -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerControl::NotifyCallState( const TInt aState ) - { - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState() aState=%d", aState ); - - if( aState == EPSCTsyCallStateConnected && iPrevState != EPSCTsyCallStateHold ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState(): iActiveCalls++" ); - - iActiveCalls++; - } - else if( aState == EPSCTsyCallStateDisconnecting && - ( iPrevState == EPSCTsyCallStateConnected || iPrevState == EPSCTsyCallStateHold )) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState(): iActiveCalls--" ); - - iActiveCalls--; - } - else if( aState == EPSCTsyCallStateNone ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState(): iActiveCalls = 0" ); - iActiveCalls = 0; - } - - iPrevState = aState; - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::NotifyCallState() iActiveCalls=%d", iActiveCalls ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::AnswerCall -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerControl::AnswerCall() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::AnswerCall() start" ); - - StartProcessing( ERemConExtAnswerCall ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::AnswerCall() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::EndCall -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerControl::EndCall() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::EndCall() start" ); - - StartProcessing( ERemConExtEndCall ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::EndCall() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::AnswerEndCall -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerControl::AnswerEndCall() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::AnswerEndCall() start" ); - - StartProcessing( ERemConExtAnswerEnd ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::AnswerEndCall() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::VoiceDial -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -#if 0 // SCB CR EHSA-7APJWF: SIND subscribes to RemCon directly -void CPhoneHandlerControl::VoiceDial( const TBool aActivate ) - { - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::VoiceDial() aActivate=%d", aActivate ); - - TInt callState( EPSCTsyCallStateUninitialized ); - iProperty.Get( KPSUidCtsyCallInformation, KCTsyCallState, callState ); - - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() call state = %d", callState ); - - if( callState == EPSCTsyCallStateUninitialized || - callState == EPSCTsyCallStateNone ) - { - TInt voiceUiState( KVoiceUiIsClose ); - iProperty.Get( KPSUidVoiceUiAccMonitor, KVoiceUiOpenKey, voiceUiState ); - - if( voiceUiState == KVoiceUiIsOpen ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::VoiceDial() voice UI is open!" ); - iProperty.Set( KPSUidVoiceUiAccMonitor , KVoiceUiAccessoryEvent, ERemConExtVoiceDial ); - iResponse->SetResponse( ERemConExtVoiceDial, KErrNone ); - iResponse->Process(); - } - else - { - iActivate = aActivate; - StartProcessing( ERemConExtVoiceDial ); - } - } - else - { - iResponse->SetResponse( ERemConExtVoiceDial, KErrNone ); - iResponse->Process(); - } - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::VoiceDial() end" ); - } -#else -void CPhoneHandlerControl::VoiceDial( const TBool /*aActivate*/ ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::VoiceDial()" ); - - iResponse->SetResponse( ERemConExtVoiceDial, KErrNone ); - iResponse->Process(); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::VoiceDial() end" ); - } -#endif -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::LastNumberRedial -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerControl::LastNumberRedial( ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::LastNumberRedial() start" ); - - StartProcessing( ERemConExtLastNumberRedial ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::LastNumberRedial() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::DialCall -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerControl::DialCall( const TDesC8& aTelNumber ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::DialCall() start" ); - - // Check aTelNumber range - if( KPhCltTelephoneNumberLength < aTelNumber.Length() ) - { - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::DialCall() number value=%d too long", aTelNumber.Size() ); - iResponse->SetResponse( ERemConExtDialCall, KErrArgument ); - iResponse->Process(); - return; - } - - iTelNumber.Copy( aTelNumber ); - - StartProcessing( ERemConExtDialCall ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::DialCall() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::MultipartyCalling -// Method supports multiparty call handling according to BT handsfree profile -// (HFP) 1.5. BT HFP 1.5 defines contents of aData parameter as follows: 0, 1, -// 1, 2, 2, 3 and 4, where: -// -// 0 = Releases all held calls or sets User Determined User Busy (UDUB) for -// a waiting call. -// 1 = Releases all active calls (if any exist) and accepts the other -// (held or waiting) call. -// 1 = Releases specified active call only ( = digit from 1 to 9. -// Command is e.g. "11" ). -// 2 = Places all active calls (if any exist) on hold and accepts the other -// (held or waiting) call. -// 2 = Request private consultation mode with specified call ( = -// from 1 to 9. Command is e.g. "21" ). -// (Place all calls on hold EXCEPT the call indicated by .) -// 3 = Adds a held call to the conversation. -// 4 = Connects the two calls and disconnects the subscriber from both calls -// (Explicit Call Transfer). Support for this value and its associated -// functionality is optional for the HF. -// -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerControl::MultipartyCalling( const TDesC8& aData ) - { - TBool error( EFalse ); - iChldCommand = 0; - iChldCallNumber = 0; - TBuf8< KRemConExtParamMaxLength > buf( aData ); - buf.Trim(); - TInt length = buf.Length(); - - // Check invalid number of characters - if ( length < KMultipartyCallMinParam || length > KMultipartyCallMaxParam ) - { - error = ETrue; - } - else - { - TLex8 param; - // Set command - param.Assign( buf.Mid( 0, 1 ) ); - if( param.Val( iChldCommand ) != KErrNone ) - { - error = ETrue; - } - else if ( length == KMultipartyCallMaxParam ) - { - // Set call number - param.Assign( buf.Mid(1) ); - if( param.Val( iChldCallNumber ) != KErrNone ) - { - error = ETrue; - } - } - } - - if( error ) - { - // Invalid command - iResponse->SetResponse( ERemConExt3WaysCalling, KErrArgument ); - iResponse->Process(); - return; - } - - COM_TRACE_2( "[PHONECMDHANDLER] CPhoneHandlerControl::MultipartyCalling() iChldCommand=%d, iChldCallNumber=%d", iChldCommand, iChldCallNumber ); - - StartProcessing( ERemConExt3WaysCalling ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::MultipartyCalling() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::GenerateDTMF -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerControl::GenerateDTMF( const TChar aChar ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::GenerateDTMF() start" ); - - iChar = aChar; - - StartProcessing( ERemConExtGenerateDTMF ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::GenerateDTMF() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::SpeedDial -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerControl::SpeedDial( const TInt /*aIndex*/ ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::SpeedDial() - Not Supported" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::StartProcessing -// Creates an object that executes call handling command received from -// accessory. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerControl::StartProcessing( - const TRemConExtCallHandlingApiOperationId aOperation ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::StartProcessing() start" ); - - // Create a service - MPhoneHandlerService* service = NULL; - TInt error( KErrNone ); - TRAP( error, service = CreateServiceL( aOperation ) ); - - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() returned %d", error ); - - if( error ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::StartProcessing(): service wasn't created succesfully." ); - - // An error happened. Delete service, if it exists. - if( service ) - { - service->Delete(); - service = NULL; - } - - iResponse->SetResponse( aOperation, error ); - iResponse->Process(); - return; - } - else - { - // start service - service->Process(); - iSwitchCall = EFalse; - } - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::StartProcessing() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::CreateServiceL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -MPhoneHandlerService* CPhoneHandlerControl:: - CreateServiceL( const TRemConExtCallHandlingApiOperationId aOperation ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() start" ); - - MPhoneHandlerService* pService = NULL; - - switch( aOperation ) - { - case ERemConExtAnswerCall: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtAnswerCall command" ); - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - iActiveCalls is %d", iActiveCalls ); - - /* - if( iActiveCalls > 0 ) - { - // Multiparty call - iSwitchCall = ETrue; - pService = CPhoneHandlerMultipartyCall::NewL( *this ); - } - else - { - // non-multiparty call - pService = CPhoneHandlerAnswerCall::NewL( *this ); - } - */ - pService = CPhoneHandlerAnswerCall::NewL( *this ); - - break; - } - - case ERemConExtEndCall: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtEndCall command" ); - - pService = CPhoneHandlerEndCall::NewL( *this ); - - break; - } - - case ERemConExtAnswerEnd: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtAnswerEnd command" ); - - TInt callState( EPSCTsyCallStateUninitialized ); - iProperty.Get( KPSUidCtsyCallInformation, KCTsyCallState, callState ); - - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() call state = %d", callState ); - - if( callState != EPSCTsyCallStateUninitialized && - callState != EPSCTsyCallStateNone && - callState != EPSCTsyCallStateDisconnecting ) - { - if( callState == EPSCTsyCallStateAlerting || - callState == EPSCTsyCallStateDialling || - callState == EPSCTsyCallStateAnswering || - callState == EPSCTsyCallStateConnected || - callState == EPSCTsyCallStateHold ) - { - pService = CPhoneHandlerEndCall::NewL( *this, - aOperation ); - } - // callState == EPSTelephonyCallStateRinging - else - { - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() iActiveCalls = %d", iActiveCalls ); - if( iActiveCalls > 0 ) - { - // multicall case : End call that has existed longer. - // (From UI viewpoint ringing call is in waiting state.) - pService = CPhoneHandlerEndCall::NewL( *this, - aOperation ); - if( callState == EPSCTsyCallStateRinging ) - { - // In multiparty case the telephony key is not - // updated. The call amount is updated manually. - iActiveCalls--; - } - } - else - { - pService = CPhoneHandlerAnswerCall::NewL( - *this, - aOperation ); - } - } - } - else - { - // Send / end button was pressed when there were not - // any calls active. Response has to be sent back to accessory - // at least for following reasons: - - // 1. RemCon FW releases message related memory only when response - // is sent back to accessory. - - // 2. BT accessory key press producing ERemConExtAnswerEnd - // operation has some other meaning than answer/end call - // and it's processed by proper client. However, there - // might be a situation where proper client isn't active - // and can't process command. In any case RemCon/BT accessory - // requires response to command. That's why PhoneCmdHandler - // sends reponse to command. - - iResponse->SetResponse( aOperation, KErrNone ); - pService = iResponse; - } - break; - } - - case ERemConExtDialCall: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtDialCall command" ); - - pService = CPhoneHandlerDialCall::NewL( *this ); - break; - } - - case ERemConExtVoiceDial: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtVoiceDial command" ); - - pService = CPhoneHandlerVoiceDial::NewL( *this ); - break; - } - - case ERemConExtLastNumberRedial: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtLastNumberRedial command" ); - - pService = CPhoneHandlerLastNumberRedial::NewL( *this ); - break; - } - - case ERemConExt3WaysCalling: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExt3WaysCalling command" ); - - pService = CPhoneHandlerMultipartyCall::NewL( *this ); - break; - } - - case ERemConExtGenerateDTMF: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() - ERemConExtGenerateDTMF command" ); - - pService = CPhoneHandlerDTMF::NewL( *this ); - break; - } - - default: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() Unspecified state" ); - break; - } - }; - - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerControl::CreateServiceL() end, %d", pService ); - return pService; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerControl::SwitchCall -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CPhoneHandlerControl::SwitchCall() - { - return iSwitchCall; - } -// ======================== OTHER EXPORTED FUNCTIONS =========================== - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/src/PhoneHandlerDTMF.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerDTMF.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,172 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Handles DTMF tone. -* -*/ - - -// INCLUDE FILES -#include "phonehandlerdtmf.h" -#include "phonehandlercontrol.h" -#include "phonehandlerdebug.h" -#include - -#include - - -// EXTERNAL DATA STRUCTURES - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -// MACROS - -// LOCAL CONSTANTS AND MACROS - -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneHandlerDTMF::CPhoneHandlerDTMF -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerDTMF::CPhoneHandlerDTMF( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) -: iControl( aControl ), - iOperation( aOperation ) - { - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerDTMF::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerDTMF::ConstructL() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDTMF::ConstructL() start" ); - - LoadServiceL(); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDTMF::ConstructL() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerDTMF::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerDTMF* CPhoneHandlerDTMF::NewL( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDTMF::NewL()" ); - - CPhoneHandlerDTMF* self = new( ELeave ) CPhoneHandlerDTMF( aControl, - aOperation ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - - -// Destructor -CPhoneHandlerDTMF::~CPhoneHandlerDTMF() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDTMF::~CPhoneHandlerDTMF()" ); - - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerDTMF::Process -// Starts to process service. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerDTMF::Process() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDTMF::Process()" ); - - iCommandHandler->Vts( GetStatus(), - iControl.Tone(), - EPhCltDtmfNotUsed ); - Activate(); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerDTMF::Delete -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerDTMF::Delete() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDTMF::Delete()" ); - - delete this; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerDTMF::RequestCompleted -// Handler for completed asynchronous calls. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerDTMF::RequestCompleted( const TInt aError ) - { - COM_TRACE_2( "[PHONECMDHANDLER] CPhoneHandlerDTMF::RequestCompleted() aError=%d, iState=%d", aError, iState ); - - switch( iState ) - { - case EPhoneHandlerState1: - { - NextState(); - iControl.CommandInitiator().SendResponse( GetStatus(), - iOperation, - aError ); - Activate(); - break; - } - - case EPhoneHandlerState2: - { - IdleState(); - delete this; - break; - } - - default: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDTMF::RequestCompleted() Unspecified state" ); - break; - } - }; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/src/PhoneHandlerDialCall.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerDialCall.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,173 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Handles dial and speed dial key presses. -* -*/ - - -// INCLUDE FILES -#include "phonehandlerdialcall.h" -#include "phonehandlercontrol.h" -#include "phonehandlerdebug.h" - -#include -#include -#include - -// EXTERNAL DATA STRUCTURES - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -// MACROS - -// LOCAL CONSTANTS AND MACROS - -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneHandlerDialCall::CPhoneHandlerDialCall -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerDialCall::CPhoneHandlerDialCall( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) -: iControl( aControl ), - iOperation( aOperation ) - { - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerDialCall::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerDialCall::ConstructL() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDialCall::ConstructL() start" ); - - LoadServiceL(); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDialCall::ConstructL() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerDialCall::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerDialCall* CPhoneHandlerDialCall::NewL( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDialCall::NewL()" ); - - CPhoneHandlerDialCall* self = new( ELeave ) CPhoneHandlerDialCall( - aControl, - aOperation ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - - -// Destructor -CPhoneHandlerDialCall::~CPhoneHandlerDialCall() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDialCall::~CPhoneHandlerDialCall()" ); - - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerDialCall::Process -// Starts to process service. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerDialCall::Process() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDialCall::Process()" ); - - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerDialCall::Process() telephone number is %S", &(iControl.TelephoneNumber() ) ); - iCommandHandler->Atd( GetStatus(), iControl.TelephoneNumber() ); - - Activate(); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerDialCall::Delete -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerDialCall::Delete() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDialCall::Delete()" ); - - delete this; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerDialCall::RequestCompleted -// Handler for completed asynchronous calls. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerDialCall::RequestCompleted( const TInt aError ) - { - COM_TRACE_2( "[PHONECMDHANDLER] CPhoneHandlerDialCall::RequestCompleted() aError=%d, iState=%d", aError, iState ); - - switch( iState ) - { - case EPhoneHandlerState1: - { - NextState(); - iControl.CommandInitiator().SendResponse( GetStatus(), - iOperation, - aError ); - Activate(); - break; - } - - case EPhoneHandlerState2: - { - IdleState(); - delete this; - break; - } - - default: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerDialCall::AsynchronousRequestCompleted() Unspecified state" ); - break; - } - }; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/src/PhoneHandlerEndCall.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerEndCall.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,170 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Handles end call and reject call key presses. -* -*/ - - -// INCLUDE FILES -#include "phonehandlerendcall.h" -#include "phonehandlercontrol.h" -#include "phonehandlerdebug.h" -#include - -#include - -// EXTERNAL DATA STRUCTURES - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -// MACROS - -// LOCAL CONSTANTS AND MACROS - -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneHandlerEndCall::CPhoneHandlerEndCall -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerEndCall::CPhoneHandlerEndCall( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) -: iControl( aControl ), - iOperation( aOperation ) - { - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerEndCall::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerEndCall::ConstructL() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerEndCall::ConstructL() start" ); - - LoadServiceL(); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerEndCall::ConstructL() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerEndCall::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerEndCall* CPhoneHandlerEndCall::NewL( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerEndCall::NewL()" ); - - CPhoneHandlerEndCall* self = new( ELeave ) CPhoneHandlerEndCall( - aControl, - aOperation ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - - -// Destructor -CPhoneHandlerEndCall::~CPhoneHandlerEndCall() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerEndCall::~CPhoneHandlerEndCall()" ); - - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerEndCall::Process -// Starts to process service. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerEndCall::Process() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerEndCall::Process()" ); - - iCommandHandler->Chup( GetStatus() ); - Activate(); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerEndCall::Delete -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerEndCall::Delete() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerEndCall::Delete()" ); - - delete this; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerEndCall::RequestCompleted -// Handler for completed asynchronous calls. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerEndCall::RequestCompleted( const TInt aError ) - { - COM_TRACE_2( "[PHONECMDHANDLER] CPhoneHandlerEndCall::RequestCompleted() aError=%d, iState=%d", aError, iState ); - - switch( iState ) - { - case EPhoneHandlerState1: - { - NextState(); - iControl.CommandInitiator().SendResponse( GetStatus(), - iOperation, - aError ); - Activate(); - break; - } - - case EPhoneHandlerState2: - { - IdleState(); - delete this; - break; - } - - default: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerEndCall::RequestCompleted() Unspecified state" ); - break; - } - }; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/src/PhoneHandlerMultipartyCall.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerMultipartyCall.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,185 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Handles multiparty call key press. -* -*/ - - -// INCLUDE FILES -#include "phonehandlermultipartycall.h" -#include "phonehandlercontrol.h" -#include "phonehandlerdebug.h" -#include -#include - -// EXTERNAL DATA STRUCTURES - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -// MACROS - -// LOCAL CONSTANTS AND MACROS - -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneHandlerMultipartyCall::CPhoneHandlerMultipartyCall -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerMultipartyCall::CPhoneHandlerMultipartyCall( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) -: iControl( aControl ), - iOperation( aOperation ) - { - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerMultipartyCall::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerMultipartyCall::ConstructL() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerMultipartyCall::ConstructL() start" ); - - LoadServiceL(); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerMultipartyCall::ConstructL() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerMultipartyCall::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerMultipartyCall* CPhoneHandlerMultipartyCall::NewL( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerMultipartyCall::NewL()" ); - - CPhoneHandlerMultipartyCall* self = - new( ELeave ) CPhoneHandlerMultipartyCall( aControl, aOperation ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - - -// Destructor -CPhoneHandlerMultipartyCall::~CPhoneHandlerMultipartyCall() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerMultipartyCall::~CPhoneHandlerMultipartyCall()" ); - - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerMultipartyCall::Process -// Starts to process service. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerMultipartyCall::Process() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerMultipartyCall::Process()" ); - - /* - if( iControl.SwitchCall() ) - { - iCommandHandler->Chld( GetStatus(), EPhCltChldTwo, 0 ); - } - else - { */ - // get command - TInt command = const_cast( iControl.ChldCommand() ); - - // get number - TInt number = const_cast( iControl.ChldCallNumber() ); - - iCommandHandler->Chld( GetStatus(), - static_cast( command ), - number ); - //} - - Activate(); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerMultipartyCall::Delete -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerMultipartyCall::Delete() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerMultipartyCall::Delete()" ); - - delete this; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerMultipartyCall::RequestCompleted -// Handler for completed asynchronous calls. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerMultipartyCall::RequestCompleted( const TInt aError ) - { - COM_TRACE_2( "[PHONECMDHANDLER] CPhoneHandlerMultipartyCall::RequestCompleted() aError=%d, iState=%d", aError, iState ); - - switch( iState ) - { - case EPhoneHandlerState1: - { - NextState(); - iControl.CommandInitiator().SendResponse( GetStatus(), - iOperation, - aError ); - Activate(); - break; - } - - case EPhoneHandlerState2: - { - IdleState(); - delete this; - break; - } - - default: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerMultipartyCall::RequestCompleted() Unspecified state" ); - break; - } - }; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/src/PhoneHandlerRedial.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerRedial.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,201 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Handles last number redial key press. -* -*/ - - -// INCLUDE FILES - -#include "phonehandlerredial.h" -#include "phonehandlercontrol.h" -#include "phonehandlerdebug.h" -#include -#include -#include - -#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS -#include -#endif - -// ----------------------------------------------------------------------------- -// CPhoneHandlerLastNumberRedial::CPhoneHandlerLastNumberRedial -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerLastNumberRedial::CPhoneHandlerLastNumberRedial( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) -: iControl( aControl ), - iOperation( aOperation ) - { - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerLastNumberRedial::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerLastNumberRedial::ConstructL() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::ConstructL() start" ); - - User::LeaveIfError(iFsSession.Connect()); - - iLogClientPtr = CLogClient::NewL(iFsSession); - iLogViewRecentPtr = CLogViewRecent::NewL(*iLogClientPtr); - LoadServiceL(); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::ConstructL() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerLastNumberRedial::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerLastNumberRedial* CPhoneHandlerLastNumberRedial::NewL( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) - { - CPhoneHandlerLastNumberRedial* self = - new (ELeave) CPhoneHandlerLastNumberRedial( aControl, aOperation ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - return self; - } - -// Destructor -CPhoneHandlerLastNumberRedial::~CPhoneHandlerLastNumberRedial() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::CPhoneHandlerLastNumberRedial() start" ); - - delete iLogViewRecentPtr; - delete iLogClientPtr; - iFsSession.Close(); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::CPhoneHandlerLastNumberRedial() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerLastNumberRedial::Process -// Starts to process service. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerLastNumberRedial::Process() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::Process() start" ); - - TBool ret = EFalse; - - TRAPD( err, ret = iLogViewRecentPtr-> - SetRecentListL( KLogRecentOutgoingCalls, GetStatus() ) ); - if( KErrNone == err && ret ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::Process() There is last redial number" ); - Activate(); - } - else - { - if( err != KErrNone ) - { - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::Process() failed err=%d", err ); - RequestCompleted( err ); - } - else - { - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::Process() failed err=%d", KErrNotFound ); - RequestCompleted( KErrNotFound ); - } - } - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::Process() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerLastNumberRedial::Delete -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerLastNumberRedial::Delete() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::Delete()" ); - - delete this; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerLastNumberRedial::RequestCompleted -// Handler for completed asynchronous calls. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerLastNumberRedial::RequestCompleted( const TInt aError ) - { - COM_TRACE_2( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::RequestCompleted() aError=%d, iState=%d", aError, iState ); - - if( KErrNone != aError ) - { - // cancel process and return an error code - iState = EPhoneHandlerState2; - } - - switch( iState ) - { - case EPhoneHandlerState1: - { - NextState(); - - const TDesC& number = iLogViewRecentPtr->Event().Number(); - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::RequestCompleted() phone number is %S", &number ); - // make a call with last dialed phone number - iCommandHandler->Atd( GetStatus(), number ); - - Activate(); - break; - } - - case EPhoneHandlerState2: - { - NextState(); - iControl.CommandInitiator().SendResponse( GetStatus(), - iOperation, - aError ); - Activate(); - break; - } - - case EPhoneHandlerState3: - { - IdleState(); - delete this; - break; - } - - default: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::RequestCompleted() Unspecified state" ); - break; - } - }; - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerLastNumberRedial::RequestCompleted() end" ); - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/src/PhoneHandlerResponse.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerResponse.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Sends responses to RemCon FW. -* -*/ - - -// INCLUDE FILES -#include "phonehandlerresponse.h" -#include "phonehandlercontrol.h" -#include "phonehandleractive.h" -#include "phonehandlerdebug.h" -#include - -// EXTERNAL DATA STRUCTURES - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -// MACROS - -// LOCAL CONSTANTS AND MACROS - -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneHandlerResponse::CPhoneHandlerResponse -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerResponse::CPhoneHandlerResponse( CPhoneHandlerControl& aControl ) -: iControl( aControl ) - { - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerResponse::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerResponse::ConstructL() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerResponse::ConstructL() start" ); - - iActive = CPhoneHandlerActive::NewL( *this ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerResponse::ConstructL() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerResponse::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerResponse* CPhoneHandlerResponse::NewL( - CPhoneHandlerControl& aControl ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerResponse::NewL() start" ); - - CPhoneHandlerResponse* self = - new( ELeave ) CPhoneHandlerResponse( aControl ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerResponse::NewL() end" ); - - return self; - } - -// Destructor -CPhoneHandlerResponse::~CPhoneHandlerResponse() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerResponse::~CPhoneHandlerResponse()" ); - - delete iActive; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerResponse::SendResponse -// Sends response to RemCon FW. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerResponse::SetResponse( - TRemConExtCallHandlingApiOperationId aOperation, TInt aError ) - { - COM_TRACE_2( "[PHONECMDHANDLER] CPhoneHandlerResponse::Process(aOperation=%d,aError=%d)",aOperation, aError ); - - iOperation = aOperation; - iError = aError; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerResponse::SendResponse -// Sends response to RemCon FW. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerResponse::Process() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerResponse::Process()" ); - - iControl.CommandInitiator().SendResponse( iActive->iStatus, - iOperation, - iError ); - iActive->SetActive(); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerLastNumberRedial::Delete -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerResponse::Delete() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerResponse::Delete()" ); - - delete this; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerResponse::RequestCompleted -// Handler for completed asynchronous calls. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerResponse::RequestCompleted( const TInt aError ) - { - COM_TRACE_1( "[PHONECMDHANDLER] CPhoneHandlerResponse::RequestCompleted() aError=%d", aError ); - - (void)aError; // avoid warning in WINSCW urel build - - // Think about adding value to TRemConExtCallHandlingApiOperationId - // in RemConExtensionApi.h like "ERemConExtNoCallHandlingOperation". - // In this method iOperation should be set to that value. - iError = KErrNone; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonecmdhandler/phonecmdhnlr/src/PhoneHandlerVoiceDial.cpp --- a/phonecmdhandler/phonecmdhnlr/src/PhoneHandlerVoiceDial.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,173 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Handles dial and speed dial key presses. -* -*/ - - -// INCLUDE FILES -#include "phonehandlervoicedial.h" -#include "phonehandlercontrol.h" -#include "phonehandlerdebug.h" -#include -#include - -// EXTERNAL DATA STRUCTURES - -// EXTERNAL FUNCTION PROTOTYPES - -// CONSTANTS - -// MACROS - -// LOCAL CONSTANTS AND MACROS - -// MODULE DATA STRUCTURES - -// LOCAL FUNCTION PROTOTYPES - -// FORWARD DECLARATIONS - -// ============================= LOCAL FUNCTIONS =============================== - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneHandlerVoiceDial::CPhoneHandlerVoiceDial -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerVoiceDial::CPhoneHandlerVoiceDial( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) -: iControl( aControl ), - iOperation( aOperation ) - { - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerVoiceDial::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerVoiceDial::ConstructL() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerVoiceDial::ConstructL() start" ); - - LoadServiceL(); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerVoiceDial::ConstructL() end" ); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerVoiceDial::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPhoneHandlerVoiceDial* CPhoneHandlerVoiceDial::NewL( - CPhoneHandlerControl& aControl, - TRemConExtCallHandlingApiOperationId aOperation ) - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerVoiceDial::NewL() start" ); - - CPhoneHandlerVoiceDial* self = new( ELeave ) CPhoneHandlerVoiceDial( - aControl, - aOperation ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerVoiceDial::NewL() end" ); - - return self; - } - - -// Destructor -CPhoneHandlerVoiceDial::~CPhoneHandlerVoiceDial() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerVoiceDial::~CPhoneHandlerVoiceDial()" ); - - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerVoiceDial::Process -// Starts to process service. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerVoiceDial::Process() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerVoiceDial::Process()" ); - -#if 0 // removed due to SCB CR PMEO-7JRFAX - iCommandHandler->Bvra( GetStatus(), iControl.VoiceDialStatus() ); -#endif // #if 0 - Activate(); - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerVoiceDial::Delete -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerVoiceDial::Delete() - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerVoiceDial::Delete()" ); - - delete this; - } - -// ----------------------------------------------------------------------------- -// CPhoneHandlerVoiceDial::RequestCompleted -// Handler for completed asynchronous calls. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CPhoneHandlerVoiceDial::RequestCompleted( const TInt aError ) - { - COM_TRACE_2( "[PHONECMDHANDLER] CPhoneHandlerVoiceDial::RequestCompleted() aError=%d, iState=%d", aError, iState ); - - switch( iState ) - { - case EPhoneHandlerState1: - { - NextState(); - iControl.CommandInitiator().SendResponse( GetStatus(), - iOperation, - aError ); - Activate(); - break; - } - - case EPhoneHandlerState2: - { - IdleState(); - delete this; - break; - } - - default: - { - COM_TRACE_( "[PHONECMDHANDLER] CPhoneHandlerVoiceDial::RequestCompleted() Unspecified state" ); - break; - } - }; - } - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/cbs_mcn_client_api/inc/CCbsMcnListener.h --- a/phonesrv_plat/cbs_mcn_client_api/inc/CCbsMcnListener.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,99 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CCbsMcnListener class. -* -*/ - - -#ifndef CCBSMCNLISTENER_H -#define CCBSMCNLISTENER_H - -// INCLUDES -#include // CActive -#include - -// FORWARD DECLARATIONS -class CMcn; -class RCbsMcnSession; - -// CLASS DECLARATION - -/** -* Listens for incoming MCN messages. Functionality is based on basic -* active object implementation. -*/ -class CCbsMcnListener - : public CActive - { -public: // New functions - /** - * Creates a new Mcn listener. - * @return A new CCbsMcnListener instance. - */ - static CCbsMcnListener* NewL( CMcn& aMcn, RCbsMcnSession& aSession ); - - /** - * Destructor. - */ - ~CCbsMcnListener(); - -private: // From CActive - - /** - * This method is called when an Mcn message is received. - * The message is stored in the buffer. - */ - void RunL(); - - /** - * Cancels the outstanding Mcn request. - */ - void DoCancel(); - -private: - /** - Constructor. - */ - CCbsMcnListener( CMcn& aMcn, RCbsMcnSession& aSession ); - - /** - * 2nd-phase constructor. - */ - void ConstructL(); - - /** - * Receive an Mcn message from network. - */ - void Receive(); - -private: // Data - - // The Mcn client to use for reception. - CMcn& iMcn; - - // Session to the Mcn client. - RCbsMcnSession& iSession; - - // MCN message for IPC - TCbsMcnMessage iMcnMessage; - - // Package for MCN message - TPckg iMcnPckg; - }; - -#endif // CCBSMCNLISTENER_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/cbs_mcn_client_api/inc/CMcn.h --- a/phonesrv_plat/cbs_mcn_client_api/inc/CMcn.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,225 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the Cmcn class. -* -* This header file presents an API which allows a client to -* subscribe a number of CB topics from CbsServer. The client -* receives a notification, if a message belonging to a subscribed -* topic is received. -* -*/ - - - -#ifndef CMCN_H -#define CMCN_H - -// INCLUDES -#include "e32base.h" -#include - -// CONSTANTS -// Maximum length of a MCN message. -const TInt KCbsMcnMessageMaxLength = 93; - -// DATA TYPES -typedef TBuf< KCbsMcnMessageMaxLength > TMcnMessage; - -// FORWARD DECLARATIONS -class MCbsMcnObserver; -class CCbsMcnListener; -class RCbsMcnSession; -class CMcnTopicArray; - -// CLASS DECLARATION - -/** -* Client must first connect to the server and then register -* a MCbsMcnObserver-derived class to receive notifications -* when MCN messages are received from the network. -* -* Registration to CbsServer is not required to retrieve -* the current cell info message. -* -* In the example below, the client has implemented the class MCbsMcnObserver -* in class CCbsMcnObserver. First, the client establishes a session -* with CbsServer. The subscribed topics are specified with a CMcnTopicArray -* instance. -* -* Example: -* -* // Establish the session. -* CMcn* session = CMcn::NewL(); -* CleanupStack::PushL( session ); -* -* // Specify topics with CMcnTopicArray. -* CMcnTopicArray* topics = CMcnTopicArray::NewL(); -* topics->AddCbTopicL( 50 ); // District info (cell info) -* topics->AddCbTopicL( 0 ); // CB index messages -* -* // Register. Parameter observer is an instance of CCbsMcnObserver. -* session->RegisterL( observer, topics ); -* delete topics; -* -* // Get current MCN state. -* TMcnMessage mcnInfo; -* TInt result( session->GetCellInfo( mcnInfo ) ); -* if ( result != KErrNone ) -* { -* // mcnInfo contains the current MCN message. -* } -* -* // Observer's CellInfoChanged() gets called if MCN state changes. -* // Note that the active scheduler must be running here. -* -* // Terminate session. -* session->Unregister( observer ); -* CleanupStack::PopAndDestroy(); // session, gets closed when deleted -* -*/ -class CMcn - : public CBase - { -public: // New functions - /** - * Instantiates new CMcn object and establishes a session with - * CBS server. - * - * If connecting to CBS server fails, the function leaves with - * the leave code of RSessionBase::CreateSession(). - * - * Active scheduler has to be installed prior to calling this function. - * - * @return A new instance of CMcn - */ - IMPORT_C static CMcn* NewL(); - - /** - * Destructor. Also closes CbsServer session. - */ - IMPORT_C ~CMcn(); - - /** - * Registers an observer to CBS server. The observer is notified when - * a MCN message is received from the network. - * The caller is also required to provide an array containing numbers - * of subscribed topics. - * - * Parameter aArray may contain topic number entry duplicates. - * Topics may be in any order. - * - * Leave codes indicate an error accessing EPOC Telephony Sever. - * In this case, the leave code is the same returned by EPOC Telephony Sever. - * - * @param aObserver Observer implemented by the client - * @param aArray List of relayed topics - */ - IMPORT_C void RegisterL( MCbsMcnObserver* aObserver, - const CMcnTopicArray& aArray ); - - /** - * Unregisters a previously registered MCN observer clearing - * any topic subscriptions of this client in CBS server. - * - * Panics if the observer specified was not registered. - * - * @param aObserver Observer implemented by the client - */ - IMPORT_C void Unregister( MCbsMcnObserver* aObserver ); - - /** - * Retrieves the current MCN message (Cell Info, topic 050) from CBS - * server. A new MCN message always overwrites the previous one in CBS - * server, no buffering is done. Note that this function may be - * only used to retrieve cell info messages. - * - * Return codes: - * KErrNone aMcnMessage contains the current, valid MCN message. - * KErrNotFound CbsServer has not yet received a MCN message. - * Content of aMcnMessage must be ignored. - * - * @param aMcnMessage Returns the current MCN message. - * @return Result code - */ - IMPORT_C TInt GetCellInfo( TDes& aMcnMessage ) const; - -private: // new functions - /** - * Default constructor. - */ - CMcn(); - - /** - * 2nd-phase constructor - */ - void ConstructL(); - - /** - * Relays aMcnMessage to the registered observers. - * Used by a friend class CCbsMcnListener instance - * - * @param aMcnMessage Received CB message from CbsServer - */ - void RelayMessage( TCbsMcnMessage& aMcnMessage ); - -private: // friend classes - /// Allows use of RelayMessageL(). - friend class CCbsMcnListener; - -private: // prohibited functions and operators - /// Copy constructor. - CMcn( const CMcn& ); - - /// Assignment operator - CMcn& operator=( const CMcn& ); - -private: // Data - /** - * Own: Active object responsible for responding to server-initiated - * notification indicating that a message has arrived from - * the CbsServer. - */ - CCbsMcnListener* iMcnListener; - - /// Own: Dynamic array containing the registered observers. - CArrayPtrFlat< MCbsMcnObserver >* iObservers; - - /// CbsServer session object. - RCbsMcnSession iSession; - -public: - - /** - * Retrieves the current info message (e.g. HomeZone, topic 221) from CBS - * server. A new info message always overwrites the previous one in CBS - * server, no buffering is done. Note that this function may be - * only used to retrieve cell info messages. - * - * Return codes: - * KErrNone aInfoMessage contains the current, valid info message. - * KErrNotFound CbsServer has not yet received a info message. - * Content of aInfoMessage must be ignored. - * - * @param aInfoMessage Returns the current info message. - * @param aTopicNumber Number of the topic - * @return Result code - */ - IMPORT_C TInt GetInfoMessage( TDes& aInfoMessage, TInt aTopicNumber ) const; - }; - -#endif // CMCN_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/cbs_mcn_client_api/inc/CMcnTopicArray.h --- a/phonesrv_plat/cbs_mcn_client_api/inc/CMcnTopicArray.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CMcnTopicArray class. -* -* CMcnTopicArray represents a list containing the numbers of CB topics which -* a MCN client to CbsServer has subscribed. -* -*/ - - - -#ifndef CMCNTOPICARRAY_H -#define CMCNTOPICARRAY_H - -// INCLUDES - -#include "e32base.h" - -// CLASS DECLARATION - -/** -* CMcnTopicArray represents a list containing the numbers of CB topics which -* a MCN client to CbsServer has subscribed. -*/ -class CMcnTopicArray - : public CBase - { -public: // New functions - - /** - * Returns a new instance of CMcnTopicArray, initially empty. - */ - IMPORT_C static CMcnTopicArray* NewL(); - - /** - * Destructor. - */ - ~CMcnTopicArray(); - - /** - * Adds a single CB topic to the topic list. - * Leaves with KErrArgument if the topic number is not in - * valid range. In this implementation, all values - * are accepted. - * - * Leave reasons: - * KErrArgument, aTopicNumber not in valid range.. - * KErrNoMemory, Out-of-memory occured. - * - * @param aTopicNumber Number of subscribed CB topic. - */ - IMPORT_C void AddCbTopicL( TUint16 aTopicNumber ); - - /** - * Returns the number of topic entries in parameter aEntries. - * - * @param aEntries The number of topic entires - */ - void EnumerateEntries( TUint& aEntries ) const; - - /** - * Returns the number of topic in aTopicNumber corresponding to the index - * given in aIndex. - * - * @param aIndex Index of the topic number. - * @param aTopicNumber Topic number corresponding to the given index. - */ - IMPORT_C void GetTopicNumber( const TUint& aIndex, TUint& aTopicNumber ) const; - -private: - /// Prohibited copy constructor (not implemented). - CMcnTopicArray( const CMcnTopicArray& aArray ); - - /// Prohibited assignment operator (not implemented). - CMcnTopicArray& operator=( const CMcnTopicArray& aArray ); - - /** - * Default constructor. - */ - CMcnTopicArray(); - - /** - * 2nd-phase constructor. - */ - void ConstructL(); - -private: // data - /// Own: contains the list of subscribed topics. - CArrayFixFlat< TUint >* iTopicList; - }; - -#endif // __CMCNTOPICARRAY_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/cbs_mcn_client_api/inc/CbsMcnCommon.h --- a/phonesrv_plat/cbs_mcn_client_api/inc/CbsMcnCommon.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* -* Copyright (c) 2006 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: This file contains definitions for CBS MCN Clients. -* -*/ - - - -#ifndef CBSMCNCOMMON_H -#define CBSMCNCOMMON_H - -// INCLUDES -#include -#include - -// CONSTANTS - -// DATA TYPES - -// MCN message max size -const TInt KCbsMcnFullMsgSize = 1320; -// MCN topic number max size -const TInt KCbsTopicNumberPageSize = 5; - -// Network in which current message was received in. -enum TCbsNetworkMode - { - ECbsNetworkGsm, - ECbsNetworkWcdma, - ECbsNetworkNotDefined - }; - - -// Class for MCN messages over IPC -class TCbsMcnMessage - { -public: - TCbsMcnMessage() : iBuffer( NULL ), - iBuffer8( NULL ), - iTopicNumber( 0 ), - iNetworkMode( ECbsNetworkNotDefined ) {}; - -public: // Data - // Buffer for the Mcn message. - TBuf iBuffer; - - // 8-bit Buffer for MCN/Livecast messages - TBuf8 iBuffer8; - - //Buffer for the Topic number of the Mcn message. - //TBuf iTopicNumber; - TUint iTopicNumber; - - // Network in which current message was received - TCbsNetworkMode iNetworkMode; - }; - -// Livecast topic range -const TUint KCbsLivecastTopicMin = 40960; -const TUint KCbsLivecastTopicMax = 45055; - -#endif // CBSMCNCOMMON_H - -// End of File - diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/cbs_mcn_client_api/inc/CbsMcnPanic.h --- a/phonesrv_plat/cbs_mcn_client_api/inc/CbsMcnPanic.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the CbsMcnPanic class. -* -*/ - - -#ifndef __CBSMCNPANIC_H -#define __CBSMCNPANIC_H - -// CONSTANTS - -enum TCbsMcnPanics - { - EMcnObserverNull, - EMcnObserversNull, - EMcnNotConnected - }; - -// FUNCTION PROTOTYPES - -GLDEF_C void CbsMcnPanic( TInt aPanic ); - -#endif // __CBSMCNPANIC_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/cbs_mcn_client_api/inc/MCbsMcnObserver.h --- a/phonesrv_plat/cbs_mcn_client_api/inc/MCbsMcnObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the MCbsMcnObserver class. -* -* MCbsMcnObserver is a mix-in class, which must be implemented -* by a MCN client class. -* -* The sole method of this interface gets called when the MCN state -* changes. This occurs when a MCN message is received from network -* and the cell information relayed by the message differs from -* the previous cell information. -* -*/ - - - -#ifndef MCBSMCNOBSERVER_H -#define MCBSMCNOBSERVER_H - -// FORWARD DECLARATIONS -class TCbsMcnMessage; - -// CLASS DECLARATION - -/** -* An interface class for MCN observers. -* -* A class on the client side is required to derive from this class -* and register itself to an instance of CMcn. -*/ -class MCbsMcnObserver - { -public: // New functions - - /** - * This method is called when a message of a subscribed topic - * is received from the network. - * - * @param aMcnMessage MCN message received from the network. - * @return Result code - */ - virtual TInt CellInfoChanged( const TCbsMcnMessage& aMcnMessage ) = 0; - - /** - * Virtual destructor. - */ - virtual ~MCbsMcnObserver() {}; - - }; - -#endif // __MCBSMCNOBSERVER_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/cbs_mcn_client_api/inc/RCbsMcnSession.h --- a/phonesrv_plat/cbs_mcn_client_api/inc/RCbsMcnSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the RCbsMcnSession class. -* -* Represents a MCN session to CBS Server. -* A client can register to the session to be informed of -* arrival of a new MCN message. Registering object must -* implement interface MCbsMcnObserver. -* -* This session class is responsible for opening the MCN session -* and querying the current cell information message from CbsServer. -* Other MCN requests are processed by the subsession class -* RMcnSubSession. -* -*/ - - - -#ifndef RCBSMCNSESSION_H -#define RCBSMCNSESSION_H - -// INCLUDES - -#include -#include // CArrayPtrFlat -#include - -// FORWARD DECLARATIONS - -class MCbsMcnObserver; -class CCbsMcnListener; -class CMcnTopicArray; - -// CLASS DECLARATION - -/** -* This class represents a MCN session to the CBS server. -*/ -class RCbsMcnSession - : public RSessionBase - { -public: // New functions - /** - * Constructor - */ - RCbsMcnSession(); - - /** - * Destructor - */ - ~RCbsMcnSession(); - - /** - * Retrieves the current MCN message from CBS server. - * An arriving MCN message always overwrites the previous one in CBS - * server, no buffering is done. - * - * @param aMcnMessage Returns the current MCN message. - * @return Result code from server. - */ - TInt GetCellInfo( TDes& aMcnMessage ) const; - - /** - * Retrieves the current info message from CBS server. - * - * @param aMessage Returns the current info message from the - * specified topic. - * @param aTopicNumber Number of the topic that the msg belongs to. - * @return Result code from server. - */ - TInt GetInfoMessage( TDes& aMessage, const TInt aTopicNumber ) const; - - /** - * Request next subscribed MCN message to be delivered to this session. - * Passed to the subsession object. - * - * The delivered message will be copied into aBuffer. - * - * @param aStatus Request status, indicates the result of - * the operation. - * @param aMcnPckg MCN message package, - * includes msg and parameters - */ - void ReadMcnMessage( TRequestStatus& aStatus, TPckg& aMcnPckg ); - - /** - * Cancels an outstanding request. Passed to the subsession object. - * - * @return Result code from server. - */ - TInt ReadMcnMessageCancel(); - - /** - * Subscribes topics given in aArray. Passed to the subsession object. - * - * For leave reasons, see RMcnSubSession. - * - * @param aArray Subscribed topics. - */ - void RegisterL( const CMcnTopicArray& aArray ); - - /** - * Clears all topic subscriptions of this session in CbsServer. - * - * Leaves if server reports an error. - */ - void ClearSubscriptionsL(); - -public: // From RSessionBase - /** - * Establishes a connection with CbsServer. - * - * @return Result code indicating the success of - * operation. - */ - TInt Connect(); - - /** - * Closes the connection with CbsServer. - */ - void Close(); - - /** - * Returns version information of this dll. - */ - TVersion Version() const; - -private: // Prohibited operators and methods - /// Assignment operator. - RCbsMcnSession& operator=( const RCbsMcnSession& ); - - /// Copy constructor. - RCbsMcnSession( const RCbsMcnSession& ); - -private: // Data - /// Represents MCN subsession - RMcnSubSession iSubSession; - - /// ETrue, if a connection has been established. - TBool iConnected; - - }; - -#endif // __RCBSMCNSESSION_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/cbs_mcn_client_api/inc/RMcnSubSession.h --- a/phonesrv_plat/cbs_mcn_client_api/inc/RMcnSubSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* -* Copyright (c) 2003 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: This file contains the header file of the RMcnSubSession class. -* -* Client-side MCN Subsession. Responsible for specifying topics -* to route and posting a routing request at CbsServer. -* -*/ - - -#ifndef RMCNSUBSESSION_H -#define RMCNSUBSESSION_H - -// INCLUDES -#include "cbsmcncommon.h" - -// FORWARD DECLARATIONS -class CMcnTopicArray; -class RCbsMcnSession; - -// CLASS DECLARATION - -/** -* This class represents a MCN session with CBS server. -*/ -class RMcnSubSession - : public RSubSessionBase - { -public: // New functions - /** - * Constructor. - */ - RMcnSubSession(); - - /** - * Destructor. - */ - ~RMcnSubSession(); - - /** - * Creates a MCN subsession to CbsServer. - * - * @param aMcnSession Open MCN session - * @return Result code - */ - TInt Open( RCbsMcnSession& aMcnSession ); - - /** - * Closes the subsession. - * - * @return Result code - */ - TInt Close(); - - /** - * Request next subscribed MCN message to be delivered to this session. - * - * The delivered message will be copied into aBuffer. - * - * @param aStatus Request status, indicates the result of - * the operation. - * @param aMcnPckg MCN message package, - * includes msg and parameters - */ - void ReadMcnMessage( TRequestStatus& aStatus, TPckg& aMcnPckg ); - - /** - * Cancels an outstanding request. - * - * @return Result code from server. - */ - TInt ReadMcnMessageCancel(); - - /** - * Subscribes topics given in aArray. - * - * Leave reasons: - * KErrNoMemory Client- or server-side out-of-memory. - * Others Leave occured while accessing EPOC Telephony Sever. - * In this case, the leave reason from EPOC Telephony Sever - * is returned here. - * - * @param aArray Subscribed topics. - */ - void RegisterL( const CMcnTopicArray& aArray ); - - /** - * Clears topic subscriptions of this session in CbsServer - * - * Leaves if server reports any error. - */ - void ClearSubscriptionsL(); - -private: // Prohibited operators and methods - /// Assignment operator. - RMcnSubSession& operator=( const RMcnSubSession& ); - - /// Copy constructor. - RMcnSubSession( const RMcnSubSession& ); - -private: // Data - /// ETrue, if a connection has been established. - TBool iConnected; - }; - -#endif // RMCNSubSession_H - -// End of File - - diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/cenrep_database_api/cenrep_database_api.metaxml --- a/phonesrv_plat/cenrep_database_api/cenrep_database_api.metaxml Mon Aug 23 15:50:31 2010 +0300 +++ b/phonesrv_plat/cenrep_database_api/cenrep_database_api.metaxml Fri Sep 03 13:59:20 2010 +0300 @@ -1,18 +1,18 @@ - - - Central Repository Database API - Utility class to accessing tables in central repository database. - c++ - convergedcallengine - - - - - - - - - yes - no - - + + + Central Repository Database API + Utility class to accessing tables in central repository database. + c++ + convergedcallengine + + + + + + + + + yes + no + + diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/dial_utils_api/inc/DialUtils.h --- a/phonesrv_plat/dial_utils_api/inc/DialUtils.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* -* Copyright (c) 2004 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: API for DialUtils usage. -* -*/ - - -#ifndef DIALUTILS_H -#define DIALUTILS_H - - -// INCLUDES -#include - - -// CLASS DECLARATION - -/** -* The API for DialUtils usage. -* -* @lib DialUtils.lib -* @since 2.6 -*/ -class CDialUtilsApi -: public CBase - { - public: // New functions - - /** - * Check and if needed modify the given phone number according to - * current configuration and location. Currently supports: - * 1) Japan prefix modifications. - * - * @param aPhoneNumber The phone number to be checked and modified. - * @return - KErrNone if successful, - * - KErrOverflow if the aPhoneNumber is too short for the - * combined original phone number + prefix number, - * - Symbian error code otherwise. - * In error case the aPhoneNumber is untouched. - */ - virtual TInt CheckNumber( HBufC& aPhoneNumber ) = 0; - }; - - - -/** -* Interface for DialUtils creation. -* -* @lib DialUtils.lib -* @since 2.6 -*/ -class CDialUtilsFactory -: public CBase - { - public: - - /** - * Creates DialUtils. - * CDialUtilsFactory instance is deleted even in leave case. - * - * @return CDialUtilsApi implementation. NULL if not supported. - * Ownership transferred. - */ - virtual CDialUtilsApi* CDialUtilsApiLD() = 0; - - }; - -/** -* Only exported function. This is in index 1 in the lookup table. -* Call this function to create CDialUtilsFactory instance. -* -* IMPORT_C CDialUtilsFactory* CreateDialUtilsFactoryL(); -*/ - - -#endif // DIALUTILS_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/network_handling_engine_api/inc/CNWSession.h --- a/phonesrv_plat/network_handling_engine_api/inc/CNWSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Interface class for Networkhandling -* -*/ - - -#ifndef CNWSESSION_H -#define CNWSESSION_H - -// INCLUDES -#include "nwhandlingengine.h" - - -// CLASS DECLARATION -/** -* Interface class for Networkhandling -* -* -* @lib networkhandling.lib -* @since Series 60_2.8 -*/ -class CNWSession : public CBase - { - public: // Constructors and destructor - - /** - * Destructor. - */ - IMPORT_C virtual ~CNWSession(); - - - protected: - - /** - * C++ default constructor. - */ - CNWSession(); - - }; - -#endif // CNWSession_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/network_handling_engine_api/inc/NWHandlingEngine.h --- a/phonesrv_plat/network_handling_engine_api/inc/NWHandlingEngine.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,297 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: This file defines the interface of the Network Handling -* -*/ - - - -#ifndef NWHandlingEngine_H -#define NWHandlingEngine_H - -// INCLUDES -#include -#include -#include // for RPacketService::TDynamicCapsFlags - - -// CONSTANTS -// Max length of network country code. -const TInt KNWCountryCodeLength = 4; // This value is defined in multimode etel definition document. -// Max length of network identity code. -const TInt KNWIdentityLength = 8; // This value is defined in multimode etel definition document. -// Max length of network display alpha tag -const TInt KNWDisplayTagLength = 30; // New EtelMM API defition describe this value to be 32, but etelmm.h contains value 30. -// Max length of network short name. -const TInt KNWShortNameLength = 10; // New EtelMM API defition describe this value to be 8, but etelmm.h contains value 10. -// Max length of network long name. -const TInt KNWLongNameLength = 20; // New EtelMM API defition describe this value to be 16, but etelmm.h contains value 20. -// Max length of service provider name. -const TInt KNWServiceProviderNameLength = 16; -// Max length of network provider name. -const TInt KNWProviderNameLength = 25; -// Max length of MCN name. -const TInt KNWMCNNameLength = 20; -// Max length of VIAG text tag -const TInt KNWViagTextTagLength = 13; -// Max length of PLMN field -const TInt KNWPLMNFieldLength = 251; - - -// DATA TYPES -// MCN name -typedef TBuf TNWMCNName; -// Viag text tag -typedef TBuf TNWViagTextTag; -// MCC in GSM and TDMA -typedef TBuf TNWCountryCode; -// MNC in GSM and SID in TDMA -typedef TBuf TNWIdentity; -// Network Alpha-tag -typedef TBuf TNWDisplayTag; -// The short name of the network operator -typedef TBuf TNWShortName; -// The long name of the network operator -typedef TBuf TNWLongName; -// Service provider name -typedef TBuf TNWServiceProviderName; -// The PLMN Field -typedef TBuf TNWPLMNField; -// Network provider name -typedef TBuf TNWProviderName; -// The Programmable Operator Name type. -typedef RMmCustomAPI::TOperatorNameInfo TNWOperatorNameInfo; -// Display of the registered PLMN. -typedef TUint32 TNWDisplayRequirementsFlags; - - -enum TNWRegistrationStatus - { - ENWRegistrationUnknown, - ENWNotRegisteredNoService, - ENWNotRegisteredEmergencyOnly, - ENWNotRegisteredSearching, - ENWRegisteredBusy, - ENWRegisteredOnHomeNetwork, - ENWRegistrationDenied, - ENWRegisteredRoaming - }; - -enum TNWMode - { - ENWModeUnknown, - ENWModeUnregistered, - ENWModeGsm, - ENWModeAmps, - ENWModeCdma95, - ENWModeCdma2000, - ENWModeWcdma, - ENWModeTdcdma - }; - -enum TNWStatus - { - ENWStatusUnknown, - ENWStatusAvailable, - ENWStatusCurrent, - ENWStatusForbidden - }; - -enum TNWDisplayRequirements - { - ENWDisplayPLMNNotRequired = 0x00000001, - ENWDisplayPLMNRequired = 0x00000002, - ENWDisplaySPNRequired = 0x00000004, - ENWDisplaySPNNotRequired = 0x00000008 - }; - -enum TNWViagIndicatorType //enum for viag indicator type - { - ENWViagIndicatorTypeNone, - ENWViagIndicatorTypeHomeZone, - ENWViagIndicatorTypeCityZone - }; - -enum TNWMCNIndicatorType //enum for mcn indicator type - { - ENWMCNIndicatorTypeNone, - ENWMCNIndicatorTypeActive - }; - -// CDMA enumerations for TNWInfo -enum TNWNoServiceMode - { - ENWNotRegisteredOutOfRange, - ENWNotRegisteredPowerSaveMode - }; - -// CDMA enumerations for TNWInfo -enum TNWVoicePrivacyStatus - { - ENWVoicePrivacyStatusOff, - ENWVoicePrivacyStatusOn, - ENWVoicePrivacyStatusUnknown - }; - -enum TNWRead - { - ESPNEFRead, - ENPNEFRead, - EProgEFRead, - EViagEFRead, - EFullFileChange - }; - -#ifdef RD_PHONE_NG -enum TNWNetworkSelectionSetting - { - ENWNetworkSelectionUnknown, - ENWNetworkSelectionAutomatic, - ENWNetworkSelectionManual - }; -#endif // RD_PHONE_RG -// CLASS DECLARATION - -//Network info definition -struct TNWInfo - { - TNWRegistrationStatus iRegistrationStatus; // Network registration status - TNWMode iNetworkMode; // Mode of the network - TNWStatus iStatus; // Status of the Network - TNWCountryCode iCountryCode; // MCC in GSM and TDMA - TNWIdentity iNetworkId; // MNC in GSM and SID in TDMA - TNWDisplayTag iDisplayTag; // Network Alpha-tag - TNWShortName iShortName; // The short name of the operator - TNWLongName iLongName; // The long name of the operator - TNWViagIndicatorType iViagIndicatorType; // Zone indicator type - TNWViagTextTag iViagTextTag; // Viag text tag - TNWMCNIndicatorType iMCNIndicatorType; // MCN indicator type - TNWMCNName iMCNName; // MCN name - TNWServiceProviderName iSPName; // Service provider name - TNWDisplayRequirementsFlags iServiceProviderNameDisplayReq; // Service provider name display required - TNWProviderName iNPName; // Network provider name - TNWOperatorNameInfo iOperatorNameInfo; // Operator name - TNWNoServiceMode iNoServerMode; // - TNWVoicePrivacyStatus iVoicePrivacyStatus; // Voice Privacy Status - TNWPLMNField iPLMNField; // Contains a number of PLMN network names coded as TLV objects -#ifdef RD_PHONE_NG - TNWNetworkSelectionSetting iSelectionSetting; // Contains a network selection setting manual/automatic etc. -#endif // RD_PHONE_NG - RPacketService::TDynamicCapsFlags iDynamicCapsFlags; // Dynamic packet data capabilities - // (used to hide alpha tag when CS registration is unsuccessful) - }; - -// CLASS DECLARATION - -/** -* Offers message interface from network handling to client -* -* @lib networkhandling.lib -* @since Series 60_2.8 -*/ -class MNWMessageObserver - { - public: - - enum TNWMessages - { - // COMMON NETWORK MESSAGES 0 - 99 - - // Message will be sent when current network information changed - ENWMessageNetworkInfoChange, - // Message will be sent when network mode changed (e.g.Gsm to Wcdma ) - ENWMessageNetworkModeChange, - // Message will be sent when network registration status changed - ENWMessageNetworkRegistrationStatusChange, - // Message will be sent when programmable operator name changed - ENWMessageProgrammableOperatorInfoChange, - // Message will be sent when network provider changed - ENWMessageNetworkProviderNameChange, - // Message will be sent when service provider changed - ENWMessageServiceProviderNameChange, - // Message will be sent when NW starts update Operator Name Info - ENWMessageProgrammableOperatorInfoUpdating, - // Message will be sent when NW starts update Network Service Provider Name - ENWMessageNetworkProviderNameUpdating, - // Message will be sent when NW starts update Service Provider Name - ENWMessageServiceProviderNameUpdating, - // Message will be sent when allow refresh is called. - ENWMessageAllowRefresh, - // Message will be sent when networkSelection setting changed -#ifdef RD_PHONE_NG - ENWMessageNetworkSelectionSettingChange, -#endif // RD_PHONE_NG - - // GSM SPECIFIC MESSAGES 100 - 199 - - // Message will be sent when cell re-selection occured - ENWMessageNetworkCellReselection = 100, - // Message will be sent when network connection failured - ENWMessageNetworkConnectionFailure, - // Message will be sent when MCN CBS message was reveived - ENWMessageCurrentCellInfoMessage, - // Message will be sent when Viag CBS message was reveived - // and completely handled. - ENWMessageCurrentHomeZoneMessage, - // Message will be sent when cell info display changed - ENWMessageNetworkIndicatorChange, - // Message will be sent when dynamic packet data capabilities change - // (Used to hide alpha tag when CS registration is unsuccessful) - ENWMessageDynamicCapsChange, - - // CDMA SPECIFIC MESSAGES 200 - 299 - - ENWMessageNetworkEmergencyMode = 200, - ENWMessageVoicePrivacyStatusChange, - ENWMessageStartSystemSearchRequestCompleteOk, - ENWMessageStartSystemSearchRequestCompleteFail, - ENWMessageStopProtocolStackRequestCompleteOk, - ENWMessageStopProtocolStackRequestCompleteFail - - }; - - enum TNWOperation - { - ENWNone, - // Fetching Service Provider Name - ENWGetServiceProviderName, - // Fetching Network Provider Name - ENWGetNetworkProviderName, - // Fetching Programmable Operator Name - ENWGetProgrammableOperatorName, - // Notifying network registration status change - ENWNotifyNetworkRegistrationStatusChange - }; - - /** - * Offers message interface to the client - * @param aMessage - * This methods execute time must be short,since code - * starting to run from RunL. - */ - virtual void HandleNetworkMessage( const TNWMessages aMessage ) = 0; - - /** - * Offers error message interface to the client - * @param aOperation operation which failed - * @param aErrorCode returned Symbian OS error code - * - */ - virtual void HandleNetworkError( const TNWOperation aOperation, TInt aErrorCode ) = 0; - }; - - -#endif // NWHandlingEngine_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/network_handling_engine_api/inc/NetworkHandlingProxy.h --- a/phonesrv_plat/network_handling_engine_api/inc/NetworkHandlingProxy.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: This file contains the header file of the class NetworkHandlingProxy. -* -*/ - - -#ifndef NETWORKHANDLINGPROXY_H -#define NETWORKHANDLINGPROXY_H - -// INCLUDES -#include "nwhandlingengine.h" - - -// FORWARD DECLARATIONS -class CNWSession; -class MNWMessageObserver; - - - /** - * Creates protocol specific Network handling. - * @param - * @param - * @return networkHandling: Instance of the NetworkHandling - */ - IMPORT_C CNWSession* CreateL( MNWMessageObserver& aMessage, - TNWInfo& aTNWInfo ); - - - -#endif // NetworkHandlingProxy_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_api/inc/PhCltTypes.h --- a/phonesrv_plat/phone_client_api/inc/PhCltTypes.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Types used in PhoneClient. -* -*/ - - -#ifndef PHCLTTYPES_H -#define PHCLTTYPES_H - - - -// INCLUDES -#include -#ifdef SYMBIAN_OLD_EXPORT_LOCATION // Include should be removed when flag disabled from builds -#include -#endif -#include - -#include - -// CONSTANTS - -// Lengths of various strings. -const TInt KPhCltTelephoneNumberLength = 100; // Telephony number length. -const TInt KPhCltNameBufferLength = 50; // The name length. -const TInt KPhCltSubAddressLength = 21; // The subaddress length, see - // ITU-T I.330 and 3GPP TS 11.14. -const TInt KPhCltBearerLength = 14; // The bearer length. -const TInt KPhCltUUILength = 129; // Max user to user info length - -/** -* Call type. -*/ -enum TPhCltCallType - { - EPhCltVoice = 0, // Voice call. - EPhCltVideo = 1, // Video call. - EPhCltForcedVideo = 2, // Forced video call. - EPhCltCallVoIP = 3 // Internet call - }; - - -// Type for telephone number. -typedef TBuf< KPhCltTelephoneNumberLength > TPhCltTelephoneNumber; - -// Type for name. -typedef TBuf< KPhCltNameBufferLength > TPhCltNameBuffer; - - -// Type for result of call. -typedef TInt TPhCltPhoneResults; - -// Type for calling party subaddress. -typedef TBuf< KPhCltSubAddressLength > TPhCltSubAddress; - -// Type for bearer capability. -typedef TBuf8< KPhCltBearerLength > TPhCltBearerCapability; - -#endif // PHCLTTYPES_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_api/inc/RPhCltServer.h --- a/phonesrv_plat/phone_client_api/inc/RPhCltServer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,128 +0,0 @@ -/* -* Copyright (c) 2002 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: It is the client side remote class of phone server session. -* -*/ - - -#ifndef RPHCLTSERVER_H -#define RPHCLTSERVER_H - - -// INCLUDES -#include -#include - -// CONSTANTS -// A version must be specified when creating a session with the server -// These are the version numbers for PhoneServer. -const TUint KPhoneServerMajorVersionNumber = 0; -const TUint KPhoneServerMinorVersionNumber = 1; -const TUint KPhoneServerBuildVersionNumber = 1; - -// Default amount of message slots. -const TInt KPhCltDefaultMessageSlots = 4; - -// DATA TYPES - -// PhoneClient panic codes visible to the user. -enum TPhCltClientSidePanics - { - EPhCltClientSidePanicNullHandle = 0, // Handle was NULL - // - EPhCltClientSidePanicLast // Keep as last enum value. - }; - - -// CLASS DECLARATION - -/** -* It is the client side remote class of phone server session. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class RPhCltServer : public RSessionBase - { - public: // Constructors and destructor - - /** - * C++ constructor. - */ - IMPORT_C RPhCltServer(); - - public: // New functions - - /** - * Returns the version of the API. - * - * @return Returns the version encapsulated in TVersion object. - */ - TVersion Version() const; - - /** - * Creates connection to the server. - * - * @param aMessageSlots It tells the amount of message slots to be used - * for the connection. - * @return Returns error code. - */ - IMPORT_C TInt Connect( TInt aMessageSlots = KPhCltDefaultMessageSlots ); - - /** - * Creates all submodules in Phone Server side. - * - * @param aStatus It is used to notify the completion of the request. - * Then it indicates the success/failure of the operation. - * @return error code. - */ - IMPORT_C void CreateAll( TRequestStatus& aStatus ); - - - private: // Panic - - // Panic types to be used in this class. - enum TPhCltPanicTypes - { - // Connection failed. - EPhCltPanicServerConnectionFailed = 0, - // Server was not found in starting phase. - EPhCltPanicServerUnexpectedServerNotFound, - // Server startup error. - EPhCltPanicServerStartupObservationResultedInError, - // - EPhCltPanicLast // Keep as last value. - }; - - // Panic function. - static void Panic( TPhCltPanicTypes aPanic ); - - - private: // Internal methods - - // Starts the Phone Server. - TInt StartServer(); - - private: - - // By default, prohibit copy constructor - RPhCltServer( const RPhCltServer& ); - // Prohibit assigment operator - RPhCltServer& operator= ( const RPhCltServer& ); - - }; - -#endif // RPHCLTSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_command_handler_api/inc/CPhCltCommandHandler.h --- a/phonesrv_plat/phone_client_command_handler_api/inc/CPhCltCommandHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,290 +0,0 @@ -/* -* Copyright (c) 2003-2004 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: API for PhoneClient Command Handler. -* -*/ - - -#ifndef CPHCLTCOMMANDHANDLER_H -#define CPHCLTCOMMANDHANDLER_H - - -// INCLUDES -#include -#include - - -// FORWARD DECLARATIONS -class RPhCltServer; - -/** -* Commands. -* -* EPhCltCommandAtd Dial command. -* -* EPhCltCommandAta Answer command. -* -* EPhCltCommandChld Call hold and multiparty handling command. -* -* EPhCltCommandChup Hangup command. -* -* EPhCltCommandVts DTMF sending (start and stop) command. -* -* EPhCltCommandBvra Bluetooth Voice Recognition Activation command. -* -* EPhCltCommandMuteMic Microphone mute command. -* -* EPhCltCommandMuteRingingTone Ringing tone mute command. -*/ -enum TPhCltComHandCommand - { - EPhCltCommandAtd = 0, - EPhCltCommandAta = 1, - EPhCltCommandChld = 2, - EPhCltCommandChup = 3, - EPhCltCommandVts = 4, - EPhCltCommandBvra = 5, - EPhCltCommandMuteMic = 6, - EPhCltCommandMuteRingingTone = 7 - }; - - -/** -* CHLD commands. -* -* EPhCltChldZero -* Release held calls or set UDUB for a waiting call. -* -* EPhCltChldOne -* Release all active calls and accept other (held or waiting) call. -* -* EPhCltChldTwo -* Place all active calls on hold and accept the other -* (held or waiting) call. -* -* EPhCltChldThree -* Add a held call to the conversation. -* -* EPhCltChldFour -* Connect the two calls and disconnect the subscriber from both -* calls (Explicit call transfer). -*/ -enum TPhCltChldCommand - { - EPhCltChldZero = 0, - EPhCltChldOne = 1, - EPhCltChldTwo = 2, - EPhCltChldThree = 3, - EPhCltChldFour = 4, - }; - -/** -* Type of DTMF tone. -* One tone, i.e. one character. -*/ -typedef TChar TPhCltDtmfTone; - - -/** -* DTMF actions. -* -* EPhCltDtmfNotUsed -* Play DTMF tone default time. In this case -* DTMF sending need not be stoped by the client. -* -* EPhCltDtmfStart -* Start Dtmf sending. Remember to always stop it with EPhCltDtmfStop. -* -* EPhCltDtmfStop -* Stop DTMF sending that was started with EPhCltDtmfStart. -* -*/ -enum TPhCltDtmfAction - { - EPhCltDtmfNotUsed = 0, - EPhCltDtmfStart = 1, - EPhCltDtmfStop = 2 - }; - - -/* -* The CommandHandler command parameters defined as in one class. -* The handler of received command handler commads must first check the -* performed command, and then read the appropriate parameters. -*/ -class TPhCltComHandCommandParameters - { - public: // Data - - // The command handler command to be performed. - TPhCltComHandCommand iCommandHandlerCommand; - - // Dial command parameter. - TPhCltTelephoneNumber iTelNumber; - - // Chld command parameter. - TPhCltChldCommand iChldCommand; - // Chld command parameter. - TUint iChldCallNumber; - - // Vts command parameter. - TPhCltDtmfTone iDtmfTone; - // Vts command parameter. - TPhCltDtmfAction iDtmfAction; - - // Bvra command parameter. - TBool iBvraActivation; - - // Mic Mute command parameter. - TBool iMute; - - }; - - - -// CLASS DECLARATION - -/** -* Interface for Command Handler requests. -* At most one asynchronous request can be ongoing at the same time! -* -* @lib PhoneClient.lib -* @since 3.2 -*/ -class CPhCltCommandHandler : public CBase - { - - - public: // Constructors - /** - * Two-phased constructor. - */ - IMPORT_C static CPhCltCommandHandler* NewL(); - - - public: // New functions - - /** - * Dial. Only voice call is supported. - * - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - * @param aTelephoneNumber The dial information. - */ - IMPORT_C virtual void Atd( - TRequestStatus& aStatus, - const TPhCltTelephoneNumber& aTelephoneNumber ) = 0; - - /** - * Answer the call. - * Does not need response according to specification. - * - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - * KErrNotReady if there is no call to be answered. - */ - IMPORT_C virtual void Ata( - TRequestStatus& aStatus ) = 0; - - - /** - * Call hold and multiparty handling. - * - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - * @param aChldCommand The command to be performed. - * @param aCallNumber The call number where the command specified in - * aChldCommand is targeted. - * Not used currently. - */ - IMPORT_C virtual void Chld( - TRequestStatus& aStatus, - const TPhCltChldCommand aChldCommand, - const TUint aCallNumber ) = 0; - - - /** - * Hang up current call. - * Does not need response according to specification. - * - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - */ - IMPORT_C virtual void Chup( - TRequestStatus& aStatus ) = 0; - - - /** - * DTMF sending, starting and stopping in same function. - * Does not need response according to specification. - * - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - * @param aDtmfTone The DTMF tone to be sent. - * @param aActivation Desired DTMF action. - */ - IMPORT_C virtual void Vts( - TRequestStatus& aStatus, - const TPhCltDtmfTone aDtmfTone, - const TPhCltDtmfAction aAction ) = 0; - - - /** - * Cancel the ongoing asynchronous request. - * - * @param aReqToCancel The request to be canceled. - */ - IMPORT_C virtual void CancelAsyncRequest( - const TPhCltComHandCommand aReqToCancel ) = 0; - - - /** - * Mute microphone - * - * @since 2.8 - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - * @param aMute ETrue if Microphone Mute is se on. - */ - IMPORT_C virtual void MuteMicrophone( - TRequestStatus& aStatus, - const TBool aMute ) = 0; - - - /** - * Mute RingingTone - * - * @since 2.8 - * @param aStatus The status updated when function call is completed. - * KErrNone if successful, Symbian error code otherwise. - */ - IMPORT_C virtual void MuteRingingTone( - TRequestStatus& aStatus ) = 0; - - protected: - - /** - * C++ constructor. - */ - CPhCltCommandHandler(); - - }; - - - - - -#endif // CPHCLTCOMMANDHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_emergency_call_api/inc/CPhCltEmergencyCall.h --- a/phonesrv_plat/phone_client_emergency_call_api/inc/CPhCltEmergencyCall.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,180 +0,0 @@ -/* -* 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: Client side access to emergency number information -* -*/ - - -#ifndef CPHCLTEMERGENCYCALL_H -#define CPHCLTEMERGENCYCALL_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class MPhCltEmergencyCallObserver; - -// CONSTANTS -const TInt KPhCltEmergencyNumberSize = 100; - -// DATA TYPES -typedef TBuf< KPhCltEmergencyNumberSize > TPhCltEmergencyNumber; - -// CLASS DECLARATION -/** -* Phone Client Emergency Call Api for emergency number query -* and emergency dialing. -* -* Example: -* -* // Creates an instance of the class -* CPhCltEmergencyCall* emergencyCall = CPhCltEmergencyCall::NewL( this ); -* -* CleanupStack::PushL( emergencyCall ); -* TPhCltEmergencyNumber emNumber; -* -* // Number contains DTMF code -* _LIT( KTestNumber, "112p123" ); -* emNumber.Copy( KTestNumber ); -* TBool isEmergency( EFalse ); -* -* // Check if this number is considered as an emergency number -* TInt error = emergencyCall->IsEmergencyPhoneNumber( emNumber, isEmergency ); -* -* // Dial -* if ( isEmergency && !error ) -* { -* emergencyCall->DialEmergencyCallL( emNumber ); -* } -* -* // Deletes emergencyCall -* CleanupStack::PopAndDestroy( emergencyCall ); -* -* -* @lib phoneclient.lib -* @since SeriesS60_3.2 -*/ -class CPhCltEmergencyCall : public CActive - { - public: // Constructors and destructor - - /** - * Create an instance that implements the interface. - * - * @param aObserver It is the observer for the instance. - * @return Returns the created instance. - */ - IMPORT_C static CPhCltEmergencyCall* NewL( - MPhCltEmergencyCallObserver* aObserver ); - - public: // New functions - - /** - * Returns information whether the number specified was an emergency number. - * - * @param aNumber Number to be queried. aNumber might contain prefix (SS code) - * and/or postfix (DTMF part). - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltEmergencyNumber. - * - * @param aIsEmergencyNumber If ETrue, then the aNumber - * parameter included emergency number. - * @return Returns error code of the success of the operation. - */ - IMPORT_C virtual TInt IsEmergencyPhoneNumber( - const TDesC& aNumber, - TBool& aIsEmergencyNumber ) = 0; - - /** - * Method can be used to check if the number specified contains - * a valid emergency number in the end of the number. - * - * @param aNumber Number to be queried, matched emergency number - * is returned in this parameter. - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltTelephoneNumber. - * - * @param aIsEmergencyNumber If ETrue, then the aNumber parameter - * was emergency number. - * @return Returns error code of the success of the operation. - */ - IMPORT_C virtual TInt FindEmergencyPhoneNumber( - TDes& aNumber, - TBool& aIsEmergencyNumber ) = 0; - - /** - * Initiates an emergency call. - * - * @param aNumber Emergency number to be dialed. - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltEmergencyNumber. - * - * If the aNumber parameter supplies an "empty" buffer - * the call is created either dialing the default emergency - * phone number or use the SET UP EMERGENCY request - * that does not contain a dialling number. - * - * Leaves with KErrArgument, if parameter aNumber was - * not an emergency number. - * - * @pre IsActive() returns EFalse, otherwise leaves with KErrInUse. - */ - virtual void DialEmergencyCallL( const TDesC& aNumber ) = 0; - - /** - * Returns information whether the number specified was an emergency - * number and also returns the plain emergency number. - * - * @param aNumber Number to be queried.aNumber might contain prefix (SS code) - * and/or postfix (DTMF part). - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltEmergencyNumber. - * - * @param aMatchedEmergencyNumber Matched emergencynumber without prefix or - * postfix is returned in this parameter. The aMatchedEmergencyNumber - * parameter should be a buffer and the clients are - * provided with atypedef called TPhCltEmergencyNumber. - * - * @param aIsEmergencyNumber If ETrue, then the aNumber - * parameter included emergency number. - * - * @return Returns error code of the success of the operation. - */ - IMPORT_C virtual TInt IsEmergencyPhoneNumber( - const TDesC& aNumber, - TDes& aMatchedEmergencyNumber, - TBool& aIsEmergencyNumber ) = 0; - - protected: - - /** - * C++ constructor. - */ - CPhCltEmergencyCall( MPhCltEmergencyCallObserver* aObserver ); - - - protected: // Data - - // Observer to handle events. - MPhCltEmergencyCallObserver* iObserver; - - }; - -#endif // CPHCLTEMERGENCYCALL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_emergency_call_api/inc/MPhCltEmergencyCallObserver.h --- a/phonesrv_plat/phone_client_emergency_call_api/inc/MPhCltEmergencyCallObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 2002 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: Declaration of MPhCltEmergencyCallObserver class. -* -*/ - - -#ifndef MPHCLTEMERGENCYCALLOBSERVER_H -#define MPHCLTEMERGENCYCALLOBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Defines the interface for the observers of the CPhCltEmergencyCall. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class MPhCltEmergencyCallObserver - { - public: // New functions - - /** - * It is called whenever client's dial request is completed. - * - * @param aStatus error code of the success of the operation. - */ - virtual void HandleEmergencyDialL( const TInt aStatus ) = 0; - - }; - -#endif // MPHCLTEMERGENCYCALLOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_emergency_call_api/tsrc/BWINS/IT_EmergencyCallTestsu.def --- a/phonesrv_plat/phone_client_emergency_call_api/tsrc/BWINS/IT_EmergencyCallTestsu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - ?CreateTestSuiteL@@YAPAVMEUnitTest@@XZ @ 1 NONAME ; class MEUnitTest * CreateTestSuiteL(void) - diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_emergency_call_api/tsrc/EABI/IT_EmergencyCallTestsu.def --- a/phonesrv_plat/phone_client_emergency_call_api/tsrc/EABI/IT_EmergencyCallTestsu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - _Z16CreateTestSuiteLv @ 1 NONAME - diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_image_handler_api/inc/CPhCltBaseImageParams.h --- a/phonesrv_plat/phone_client_image_handler_api/inc/CPhCltBaseImageParams.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,239 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Parameter class definitions. -* -*/ - - -#ifndef CPHCLTBASEPARAMS_H -#define CPHCLTBASEPARAMS_H - -#include -#include -#include - -/** -* Logo types -* -* @since Series60 3.0 -* -* EPhCltLogoTypeOTA - OTA operator logo -* EPhCltLogoTypeProgrammable - programmable operator logo -*/ -enum TPhCltExtOperatorLogoType - { - EPhCltLogoTypeOTA, - EPhCltLogoTypeProgrammable - }; - - // Country code type definition. -typedef TInt TPhCltCountryCode; - -// Network code type definition. -typedef TInt TPhCltNetworkCode; - -// Constant to be used when deleting operator logo(s). -const TInt KPhCltDeleteOperatorLogo = 0; - -struct TTelephonyOTALogoUpdate - { - /** - * EPSTelephonyLogoChanged - Logo was added or replaced - * EPSTelephonyLogoDeleted - Logo was deleted - */ - enum TPSOperatorLogoUpdateEvent - { - EPSTelephonyLogoChanged, - EPSTelephonyLogoDeleted, - EPSTelephonyAllLogosDeleted - }; - - // Event type - TPSOperatorLogoUpdateEvent iEvent; - - /** - * Country code associated to logo, N/A if event - * is EPSTelephonyAllLogosDeleted - */ - TPhCltCountryCode iMCC; - - /** - * Network code associated to logo, N/A if event - * is EPSTelephonyAllLogosDeleted - */ - TPhCltNetworkCode iMNC; - - typedef TPckg TOTALogoUpdatePckg; - }; - -// CLASS DECLARATION -/** -* Parameter storage class. -* -* @lib PhoneClient.lib -* @since Series60 3.2 -*/ -NONSHARABLE_CLASS( CPhCltBaseImageParams ) -: public CPhCltImageParams - { - public: - /** - * Returns class type. - * @return type number; - */ - virtual TPhCltImageType Type() const; - - /** - * Adds an image. - * @param aHandle handle to an image. - */ - virtual void AddImageL( TInt aHandle ); - - /** - * Assignment operator - * @param aParamClass parameter class. - * @return 'deep' copied parameter class. - */ - virtual CPhCltBaseImageParams& operator=( - const CPhCltBaseImageParams& aParamClass ); - - /** - * Gets an image. - * @param aIndex index of the image to get. - * @return image handle - */ - virtual TInt GetImageL( const TInt aIndex ) const; - - /** - * Gets image count. - * @return image count - */ - virtual TInt Count() const; - - /** - * Get all the images - * @return package buffered image struct - */ - virtual TPckgBuf< TPhCltImageArray >& Images(); - - protected: - /** - * Cleans class content. - */ - void Clean(); - - public: // Constructor and destructor. - /** - * Destructor. - */ - virtual ~CPhCltBaseImageParams(); - - protected: - - /** - * Constructor. - */ - CPhCltBaseImageParams( const TPhCltImageType aType ); - - public: // Data. - TPckgBuf< TPhCltImageArray > iImages; - }; - -// CLASS DECLARATION -/** -* Parameter storage class. -* -* @lib PhoneClient.lib -* @since Series60 3.2 -*/ -NONSHARABLE_CLASS( CPhCltExtVTImageParams ) : public CPhCltBaseImageParams - { - public: // Constructor and destructor. - /** - * Destructor. - */ - ~CPhCltExtVTImageParams(); - - /** - * Symbian 2 phase constructor. - */ - static CPhCltExtVTImageParams* NewL( const TPhCltImageType aType ); - - private: - - /** - * Constructor. - */ - CPhCltExtVTImageParams( const TPhCltImageType aType ); - }; - -// CLASS DECLARATION -/** -* Parameter storage class. -* -* @lib PhoneClient.lib -* @since Series60 3.2 -*/ -NONSHARABLE_CLASS( CPhCltExtOperatorLogoParams ) -: public CPhCltBaseImageParams - { - public: // Constructor and destructor. - /** - * Destructor. - */ - ~CPhCltExtOperatorLogoParams(); - - /** - * Symbian 2 phase constructor. - */ - static CPhCltExtOperatorLogoParams* NewL( ); - - public: // New functions. - - /** - * @see CPhCltImageParams::operator=. - */ - CPhCltBaseImageParams& operator=( - const CPhCltBaseImageParams& aParamClass ); - - /** - * @see CPhCltImageParams::AddImageL. - * NOTE: when deleting, set image to KPhCltDeleteOperatorLogo - * @see CPhCltExtOperatorLogoParams::SetCodesL - */ - void AddImageL( TInt aHandle ); - - /** - * Sets country and network code for operator logo. - * @param aCountryCode country code - * @param aNetworkCode network code - * @param aLogoType OTA/programmable logo - * NOTE: delete all: set codes to KPhCltDeleteOperatorLogo - */ - virtual void SetCodesL( - const TPhCltCountryCode aCountryCode, - const TPhCltNetworkCode aNetworkCode, - const TPhCltExtOperatorLogoType aLogoType ); - - private: - - /** - * Constructor. - */ - CPhCltExtOperatorLogoParams(); - }; - -#endif // CPHCLTBASEPARAMS_H - -// End of file. diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_image_handler_api/inc/CPhCltImageHandler.h --- a/phonesrv_plat/phone_client_image_handler_api/inc/CPhCltImageHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,136 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Image storing and loading interface. -* -*/ - - -#ifndef CPHCLTIMAGEHANDLER_H -#define CPHCLTIMAGEHANDLER_H - -#include -#include "cphcltimageparams.h" - -// FORWARD DECLARATIONS -class RPhCltServer; -class CPhCltImageParams; -class RFile; - -/** -* Interface for image saving callback. -*/ -class MPhCltImageObserver - { -public: - /** - * Callback for image saving. - * @param aResult KErrNone if image saving succeeded, or a Symbian OS - * error code in failure. - */ - virtual void HandleImageSaveCompleteL( TInt aResult ) = 0; - }; - -/** -* Interface used in image storing to PhoneServer. -* -* @lib PhoneClient.lib -* @since S60 v3.2 -*/ -class CPhCltImageHandler : public CBase - { - - public: // Constructors - /** - * Two-phased constructor. - */ - IMPORT_C static CPhCltImageHandler* NewL(); - - public: // New functions - - /** - * Save image(s) - * @param aParam parameters passed - * @return KErrNone if successful, Symbian error code otherwise. - * NOTE: can be used to delete operator logos, - * @see CPhCltExtOperatorLogoParams::SetCodesL - * @see CPhCltExtOperatorLogoParams::AddImageL - */ - virtual TInt SaveImages( CPhCltImageParams& aParams ) = 0; - - /** - * Load image(s) - * @param aParam parameters in return passed - * @return KErrNone if successful, Symbian error code otherwise. - */ - virtual TInt LoadImages( CPhCltImageParams*& aParams ) = 0; - - /** - * Creates image parameter class. - * @param aType type of the implementation class. - * @return CPhCltBaseImageParams implementation class. - * NULL if not supported. - * Ownership transferred. - */ - IMPORT_C virtual CPhCltImageParams* - CPhCltBaseImageParamsL( const TPhCltImageType aType ) = 0; - - - /** - * Saves user defined video call still image file. This makes copy - * of original file to secure place. - * @param aObserver callback for notifying result of the operation - * @param aImagePath full path to image to be saved - * @since S60 v5.0 - */ - virtual void SaveVtImageL( MPhCltImageObserver& aObserver, - const TDesC& aImagePath ) = 0; - - /** - * Cancels pending image saving. This may be no-op from saving point - * of view (image is actually saved) but resets internal state to such - * that no operation is pending. - * @since S60 v5.0 - */ - virtual void CancelSaveVtImage() = 0; - - /** - * Opens user defined video call still image file. - * @param aFile file handle that shall to point to image file - * Client should close the file after use. - * @return KErrNone if successful, Symbian error code otherwise. - * @since S60 v5.0 - */ - virtual TInt OpenVtImage( RFile& aFile ) = 0; - - /** - * Opens predefined (read-only) video call still image file. - * @param aFile file handle that shall point to image file. - * Client should close the file after use. - * @return KErrNone if successful, Symbian error code otherwise. - * @since S60 v5.0 - */ - virtual TInt OpenDefaultVtImage( RFile& aFile ) = 0; - - protected: - - /** - * C++ constructor. - */ - CPhCltImageHandler(); - }; - - -#endif // CPHCLTIMAGEHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_image_handler_api/inc/CPhCltImageParams.h --- a/phonesrv_plat/phone_client_image_handler_api/inc/CPhCltImageParams.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,105 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Parameter class definitions. -* -*/ - - -#ifndef CPHCLTIMAGEPARAMS_H -#define CPHCLTIMAGEPARAMS_H - -#include -#include - - -// Number of images in max. -const TInt KPhCltImagesArrayLen = 10; - - -/** -* Enumerates image type. -* -* @since 3.0. -* -* EPhCltVersionNotSet - not set version nbr. -* EPhCltVersionVTStill - Video telephony still image. -* EPhCltVersionOperatorLogo - Operator logo. -* EPhCltTypeVTDefault - Video telephony default image when -* VT still image is not in use. -*/ -enum TPhCltImageType - { - EPhCltTypeNotSet = 0, - EPhCltTypeVTStill = 1, - EPhCltTypeOperatorLogo = 2, - EPhCltTypeVTDefault = 3 - }; - - -/** -* Image handler uses TPhCltImageArray. -* Identification is done according to the version number, and handled -* accordingly. -*/ -struct TPhCltImageArray - { - TInt iImages[KPhCltImagesArrayLen]; - TInt iImageCount; - TPhCltImageType iType; - }; - - -// CLASS DECLARATION -/** -* Parameter storage class. -* -* @lib PhoneClient.lib -* @since Series60 3.2 -*/ -class CPhCltImageParams : public CBase - { - public: - /** - * Returns class type. - * @return type number; - */ - IMPORT_C virtual TPhCltImageType Type() const = 0; - - /** - * Adds an image. - * @param aHandle handle to an image. - */ - virtual void AddImageL( TInt aHandle ) = 0; - - /** - * Gets an image. - * @param aIndex index of the image to get. - * @return image handle - */ - IMPORT_C virtual TInt GetImageL( const TInt aIndex ) const = 0; - - /** - * Gets image count. - * @return image count - */ - IMPORT_C virtual TInt Count() const = 0; - - /** - * Get all the images - * @return package buffered image struct - */ - virtual TPckgBuf< TPhCltImageArray >& Images() = 0; - }; - -#endif // CPHCLTIMAGEPARAMS_H \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_messenger_api/inc/CPhCltMessenger.h --- a/phonesrv_plat/phone_client_messenger_api/inc/CPhCltMessenger.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,225 +0,0 @@ -/* -* Copyright (c) 2004 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: Messenger interface: provides two-way communication between -* two or more clients. -* -*/ - - -#ifndef CPhCltMessenger_H -#define CPhCltMessenger_H -#include - -// FORWARD DECLARATIONS -class RPhCltServer; - -// The default Messenger data size. -const TInt KPhCltDefMesSize = 64; - - -/** -* Enumerates asynchronous messenger requests. -* -* @since 2.6. -* -* EPhCltMesRequestReceive - request corresponding to the Receive method. -* EPhCltMesRequestSend - request corresponding to the Send method. -*/ -enum TPhCltMessengerRequest - { - EPhCltMesRequestReceive = 1, - EPhCltMesRequestSend = 2 - }; - - - - -/** -* Messenger Negotiator commands. -* -* EPhCltMesCommandUnknown The command was unknown. -* -* EPhCltMesCommandSend The Send command. -* EPhCltMesCommandReceive The Receive command. -* EPhCltMesCommandSkip The Skip command. -* -* EPhCltMesConstruct The Construct command. -* EPhCltMesCommandDelete The Delete command. -* -* EPhCltMesCommandCancelSend Send request canceled. -* EPhCltMesCommandCancelReceive Receive request canceled. -*/ -enum TPhCltMessengerCommand - { - EPhCltMesCommandUnknown = 0, - - EPhCltMesCommandReceive = 1, - EPhCltMesCommandSend = 2, - EPhCltMesCommandSkip = 3, - - EPhCltMesCommandConstruct = 4, - EPhCltMesCommandDelete = 5, - - EPhCltMesCommandCancelSend = 6, - EPhCltMesCommandCancelReceive = 7 - }; - -/** -* The parameter storage class used in PhoneClient and PhoneServer -* data transfer. -* -* @since 2.6. -*/ -class TPhCltMessengerParameters - { - public: // Constructors and destructor - - /** - * Constructor. - */ - inline TPhCltMessengerParameters() : - iMessengerCommand( EPhCltMesCommandUnknown ), - iDefaultMessageSize( 0 ), - iReceiveMessageSizePtr( NULL ), - iReceiveBufferMaxSize( 0 ), - iSendPayloadLength( 0 ), - iCancelRequest( EPhCltMesRequestReceive ) - { - } - - public: // Data - - // The Messenger Negotiator command. - TPhCltMessengerCommand iMessengerCommand; - - // The message types that are listened. - TUid iCategoryUid; - - // The default message size. - TInt iDefaultMessageSize; - - // The pointer to the descriptor that contains the - // received message size TInt. - TAny* iReceiveMessageSizePtr; - - // The maximum size of the receive buffer. - TInt iReceiveBufferMaxSize; - - // The length of the Send data. - TInt iSendPayloadLength; - - // The canceled command. - TPhCltMessengerRequest iCancelRequest; - }; - -/** -* Messenger interface: provides two-way communication between -* two or more clients. -* Meant for Phone and Video Telephony application information transfer. -* -* @lib PhoneClient.lib -* @since 3.2 -*/ -class CPhCltMessenger : public CBase - { - - public: // Constructors - - /** - * Two-phased constructor. - * - * @param aCategoryUid Category of messages to be sent or received. - * Note that there can be many kinds of message uids - * below one category uid. - * @param aDefaultMessageSize The default size of the messages to be sent - * or received in bytes. Can be bigger than - * KPhCltDefMesSize, but then functionality - * is not guaranteed. - */ - IMPORT_C static CPhCltMessenger* NewL( const TUid& aCategoryUid, - const TInt& aDefaultMessageSize ); - - public: // New functions - - /** - * Receives next message. No memory is allocated during the operation of - * this method. - * - * @param aStatus This request will be completed once message has been - * received. - * @param aMessageSize Tells the size of the received message. If bigger - * than the size of the aMessagePayload, then only the beginning - * of the received message is copied to aMessagePayload. This - * means that either Receive must be called with bigger buffer to - * receive full message or Skip must be called to indicate that - * the full message is not needed. - * - * @param aMessagePayload Storage to the message to be received. The - * format of the message is determined by the - * category Uid used in Open method. - * . - */ - IMPORT_C virtual void Receive( - TRequestStatus& aStatus, - TInt& aMessageSize, - TDes8& aMessagePayload ) = 0; - - - /** - * Sends message. This is completed only after message has been - * delivered to all receivers of the same category. - * No memory is allocated during the operation of this method. - * - * @param aStatus This request will be completed once message has been - * sent. - * @param aMessagePayload The sent message.The format of the message is - * determined by the category Uid used in Open method. - */ - IMPORT_C virtual void Send( - TRequestStatus& aStatus, - const TDesC8& aMessagePayload ) = 0; - - - /** - * Cancel request. This method should only be called in destruction - * to make sure that messages are not missed. - * - * @param aRequest request to be canceled. - */ - IMPORT_C virtual void CancelRequest( - const TPhCltMessengerRequest& aRequest ) = 0; - - - /** - * Skip one (i.e. next) message. This method should be called only if - * Receive completion indicates that there is not enough space in - * aMessagePayload. - * Of course, you should attempt to recover, i.e. try to call Receive - * with big enough aMessagePayload buffer before calling this method. - */ - virtual void Skip() = 0; - - protected: - - /** - * C++ constructor. - */ - CPhCltMessenger(); - - }; - - -#endif // CPhCltMessenger_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_notify_api/inc/CPhCltCallNotify.h --- a/phonesrv_plat/phone_client_notify_api/inc/CPhCltCallNotify.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,169 +0,0 @@ -/* -* Copyright (c) 2002 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: CPhCltCallNotify observer getting notifications about call requests -* from Phone Server. -* -*/ - -#ifndef CPHCLTCALLNOTIFY_H -#define CPHCLTCALLNOTIFY_H - -// INCLUDES -#include -#include - - -// FORWARD DECLARATIONS -class RPhCltServer; -class CPhCltDialData; -class MPhCltDialRequestObserver; -class MPhCltDialEmergencyRequestObserver; -class CPhCltExtPhoneDialData; -class RPhCltCallNotify; -class MPhCltComHandRequestObserver; -class CPhCltDialRequestMonitor; -class CPhCltDialEmergencyRequestMonitor; -class CPhCltComHandRequestMonitor; - - -// CLASS DECLARATION - -/** -* CCallNotify observer getting notifications about call requests -* from Phone Server. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class CPhCltCallNotify : public CBase - { - public: // Constructors and destructors. - - - IMPORT_C static CPhCltCallNotify* NewL(); - - /** - * Destructor. - */ - IMPORT_C virtual ~CPhCltCallNotify(); - - public: // New functions - - /** - * Open subsession to server. - * - * @param aServer Pre-opened server session. - * @return Symbian OS error code of the success of the opening. - */ - IMPORT_C TInt Open( RPhCltServer& aServer ); - - /** - * Close subsession. - */ - IMPORT_C void Close(); - - /** - * Notify dial requests through given observer. - * @param aObserver dial request observer - */ - IMPORT_C void NotifyDialRequest( - MPhCltDialRequestObserver* aObserver ); - - /** - * Cancel pending call attempt notification. - */ - IMPORT_C void CancelNotifyDialRequest(); - - /** - * Respond to client request to make a call - * - * @param aResultCode Result of the response. - */ - IMPORT_C TInt RespondClient( const TInt aResultCode ); - - /** - * Notifies when a emergency call request arrives. - * - * @param aStatus Status to be changed when call request have arrived. - */ - IMPORT_C void NotifyEmergencyCall( - MPhCltDialEmergencyRequestObserver* aObserver, - TDesC& aEmergencyNumber ); - - /** - * Cancel pending emergency call attempt notification. - */ - IMPORT_C void CancelNotifyEmergencyCall() const; - - /** - * Respond to client request to make emergency call - * - * @param aResultCode Result of the response. - */ - IMPORT_C TInt RespondEmergencyToClient( const TInt aResultCode ); - - /** - * Notifies when a Command handler request arrives. - * - * @param aStatus Status to be changed when command handler request - * has arrived. - * @param aCommandArgs Command argument storage place. - * That is, packaged version of class - * TPhCltComHandCommandParameters. - */ - IMPORT_C void NotifyComHandCommand( - MPhCltComHandRequestObserver* aObserver, - TDes8& aCommandArgs ); - - /** - * Cancel pending command handler request notification. - */ - IMPORT_C void CancelNotifyComHandCommand() const; - - /** - * Respond to client's command handler request. - * - * @param aResultCode Result of the response - * (previous function execution). - * @return KErrNone if respond succeeded, otherwise Symbian error code. - */ - IMPORT_C TInt RespondComHandClient( const TInt aResultCode ); - - - private: - - /* - * Constructor. - */ - CPhCltCallNotify(); - - /** - * Memory allocations in ConstructL. - */ - void ConstructL(); - - private: - - //RClass instance - RPhCltCallNotify* iCallNotify; - - CPhCltDialRequestMonitor* iDialMonitor; - CPhCltDialEmergencyRequestMonitor* iDialEmergencyMonitor; - CPhCltComHandRequestMonitor* iComHandMonitor; - }; - - -#endif // CPHCLTCALLNOTIFY_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_server_information_api/inc/PhoneClientServerDomainPSkeys.h --- a/phonesrv_plat/phone_client_server_information_api/inc/PhoneClientServerDomainPSkeys.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -/* -* Copyright (c) 2004 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: Phone Client-Server Domain Publish and Subscribe keys. -* -*/ - - -#ifndef PHONECLIENTSERVERDOMAINPSKEYS_H -#define PHONECLIENTSERVERDOMAINPSKEYS_H - -#include - -// CONSTANTS - -/****************************************************************************** -* Phone Client Server Information API -******************************************************************************/ -const TUid KPSUidPhoneClientServerInformation = {0x102029AA}; - -/** -* Indication about operator logo change. -* @see TTelOTALogoUpdate in phoneclientserverdomainpstypes.h -* @type RProperty::EByteArray -*/ - -const TUint32 KTelOperatorLogoUpdated = 0x00000001; - -#endif // PHONECLIENTSERVERDOMAINPSKEYS_H - -// End of file \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_server_information_api/inc/PhoneClientServerDomainPStypes.h --- a/phonesrv_plat/phone_client_server_information_api/inc/PhoneClientServerDomainPStypes.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* -* Copyright (c) 2006 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: Data types passed through Publish and Subscribe -* -*/ - - -#ifndef PHONECLIENTSERVERDOMAINPSTYPES_H -#define PHONECLIENTSERVERDOMAINPSTYPES_H - -/** -* Details how OTA operator logo has changed. -* Data is used as key value with KTelOperatorLogoUpdated. -* Note: Size of the data must not exceed RProperty::KMaxPropertySize. -*/ -struct TTelOTALogoUpdate - { - /** - * EPSTelephonyLogoChanged - Logo was added or replaced - * EPSTelephonyLogoDeleted - Logo was deleted - */ - enum TPSOperatorLogoUpdateEvent - { - EPSTelephonyLogoChanged, - EPSTelephonyLogoDeleted, - EPSTelephonyAllLogosDeleted - }; - - // Event type - TPSOperatorLogoUpdateEvent iEvent; - - /** - * Country code associated to logo, N/A if event - * is EPSTelephonyAllLogosDeleted - */ - TPhCltCountryCode iMCC; - - /** - * Network code associated to logo, N/A if event - * is EPSTelephonyAllLogosDeleted - */ - TPhCltNetworkCode iMNC; - - typedef TPckg TOTALogoUpdatePckg; - }; - -#endif // PHONECLIENTSERVERDOMAINPSTYPES_H - -// End of file \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_ussd_api/inc/CPhCltUssd.h --- a/phonesrv_plat/phone_client_ussd_api/inc/CPhCltUssd.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ -/* -* Copyright (c) 2002 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: Interface for sending messages. -* -*/ - - -#ifndef CPHCLTUSSD_H -#define CPHCLTUSSD_H - -// INCLUDES -#include - - -// FORWARD DECLARATIONS -// CLASS DECLARATION - -/** -* USSD application Exit reason. -*/ -enum TPhCltUssdAppExitReason - { - EPhCltUserExit, // User exited the application. - EPhCltSendCompleted, // Send operation was completed. - EPhCltExitReasonUnknown // Exit reason is unknown. - }; - -// The next four values are for SAT dcs. -const TUint KPhCltDcs7Bit = 101; // 7-bit dcs. -const TUint KPhCltDcs8Bit = 102; // 8-bit dcs. -const TUint KPhCltDcsUcs2 = 103; // UCS2 dcs. -const TUint KPhCltDcsUnknown = 104; // Unknown dcs. - -// The notes are shown in SAT session. -const TUint KPhCltShowNotes = 1000; - -/** -* Interface for sending messages. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class CPhCltUssd : - public CBase - - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aShowNotes If ETrue, notes are shown. - * @return Pointer to created CPhCltUssd instance. - */ - IMPORT_C static CPhCltUssd* NewL( TBool aShowNotes = ETrue ); - - public: // New functions - - /** - * Send Ussd string to network with default DCS. - * - * @param aMsgData Unicode string to be sent. - * @return Error code. - */ - virtual TInt SendUssd( const TDesC& aMsgData ) = 0; - - /** - * Send Ussd buffer to network with default DCS. - * - * @param aMsgData 7-bit buffer to be sent. - * @return Error code. - */ - virtual TInt SendUssd( const TDesC8& aMsgData ) = 0; - - /** - * Send Ussd buffer to network with given DCS. - * - * @param aMsgData 7-bit buffer to be sent. - * @param iSendDcs Specifies DCS and the send type. - * @return Error code. - */ - IMPORT_C virtual TInt SendUssd( - const TDesC8& aMsgData, - const TUint8 iSendDcs ) = 0; - - /** - * Cancels outstanding Send request. - */ - virtual void SendUssdCancel() = 0; - - /** - * Set data coding scheme - * - * @param aDCS data coding scheme value - */ - virtual void SetDCS( TUint8 aDCS ) = 0; - - /** - * Starts editor. Creates own window server session. - * - * @return Error code. - */ - IMPORT_C virtual TInt StartUssdEditor() const = 0; - - protected: - /** - * C++ constructor. - */ - CPhCltUssd(); - - }; - -#endif // CPHCLTUSSD_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_ussd_internal_api/inc/CPhCltUssdInt.h --- a/phonesrv_plat/phone_client_ussd_internal_api/inc/CPhCltUssdInt.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* -* Copyright (c) 2002 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: Interface Ui information -* -*/ - - -#ifndef CPHCLTUSSDINT_H -#define CPHCLTUSSDINT_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -// CLASS DECLARATION - - -/** -* Interface for sending messages. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class CPhCltUssdInt : - public CPhCltUssd - - { - public: // Constructors and destructor - - - // CPhCltUssdInt(); - - /** - * Two-phased constructor. - * - * @param aShowNotes If ETrue, notes are shown. - * @return Pointer to created CPhCltUssd instance. - */ - IMPORT_C static CPhCltUssdInt* NewL( TBool aShowNotes = ETrue ); - - - protected: - //--------------------- From app ------------------------------ - - /** - * UI informs that it is been created - * - * @return Error code. - */ - virtual TInt AppStarting() = 0; - - /** - * UI informs that it is terminating. - * - * @param aExitReason The reason why the application was terminated. - * @return Error code. - */ - IMPORT_C virtual TInt AppTerminating( - TPhCltUssdAppExitReason aExitReason ) = 0; - - /** - * UI informs that it is brougth to foreground. - * - * @return Should the editor be emptied? - */ - virtual TBool AppToForeground() = 0; - - /** - * UI informs that it is gone background. - * - * @return Error code. - */ - virtual TInt AppToBackground() = 0; - - /** - * C++ constructor. - */ - CPhCltUssdInt(); - - protected: - - // CUssdComms can call the protected functions mentioned above. - friend class CUssdComms; - - }; - -#endif // CPHCLTUSSDINT_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_ussd_internal_api/inc/CPhCltUssdSatClient.h --- a/phonesrv_plat/phone_client_ussd_internal_api/inc/CPhCltUssdSatClient.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,148 +0,0 @@ -/* -* Copyright (c) 2002 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: Ussd client for SAT usage. -* -*/ - - -#ifndef CPHCLTUSSDSATCLIENT_H -#define CPHCLTUSSDSATCLIENT_H - - -// INCLUDES -#include - - -// FORWARD DECLARATIONS -class CPhCltUssdSatActive; -class CPhCltUssdImp; - - -// CLASS DECLARATION - -/** -* Ussd client for SAT Server. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class CPhCltUssdSatClient :public CBase - { - public: - - /** - * Values to tell the used DCS in SAT message received from network. - */ - enum TPhCltDcs - { - EPhCltDcs7Bit = 1, // DCS was 7bit. - EPhCltDcs8Bit, // DCS wass 8bit. - EPhCltDcsUCS2, // DCS was UCS2. - EPhCltDcsUnknown // DCS was unknown. - }; - - - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * @param aShowNotes Show notes on first and last message? - * @return Pointer to created CPhCltUssdSatClient instance. - */ - IMPORT_C static CPhCltUssdSatClient* NewL( TBool aShowNotes ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CPhCltUssdSatClient(); - - - public: // New functions - - /** - * Start Ussd session from SAT. - * - * @param aSendMessage The string which is sent to network. - * @param iSendDcs Specifies DCS and the send type. - * @param aReceiveMessage Here is copied the return message. - * @param aSendCompletedFirst ETrue if send is completed before receive. - * @param aReceivedDcs The used DCS in message sent by network. - * @return Error code. KErrNone no errors - * KErrInUse send is already active. - * Others from the network or from connection. - */ - IMPORT_C TInt SendSatMessage( - const TDesC& aSendMessage, - const TUint8 iSendDcs, - TDes& aReceiveMessage, - TBool& aSendCompletedFirst, - TUint8& aReceivedDcs - ); - - /** - * Cancels outstanding Send request. - */ - IMPORT_C void SendSatMessageCancel(); - - - private: - - /** - * C++ default constructor. - */ - CPhCltUssdSatClient(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( TBool aShowNotes ); - - /** - * Decodes the dcs received from Phone Server. Puts the result to - * parameter aReceivedDcs. - */ - void DecodeDcs( TUint8& aReceivedDcs ); - - - private: // Data - - // Storage place for note show information. - TBool iShowNotes; - - // Storage for SAT error code. - TInt iSatError; - - // Storage for received message. - TPtrC iReceiveMessage; - - // Send completion information. - TBool* iSendCompletedFirst; - - // Helper class, private - CPhCltUssdSatActive* iSatActive; - - - // USSD wrapper class. - CPhCltUssdImp* iUssdWrapper; - - // This variable has two purposes: - // 1) Client -> Server: Tells whether to show the notes or not. - // 2) Server -> Client: Tells the used dcs in received message. - TUint iShowNotesAndDcs; - }; - -#endif // CPHCLTUSSDSATCLIENT_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_client_utility_api/inc/PhCltUtils.h --- a/phonesrv_plat/phone_client_utility_api/inc/PhCltUtils.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* -* Copyright (c) 2002 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: It provides functionality to check if character is valid and -* remove invalid characters. -* -*/ - - -#ifndef PHCLTUTILS_H -#define PHCLTUTILS_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* It contains utility methods. -* -* This class can be used to remove illegal characters from descriptors -* before dialing. However, it shouldn't be done before you have ensured -* that string is acceptable by application specific grammar. -* -* Thus, you should process as follows: -* 1. Check that string is acceptable. (application specific) -* 2. If not, stop. Otherwise continue. -* 3. Convert to string acceptable by phoneclient - -* typically, you just have to remove invalid characters. -* 4. Do whatever you wish with the string, e.g. dial. -* -* @lib phoneclient.lib -* @since 1.0 -*/ -class PhCltUtils - { - public: // New functions - - /** - * Checks if character is acceptable. - * - * @param aChar character. - * @return ETrue iff characters is ok. - */ - IMPORT_C static TBool IsValidChar( TChar aChar ); - - /** - * Removes all illegal characters from descriptor. - * - * @param aString string from which those characters are removed. - */ - IMPORT_C static void RemoveInvalidChars( TDes& aString ); - - /** - * Removes SIP prefixses and domain part from descriptor. - * - * @since 3.0 - * @param aString string from which those characters are removed. - */ - IMPORT_C static void RemoveURIPrefixdAndDomainChars( TDes& aString ); - }; - -#endif // PHCLTUTILS_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/MPsetCallBarring.h --- a/phonesrv_plat/phone_settings_api/inc/MPsetCallBarring.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* -* Copyright (c) 2002 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: -* MPsetCallBarring defines interface to get and set call barring -* setting in the network. -* -* -*/ - - -#ifndef MPSETCALLBARRING_H -#define MPSETCALLBARRING_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class MPsetBarringObserver; - -// CLASS DEFINITIONS -/** -* MPsetCallBarring class is virtual class for call barring. -* @lib phonesettings.lib -* @since 1.0 -*/ -class MPsetCallBarring - { - public: - - /** - * Sets barring status to the network. - * - * @param aBarring New status of barring. - * @param aBsc List of basic service groups. - */ - virtual void SetBarringL( const TCallBarringSetting& aBarring, - TBasicServiceGroups aBsc ) = 0; - - /** - * Checks the barring status from network - * - * @param aGroup Service group concerned. - * @param aMode Barring program mode. - */ - virtual void GetBarringStatusL( const TServiceGroup aGroup, - const TBarringProgram aMode ) = 0; - - /** - * Cancels the pending request. - * - * @return Returns error code - */ - virtual TInt CancelCurrentRequest()=0; - }; -#endif //MPSETCALLBARRING_H -//End of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/MPsetCallDiverting.h --- a/phonesrv_plat/phone_settings_api/inc/MPsetCallDiverting.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* -* Copyright (c) 2002 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: -* This class is virtual abstract class for setting/cancelling and -* inquiring divert(s). -* -* -*/ - - -#ifndef MPSETCALLDIVERTING_H -#define MPSETCALLDIVERTING_H - -// INCLUDES -#include -#include - -// CLASS DEFINITIONS -/** -* MPsetCallDiverting class is virtual class for Diverting. -* @lib phonesettings.lib -* @since 1.0 -*/ -class MPsetCallDiverting - { - public: - - /** - * Sets diverting to the network. - * - * @param aDivert New divert settings. - * @param aBsc List of basic service groups . - * @param aVmbx Divert to voice mailbox number. - */ - virtual void SetDivertingL( const TCallDivertSetting& aDivert, - TBasicServiceGroups aBsc, TBool aVmbx ) = 0; - - /** - * Checks the diverting status from network. - * - * @param aServiceGroup Service group indication. - * @param aCondition Diverting conditions. - * @param aBsc List of basic service groups. - */ - virtual void GetDivertingStatusL( const TServiceGroup aServiceGroup, - const TCallDivertingCondition aCondition, - TBasicServiceGroups aBsc ) = 0; - - /** - * Cancels current request. - * - * @return Returns error code. - */ - virtual TInt CancelCurrentRequest() = 0; - - }; - -#endif // MPSETCALLDIVERTING_H -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/MPsetCallWaiting.h --- a/phonesrv_plat/phone_settings_api/inc/MPsetCallWaiting.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -/* -* Copyright (c) 2002 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: -* MPsetCallWaiting defines interface to get and set call waiting setting -* in the network. All the methods are asynchronous. Observer handles -* completion. -* -* -*/ - - -#ifndef MPSETCALLWAITING_H -#define MPSETCALLWAITING_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class MPsetCallWaitingObserver; - -// CLASS DEFINITIONS -/** -* MPsetCallWaiting class is virtual class for Call Waiting. -* @lib phonesettings.lib -* @since 1.0 -*/ -class MPsetCallWaiting - { - public: - - // Call waiting action - enum TSetCallWaiting - { - EActivateCallWaiting, - EDeactivateCallWaiting - }; - - // Call waiting status - enum TGetCallWaitingStatus - { - EStatusActive, - EStatusDisabled, - EStatusNotAvailable, - EStatusNotProvisioned, - EStatusUnknown - }; - - public: - - /** - * Sets call waiting to the network. - * - * @param aSetting New settings for the Call Waiting. - * @param aBsc Basic service group concerned. - */ - virtual void SetCallWaitingL( - MPsetCallWaiting::TSetCallWaiting aSetting, - TBasicServiceGroups aBsc ) = 0; - - /** - * Checks the call waiting status from network. - */ - virtual void GetCallWaitingStatusL()=0; - - /** - * Cancels the call waiting-request process. - */ - virtual TInt CancelProcess()=0; - }; - -#endif // MPSETCALLWAITING_H -// end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/MPsetCli.h --- a/phonesrv_plat/phone_settings_api/inc/MPsetCli.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* -* Copyright (c) 2002 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: -* MPsetCli defines interface to get and set CLI settings from the network. -* -* -*/ - - -#ifndef MPSETCLI_H -#define MPSETCLI_H - -// INCLUDES -#include - -// CLASS DEFINITIONS -/** -* MPsetCli class is virtual class for CLI. -* @lib phonesettings.lib -* @since 1.0 -*/ -class MPsetCli - { - public: - - /** - * Shows COLP (Connected Line Identification Presentation) mode. - */ - virtual void GetColpModeL() = 0; - - /** - * Shows CLIP (Calling Line Identification Presentation) mode. - */ - virtual void GetClipModeL() = 0; - - /** - * Shows CLIR (Calling Line Identification Restriction) mode. - */ - virtual void GetClirModeL() = 0; - - /** - * Shows COLR (Connected Line Identification Restriction) mode. - */ - virtual void GetColrModeL() = 0; - - /** - * Shows CNAP (Calling Number Presentation) mode. - * - */ - virtual void GetCnapL() = 0; - - /** - * Cancels any (and all) request(s). - */ - virtual void CancelAll() = 0; - }; -#endif // MPSETCLI_H -// end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/MPsetNetworkMode.h --- a/phonesrv_plat/phone_settings_api/inc/MPsetNetworkMode.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/* -* Copyright (c) 2004 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: -* MPsetNetworkMode defines interface to get network mode information. -* MPsetNetworkInfoObserver is used to handle completion of function -* calls of this class. All the methods are asynchronous. -* Observer handles completion -* -* -*/ - - -#ifndef MPSETNETWORKMODE_H -#define MPSETNETWORKMODE_H - -// INCLUDES -#include - -// CLASS DEFINITIONS -/** -* MPsetNetworkMode class is virtual class for system network mode. -* @lib phonesettings.lib -* @since 2.6 -*/ -class MPsetNetworkMode - { - public: - - /** - * Returns the Network Mode list (GSM/UMTS/DualMode). - * @since 2.6 - */ - //virtual void GetNetworkModeSelectionList() = 0; - - /** - * Returns the currently selected Network Mode (GSM/UMTS/DualMode). - * - * @since 2.6 - */ - virtual void GetCurrentNetworkModeSelectionL() = 0; - - /** - * Sets the Network Mode to TSY side (GSM/UMTS/DualMode). - * - * @param aNetworkMode currently selected network mode. - * @since 2.6 - */ - virtual void SetNetworkModeSelectionL( TUint32& aNetworkMode ) = 0; - - - }; - -#endif // MPSETNETWORKMODE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/MPsetNetworkSelect.h --- a/phonesrv_plat/phone_settings_api/inc/MPsetNetworkSelect.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,156 +0,0 @@ -/* -* Copyright (c) 2002 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: -* MPsetNetworkSelect defines interface to get network information and -* select network. MPsetNetworkInfoObserver is used to handle completion -* of function calls of this class. All the methods are asynchronous. -* Observer handles completion -* -* -*/ - - -#ifndef MPSETNETWORKSELECT_H -#define MPSETNETWORKSELECT_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class MPsetNetworkInfoObserver; - -// CLASS DEFINITIONS -/** -* MPsetNetworkSelect class is virtual class for network selection. -* @lib phonesettings.lib -* @since 1.0 -*/ -class MPsetNetworkSelect - { - public: - - //Length of codes (MNC and MCC) - enum - { - EPSetNetMcc = 4, - EPSetNetMnc = 8 - }; - - //TNetworkId contains network ID and country ID - struct TNetworkId - { - TBuf iCountryCode; - TBuf iNetworkCode; - }; - - //Length of network names - enum - { - ENetShortNameSize = 20, - ENetLongNameSize = 30 - }; - - //Network selection mode - enum TSelectMode - { - ENetSelectModeAutomatic, - ENetSelectModeManual - }; - - //Status of network - enum TNetworkStatus - { - ENetStatUnknown, - ENetStatAvailable, - ENetStatCurrent, - ENetStatForbidden - }; - //Network access type - enum TNetworkAccess - { - ENetNetworkGSM, - ENetNetworkWCDMA, - ENetNetworkGSMandWCDMA - }; - - //Information about network - struct TNetworkInfo - { - TNetworkId iId; - TNetworkStatus iStatus; - TSelectMode iMode; - TNetworkAccess iAccess; - TBuf iShortName; - TBuf iLongName; - }; - - //Current status of the network - enum TCurrentNetworkStatus - { - ENotRegisteredNotSearching, - ERegisteredOnHomeNetwork, - ENotRegisteredSearching, - ERegistrationDenied, - EUnknown, - ERegisteredRoaming - }; - - //Current information about the network - struct TCurrentNetworkInfo - { - TCurrentNetworkStatus iStatus; - TUint iLocationAreaCode; - TUint iCellId; - }; - - public: - - /** - * Puts network retrieve results into array. - * - */ - virtual void GetAvailableNetworksL() = 0; - - /** - * Returns current network information. - * - * @param aInfo Current network information - * @return Returns error code. - */ - virtual TInt GetCurrentNetworkInfo( - MPsetNetworkSelect::TCurrentNetworkInfo& aInfo ) = 0; - - /** - * Returns current network selection mode. - * - * @param aMode Network selection mode - * @return Returns error code. - */ - virtual TInt GetNetworkSelectMode( TSelectMode& aMode) = 0; - - /** - * Sets network, also for selecting automatic/manual mode. - * - * @param aInfo Network information - */ - virtual void SelectNetworkL( const TNetworkInfo& aInfo ) = 0; - - /** - * CancelProcess-function, cancels the requests. - */ - virtual void CancelProcess() = 0; - }; - -#endif // MPSETNETWORKSELECT_H -// end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/PSetConstants.h --- a/phonesrv_plat/phone_settings_api/inc/PSetConstants.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* Copyright (c) 2002 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: Various Constants -* -* -*/ - - -#ifndef PSETCONSTANTS_H -#define PSETCONSTANTS_H - -//Common -const TUid KPSetUidPset = { 0x100058E3 }; -const TInt KPSetUnusedValue = 255; //unknown basic service group -const TInt KPSetNumberOfBsc = 13; -const TInt KPsetRequestAlreadySet = -1; -const TInt KPsetPhoneNumberLength = 100; -typedef TBuf TTelNumber; - -//Divert object -const TInt KPSetDefaultNumberMax = 3; -const TInt KPSetDefaultDelayTimeValue = 0; -const TInt KPSetFirstDefNumber = 1; -const TInt KPSetSecondDefNumber = 2; -const TInt KPSetThirdDefNumber = 3; -const TInt KPsetDelayTimeDivider = 5; -const TInt KPsetDefaultTimerValue = 30; -const TInt KPsetMatchingChars = 7; -_LIT( KPSetAsterisk, "*" ); - -//Barring -const TInt KPsetPwdLength = 10; -typedef TBuf TBarringPassword; - -// Network object -const TInt KPSetNetworkInfoArrayGranularity = 10; - -// Service codes for setting passwords -const TInt KPsetAllSSServices = 0; -const TInt KPsetBarringService = 330; - -//ETEL connection -const TInt KPSetRetryCount = 7; -const TInt KPSetRetryTimeout = 100000; -const TInt KPSetNoLinesAvailable = -1; - -#endif //PSETCONSTANTS_H -// End of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/PSetRefreshHandler.h --- a/phonesrv_plat/phone_settings_api/inc/PSetRefreshHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,94 +0,0 @@ -/* -* Copyright (c) 2004 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: The Refresh handler to inform refresses. -* -*/ - - - -#ifndef PSETREFRESHHANDLER_H -#define PSETREFRESHHANDLER_H - - -// INCLUDES -#include -#include - - -// DATA TYPES - -// Changed CSP settings. -enum TPSetChangedCspSetting - { - EPSetNoChangedSetting = 0x0000, // No setting was changed in refresh. - EPSetCW = 0x0001, // Call Waiting setting was changed. - EPSetCB = 0x0002, // Call Barring was changed. - EPSetCF = 0x0004, // Call Forwarding setting was changed. - EPSetALS = 0x0008, // Alternate Line setting was changed. - EPSetNetSelSup = 0x0010, // Manual Network Selection setting - // was changed. - }; - - -// CLASS DECLARATION - -/** -* The Refresh handler to inform refresses. -* -* @lib PhoneSettings.lib -* @since 2.8 -*/ -class CPSetRefreshHandler : - public CBase - { - public: // New functions - - /** - * Start the waiting for refresh events. - * - * @param aObserver The observer to handle refresh events. - * @param aObservedFile The file change to be observed. - * @param aObservedRefreshType The refresh type(s) to be observed. - */ - virtual void NotifyFileChangeL( - MSSSettingsRefreshObserver& aObserver, - TSatElementaryFiles aObservedFile, - TSatRefreshType aObservedRefreshType ) = 0; - - /** - * Cancel the notification started in NotifyFileChangeL. - * - * @param aObserver The observer whose notify to be canceled. - * @param aObservedFile The file change to be canceled. - * @param aObservedRefreshType The refresh type to be canceled. - */ - virtual void CancelNotify() = 0; - - /** - * Get the changed CSP information after Refresh. - * - * @param aChangedCspSettings The changed CSP settings, - * TPSetChangedCspSetting values combined. - * @param aNewValues The new values of changed CSP settings, - * TPSetChangedCspSetting values combined. - * @return Error code. KErrNone if successful. - */ - virtual TInt ChangedCspSettings( - TPSetChangedCspSetting& aChangedCspSettings, - TPSetChangedCspSetting& aNewValues ) = 0; - }; - -#endif // PSETREFRESHHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/PsetCSP.h --- a/phonesrv_plat/phone_settings_api/inc/PsetCSP.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,167 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: -* Customer Service Profile wrapper layer for SsSettings. -* PsetCustomerServiceProfile is a class that access CSP through -* SSsettings. It is in Phone Settings to provide easier access -* to CSP values. Whole class should only be used if CSP is supported. -* -* -*/ - - -#ifndef PSETCSP_H -#define PSETCSP_H - -// INCLUDES -#include -#include - -// CLASS DECLARATION -/** -* CPsetCustomerServiceProfile class is a wrapper for Ss Settings. -* @lib phonesettings.lib -* @since 1.0 -*/ -class CPsetCustomerServiceProfile : public CBase - { - - public: // constructor & destructor - - /** - * Symbian OS 2-phase Constructor. - * @return CPsetCustomerServiceProfile object. - */ - IMPORT_C static CPsetCustomerServiceProfile* NewL(); - - /** - * Destructor - */ - IMPORT_C ~CPsetCustomerServiceProfile(); - - public: // New functions - - /** - * Checks if Call Waiting is to be supported - * @param aSupport Feature supported. - * @return Error code or KErrNone. - */ - IMPORT_C TInt IsCWSupported( TBool& aSupport ); - - /** - * Checks if Call Barring is to be supported . - * @param aSupport Feature supported. - * @return Error code or KErrNone. - */ - IMPORT_C TInt IsCBSupported( TBool& aSupport ); - - /** - * Checks if Call Forwarding is to be supported. - * @param aSupport Feature supported. - * @return Error code or KErrNone. - */ - IMPORT_C TInt IsCFSupported( TBool& aSupport ); - - /** - * Checks if Alternate Line is to be supported. - * @param aSupport Feature supported. - * @return Error code or KErrNone. - */ - IMPORT_C TInt IsALSSupported( TBool& aSupport ); - - /** - * Opens Customer Service Profile from SIM. - * @return Error code or KErrNone. - */ - IMPORT_C TInt OpenCSProfileL(); - - /** - * Checks if Manual Network Selection is to be supported. - * @since 1.2 - * @param aSupport Feature supported. - * @return Error code or KErrNone. - */ - IMPORT_C TInt IsNetworkSelectionSupported( TBool& aSupport ); - - - public: // New functions - - /** - * Checks if Call Waiting is to be supported in parameter. - * @since 2.8 - * @param aContainer The parameter to be checked. - * @return ETrue if supported, otherwise EFalse. - */ - TBool CheckIfCWSupported( - const RMobilePhone::TCspCallCompletion aContainer ) const; - - /** - * Checks if Call Barring is to be supported in parameter. - * @since 2.8 - * @param aContainer The parameter to be checked. - * @return ETrue if supported, otherwise EFalse. - */ - TBool CheckIfCBSupported( - const RMobilePhone::TCspCallRestriction aContainer ) const; - - /** - * Checks if Call Forwarding is to be supported in parameter. - * @since 2.8 - * @param aContainer The parameter to be checked. - * @return ETrue if supported, otherwise EFalse. - */ - TBool CheckIfCFSupported( - const RMobilePhone::TCspCallOffering aContainer ) const; - - /** - * Checks if Alternate Line is to be supported in parameter. - * @since 2.8 - * @param aContainer The parameter to be checked. - * @return ETrue if supported, otherwise EFalse. - */ - TBool CheckIfAlsSupported( - const RMobilePhone::TCspCPHSTeleservices aContainer ) const; - - /** - * Checks if Manual Network Selection is supported in parameter. - * @since 2.8 - * @param aContainer The parameter to be checked. - * @return ETrue if supported, otherwise EFalse. - */ - TBool CheckIfNetworkSelectionSupported( - const RMobilePhone::TCspValueAdded aContainer ) const; - - private: - - /** - * Checks if the first parameter supports the feature mentioned in the - * second parameter. - * @since 2.8 - * @param aContainer The parameter to be checked. - * @param aFeature The feature to be checked. - * @return ETrue if supported, otherwise EFalse. - */ - TBool IsSupported( - const TInt aContainer, - const TInt aFeature ) const; - - - private: // Member data - - // SsSettings' csp cache. - RCustomerServiceProfileCache* iCsp; - }; -#endif //PSETCSP_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/PsetCallBarring.h --- a/phonesrv_plat/phone_settings_api/inc/PsetCallBarring.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,226 +0,0 @@ -/* -* Copyright (c) 2002 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: Call barring class. Sets and gets call barring setting. -* -* -*/ - - -#ifndef PSETCALLBARRING_H -#define PSETCALLBARRING_H - -// INCLUDES -#include "mpsetbarringobs.h" -#include "mpsetcallbarring.h" -#include "msssettingsobserver.h" -#include "nwdefs.h" -#include -#include - -// FORWARD DECLARATIONS -class MPsetRequestObserver; -class RSSSettings; - -// CLASS DEFINITIONS -/** -* CPsetCallBarring class is call barring SS handler. -* @lib phonesettings.lib -* @since 1.0 -*/ -class CPsetCallBarring : public CActive, - public MPsetCallBarring, - public MSSSettingsObserver - { - public: - - // The type of request. - enum TPSetBarringRequest - { - EPSetRequestNone, - EPSetRequestChangeBarring, - EPSetRequestGetStatus, - EPSetRequestChangeBarringPwd, - EPSetRequestChangeCommonPwd - }; - - /** - * Symbian OS 2-phase Constructor. - * - * @param aObserver Observer for call barring. - * @param aPhone Provides client access to mobile phone - * functionality provided by TSY. - * @return Created CPsetCallBarring object. - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - static CPsetCallBarring* NewL( MPsetBarringObserver& aObserver, - RMobilePhone& aPhone ); - - /** - * Destructor. - */ - IMPORT_C ~CPsetCallBarring(); - - public: //methods from base classes - - /** - * @see MPsetCallBarring::SetBarringL(). - */ - IMPORT_C void SetBarringL( const TCallBarringSetting& aBarring, - TBasicServiceGroups aBsc ); - - /** - * @see MPsetCallBarring::GetBarringStatusL(). - */ - IMPORT_C void GetBarringStatusL( const TServiceGroup aGroup, - const TBarringProgram aMode ); - - /** - * @see MPsetCallBarring::CancelCurrentRequest(). - */ - IMPORT_C TInt CancelCurrentRequest(); - - /** - * @see MSSSettingsObserver::PhoneSettingChanged(). - */ - void PhoneSettingChanged( TSSSettingsSetting aSetting, TInt aNewValue ); - - public: //new - - /** - * DEPRECATED - calls the method below. - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - IMPORT_C void ChangePasswordL( - RMobilePhone::TMobilePhonePasswordChangeV2& aPwds, - TBool aIsBarringPassword ); - - /** - * Request to change ss password. - * @param aPwds Passwords (old, new, verified new) - * needed for the operation. - * @since 2.0 - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - IMPORT_C void ChangePasswordL( - RMobilePhone::TMobilePhonePasswordChangeV2& aPwds ); - - /** - * Sets request observer. - * - * @param aObs Where the request completion should be informed to. - */ - IMPORT_C void SetRequestObserver( MPsetRequestObserver* aObs ); - - private: // constructors - - void ConstructL( MPsetBarringObserver& aObserver ); - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - CPsetCallBarring( RMobilePhone& aPhone ); - - private: - - void ValidateBsc( TBasicServiceGroups& aBsc ); - - void SetObserver( MPsetBarringObserver& aObserver ); - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone::TMobilePhoneCBCondition SetBarringProgram ( - TBarringProgram aMode ); - - static void DoHandleLeave( TAny* aAny ); - - void CleanupLeavePushL(); - - void HandleLeave(); - - void StartRequestingL( const TInt& aRequest ); - - TBool GetPlurality(); - - void RequestCompleted( const TInt& aError ); - - //Empties member variables. - void ClearParams(); - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone::TMobilePhoneServiceAction SetBarringAction( - const TBarringSetting& aSetting ); - - - void HandleInquiryResultL(); - - void SetRequestStatus( TPSetBarringRequest aStatus ); - - private: //from base class CActive - - void DoCancel(); - - void RunL(); - - private: - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - // Provides client access to mobile line functionality provided by TSY. - RMobileLine* iLine; - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - // Provides client access to mobile phone functionality provided by TSY. - RMobilePhone& iPhone; - // Barring observer, handles results. - MPsetBarringObserver* iObserver; - // Currently active request - TPSetBarringRequest iCurrentReq; - // Barring settings - TCallBarringSetting iChangeSetting; - // Request handler - MPsetRequestObserver* iReqObserver; - // Retrieves the Call Barring status list from the phone. - CRetrieveMobilePhoneCBList* iCbStatusInterrogator; - //Barring parameters - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone::TMobilePhoneCBChangeV1 iBarringParameters; - // Value of Alternative Line Selection setting - TSSSettingsAlsValue iAls; - // SsSettings pointer, accesses supplementary services on SIM - RSSSettings* iSsSettings; - }; -#endif -// PSETCALLBARRING_H -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/PsetCallDiverting.h --- a/phonesrv_plat/phone_settings_api/inc/PsetCallDiverting.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,228 +0,0 @@ -/* -* Copyright (c) 2002 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: Call diverting class. Sets and gets call diverting status. -* -* -*/ - - -#ifndef PSETCALLDIVERTING_H -#define PSETCALLDIVERTING_H - -// INCLUDES -#include -#include "nwdefs.h" -#include "psetconstants.h" -#include "mpsetcalldiverting.h" - -// FORWARD DECLARATIONS -class CDesC16ArrayFlat; -class MPsetDivertObserver; -class MPsetRequestObserver; -class RVmbxNumber; -class CRepository; -class TCallDivertNotifySetting; -class MPSetCallDiverting; -class CPSetCallDivertingFactory; -class MCallDiverting; - -enum TSelectedLine - { - EPrimaryLine, // ALS is supported by ME & SIM and Line 1 (Primary Line) is the current line - EAuxiliaryLine, // ALS is supported by ME & SIM and Line 2 (Auxiliary Line) is the current line - EUnknownLine, // ALS is supported by ME & SIM but TSY can not determine line selection - ENotSupportedLine // ALS is not supported either by ME or SIM or both. - }; - -// CLASS DECLARATION -/** -* CPsetCallDiverting class is call diverting SS handler. -* @lib phonesettings.lib -* @since 1.0 -*/ -class CPsetCallDiverting : public CBase, - public MPsetCallDiverting - { - public: // constructor & destructor - - /** - * Symbian OS 2-phase Constructor. - * - * @param aObserver Call divert observer. - * @param aPhone Provides client access to - * mobile phone functionality provided by TSY. - * @return Created CPsetCallDiverting object. - */ - IMPORT_C static CPsetCallDiverting* NewL( - MPsetDivertObserver& aObserver, - RMobilePhone& aPhone); - - /* - * Destructor. - */ - IMPORT_C ~CPsetCallDiverting(); - - public: // From base class. - - /** - * @see MPsetCallDiverting::SetDivertingL(). - */ - IMPORT_C void SetDivertingL( const TCallDivertSetting& aDivert, - TBasicServiceGroups aBsc, TBool aVmbx = EFalse ); - - /** - * @see MPsetCallDiverting::GetDivertingStatusL(). - */ - IMPORT_C void GetDivertingStatusL( const TServiceGroup aServiceGroup, - const TCallDivertingCondition aCondition, - TBasicServiceGroups aBsc ); - - /** - * @see MPsetCallDiverting::CancelCurrentRequest(). - */ - IMPORT_C TInt CancelCurrentRequest(); - - public: //new - - /** - * Gets the default time for CF No Reply. - * No error checking for return values which should be - * 5-30, in steps of 5. - * - * @return Returns the current timer value. - */ - IMPORT_C TInt GetTimerValueL(); - - /** - * Sets the default time for CF No Reply. - * No error checking to parameters, which should be on range 5-30, - * using steps of 5. - * - * @param aIndex New value for timer. - * @return Returns error code. - */ - IMPORT_C TInt SetTimerValueL( const TInt& aIndex ); - - /** - * The default (last forwarded-to) numbers can be retrieved - * through this method. - * - * @param aDefNumbers Read default numbers from shared data. - * @return Returns error code or amount of numbers read. - */ - IMPORT_C TInt GetDefaultNumbersL( CDesC16ArrayFlat& aDefNumbers ); - - /** - * Sets new default number to the default numbers list, - * erases the oldest one automatically, if three numbers already in the - * shared data. - * - * @param aNumber New number to be added. - * @return Returns error code. - */ - IMPORT_C TInt SetNewDefaultNumberL( TDes& aNumber ); - - /** - * Swaps the most recently used number to first in shared data file. - * - * @param aLocation Used number's location (1-3) in shared data. - */ - IMPORT_C void SwapDefaultNumberL( const TInt& aLocation ); - - /** - * Saves last used data number to shared data. - * - * @param aNumber Number used for data call forwarding. - * @return Returns error code. - */ - IMPORT_C TInt SetUsedDataNumberL( TTelNumber& aNumber ); - - /** - * Saves last used fax number to shared data. - * - * @param aNumber Number used for data fax forwarding. - * @return Returns error code. - */ - IMPORT_C TInt SetUsedFaxNumberL( TTelNumber& aNumber ); - - /** - * Gets the phone number used for fax call forwarding. - * - * @return Number used for data call forwarding. - */ - IMPORT_C HBufC* GetUsedFaxNumberLC(); - - /** - * Gets the phone number used for data call forwarding. - * - * @return Number used for data call forwarding. - */ - IMPORT_C HBufC* GetUsedDataNumberLC(); - - /** - * Sets request observer. - * - * @param aObs Where the request completion should be informed to. - */ - IMPORT_C void SetRequestObserver( MPsetRequestObserver* aObs ); - - /** - * Queries for voice mail box number. If number is undefined, number - * entry pops up. - * @since 2.0 - * - * @param aTelNumber Vmbx number. - */ - IMPORT_C void VoiceMailQueryL( TDes& aTelNumber ); - - /** - * Queries for video mailbox number. If number is undefined, number - * entry pops up. - * @since 3.1 - * - * @param aTelNumber Video mailbox number. - */ - IMPORT_C void VideoMailQueryL( TDes& aTelNumber ); - - private: //new - - TInt OpenVideoMailboxLC( TDes& aTelNumber, RVmbxNumber& aVmbx ); - - private: // constructors - - void ConstructL( MPsetDivertObserver& aObserver ); - - CPsetCallDiverting( RMobilePhone& aPhone ); - - private: //member data - - // Observer for Call divert requests - MPsetDivertObserver* iObserver; - - // Provides client access to mobile phone functionality provided by TSY. - RMobilePhone& iPhone; - - // Request observer - MPsetRequestObserver* iReqObserver; - - // Central repository. - CRepository* iRepository; - - // Call Divert implementation. - MCallDiverting* iDivert; - }; - -#endif // PSETCALLDIVERTING_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/PsetCallWaiting.h --- a/phonesrv_plat/phone_settings_api/inc/PsetCallWaiting.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,174 +0,0 @@ -/* -* Copyright (c) 2002 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: CPsetCallWaiting is call waiting SS setting abstraction. -* -* -*/ - - -#ifndef PSETCALLWAITING_H -#define PSETCALLWAITING_H - -// INCLUDES -#include -#include -#include "msssettingsobserver.h" -#include "nwdefs.h" -#include "mpsetcallwaiting.h" -#include "mpsetcallwaitingobs.h" -#include "psetconstants.h" - - -// FORWARD DECLARATIONS -class MAdvGsmLineCallWaitingMode; -class MPsetRequestObserver; - - -// CLASS DECLARATION -/** -* CPsetCallWaiting class is call waiting SS handler. -* @lib phonesettings.lib -* @since 1.0 -*/ -class CPsetCallWaiting : public CActive, - public MPsetCallWaiting, - public MSSSettingsObserver - { - public: // constructor & destructor - - /** - * Symbian OS 2-phase Constructor. - * - * @param aPhone Provides client access to - * mobile phone functionality provided by TSY. - * @param aObserver Call Waiting observer. - * @return Created CPsetCallWaiting object. - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - IMPORT_C static CPsetCallWaiting* NewL( RMobilePhone& aPhone, - MPsetCallWaitingObserver& aObserver ); - - /** - * Destructor. - */ - IMPORT_C ~CPsetCallWaiting(); - - public: // from base class MPsetCallWaiting - - /** - * @see MPsetCallWaiting::SetCallWaitingL(). - */ - IMPORT_C void SetCallWaitingL( - TSetCallWaiting aSetting, - TBasicServiceGroups aBsc ); - - /** - * @see MPsetCallWaiting::GetCallWaitingStatusL(). - */ - IMPORT_C void GetCallWaitingStatusL(); - - - /** - * @see MPsetCallWaiting::CancelProcess(). - */ - IMPORT_C TInt CancelProcess(); - - public: //new - - /** - * Sets request observer. - * - * @param aObs Where the request completion should be informed to. - */ - IMPORT_C void SetRequestObserver( MPsetRequestObserver* aObs ); - - /** - * @see MSSSettingsObserver::PhoneSettingChanged(). - */ - void PhoneSettingChanged( TSSSettingsSetting aSetting, TInt aNewValue ); - - private: // from base class CActive - - void RunL(); - - void DoCancel(); - - private: //new - - //Service requests for call waiting. - enum TPSetServiceRequest - { - EPSetServiceRequestNone, - EPSetServiceRequestGetCallWaitingStatus, - EPSetServiceRequestSetCallWaiting - }; - - void SetPsuiObserver( MPsetCallWaitingObserver& aObserver ); - - void CleanupLeavePushL(); - - void HandleLeave(); - - static void DoHandleLeave( TAny* aAny ); - - void RequestCompleted( const TInt& aError ); - - void SetRequestStatus( TPSetServiceRequest aStatus ); - - void ValidateBsc( TBasicServiceGroups& aBsc ); - - private: // constructors - - void ConstructL( MPsetCallWaitingObserver& aObserver ); - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - CPsetCallWaiting( RMobilePhone& aPhone ); - - private: - - //Request observer - MPsetRequestObserver* iReqObserver; - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - //Provides client access to mobile phone functionality provided by TSY. - RMobilePhone& iPhone; - //Call waiting observer, shows notes associated with call waiting. - MPsetCallWaitingObserver* iObserver; - //Currently active request - TPSetServiceRequest iServiceRequest; - //Call waiting action type - MPsetCallWaiting::TSetCallWaiting iSetValue; - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - //Retrieves the Call Waiting status list from the phone. - CRetrieveMobilePhoneCWList* iCwInterrogator; - // Value of Alternative Line Selection setting - TSSSettingsAlsValue iAls; - // SsSettings pointer, accesses supplementary services on SIM - RSSSettings* iSsSettings; - // For run time variation. - TBool iCallWaitingDistinquishEnabled; - }; -#endif // PSETCALLWAITING_H -// end of file \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/PsetCli.h --- a/phonesrv_plat/phone_settings_api/inc/PsetCli.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,181 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: CPsetCli is calling line identification restriction SS -* setting abstraction. -* -* -*/ - - -#ifndef PSETCLIR_H -#define PSETCLIR_H - -// INCLUDES -#include -#include "mpsetcliobserver.h" -#include "mpsetcli.h" - - -// FORWARD DECLARATIONS -class MPsetRequestObserver; - - -// CLASS DECLARATION -/** -* CPsetCli class is calling line identification restriction SS handler. -* @lib phonesettings.lib -* @since 1.0 -*/ -class CPsetCli : public CActive, - public MPsetCli - { - public: // constructor & destructor - - // CLIR's current value - enum TPsetClirSetting - { - EPsetClirPreset = -1, - EPsetClirActive = 1, - EPsetClirInactive = 0 - }; - - /** - * Symbian OS 2-phase constructor. - * - * @param aPhone Provides client access to - * mobile phone functionality provided by TSY. - * @param aObserver Observer for CLI. - * @return Created CPsetCli object. - */ - IMPORT_C static CPsetCli* NewL( RMobilePhone& aPhone, - MPsetCliObserver& aObserver ); - - /** - * Destructor. - */ - IMPORT_C ~CPsetCli(); - - public: //from base classes - - /** - * @see MPsetCli::GetColpModeL - * Can leave, but due to inheritance not an L-function. - */ - IMPORT_C void GetColpModeL(); - - /** - * @see MPsetCli::GetClipModeL - * Can leave, but due to inheritance not an L-function. - */ - IMPORT_C void GetClipModeL(); - - /** - * @see MPsetCli::GetClirModeL - * Can leave, but due to inheritance not an L-function. - */ - IMPORT_C void GetClirModeL(); - - /** - * @see MPsetCli::GetColrModeL - * Can leave, but due to inheritance not an L-function. - */ - IMPORT_C void GetColrModeL(); - - /** - * @see MPsetCli::CancelAll - * Can leave, but due to inheritance not an L-function. - */ - IMPORT_C void CancelAll(); - - /* - * @see MPsetCli::GetCnapL - * @since Series60_1.2 - */ - IMPORT_C void GetCnapL(); - - public: //new - - /* - * Sets request observer. - * - * @param aObs Where the request completion should be informed to. - */ - IMPORT_C void SetRequestObserver( MPsetRequestObserver* aObs ); - - private: //constructor - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - CPsetCli( RMobilePhone& aPhone ); - - private: //from base class CActive - - void RunL(); - - void DoCancel(); - - private: //new - - void SetObserver( MPsetCliObserver& aObserver ); - - void CleanupLeavePushL(); - - void HandleLeave(); - - static void DoHandleLeave( TAny* aAny ); - - void RequestCompleted( const TInt& aError ); - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - //Issues requests. - void IssueRequestL( RMobilePhone::TMobilePhoneIdService aService ); - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - //Set request status. - void SetRequestStatus( RMobilePhone::TMobilePhoneIdService aStatus ); - - private: //Member data - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - //Provides client access to mobile phone functionality provided by TSY. - RMobilePhone& iPhone; - //Observer for CPsetCli. - MPsetCliObserver* iObserver; - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - //Current request for CPsetCli. - RMobilePhone::TMobilePhoneIdService iRequestedService; - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - //The result of inquiry. - RMobilePhone::TMobilePhoneIdServiceStatus iServiceStatus; - //Request observer. - MPsetRequestObserver* iReqObserver; - }; -#endif // __PSETCLIR_H -// end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/PsetContainer.h --- a/phonesrv_plat/phone_settings_api/inc/PsetContainer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,148 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: -* CPsetContainer is the general access class for phonesettings. -* Container must exists as long as other objects are used. -* -* -*/ - - -#ifndef PSETCONTAINER_H -#define PSETCONTAINER_H - -// INCLUDES -#include -#include -#include -#include -#include -#include - - -// FORWARD DECLARATIONS -class CPSetRefreshHandlerImpl; - - -// CLASS DECLARATION -/** -* CPsetContainer class is the general access class for phonesettings. -* @lib phonesettings.lib -* @since 1.0 -*/ -class CPsetContainer : public CBase - { - public: //constructor & destructor - - /* Symbian OS 2-phase Constructor. */ - IMPORT_C static CPsetContainer* NewL(); - - /* Destructor */ - IMPORT_C ~CPsetContainer(); - - public: - /** - * Creates CPsetCallWaiting-object. - * - * @param aObserver Observer to CPsetCallWaiting class. - * @return returns CPsetCallWaiting-pointer - */ - IMPORT_C CPsetCallWaiting* CreateCWObjectL( - MPsetCallWaitingObserver& aObserver ); - - /** - * Creates CPsetCallDiverting-object. - * - * @param aObserver Observer to CPsetCallDiverting class. - * @return returns CPsetCallDiverting-pointer - */ - IMPORT_C CPsetCallDiverting* CreateCFObjectL( - MPsetDivertObserver& aObserver ); - - /** - * Creates CPsetClir-object. - * - * @param aObserver Observer to CPsetCli class. - * @return returns CPsetClir-pointer - */ - IMPORT_C CPsetCli* CreateCliObjectL( MPsetCliObserver& aObserver ); - - /** - * Creates CPsetCallBarring-object. - * - * @param aObserver Observer to CPsetCallBarring class. - * @return returns CPsetCallBarring-pointer - */ - IMPORT_C CPsetCallBarring* CreateCBObjectL( - MPsetBarringObserver& aObserver); - - /** - * Creates CPsetNetwork-object. - * - * @param aObserver Observer to CPsetNetwork class. - * @return Returns CPsetNetwork-pointer. - */ - IMPORT_C CPsetNetwork* CreateNetworkObjectL( - MPsetNetworkInfoObserver& aObserver ); - - /** - * Creates refresh handler object. - * - * @since 2.8. - * @return Return Refresh handler pointer. - */ - IMPORT_C CPSetRefreshHandler* CreateRefreshHandlerL(); - - /** - * Creates CPsetNetwork-object. - * - * @param aObserver Observer to CPsetNetwork class. - * @return Returns CPsetNetwork-pointer. - */ - IMPORT_C CPsetNetwork* CreateNetworkModeObjectL( - MPsetNetworkModeObserver& aModeObserver ); - - - private: //constructors - - void ConstructL(); - - private: //new - - TInt ConnectServer(); - - private: - //Provides client access to mobile phone functionality provided by TSY. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone iPhone; - //ETEL telephony server. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RTelServer iServer; - //Provides client access to mobile line functionality provided by TSY. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobileLine iLine; - }; - -#endif // PSETCONTAINER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/PsetNetwork.h --- a/phonesrv_plat/phone_settings_api/inc/PsetNetwork.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,247 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: CPsetNetwork selects network and gets network information. -* -* -*/ - - -#ifndef PSETNETWORK_H -#define PSETNETWORK_H - -// INCLUDES -#include "mpsetnetworkselect.h" -#include "mpsetnetworkinfoobs.h" -#include "mpsetnetworkmodeobs.h" -#include "mpsetnetworkmode.h" -#include -#include - -// FORWARD DECLARATIONS -class CPsetSAObserver; -class CRetrieveMobilePhoneDetectedNetworks; -class RMmCustomAPI; - -// CLASS DECLARATION -/** -* CPsetNetwork class is used to handle network change requests. -* @lib phonesettings.lib -* @since 1.0 -*/ -class CPsetNetwork : public CActive, - public MPsetNetworkSelect, - public MPsetNetworkMode - { - public: // constructor & destructor - - /** - * Symbian OS 2-phase constructor. - * - * @param aPhone TSY's phone object. - * @param aObserver Reference to network observer. - * @return Returns the CPsetNetwork-object - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - IMPORT_C static CPsetNetwork* NewL( RMobilePhone& aPhone, - MPsetNetworkInfoObserver& aObserver ); - - /** - * Symbian OS 2-phase constructor. - * - * @param aPhone TSY's phone object. - * @param aObserver Reference to network observer. - * @return Returns the CPsetNetwork-object - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - IMPORT_C static CPsetNetwork* NewL( RMobilePhone& aPhone, - MPsetNetworkModeObserver& aObserver ); - - - /* Destructor */ - IMPORT_C ~CPsetNetwork(); - - public: // from base class MNetworkSelect - - /** - * @see MNetworkSelect::GetAvailableNetworksL - */ - IMPORT_C void GetAvailableNetworksL(); - - /** - * @see MNetworkSelect::GetCurrentNetworkInfo - */ - IMPORT_C TInt GetCurrentNetworkInfo( - TCurrentNetworkInfo& aInfo ); - - /** - * @see MNetworkSelect::GetNetworkSelectMode - */ - IMPORT_C TInt GetNetworkSelectMode( TSelectMode& aMode ); - - /** - * @see MNetworkSelect::SelectNetworkL - */ - IMPORT_C void SelectNetworkL( const TNetworkInfo& aInfo ); - - /** - * @see MNetworkSelect::CancelProcess - */ - IMPORT_C void CancelProcess(); - - public: // From base class MPsetNetworkMode - - /** - * @see MPsetNetworkMode::SetNetworkModeSelectionL - * @since 2.6 - */ - IMPORT_C void SetNetworkModeSelectionL( TUint32& aNetworkMode ); - - /** - * @see MPsetNetworkMode::GetCurrentNetworkModeSelectionL - * @since 2.6 - */ - IMPORT_C void GetCurrentNetworkModeSelectionL(); - - public: //new - - /** - * Checks if there is a call going on. - * - * @return Returns a non-zero if there is a call active, or error. - */ - IMPORT_C TInt IsCallActive(); - - /** - * Checks if there is a gprs connection active. - * @return KErrNone, or error code. - */ - IMPORT_C TInt IsGPRSConnected(); - - /* - * Calls ETEL to start reseting the network. - * @return Error code, or KErrNone. - */ - IMPORT_C TInt ResetNetworkSearch(); - - /* - * Sets observer (Observer starts to listen again if reset). - * @param aObserver Value to set into observer. - */ - IMPORT_C void SetNetSAObserver( MPsetNetworkInfoObserver& aObserver ); - - /* - * Sets Network mode observer - * @param aObserver Value to set into Network mode observer. - */ - IMPORT_C void SetNetworkModeObserver( MPsetNetworkModeObserver& - aObserver ); - - private: // from base class CActive - - void RunL(); - - void DoCancel(); - - private: // constructors - - void ConstructL( MPsetNetworkInfoObserver& aObserver ); - - // this is required for the net container to create a pointer - void ConstructL( MPsetNetworkModeObserver& aObserver ); - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - CPsetNetwork( RMobilePhone& aPhone ); - - private: //new - - void GetRegistrationStatusL(); - - void HideRequestNoteL(); - - void CleanupLeavePushL(); - - void HandleLeave(); - - static void DoHandleLeave( TAny* aAny ); - - void ClearParams(); - - private: - //Latest network settings information - TNetworkInfo iTempNetInfo; - //Provides client access to mobile phone functionality provided by TSY. - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone& iPhone; - //Currently active request. - MPsetNetworkInfoObserver::TServiceRequest iServiceRequest; - //Observer - CPsetSAObserver* iSAObserver; - //Network information observer - MPsetNetworkInfoObserver* iObserver; - //Fetched network information (names, IDs) - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - CRetrieveMobilePhoneDetectedNetworks* iNetworkRetrieve; - //Current registartion status - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - RMobilePhone::TMobilePhoneRegistrationStatus iRegStatus; - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - //Selected network information - RMobilePhone::TMobilePhoneNetworkManualSelection iNwInfo; - - // - // Network Mode related variables - // - //Network mode observer - MPsetNetworkModeObserver* iNetworkModeObserver; - - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - // Custom phone. - RMmCustomAPI iCustomPhone; - - //Currently active request. - MPsetNetworkModeObserver::TServiceRequest iModeRequest; - - //Current Network Mode - TUint32 iNetworkModeCaps; - - //Currently active observer, for assert handling - TInt iActiveObserver; - }; -#endif // PSETNETWORK_H -// end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_api/inc/PsetSAObserver.h --- a/phonesrv_plat/phone_settings_api/inc/PsetSAObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,295 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: CPsetSAObserver handles all the queries to observer. -* -* -*/ - - -#ifndef PSETSAOBSERVER_H -#define PSETSAOBSERVER_H - -// INCLUDES -#include -#include -#include -#include -#include - -// FORWARD DECLARATIONS -class MPsetNetworkInfoObserver; -class MPsetDivertObserver; -class CPSetSubscriberIdCheck; - -// CONSTANTS -const TInt KCodeUnspecified(-1); - -// CLASS DECLARATION - -/** -* Class is used to create params for NotifyDivertChange method. -* -* @lib phonesettings.dll -* @since 3.2 -*/ -class TCallDivertNotifySetting - { - public: // new - - void Initialize() - { - iPreviousCfStatus = KCFIndicatorUnknown; - iCfActivated = EFalse; - iVmbxDivert = EFalse; - iBasicServiceCode = KCodeUnspecified; - } - - public: //member data - - // Current status of divert. Note: GetCurrentDivertStatus returns - // current status. - TUnconditionalCFStatus iPreviousCfStatus; - - // ETrue if activating divert and EFalse if deactivating. - TBool iCfActivated; - - // True if voice mailbox divert, otherwise false. - TBool iVmbxDivert; - - // BasicServiceCode related to divert operation, see nwDefs.h - // for more information. - TInt iBasicServiceCode; - }; - -/** -* Class is used to exchange information to/from observer. -* -* @lib phonesettings.dll -* @since 1.0 -*/ -class CPsetSAObserver : public CActive - { - public: // constructor & destructor - - /** - * First phase constructor. - * - * @return Returns the CPsetSAObserver-object - */ - IMPORT_C static CPsetSAObserver* NewL(); - - /* Destructor */ - IMPORT_C ~CPsetSAObserver(); - - public: - - //Current call status. - enum TPSetCallStatus - { - EPSetNoCallsActive = 0, - EPSetCallActive - }; - - /** - * Queries if there is an active call. - * - * @return call status (active or not) - */ - IMPORT_C TInt IsCallActive(); - - - //GPRS connection status. - enum TPSetGPRSConnectionStatus - { - EPSetGPRSNotConnected = 0, - EPSetGPRSConnectionActive - }; - - /** - * Queries if there is an active gprs connection. - * - * @return gprs connection status (active or not) - */ - IMPORT_C TInt IsGPRSConnected(); - - /** - * Sets Network observer object. - * - * @param aObserver Reference to network observer. - */ - IMPORT_C void SetNetObserver( MPsetNetworkInfoObserver& aObserver ); - - /** - * Notifies of Divert changes. If the activator is not sure of the - * settings, CPsetSAObserver tries to deduce correct state. - * - * @param aAlsStatus Currently used line. - * @param aDivertNotify set of divert params, see TCallDivertNotifySetting above. - * @param aActivatorUncertain Call divert requester does not know for certain - * all the values. - */ - IMPORT_C void NotifyDivertChange( TSelectedLine aAlsStatus, - TCallDivertNotifySetting& aDivertNotify, const TInt& aActivatorUncertain ); - - /** - * Returns whether there are active diverts and on what line. - * - * @param aStatus TCallForwardingStatus info. - * @return KErrNone if successful else system wide error code if - * get fails. - */ - IMPORT_C TInt GetCurrentDivertStatus( TUnconditionalCFStatus& aStatus ); - - private: // from CActive - - void RunL(); - - void DoCancel(); - - private: //new - - /** - * Handles divert indicator cases when ALS if OFF. - */ - void HandleNoAlsIndicators( TCallDivertNotifySetting& aDivertNotify, - const TInt& aActivatorUncertain ); - - /** - * Handles divert indicator cases when ALS on and - * ALS line 1 active. - */ - void HandlePrimaryLineIndicators( TCallDivertNotifySetting& aDivertNotify ); - - /** - * Handles divert indicator cases when ALS on and - * ALS line 2 active. - */ - void HandleSecondaryLineIndicators( TCallDivertNotifySetting& aDivertNotify ); - - /** - * Set correct indicator value when divert activated - * to voicemail (no ALS). - */ - void HandleVoiceMailBoxDivertActivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ); - - /** - * Set correct indicator value when diverted to some - * other number than voicemail (no ALS). - */ - void HandleDivertActivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ); - - /** - * Set correct indicator value when deactivation - * done (no ALS). - */ - void HandleDivertDeactivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ); - - /** - * Set correct indicator value when Primary line - * activation done. - */ - void HandlePrimaryLineDivertActivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ); - - /** - * Set correct indicator value when Primary line - * deactivation done. - */ - void HandlePrimaryLineDivertDeactivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ); - - /** - * Set correct indicator value when Secondary line - * activation done. - */ - void HandleSecondaryLineDivertActivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ); - - /** - * Set correct indicator value when Secondary line - * deactivation done. - */ - void HandleSecondaryLineDivertDeactivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ); - - /** - * Set correct indicator value when Primary line - * activation done. - */ - void HandlePrimaryLineDualDivertActivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ); - - /** - * Set correct indicator value when Primary line - * deactivation done. - */ - void HandlePrimaryLineDualDivertDeactivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ); - - /** - * Set correct indicator value when Secondary line - * activation done. - */ - void HandleSecondaryLineDualDivertActivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ); - - /** - * Set correct indicator value when Secondary line - * deactivation done. - */ - void HandleSecondaryLineDualDivertDeactivation( - TUnconditionalCFStatus& aStatus, - const TInt aBsc ); - - /** - * Starts to listen to call alerting or call ringing events. - */ - void NotifyCallStartedL(); - - /** - * Checks KTelephonyLVFlagDivertDualAffect status. - */ - TBool IsDivertDualAffectFeatureEnabledL(); - - private: // constructors - - void ConstructL(); - - CPsetSAObserver(); - - private: //member data - - //Observer for network related SS. - MPsetNetworkInfoObserver* iNetObserver; - - // The Notify interface to Publish And Subscribe. - RProperty iNotifyProperty; - - CRepository* iRepository; - }; -#endif // PSETSAOBSERVER_H -// end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_notes_ui_api/inc/PsuiBarringObs.h --- a/phonesrv_plat/phone_settings_notes_ui_api/inc/PsuiBarringObs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,115 +0,0 @@ -/* -* Copyright (c) 2002,2003 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: Shows notes related to Call Barrings operations. -* -*/ - - -#ifndef CPSUIBARRINGOBS_H -#define CPSUIBARRINGOBS_H - -// INCLUDES -#include -#include "psuiconstants.h" - -// FORWARD DECLARATION -class MPsetCallBarring; -class CPsuiResourceLoader; -class CPsuiContainer; - -// CLASS DECLARATION - -/** -* CPsuiBarringObs class implements MPsetBarringObserver. -* @lib psui.lib -* @since 1.0 -*/ -class CPsuiBarringObs : public CBase, - public MPsetBarringObserver - { - public: // Constructor - - /** - * Symbian OS two phased constructor. - * - * @param aContainer Reference to container object - * @return Returns CPsuiBarringObs-pointer - */ - IMPORT_C static CPsuiBarringObs* NewL( CPsuiContainer& aContainer ); - - public: // Functions from base classes - - /** - * From MPsetBarringObserver, handles barring mode changed notes. - * - * @param aType Type of barring program - * @param aStatus Status of the barring program - * @param aPlural Several barrings affected or not - */ - void HandleBarringModeChangedL( - TBarringProgram aType, - TBarringStatus aStatus, - TBool aPlural ); - - /** - * From MPsetBarringObserver, handles barring mode status notes. - * - * @param aBsc List of basic service groups - * @param aStatus Status of the barring program - */ - void HandleBarringModeStatusL( TUint8 aBsc[KPSUIMaxBscNumber], - TBarringStatus aStatus ); - - /** - * From MPsetBarringObserver, handles errors for call barring requests. - * - * @param aReason Reason for error - */ - void HandleBarringErrorL( TInt aReason ); - - /** - * From MPsetBarringObserver, handles requesting notes. - * - * @param aOngoing If ETrue, there is an active request - * @param aInterrupted If ETrue, means that notemaster should be - * immediately deleted. - */ - void HandleCBRequestingL( TBool aOngoing, - TBool aInterrupted = EFalse ); - - /** - * From MPsetBarringObserver, defines reference to requesting object. - * - * @param aBarringEngine Reference to the Phone Settings - */ - void SetEngineContact( MPsetCallBarring* aBarringEngine ); - - /** - * From MPsetBarringObserver, handles notes relating to call barring - * password change requests. - * - * @param aSuccess If ETrue, password change request was successful - */ - void CbPasswordChangedL( TBool aSuccess ); - - private: // new - - void SetContainer( CPsuiContainer& aContainer ); - - private: // member variables - - // Container object - CPsuiContainer* iContainer; - }; -#endif //CPSUIBARRINGOBS_H diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_notes_ui_api/inc/PsuiCliObserver.h --- a/phonesrv_plat/phone_settings_notes_ui_api/inc/PsuiCliObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,124 +0,0 @@ -/* -* Copyright (c) 2002,2003 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: CPsuiCliObserver class is responsible for handling notes -* related to CLIR, CLIP, COLR, COLP and CNAP. -* -*/ - - -#ifndef CPSUICLIOBSERVER_H -#define CPSUICLIOBSERVER_H - -// INCLUDES -#include -#include "psuiconstants.h" - -// FORWARD DECLARATION -class CPsuiResourceLoader; -class CPsuiContainer; - -// CLASS DECLARATION - -/** -* CPsuiCliObserver class is responsible for handling notes related -* to CLIR, CLIP, COLR, COLP and CNAP. -* @lib psui.lib -* @since 1.0 -*/ -class CPsuiCliObserver : public CBase, - public MPsetCliObserver - { - public: // Constructor - - /** - * Symbian OS two-phased constructor. - * - * @param aContainer Reference to container - * @return Returns CPsuiCliObserver pointer - */ - IMPORT_C static CPsuiCliObserver* NewL( CPsuiContainer& aContainer ); - - public: - - /** - * From MPsetCliObserver, handles calling identity notes. - * - * @param aType Type of call identity information - */ - void CliInformationL( TPsuiCli aType ); - - /** - * From MPsetCliObserver, handles requesting notes. - * - * @param aOngoing If ETrue, there is an active request - * @param aInterrupted If ETrue, means that notemaster should be - * immediately deleted. - */ - void HandleCliRequestingL( TBool aOngoing, - TBool aInterrupted = EFalse ); - - /** - * From MPsetCliObserver, defines reference to requesting object. - * - * @param aEngine Reference to the Phone Settings - */ - void SetEngineContact( MPsetCli* aEngine ); - - /** - * From MPsetCliObserver. - * DEPRECATED. - */ - void HandleCliStatusL( - TUint8[] /*aBsc[KPSUIMaxBscNumber]*/, - TPsuiCli /*aMode*/ ) {} - - /** - * This method shows CNAP status. - * @since 1.2 - * - * @param aStatus Status of CNAP - * - */ - void HandleCnapStatusL( TInt aStatus ); - - /** - * Handles errors. - * @since 2.0 - * - * @param aError error code. - * - */ - void HandleCliErrorL( TInt aError ); - - /** - * Destructor - * @since 2.0 - */ - ~CPsuiCliObserver(); - - private: // new - - void SetContainer( CPsuiContainer& aContainer ); - - private: // member variables - - //container object - CPsuiContainer* iContainer; - }; - - -#endif //CPSUICLIOBSERVER_H - - - diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_notes_ui_api/inc/PsuiConstants.h --- a/phonesrv_plat/phone_settings_notes_ui_api/inc/PsuiConstants.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,39 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Constant values for the Phone Setting UI Notes -* -*/ - -#ifndef CPSUICONSTANTS_H -#define CPSUICONSTANTS_H - -const TInt KPSUIMaxBscNumber = 13; //max. number of basic service groups -const TInt KPSUIMaxPSUIItemLength = 32;//max. length of text in PSUI note -// Status of Calling Identity. -enum TPsuiCli - { - EPsuiClirOn = 1, - EPsuiClirOff, - EPsuiClipOn, - EPsuiClipOff, - EPsuiColrOn, - EPsuiColrOff, - EPsuiColpOn, - EPsuiColpOff, - EPsuiCliUnknown - }; - -#endif //CPSUICONSTANTS_H - - diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_notes_ui_api/inc/PsuiContainer.h --- a/phonesrv_plat/phone_settings_notes_ui_api/inc/PsuiContainer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,104 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: -* CPsuiContainer class is responsible for loading/unloading -* the resources to be used by this dll. It is also -* the correct way to construct observers, since -* it gives the pointer to the resources in the -* construction process. -* -*/ - - -#ifndef CPSUICONTAINER_H -#define CPSUICONTAINER_H - -// INCLUDES -#include -#include -#include -#include - -// FORWARD DECLARATIONS -class CPsuiResourceLoader; - -// CLASS DECLARATION - -/** -* CPsuiContainer class is responsible for loading/unloading the resources to -* be used by this dll. It is also the correct way to construct observers, -* ince it gives the pointer to the resources in the construction process. -* @lib psui.lib -* @since 1.0 -*/ -class CPsuiContainer : public CBase - { - public: // Constructors and destructor - - /** - * Symbian OS two-phased constructor. - * - * @return Returns CPsuiContainer-pointer. - */ - IMPORT_C static CPsuiContainer* NewL(); - - /** - * Destructor - */ - ~CPsuiContainer(); - - public: - - /** - * Creates Call Waiting observer. - * - * @return Returns CreateCWObsL pointer. - */ - IMPORT_C CPsuiWaitingObs* CreateCWObsL(); - - /** - * Creates Call Forwarding observer. - * - * @return Returns CreateCFObsL pointer. - */ - IMPORT_C CPsuiDivertObs* CreateCFObsL(); - - /** - * Creates Call Barring observer. - * - * @return Returns CreateCBObsL pointer. - */ - IMPORT_C CPsuiBarringObs* CreateCBObsL(); - - /** - * Creates Calling Identity observer. - * - * @return Returns CreateCliObsL pointer. - */ - IMPORT_C CPsuiCliObserver* CreateCliObsL(); - - - private: // private constructor - - void ConstructL(); - - private: // member variables - - //reference to class' resource loader - CPsuiResourceLoader* iAppEngineResourceLoader; - - }; - - -#endif //CPSUICONTAINER_H diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_notes_ui_api/inc/PsuiDivertObs.h --- a/phonesrv_plat/phone_settings_notes_ui_api/inc/PsuiDivertObs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/* -* Copyright (c) 2002,2003 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: Shows notes and lists for Divert supplementary service -* -*/ - - -#ifndef CPSUIDIVERTOBS_H -#define CPSUIDIVERTOBS_H - -// INCLUDES -#include -#include "psuiconstants.h" - -// FORWARD DECLARATION -class MPsetCallDiverting; -class CPsuiResourceLoader; -class CPsuiContainer; -class CMobilePhoneCFList; - -// CLASS DECLARATION - -/** -* CPsuiDivertObs class implements the MPsetDivertObserver observer. -* @lib psui.lib -* @since 1.0 -*/ -class CPsuiDivertObs : public CBase, -public MPsetDivertObserver - { - public: // Constructor - - /** - * Symbian OS two-phased constructor. - * - * @param aContainer Reference to container - * @return Returns pointer to this-object. - */ - IMPORT_C static CPsuiDivertObs* NewL( CPsuiContainer& aContainer ); - - public: // Functions from base classes - - /** - * From MPsetDivertObserver, handles diverting changed. - * - * @param aSetting Call forwarding settings - * @param aPlural Indicates that operation affected several basic - * service groups - */ - void HandleDivertingChangedL( - const TCallDivertSetting& aSetting, TBool aPlural ); - - /** - * From MPsetDivertObserver, handles diverting status. - * - * @param aSetting Call forwarding settings - * @param aPlural - DEPRECATED - */ - /***************************************************** - * Series 60 Customer / ETel - * Series 60 ETel API - *****************************************************/ - void HandleDivertingStatusL( - CMobilePhoneCFList& aSetting, - TBool aPlural ); - - /** - * From MPsetDivertObserver, handles diverting error. - * - * @param aReason Reason for error - */ - void HandleDivertingErrorL( TInt aReason ); - - /** - * From MPsetDivertObserver, handles requesting notes. - * - * @param aTrue If ETrue, there is an active request - * @param aInterrupted If ETrue, means that notemaster should be - * immediately deleted - */ - void HandleCFRequestingL( TBool aTrue, TBool aInterrupted = EFalse ); - - /** - * From MPsetDivertObserver, defines reference to requesting object. - * - * @param aDivertEngine Reference to the Phone Settings - */ - void SetEngineContact( MPsetCallDiverting* aDivertEngine ); - - private: // new - - void SetContainer( CPsuiContainer& aContainer ); - - - private: // member variables - - // Container object - CPsuiContainer* iContainer; - }; -#endif //CPSUIDIVERTOBS_H diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_notes_ui_api/inc/PsuiWaitingObs.h --- a/phonesrv_plat/phone_settings_notes_ui_api/inc/PsuiWaitingObs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -/* -* Copyright (c) 2002,2003 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: -* CPsuiWaitingObs class implements the virtual methods of -* MPsetCallWaitingObserver. Commands are redirected to CPsuiNoteMaster, -* which is responsible for actually showing the notes. -* -*/ - - -#ifndef CPSUIWAITINGOBS_H -#define CPSUIWAITINGOBS_H - -// INCLUDES -#include -#include "psuiconstants.h" - -// FORWARD DECLARATION -class CPsuiResourceLoader; -class CPsuiContainer; -class PSetCallWaiting; -class AknStaticNoteDialog; - -// CLASS DECLARATION - -/** -* CPsuiWaitingObs class implements the virtual methods of -* MPsetCallWaitingObserver. Commands are redirected to CPsuiNoteMaster, -* which is responsible for actually showing the notes. -* @lib psui.lib -* @since 1.0 -*/ -class CPsuiWaitingObs : public CBase, - public MPsetCallWaitingObserver - { - public: // Constructor - - /** - * Symbian OS two-phased constructor. - * - * @param aContainer Container object - * @return CPsuiWaitingObs pointer - */ - IMPORT_C static CPsuiWaitingObs* NewL( CPsuiContainer& aContainer ); - - public: // Functions from base classes - - /** - * From MPsetCallWaitingObserver, handles status notes - * - * @param aStatus Status of call waiting - * @param aBsc List of basic service groups - */ - void HandleCallWaitingGetStatusL( - const MPsetCallWaiting::TGetCallWaitingStatus aStatus, - TUint8 aBsc[KPSUIMaxBscNumber] ); - - /** - * From MPsetCallWaitingObserver, handles call waiting change notes - * - * @param aSetting Call waiting request type (activation/cancellation) - * @param aResult DEPRECATED - */ - void HandleCallWaitingChangedL( - const MPsetCallWaiting::TSetCallWaiting aSetting, - const TInt aResult ); - - /** - * From MPsetCallWaitingObserver, handles requesting notes. - * - * @param aOngoing If ETrue, there is an active request - * @param aInterrupted If ETrue, means that notemaster should be - * immediately deleted. - */ - void HandleCWRequestingL( - TBool aOngoing, - TBool aInterrupted = EFalse ); - - /** - * From MPsetCallWaitingObserver, handles call waiting errors. - * - * @param aReason Reason for error - */ - void HandleCWErrorL( TInt aReason ); - - /** - * From MPsetCallWaitingObserver, defines reference to requesting object. - * - * @param aEngineContact Reference to the Phone Settings - */ - void SetEngineContact( MPsetCallWaiting& aEngineContact ); - - private: //private constructor - - void ConstructL( CPsuiContainer& aContainer ); - - private: // member variables - - // Container object - CPsuiContainer* iContainer; - TBool iCallWaitingDistinguishEnabled; - }; -#endif // CPSUIWAITINGOBS_H diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_observer_api/inc/MPsetBarringObs.h --- a/phonesrv_plat/phone_settings_observer_api/inc/MPsetBarringObs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* -* Copyright (c) 2002 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: -* MPsetBarringObserver class defines protocol for reporting -* barring events to barring observer. -* -* -*/ - - -#ifndef MPSETBARRINGOBS_H -#define MPSETBARRINGOBS_H - -// INCLUDES -#include "nwdefs.h" -#include "mpsetcallbarring.h" - -// CLASS DEFINITIONS -/** -* MPsetBarringObserver class is virtual class for call barring observers. -* @lib phonesettings.lib -* @since 1.0 -*/ -class MPsetBarringObserver - { - public: - - /** - * Handles mode changed notes. - * - * @param aType Type of barring program. - * @param aStatus Status of the barring program. - * @param aPlural Plural notes should be used. - */ - virtual void HandleBarringModeChangedL( TBarringProgram aType, - TBarringStatus aStatus, TBool aPlural ) = 0; - - /** - * Handles barring mode inquiry notes. - * - * @param aType Type of barring program. - * @param aStatus Status of the barring program. - */ - virtual void HandleBarringModeStatusL( TUint8 aBsc[KPSetNumberOfBsc], - TBarringStatus aStatus ) = 0; - - /** - * Handles errors in call barring requests. - * - * @param aReason Reason for error. - */ - virtual void HandleBarringErrorL( TInt aReason ) = 0; - - /** - * Handles requesting notes. - * - * @param aTrue Is there a request going on. - * @param aInterrupted Request needs to be immediately cancelled. - */ - virtual void HandleCBRequestingL( TBool aTrue, - TBool aInterrupted ) = 0; - - /** - * Sets pointer so that message is passed succesfully - * from requester to observer. - * - * @param aBarringEngine Source of events to observer. - */ - virtual void SetEngineContact( MPsetCallBarring* aBarringEngine ) = 0; - - /** - * Handles notes relating to cb password change requests. - * - * @param aSuccess Result of teh change request. - */ - virtual void CbPasswordChangedL( TBool aSuccess ) = 0; - - }; -#endif // MPSETBARRINGOBS_H -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_observer_api/inc/MPsetCallWaitingObs.h --- a/phonesrv_plat/phone_settings_observer_api/inc/MPsetCallWaitingObs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* -* Copyright (c) 2002 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: -* MPsetCallWaitingObserver abstract call waiting observer class. -* -* -*/ - - -#ifndef MPSETCALLWAITINGOBS_H -#define MPSETCALLWAITINGOBS_H - -// INCLUDES -#include - -// CLASS DEFINITIONS -class MPsetCallWaitingObserver - { - public: - - /** - * Handles notes when requesting Call Waiting status. - * - * @param aStatus Query result. - * @param aBsc is List of active groups. - */ - virtual void HandleCallWaitingGetStatusL( - const MPsetCallWaiting::TGetCallWaitingStatus aStatus, - TUint8 aBsc[KPSetNumberOfBsc] ) = 0; - - /** - * Handles notes when Call Waiting has been changed. - * - * @param aSetting Changed setting. - * @param aResult Result of the action. - */ - virtual void HandleCallWaitingChangedL( - const MPsetCallWaiting::TSetCallWaiting aSetting, - const TInt aResult ) = 0; - - /** - * Handles requesting notes. - * - * @param aStarted Is there a request going on. - * @param aInterrupted Request needs to be immediately cancelled. - */ - virtual void HandleCWRequestingL( TBool aOngoing, - TBool aInterrupted ) = 0; - /** - * Handles errors in call waiting requests. - * - * @param aReason Reason for the error. - */ - virtual void HandleCWErrorL( TInt aReason ) = 0; - - /** - * Sets pointer so that message is passed succesfully - * from requester to observer. - * - * @param aEngineContact Source of events to observer. - */ - virtual void SetEngineContact( MPsetCallWaiting& aEngineContact ) = 0; - - }; - -#endif // MPSETCALLWAITINGOBS_H - -// end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_observer_api/inc/MPsetCliObserver.h --- a/phonesrv_plat/phone_settings_observer_api/inc/MPsetCliObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -/* -* Copyright (c) 2002 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: This class handles actions for CLI events. -* -* -*/ - - -#ifndef MPSETCLIOBSERVER_H -#define MPSETCLIOBSERVER_H - -// INCLUDES -#include -#include -#include "psetconstants.h" -#include "mpsetcli.h" - -// CLASS DEFINITIONS -/** -* MPsetCliObserver class is virtual class for CLI observers. -* @lib phonesettings.lib -* @since 1.0 -*/ -class MPsetCliObserver - { - public: - - /** - * Sets pointer so that message is passed succesfully - * from requester to observer. - * - * @param aEngine Source of events to observer. - */ - virtual void SetEngineContact( MPsetCli* aEngine ) = 0; - - /** - * Handles requesting notes. - * - * @param aOngoing Is request already going on. - * @param aInterrupted Request needs to be immediately cancelled. - */ - virtual void HandleCliRequestingL( TBool aOngoing, - TBool aInterrupted ) = 0; - - /** - * Handles notes for changing any of CLI features. - * - * @param aType Type of the CLI affected. - */ - virtual void CliInformationL( TPsuiCli aType ) = 0; - - /** - * Checks the CLI status from network. - * - * @param aBsc List of basic service groups. - * @param aMode Which CLI feature was inquiried for. - */ - virtual void HandleCliStatusL( TUint8 aBsc[KPSetNumberOfBsc], TPsuiCli aMode ) = 0; - - /** - * Checks the CNAP status from network. - * @since 1.2 - * - * @param aStatus CNAP status. - */ - virtual void HandleCnapStatusL( TInt aStatus ) = 0; - - /** - * Handles errors. - * @since 2.0 - * - * @param aError error code. - */ - virtual void HandleCliErrorL( TInt aError ) = 0; - }; -#endif // MPSETCLIOBSERVER_H -// end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_observer_api/inc/MPsetDivertObs.h --- a/phonesrv_plat/phone_settings_observer_api/inc/MPsetDivertObs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/* -* Copyright (c) 2002 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: -* MPsetDivertObserver class defines protocol for reporting diverting events. -* -* -*/ - - -#ifndef MPSETDIVERTOBS_H -#define MPSETDIVERTOBS_H - -// INCLUDES -#include -#include "nwdefs.h" -#include "mpsetcalldiverting.h" - -// FORWARD DECLARATIONS -class CMobilePhoneCFList; - -// CLASS DEFINITIONS -/** -* MPsetDivertObserver class is virtual class for Divert observers. -* @lib phonesettings.lib -* @since 1.0 -*/ -class MPsetDivertObserver - { - public: - - /** - * Handles showing notes, when diverts change. - * - * @param aSetting Setting which was changed. - * @param aPlural Plural notes to be used. - */ - virtual void HandleDivertingChangedL( - const TCallDivertSetting& aSetting, TBool aPlural ) = 0; - - /** - * Handles showing of status inquiry notes. - * - * @param aBsc List of basic services. - * @param aSetting Divert setting which was queried. - * @param aPlural Plural notes to be used. - */ - - virtual void HandleDivertingStatusL( CMobilePhoneCFList& aSetting, - TBool aPlural ) = 0; - - /** - * Handles showing of error notes. - * - * @param aReason Reason for diverting error. - */ - virtual void HandleDivertingErrorL( TInt aReason ) = 0; - - /** - * Handles requesting notes. - * - * @param aOngoing Is there a request going on. - * @param aInterrupted Request needs to immediately cancelled. - */ - virtual void HandleCFRequestingL( TBool aOngoing, - TBool aInterrupted ) = 0; - - /** - * Sets pointer so that message is passed succesfully - * from requester to observer. - * - * @param aDivertEngine Source for the events to observer. - */ - virtual void SetEngineContact( MPsetCallDiverting* aDivertEngine ) = 0; - }; -#endif // MPSETDIVERTOBS_H -//End of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_observer_api/inc/MPsetNetworkInfoObs.h --- a/phonesrv_plat/phone_settings_observer_api/inc/MPsetNetworkInfoObs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,122 +0,0 @@ -/* -* Copyright (c) 2002 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: -* Observes completions of network info and change requests. -* -* -*/ - - -#ifndef MPSETNETWORKINFOOBS_H -#define MPSETNETWORKINFOOBS_H - -// INCLUDES -#include "mpsetnetworkselect.h" -#include - -// DATA TYPES -typedef CArrayFixFlat CNetworkInfoArray; - -// CLASS DEFINITIONS -/** -* MPsetNetworkInfoObserver class is virtual class for network information -* observers. -* @lib phonesettings.lib -* @since 1.0 -*/ -class MPsetNetworkInfoObserver - { - public: - /** - * Shows notes when network information received. - * - * @param aInfoArray Network information. Receiver owns the array. - * @param aResult Result of action. - */ - virtual void HandleNetworkInfoReceivedL( - const CNetworkInfoArray* aInfoArray, const TInt aResult ) = 0; - - /** - * Shows notes when requested for current network information. - * - * @param aCurrentInfo Current network information. - * @param aResult Result of action. - */ - virtual void HandleCurrentNetworkInfoL( - const MPsetNetworkSelect::TCurrentNetworkInfo& aCurrentInfo, - const TInt aResult ) = 0; - - /** - * DEPRECATED. - */ - virtual void HandleNetworkChangedL( - const MPsetNetworkSelect::TNetworkInfo& aCurrentInfo, - const MPsetNetworkSelect::TCurrentNetworkStatus aStatus, - const TInt aResult ) = 0; - - /** - * Shows notes when network change has been approved. - * - * @param aCurrentInfo Current network information. - * @param aStatus Current network status. - * @param aResult Result of action. - */ - virtual void HandleNetworkChangedL( - const MPsetNetworkSelect::TNetworkInfo& aCurrentInfo, - const RMobilePhone::TMobilePhoneRegistrationStatus& aStatus, - const TInt aResult ) = 0; - - //Service requests for MPsetNetworkInfoObserver - enum TServiceRequest { - EServiceRequestNone, - EServiceRequestEnumerateNetworks, - EServiceRequestGetNetworkInfo, - EServiceRequestGetCurrentNetworkInfo, - EServiceRequestGetNetworkSearchMode, - EServiceRequestSetNetwork, - EServiceRequestSetNetworkMode, - EServiceRequestSetNetworkAutomatic - }; - - /** - * Searches for networks that have coverage. - * - * @param aRequest Type of request that is being handled. - */ - virtual void HandleSearchingNetworksL( TServiceRequest aRequest ) = 0; - - /** - * Handles user request to register to specific network. - * - * @param aOngoing Is there an ongoing request. - */ - virtual void HandleRequestingSelectedNetworkL( TBool aOngoing ) = 0; - - /** - * Handles notes when call is active. - */ - virtual void HandleCallActivatedL() = 0; - - /** - * Handles errors. - * - * @param aRequest current request. - * @param aError error code. - */ - virtual void HandleNetworkErrorL( const MPsetNetworkInfoObserver::TServiceRequest aRequest, - const TInt aError ) = 0; - }; - -#endif // MPSETNETWORKINFOOBS_H -// end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_observer_api/inc/MPsetNetworkModeObs.h --- a/phonesrv_plat/phone_settings_observer_api/inc/MPsetNetworkModeObs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* -* Copyright (c) 2004 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: -* Observes completions of network mode and change requests. -* -* -*/ - - -#ifndef MPSETNETWORKMODEOBS_H -#define MPSETNETWORKMODEOBS_H - -// CLASS DEFINITIONS -/** -* MPsetNetworkModeObserver class is virtual class for network mode observers. -* @lib phonesettings.lib -* @since 2.6 -*/ -class MPsetNetworkModeObserver - { - public: - - //Service requests for MPsetNetworkModeObserver - enum TServiceRequest { - EServiceRequestNone, - EServiceRequestSetSelectedNetworkMode, - EServiceRequestGetCurrentNetworkMode - //EServiceRequestGetSupportedNetworkModes - }; - - /** - * Handles Network system mode list fetching from CustomAPI. - * Handles Network system mode setting to CustomAPI. - * Handles current network system mode fetching from CustomAPI. - * - * @param aRequest one of the TServiceRequest values - * @param aNetworkModeCaps current/list of supported network mode(s). - * @since 2.6 - */ - virtual void HandleNetworkSystemModeEventsL( - const MPsetNetworkModeObserver::TServiceRequest aRequest, - const TUint32 aNetworkModeCaps ) = 0; - - /** - * Handles errors. - * - * @param aRequest current request. - * @param aError error code. - */ - virtual void HandleNetworkErrorL( - const MPsetNetworkModeObserver::TServiceRequest aRequest, - const TInt aError ) = 0; - - }; - -#endif // MPSETNETWORKMODEOBS_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/phone_settings_observer_api/inc/MPsetRequestObs.h --- a/phonesrv_plat/phone_settings_observer_api/inc/MPsetRequestObs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,40 +0,0 @@ -/* -* Copyright (c) 2002 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: -* MPsetRequestObserver is abstract request completion observer class -* -* -*/ - - -#ifndef MPSETREQUESTOBS_H -#define MPSETREQUESTOBS_H - -// CLASS DEFINITIONS -class MPsetRequestObserver - { - public: - /** - * Informs the receiver that request has been completed. - */ - virtual void RequestComplete() = 0; - - /** - * Informs the receiver that request state has changed. - * @param new status, or when finished KErrNone or error code. - */ - virtual void RequestStatusChanged( TInt aNewStatus ) = 0; - }; -#endif // MPSETREQUESTOBS_H -// end of file diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/sat_client_api/inc/RSatSession.h --- a/phonesrv_plat/sat_client_api/inc/RSatSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -/* -* Copyright (c) 2002-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: Common session for accessing SatServer services. -* -*/ - -#ifndef RSATSESSION_H -#define RSATSESSION_H - -#include -#include - -/** - * Definitions of SAT API versions. - */ -#define SIM_ATK_SERVICE_API_V1 - -/** -* Handles the connection to SatServer. This class -* is used with the sub-sessions. -* -* @lib SatClient -* @since Series60 2.6 -*/ -class RSatSession : public RSessionBase - { - - public: // New functions - - /** - * C++ default constructor. - */ - IMPORT_C RSatSession(); - - /** - * Opens session to SatServer - */ - IMPORT_C void ConnectL(); - - /** - * The client API version. - */ - IMPORT_C TVersion Version() const; - - private: - - /** - * Prohibit copy constructor if not deriving from CBase. - */ - RSatSession( const RSatSession& ); - - /** - * Prohibit assigment operator if not deriving from CBase. - */ - RSatSession& operator=( const RSatSession& ); - - }; - -#endif // RSATSESSION_H diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/sat_configuration_api/inc/SATDomainPSKeys.h --- a/phonesrv_plat/sat_configuration_api/inc/SATDomainPSKeys.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2007-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: SATEngine Subsystem PubSub uid and keys declaration. -* -*/ - - -#ifndef SATDOMAINPSKEYS_H -#define SATDOMAINPSKEYS_H - -// CONSTANTS - -// SAT Configuration API -// Uid : -const TUid KPSUidSatServer = { 0x101F79FC }; - -/** - * Time between language selection notification and reboot. - * - * Default value: N/A - */ -const TUint32 KSatLanguageSelectionTimeBeforeReboot( 0x00000008 ); - -#endif // SATDOMAINPSKEYS_H diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/sat_refresh_api/inc/MSatRefreshObserver.h --- a/phonesrv_plat/sat_refresh_api/inc/MSatRefreshObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,232 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Observer for refresh events. -* -*/ - - - -#ifndef MSATREFRESHOBSERVER_H -#define MSATREFRESHOBSERVER_H - -// INCLUDES -#include -#include - -// DATA TYPES -enum TSatElementaryFiles - { - KUnknownEf = RSat::KUnknownEf, // Unknown EF type - KDirEf = RSat::KDirEf, // Application directory EF - KElpEf = RSat::KElpEf, // Extended Language Preference - // EF - KArrEf = RSat::KArrEf, // Access Rule Reference EF at - // the MF level. - KImgEf = RSat::KImgEf, // Image EF - KPscEf = RSat::KPscEf, // Phonebook synchronisation - // counter EF - KCcEf = RSat::KCcEf, // Change counter EF - KPuidEf = RSat::KPuidEf, // Previous unique identifier - // EF - KPbr = RSat::KPbr, // Phonebook reference file EF - KSllEf = RSat::KSllEf, // SoLSA LSA List EF - KInvScan = RSat::KInvScan, // Investigation File EF - KImpiEf = RSat::KImpiEf, // IMS private user identity EF - KImpuEf = RSat::KImpuEf, // IMS public user identity EF - KDomainEf = RSat::KDomainEf, // Home Network Domain Name EF - KLpEf = RSat::KLpEf, // Language Preference EF - KArradEf = RSat::KArradEf, // Access rule reference (under - // ADFUSIM and DFTELECOM) EF - KImsiEf = RSat::KImsiEf, // IMSI EF - KCsp1Ef = RSat::KCsp1Ef, // CSP 1 EF (7F20/21 6F15) - KDckEf = RSat::KDckEf, // De-personalization Control - // Keys EF - KPlmnSelEf = RSat::KPlmnSelEf, // PLMN Selection EF - KHplmnEf = RSat::KHplmnEf, // Home PLMN EF - KCnlEf = RSat::KCnlEf, // Co-operative Network List EF - KAcmMaxEf = RSat::KAcmMaxEf, // ACM max value EF - KSstEf = RSat::KSstEf, // SIM Service Table EF - KAcmEf = RSat::KAcmEf, // Accumulated Call Meter EF - KAdnEf = RSat::KAdnEf, // Abbreviated Dialling Numbers - // EF - KFdnEf = RSat::KFdnEf, // Fixed Diallind Numbers EF - KSmsEf = RSat::KSmsEf, // Short Messages EF - KCcpEf = RSat::KCcpEf, // Capability Configuration - // Parameters EF - KGid1Ef = RSat::KGid1Ef, // Group Identifier Level 1 EF - KGid2Ef = RSat::KGid2Ef, // Group Identifier Level 2 EF - KMsisdnEf = RSat::KMsisdnEf, // MS ISDN EF - KPuctEf = RSat::KPuctEf, // Price per Unit and Currency - // Table EF - KSmspEf = RSat::KSmspEf, // SMS Parameters EF - KSmssEf = RSat::KSmssEf, // SMS Status EF - KLndEf = RSat::KLndEf, // Last Number Dialled EF - KCbmiEf = RSat::KCbmiEf, // Cell Broadcast Message - // Identifier - KSpnEf = RSat::KSpnEf, // Service Provider Name EF - KSmsrEf = RSat::KSmsrEf, // SMS reports EF - KCbmidEf = RSat::KCbmidEf, // CBMI for Data Download EF - KSdnEf = RSat::KSdnEf, // Service Dialling Numbers EF - KExt1Ef = RSat::KExt1Ef, // Extension 1 EF - KExt2Ef = RSat::KExt2Ef, // Extension 2 EF - KExt3Ef = RSat::KExt3Ef, // Extension 3 EF - KBdnEf = RSat::KBdnEf, // Barred Dialling Numbers EF - KExt5Ef = RSat::KExt5Ef, // Extension 5 EF - KCcp2Ef = RSat::KCcp2Ef, // Capability configuration - // parameters 2 EF - KCbmirEf = RSat::KCbmirEf, // CBMI Range Selection EF - KNiaEf = RSat::KNiaEf, // Network's Indication of - // Alerting EF - KLociGprsEf = RSat::KLociGprsEf, // GPRS Location Information EF - KSumeEf = RSat::KSumeEf, // SetUpMenu Elements EF - KExt4Ef = RSat::KExt4Ef, // Extension 4 EF - KEstEf = RSat::KEstEf, // Enabled services table EF - KAclEf = RSat::KAclEf, // Access point name control - // list EF - KCmiEf = RSat::KCmiEf, // Comparison method - // information EF - KStartHfnEf = RSat::KStartHfnEf, // Initialisation value for - // Hyperframe number EF - KThresholdEf = RSat::KThresholdEf, // Maximum value of START EF - KOPlmnwAcTEf = RSat::KOPlmnwAcTEf, // Operator controlled PLMN - // selector with Access - // Technology EF - KHPlmnwAcTEf = RSat::KHPlmnwAcTEf, // HPLMN selector with Access - // Technology EF - KRplmnActEf = RSat::KRplmnActEf, // RPLMN Last used Access - // Technology EF - KPsLociEf = RSat::KPsLociEf, // Packet switched location - // information EF - KAccEf = RSat::KAccEf, // Access Control Class EF - KFPlmnEf = RSat::KFPlmnEf, // Forbidden PLMN EF - KIciEf = RSat::KIciEf, // Incoming call information EF - KOciEf = RSat::KOciEf, // Outgoing call information EF - KIctEf = RSat::KIctEf, // Incoming call timer EF - KOctEf = RSat::KOctEf, // Outgoing call timer EF - KCsp2Ef = RSat::KCsp2Ef, // CSP 2 EF (7F40 6F98) - KAdEf = RSat::KAdEf, // Administrative Data EF - KPhaseEf = RSat::KPhaseEf, // Phase Identification EF - KVcgsEf = RSat::KVcgsEf, // Voice Group Call Service EF - KVgcssEf = RSat::KVgcssEf, // Voice Group Call Service - // Status EF - KVbsEf = RSat::KVbsEf, // Voice Broadcast Service EF - KVbssEf = RSat::KVbssEf, // Voice Broadcast Service - // Status EF - KeMlppEf = RSat::KeMlppEf, // enhanced Multi Level - // Pre-emption and Priority EF - KAaemef = RSat::KAaemef, // Automatic Answer for eMLLP - // Service EF - KEccEf = RSat::KEccEf, // Emergency Call Codes EF - KGmsi = RSat::KGmsi, // Group Identity EF - KHiddenKeyEf = RSat::KHiddenKeyEf, // Key for hidden phone book - // entries EF - KPnnEf = RSat::KPnnEf, // PLMN Network Name EF - KOplEf = RSat::KOplEf, // Operator Network List EF - KMbdnEf = RSat::KMbdnEf, // Mailbox Dialling Numbers EF - KExt6Ef = RSat::KExt6Ef, // Extension 6 EF - KMbiEf = RSat::KMbiEf, // Mailbox Identifier EF - KMwisEf = RSat::KMwisEf, // Message Waiting Indication - // Status EF - KCfisEf = RSat::KCfisEf, // Call Forwarding Indication - // Status EF - KExt7Ef = RSat::KExt7Ef, // Extension 7 EF - KSpdiEf = RSat::KSpdiEf, // Service provider display - // information EF - KMmsnEF = RSat::KMmsnEF, // MMS notification EF - KExt8Ef = RSat::KExt8Ef, // Extension 8 EF - KMmsicpEf = RSat::KMmsicpEf, // MMS issuer connectivity - // parameters EF - KMmsupEf = RSat::KMmsupEf, // MMS user preferences EF - KMmsucpEf = RSat::KMmsucpEf, // MMS user connectivity - KNiaRel5Ef = RSat::KNiaRel5Ef, // Network's Indication of Alerting EF (from Rel 5 onwards) - // parameters EF - KCspEf = 0xffff // CSP (Not yet defined in ETel - // SAT API) - }; - -typedef TBuf16<242> TSatRefreshFiles; - -// Refresh types. -enum TSatRefreshType - { - ERefreshTypeNotSet, - ESimInitFullFileChangeNotification, - EFileChangeNotification, - ESimInitFileChangeNotification, - ESimInit, - ESimReset, - EUsimApplicationReset, - E3GSessionReset - }; - -// CLASS DECLARATION - -/** -* Observer for refresh events. Client must not call any RSatRefresh -* methods from the observer methods. -* -* @lib SatClient -* @since 2.6 -*/ -class MSatRefreshObserver - { - protected: - - /** - * C++ constructor. - */ - MSatRefreshObserver() {}; - - /** - * Destructor. - */ - virtual ~MSatRefreshObserver() {}; - - public: // New functions - - /** - * Refresh query. Client should determine whether it allow the - * refresh to happen. - * @since 2.6 - * @param aType Refresh type. - * @param aFiles Elementary files which are to be changed. - * May be zero length. - * @return ETrue to allow refresh, EFalse to decline refresh. - */ - virtual TBool AllowRefresh( - TSatRefreshType aType, const TSatRefreshFiles& aFiles ) = 0; - - /** - * Notification of refresh. - * @since 2.6 - * @param aType Type of refresh which has happened. - * @param aFiles List of elementary files which has been changed. - * May be zero length. - */ - virtual void Refresh( - TSatRefreshType aType, const TSatRefreshFiles& aFiles ) = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatRefreshObserver( const MSatRefreshObserver& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatRefreshObserver& operator=( const MSatRefreshObserver& ); - - }; - -#endif // MSATREFRESHOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/sat_refresh_api/inc/RSatRefresh.h --- a/phonesrv_plat/sat_refresh_api/inc/RSatRefresh.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: API for getting refresh notifications. -* -*/ - - - -#ifndef RSATREFRESH_H -#define RSATREFRESH_H - -// INCLUDES -#include -#include -#include - -// FORWARD DECLARATIONS -class RSatSession; -class CSatAllowRefreshMonitor; -class CSatRefreshMonitor; - -// CLASS DECLARATION - -/** -* Sub-session for getting refresh notifies. -* -* @lib SatClient.lib -* @since Series 60 2.6 -*/ -class RSatRefresh : public RSubSessionBase - { - public: // Constructors and destructor - - /** - * C++ default constructor. - * @param aObserver Observer, which is notified about - * refresh. - */ - IMPORT_C RSatRefresh( MSatRefreshObserver& aObserver ); - - public: // New functions - - /** - * Opens the sub-session. - * @param aSession Opens the sub-session. - */ - IMPORT_C void OpenL( const RSatSession& aSession ); - - /** - * Closes the sub-session. Cancels - * the notification if active. - */ - IMPORT_C void Close(); - - /** - * Starts the waiting for refresh events. - */ - IMPORT_C void NotifyFileChangeL(); - - /** - * Starts the waiting for refresh events. - * @param aObservedFiles List of files to be observed for refresh. - */ - IMPORT_C void NotifyFileChangeL( - const TSatRefreshFiles& aObservedFiles ); - - /** - * Indicates client's refresh actions complete. - * @param aAdditionEFRead Client has read additional file(s) from those - * implicitly defined by refresh. - */ - IMPORT_C void RefreshEFRead( TBool aAdditionEFRead ) const; - - /** - * Cancels the notification. - */ - IMPORT_C void Cancel() const; - - /** - * Gets the notification of refresh query. - * @param aType Refresh type. - * @param aChangingFiles List of files to be changed if any. - * @param aStatus Request status. - */ - void NotifyAllowRefresh( - TPckg& aType, - TPckg& aChangingFiles, - TRequestStatus& aStatus ) const; - - /** - * Sends response for refresh quary. - * @param aAllow ETrue, refresh is allowed, EFalse refresh not allowed. - */ - void AllowRefreshL( TBool aAllow ) const; - - /** - * Cancels the notification. - * @param aStatus Request status. - */ - void CancelNotifyAllowRefresh( TInt aError = KErrNone ) const; - - /** - * Gets the notification of refresh. - * @param aType Refresh type. - * @param aFiles List of changed files if any. - * @param aStatus Request status. - */ - void NotifyRefresh( - TPckg& aType, - TPckg& aFiles, - TRequestStatus& aStatus ) const; - - /** - * Cancels the notification. - */ - void CancelNotifyRefresh() const; - - private: - - // Prohibit copy constructor if not deriving from CBase. - RSatRefresh( const RSatRefresh& ); - - // Prohibit assigment operator if not deriving from CBase. - RSatRefresh& operator=( const RSatRefresh& ); - - private: - - // Observer of refresh events. - MSatRefreshObserver& iObserver; - - // Active object to monitor refresh query. - CSatAllowRefreshMonitor* iAllowMonitor; - - // Active object to monitor refresh. - CSatRefreshMonitor* iRefreshMonitor; - - //lint -e{1510} Desstruction of objects has been taken care - }; - -#endif // RSATREFRESH_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/ss_settings_api/inc/MSSSettingsObserver.h --- a/phonesrv_plat/ss_settings_api/inc/MSSSettingsObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,47 +0,0 @@ -/* -* Copyright (c) 2002 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: Interface for getting observer events. -* -*/ - - -#ifndef MSSSETTINGSOBSERVER_H -#define MSSSETTINGSOBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* It's the observer interface for some phone related settings. -* @lib sssettings.lib -* @since 1.0 -*/ -class MSSSettingsObserver - { - public: // New functions - /* - * Observer functoin - * @param aSetting Current setting - * @param aNewValue New value for the setting - */ - virtual void PhoneSettingChanged( - TSSSettingsSetting aSetting, - TInt aNewValue ) = 0; - }; - -#endif //MSSSETTINGSOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/ss_settings_api/inc/MSSSettingsRefreshObserver.h --- a/phonesrv_plat/ss_settings_api/inc/MSSSettingsRefreshObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* -* Copyright (c) 2004 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: Observer to listen refresh events -* -*/ - - - -#ifndef MSSSETTINGSREFRESHOBSERVER_H -#define MSSSETTINGSREFRESHOBSERVER_H - - -// INCLUDES -#include -#include -#include - - -// DATA TYPES - -// CLASS DECLARATION - -/** -* Observer to listen refresh events -* -* @lib SSSettings.lib -* @since 2.8 -*/ -class MSSSettingsRefreshObserver - { - public: // New functions - - /** - * Refresh query. Client should determine whether it allow the - * refresh to happen. - * - * @param aType Refresh type. - * @param aFiles Elementary files which are to be changed. - * May be zero length. - * @return ETrue to allow refresh, EFalse to decline refresh. - */ - virtual TBool AllowRefresh( - const TSatRefreshType aType, - const TSatElementaryFiles aFiles ) = 0; - - /** - * Notification of refresh. - * - * @param aType Type of refresh which has happened. - * @param aFiles List of elementary files which have been changed. - * May be zero length. - */ - virtual void Refresh( - const TSatRefreshType aType, - const TSatElementaryFiles aFiles ) = 0; - }; - -#endif // MSSSETTINGSREFRESHOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/ss_settings_api/inc/RCustomerServiceProfileCache.h --- a/phonesrv_plat/ss_settings_api/inc/RCustomerServiceProfileCache.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,193 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Customer service profile cache -* -*/ - - -#ifndef RCUSTOMERSERVICEPROFILECACHE_H -#define RCUSTOMERSERVICEPROFILECACHE_H - -// INCLUDES -#include -#include // RProperty. - - -// FORWARD DECLARATIONS -class RProperty; - -// CLASS DECLARATION - -/** -* Customer service profile cache -* @since 1.0 -* @lib SsSettings.lib -*/ -class RCustomerServiceProfileCache - { - public: // Constructor and destructor - IMPORT_C RCustomerServiceProfileCache(); - IMPORT_C ~RCustomerServiceProfileCache(); - - public: // New functions - //Settings categories - enum TSsGroups - { - ESsCspGroup1, // contains Call Offering, Call Restriction, - // Call Completion and Teleservices - ESsCspGroup2 // contains Value Added Services - }; - - /** - * Opens connections. Must be done before fetching any items. - * @return Error code. - */ - IMPORT_C TInt Open(); - - /** - * Closes connections. - */ - IMPORT_C void Close(); - - /** - * Get call completion flags from CSP. - * @param aParams Call completion parameters. - * @return Error code. - */ - IMPORT_C TInt CspCallCompletion( - RMobilePhone::TCspCallCompletion& aParams ); - - /** - * Get call offering flags from CSP. - * @param aParams Call offering parameters. - * @return Error code. - */ - IMPORT_C TInt CspCallOffering( - RMobilePhone::TCspCallOffering& aParams ); - - /** - * Get call restriction flags from CSP. - * @param aParams Call restriction parameters. - * @return Error code. - */ - IMPORT_C TInt CspCallRestriction( - RMobilePhone::TCspCallRestriction& aParams ); - - /** - * Get CPHS tele services flags from CSP. - * @param aParams Tele services parameters. - * @return Error code. - */ - IMPORT_C TInt CspCPHSTeleservices( - RMobilePhone::TCspCPHSTeleservices& aParams ); - - /** - * Handles refresh. - * @return Error code. - */ - IMPORT_C TInt HandleRefresh(); - - /** - * Get value added services flags from CSP. - * @since 1.2. - * @param aParams Value added services parameters. - * @return Error code. - */ - IMPORT_C TInt CspCPHSValueAddedServices( - RMobilePhone::TCspValueAdded& aParams ); - - /** - * Get tele services flags from CSP. - * @since 2.8. - * @param aParams Tele services parameters. - * @return Error code. - */ - IMPORT_C TInt CspTeleServices( - RMobilePhone::TCspTeleservices& aParams ); - - /** - * Get the changed CSP information after Refresh. - * @since 2.8. - * @param aChangedCsps The changed CSP fields, - * type RMobilePhone::TMobilePhoneCspFileV1Pckg. - * @param aNewValues The new values of CSP fields, - * type RMobilePhone::TMobilePhoneCspFileV1Pckg. - * @return Error code. KErrNone if successful. - */ - IMPORT_C TInt ChangedCspTable( - TDes8& aChangedCsps, - TDes8& aNewValues ); - - private: - - // Opens connections - void DoOpenL(); - - // Gets the values - TInt DoGetValues( TInt& aValue, TSsGroups aGroup ); - - // Reset the iOldCspFile. - void DoResetOldCspFile(); - - // Define and set the Publish and subscribe value. - TInt DefineAndSetValue( - TUid aCategory, - TUint aKey, - TInt aValue ); - - // Prohibit copy constructor if not deriving from CBase. - RCustomerServiceProfileCache( - const RCustomerServiceProfileCache& ); - // Prohibit assigment operator if not deriving from CBase. - RCustomerServiceProfileCache& operator= ( - const RCustomerServiceProfileCache& ); - - private: - - // Member data structure. - class TCspCacheData - { - public: - TCspCacheData(); - - // ETel connection. - RTelServer iEtel; - - // Provides client access to mobile phone functionality - // provided by TSY. - RMobilePhone iPhone; - - // Defines contents of the CSP (Customer Service Profile) - // on the SIM. - RMobilePhone::TMobilePhoneCspFileV1 iCspFile; - - // Packaged contents of the CSP (Customer Service Profile) - // on the SIM. - RMobilePhone::TMobilePhoneCspFileV1Pckg iCspFilePckg; - - // RProperty. - RProperty iProperty; - }; - - //Pointer to the above. - TCspCacheData* iData; - - // Defines the old content of the CSP (Customer Service Profile) on - // the SIM before refresh. - RMobilePhone::TMobilePhoneCspFileV1* iOldCspFile; - }; - -#endif // RCUSTOMERSERVICEPROFILECACHE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/ss_settings_api/inc/RSSSettings.h --- a/phonesrv_plat/ss_settings_api/inc/RSSSettings.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,383 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: -* Class for getting information about the Clir, Cug, Als and Als blocking -* status in the phone. -* -*/ - - -#ifndef RSSSETTINGS_H -#define RSSSETTINGS_H - -// INCLUDES -#include -#include - -// DATA TYPES - -/** -* All enumerations are fixed - DO NOT CHANGE!! -*/ - -/** -* It enumerates all SSSettings settings. -* -* ESSSettingsCug - closed user group setting, -* for some values see TSSSettingsCugValue. -* ESSSettingsClir - default setting for calling line identification -* restriction, see TSSSettingsClirValue. -* ESSSettingsAls - selected line, see TSSSettingsAlsValue. -* ESSSettingsAlsBlocking - line selection blocking, see TSSSettingsAlsBlocking. -* ESSSettingsCugDefault - value for cug default. -*/ -enum TSSSettingsSetting - { - ESSSettingsCug = 0, - ESSSettingsClir = 1, - ESSSettingsAls = 2, - ESSSettingsAlsBlocking = 3, - ESSSettingsDefaultCug = 4 - }; - -/** -* It enumerates all values for CLIR. -* -* ESSSettingsClirNetworkDefault - use network default -* ESSSettingsClirExplicitInvoke - by default, invoke CLIR -* ESSSettingsClirExplicitSuppress - by default, suppress CLIR -*/ -enum TSSSettingsClirValue - { - ESSSettingsClirNetworkDefault, - ESSSettingsClirExplicitInvoke, - ESSSettingsClirExplicitSuppress - }; - -/** -* It enumerates SOME values for CUG. -* -* Alternative CUG default (and min value) can be set on/off from -* shared data (shareddatakeys.h, key: KPhoneCUGIndexStartValue). -* -* CUG value is basically interger. -* -* ESSSettingsCugSuppress - special, suppress CUG -* ESSSettingsCugDefault - special, use network default CUG -* ESSSettingsCugMin - minimum value for proper CUG index. -* ESSSettingsCugMax - maximum value for proper CUG index. -* ESSSettingsAltCugDefault - special, alternative default CUG -* ESSSettingsAltCugMin - special, alternative minimum for CUG -*/ -enum TSSSettingsCugValue - { - ESSSettingsCugSuppress = -1, - ESSSettingsCugDefault = 0, //Note: default can be 0 or 65535 (see above) - ESSSettingsCugMin = 1, //Note: min value can be 0 or 1 (see above) - ESSSettingsCugMax = 32767, - ESSSettingsAltCugDefault = 65535, - ESSSettingsAltCugMin = 0 - }; - -/** -* It enumerates all values for ALS. -* -* ESSSettingsAlsNotSupported - ALS not supported, always primary line. -* ESSSettingsAlsPrimary - ALS supported, primary line selected. -* ESSSettingsAlsAlternate - ALS supported, alternate line selected. -*/ -enum TSSSettingsAlsValue - { - ESSSettingsAlsNotSupported = 0, - ESSSettingsAlsPrimary = 1, - ESSSettingsAlsAlternate = 2 - }; - -/** -* It enumerates all values for ALS blocking. -* -* ESSSettingsAlsBlockingNotSupported - ALS blocking not supported. -* ESSSettingsAlsBlockingOff - ALS blocking off. -* ESSSettingsAlsBlockingOn - ALS blocking on. -*/ -enum TSSSettingsAlsBlockingValue - { - ESSSettingsAlsBlockingNotSupported, - ESSSettingsAlsBlockingOff, - ESSSettingsAlsBlockingOn - }; - -// FORWARD DECLARATIONS -class MSSSettingsObserver; -class CSSSettingsNotifier; -class RMmCustomAPI; -class CRepository; - - -// CLASS DECLARATION - -/** -* It is class that can be used to fetch phone related settings. -* @since 1.0 -* @lib sssettings.lib -*/ -class RSSSettings - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - IMPORT_C RSSSettings(); - - public: // New functions - - /** - * Closes SsSettings. - * - * After the use of the class, the method must be called. - */ - IMPORT_C void Close(); - - /** - * Opens SsSettings. - * - * Before using the class, one of Open methods must be called. - * - * @return error code. KErrNone, if success. - */ - IMPORT_C TInt Open(); - - /** - * Opens SsSettings. - * - * Ownership of parameters is NOT transferred. If parameter - * is NULL, then the instance creates its own sessions. - * - * Before using the class, one of Open methods must be called. - * - * @param aTelServer ETel server session. - * @return error code. KErrNone, if success. - */ - IMPORT_C TInt Open( - RTelServer* aTelServer ); - - - // CHANGE NOTIFICATIONS - - /** - * Registers an observer to receive all changes. - * - * @param aObserver observer. - * @return error code. If other than KErrNone, CancelAll is called - * automatically. - */ - IMPORT_C TInt RegisterAll( - MSSSettingsObserver& aObserver ); - - /** - * Registers an observer to receive changes of a setting. - * - * @param aSetting setting. - * @param aObserver observer. - * @return error code. KErrNone: observer is added - * KErrAlreadyExists: observer is already added - * KErrNotReady: Possible when BT SAP is on. - * KErrNotSupported: Possible with ALS. - * other: observer not registered - */ - IMPORT_C TInt Register( - TSSSettingsSetting aSetting, - MSSSettingsObserver& aObserver ); - - /** - * Cancels all registrations of the observer. - * - * @param aObserver observer. - */ - IMPORT_C void CancelAll( - MSSSettingsObserver& aObserver ); - - /** - * Cancel specific setting. - * - * @param aSetting setting. - * @param aObserver observer. - */ - IMPORT_C void Cancel( - TSSSettingsSetting aSetting, - MSSSettingsObserver& aObserver ); - - // CHANGE & FETCH VALUE - - /** - * Fetch value of a setting. - * - * @param aSetting setting. - * @param aValue result will be stored here (if success). - * @return error code: KErrNone, all ok aValue updated. - * KErrCorrupt, value in shared data is not OK. - * KErrNotSupported, aSetting is not a "real" setting - * KErrNotReady, get CSP from ETEL has failed. - * KErrServerBusy, get CSP from ETEL has failed. - */ - IMPORT_C TInt Get( - TSSSettingsSetting aSetting, - TInt& aValue ); - - /** - * Changes value of a setting. Successfull function call generates notify - * call to each observer in this object even if the value is the same. - * From other objects of this class the observers will get only change - * notifications. - * - * @param aSetting setting. - * @param aValue new value for setting. - * @return error code. KErrNone in case of non-error. - * KErrArgument: parameter not valid - * KErrNotSupported: In als, if ME doesn't support - * other, from Shared data or from ETel - */ - IMPORT_C TInt Set( - TSSSettingsSetting aSetting, - TInt aValue ); - - // SIM CHANGE EVENT - - /** - * It is called when SIM changes. - * - * @return error code. - */ - IMPORT_C TInt HandleSIMChanged(); - - /** - * Get previous CUG value - * @param aPreviousValue Old value is saved here. 0 if not set - * @return Error code - */ - IMPORT_C TInt PreviousCugValue( TInt& aPreviousValue ); - - /** - * Reset previous CUG value - * @return Error code - */ - IMPORT_C TInt ResetPreviousCugValue(); - - /** - * Handle refresh - * @return Error code - */ - IMPORT_C TInt HandleRefresh(); - - /** - * Check whether or not the given CUG index is valid. - * @param aValue CUG index - * @return Boolean, is it valid CUG index or not - */ - IMPORT_C TBool IsValueValidCugIndex( const TInt& aValue ) const; - - private: - - /** - * Checks if Alternate Line is to be supported. - * @param aPpAlsValue parameter to be checked. - * @param aSimAlsValue parameter to be checked. - * @param aAlsCspSupport parameter to be checked. - * @param aAlsCspError parameter to be checked. - * @return error code. KErrNone in case of ALS supported. - * KErrNotSupported in case if ME doesn't support - */ - TInt IsALSSupported( TInt aPpAlsValue, TInt aSimAlsValue, - TBool aAlsCspSupport, TInt aAlsCspError ) const; - - // Gets ALS setting value. - TInt GetALSSettingValue( TInt& aValue, const TInt aSimState ); - - // Prohibit copy constructor if not deriving from CBase. - RSSSettings( const RSSSettings& ); - // Prohibit assigment operator if not deriving from CBase. - RSSSettings& operator= ( const RSSSettings& ); - - // Opens connection. Leaves on error cases - void OpenL( RTelServer* aTelServer ); - - // Closes all connections and deletes own data - void DeleteSettingsData(); - - // Finds if observer is already added - TBool ExistsObserver( TSSSettingsSetting aSetting, - MSSSettingsObserver& aObserver ); - - // Informs observers about the value change - void InformChange( TSSSettingsSetting aSetting , TInt aNewValue ); - - // Finds next observer, NULL if there isn't any. Used in deleting data. - MSSSettingsObserver* FindOneObserver() const; - - // Async call back for informing observer about own changes. - static TInt InformCallBack( TAny* aPtr ); - - // CUG value is divided into two parts - needs special handling... - TInt GetCug( TInt& aValue ) const; - TInt GetDefaultCugL( TInt& aValue ) const; - TInt SetCug( const TInt aValue, const TInt aCugDefault ) const; - - private: // Data - - //Private Array type for RSSSettings. - typedef RPointerArray RSSSettingsObserverArray; - - /** - * All data members are included in one structure. - * This it can be changed accoring to needs, but the - * BC stays the same. - */ - struct TSSSettingsData - { - RTelServer* iTelServer; // ETel client - TBool iOwnTelServer; // ETrue if own - RMobilePhone iMobilePhone; // Mobile Phone - RArray iObservers;// Array for obs. arrays - CAsyncCallBack* iCallBack; // Async call back - TInt iCallBackSetting; // Setting that is changed - TInt iCallBackValue; // New value. - CSSSettingsNotifier* iNotifier; // Change notifier - RMmCustomAPI* iCustomPhone; // Custom Phone - TInt iCUGDefault; // CUG default - CRepository* iRepository; // Central repository. - }; - - TSSSettingsData* iData; // The data - - protected: - // Friend class uses all members in iData. This procedure saves - // a lot of function from the API which are not meant for - // external use. - friend class CSSSettingsNotifier; - }; - -// Panic enums -enum TSSSettingsPanic - { - SSSettingsPanicOpenNotDone = 6000, // Some function is called before Open() - SSSettingsPanicInvalidRequest, // Given Setting is out of range. - SSSettingsPanicConflictInAls // Can't determine ALS state. - }; - -GLREF_C void Panic( TSSSettingsPanic aPanic ); - -#endif // RSSSETTINGS_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmEmergencyNumberHandler.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmEmergencyNumberHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* 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: It is base handler for emergency number. -* -*/ - - -#ifndef CPHONEGSMEMERGENCYNUMBERHANDLER_H -#define CPHONEGSMEMERGENCYNUMBERHANDLER_H - -// INCLUDES -#include "cphonegsmhandlerbase.h" - -// CLASS DECLARATION - -/** -* It is base handler for phone number. -* -* @since S60 5.0 -* @lib phoneparser.lib -*/ -class CPhoneGsmEmergencyNumberHandler - : public CPhoneGsmHandlerBase - { - public: // New functions - - /** - * Process dial to emergency number - * - * @param aNumber main number part. - */ - virtual void ProcessDialToEmergencyNumberL( - const TDesC& aNumber - ) = 0; - - public: // Functions from base classes - - /** - * From CPhoneGsmHandlerBase, processes result. - * - * @param aResult It is to be processed. - */ - IMPORT_C virtual void ProcessL( CPhoneGsmParserResult& aResult ); - }; - -#endif // CPHONEGSMEMERGENCYNUMBERHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmHandlerBase.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmHandlerBase.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2002 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: It is base class for all handlers. -* -*/ - - -#ifndef CPHONEGSMHANDLERBASE_H -#define CPHONEGSMHANDLERBASE_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class CPhoneGsmParserResult; - -// CLASS DECLARATION - -/** -* It is base class for all handlers. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -class CPhoneGsmHandlerBase - : public CBase - { - public: // New functions - - /** - * Process the results of parsing. - * - * @param aResult It is results to be processed. - */ - virtual void ProcessL( - CPhoneGsmParserResult& aResult ) = 0; - - }; - -#endif // CPHONEGSMHANDLERBASE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmHandlerContainer.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmHandlerContainer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* Copyright (c) 2002 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: It is container for handlers. It can also be used as a handler. -* -*/ - - -#ifndef CPHONEGSMHANDLERCONTAINER_H -#define CPHONEGSMHANDLERCONTAINER_H - -// INCLUDES -#include -#include "cphonegsmhandlerbase.h" - -// CLASS DECLARATION - -/** -* It is container for handlers. It can also be used as a handler. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -class CPhoneGsmHandlerContainer - : public CPhoneGsmHandlerBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - IMPORT_C static CPhoneGsmHandlerContainer* NewL(); - - /** - * Destructor. - */ - IMPORT_C ~CPhoneGsmHandlerContainer(); - - public: // New functions - - /** - * Add a new handler to the container. - * - * Note that ownership is transferred. The method panics if - * you try to add same instance twice. - */ - IMPORT_C void AddHandlerL( CPhoneGsmHandlerBase& aHandler ); - - public: // Functions from base classes - - /** - * From CPhoneGsmHandlerBase, process the results of parsing. - * - * Note that it will forward the request to each of the contained - * handler. - * - * @param aResult It is results to be processed. - */ - void ProcessL( - CPhoneGsmParserResult& aResult ); - - private: - - /** - * C++ default constructor. - */ - CPhoneGsmHandlerContainer(); - - /** - * Symbian OS constructor. - */ - void ConstructL(); - - // By default, prohibit copy constructor - CPhoneGsmHandlerContainer( const CPhoneGsmHandlerContainer& ); - // Prohibit assigment operator - CPhoneGsmHandlerContainer& operator= ( const CPhoneGsmHandlerContainer& ); - - private: // Data - - typedef CArrayPtrFlat< CPhoneGsmHandlerBase > CHandlerArray; - - // Owned array of handlers. - CHandlerArray* iHandlers; - - }; - -#endif // CPHONEGSMHANDLERCONTAINER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmManufacturerHandler.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmManufacturerHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -/* -* Copyright (c) 2002 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: It is base handler for manufacturer specific codes. -* -*/ - - -#ifndef CPHONEGSMMANUFACTURERHANDLER_H -#define CPHONEGSMMANUFACTURERHANDLER_H - -// INCLUDES -#include "cphonegsmhandlerbase.h" - -// CLASS DECLARATION - -/** -* It is base handler for manufacturer specific codes. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -class CPhoneGsmManufacturerHandler - : public CPhoneGsmHandlerBase - { - public: // New functions - - /** - * It enumerates all commands. - * - * EShowVersion - SW version display - * EBadPinChange - bad PIN change request, e.g. **04*# - * EBadPin2Change - bad PIN2 change request - * EBadPinUnblock - bad PIN unblock request, e.g. **05*# - * EBadPin2Unblock - bad PIN2 unblock request - * EActivateRfsNormal - RFS activation - * EActivateRfsDeep - RFS activation, deep version - * EShowBtAddress - BT address display - * EResetWallet - Wallet reset - * EBTLoopback - BT RF loopback activation/deactivation - * EBTDebugMode - BT debug mode activation - */ - enum - { - EBadPinChange, - EBadPin2Change, - EBadPinUnblock, - EBadPin2Unblock, - EActivateRfsNormal, - EActivateRfsDeep, - EShowBtAddress, - EBTLoopback, - EShowWlanMac, - EBTDebugMode - }; - - /** - * Process manufacturer specific command. - * - * @param aCommand command to be performed. - */ - virtual void ProcessCommandL( TUint aCommand ) = 0; - - /** - * Process debug code. - * - * @param aCode code to be processed. - */ - virtual void ProcessDebugL( const TDesC& aCode ) = 0; - - public: // Functions from base classes - - /** - * From CPhoneGsmHandlerBase, process the results of parsing. - * - * @param aResult It is results to be processed. - */ - IMPORT_C virtual void ProcessL( - CPhoneGsmParserResult& aResult ); - - }; - -#endif // CPHONEGSMMANUFACTURERHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmMiscHandler.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmMiscHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* Copyright (c) 2002 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: It is base class for handlers of ussd & show imei. -* -*/ - - -#ifndef CPHONEGSMMISCHANDLER_H -#define CPHONEGSMMISCHANDLER_H - -// INCLUDES -#include "cphonegsmhandlerbase.h" - -// CLASS DECLARATION - -/** -* It is base class for handlers of ussd & show imei. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -class CPhoneGsmMiscHandler - : public CPhoneGsmHandlerBase - { - public: // New functions - - /** - * Process USSD request. - * - * @param aString It is string to be sent. - */ - virtual void ProcessUssdL( const TDesC& aString ) = 0; - - public: // Functions from base classes - - /** - * From CPhoneGsmHandlerBase, process the results of parsing. - * - * @param aResult It is results to be processed. - */ - IMPORT_C virtual void ProcessL( - CPhoneGsmParserResult& aResult ); - - }; - -#endif // CPHONEGSMMISCHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmOptionContainerBase.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmOptionContainerBase.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/* -* Copyright (c) 2002 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: Base class for options container that can be used -* to configure the parsing process. -* -*/ - - -#ifndef CPHONEGSMOPTIONCONTAINERBASE_H_ -#define CPHONEGSMOPTIONCONTAINERBASE_H_ - -// INCLUDES -#include - -// CONSTANTS - -/** -* Option is true if operation is send. False if it is a code check. -*/ -const TInt KPhoneOptionSend = 1; - -/** -* Option is true if there is a call ongoing. Otherwise false. -*/ -const TInt KPhoneOptionInCall = 2; - -/** -* Option is true if two digit calling is supported. Otherwise false. -* Client should not try to set this option with SetOptionStatus() -method because -* Two Digit Calling is variable feature. -*/ -const TInt KPhoneOptionTwoDigitCalling = 3; - -/** -* Option is true if voip call. Otherwise false. -*/ -const TInt KPhoneOptionVoipCall = 4; - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* It is container for options. Each option is identified by -* a single uid and each option has a boolean status. -* -* @since 5.0 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneGsmOptionContainerBase ) - : public CBase - { - - public: // New functions - - /** - * Sets status of option. - * - * @param aOptionUid It is the uid of the option. - * @param aStatus It is the new status for the option. - */ - virtual void SetOptionStatus( TInt aOptionUid, TBool aStatus ) = 0; - - /** - * Finds status of option. - * - * @param aOptionUid It is the uid of the option. - * @return Returne status of the option. - */ - virtual TBool FindOptionStatus( TInt aOptionUid ) const = 0; - - }; - -#endif /*CPHONEGSMOPTIONCONTAINERBASE_H_*/ diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmParserBase.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmParserBase.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,179 +0,0 @@ -/* -* Copyright (c) 2002-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: It is base class for parsers. -* -*/ - - -#ifndef CPHONEGSMPARSERBASE_H -#define CPHONEGSMPARSERBASE_H - -// INCLUDES -#include - -// MACROS - -/** -* It defines macro that can be used to create a single uid. -* -* Parameters main and sub should be positive integers, range of -* main is 0..255 and sub is 0..2^16-1. -* -* Macro is equivalent to (main mod 256)*2**16 + sub. -*/ -#define PHONE_MAKE_UID( main, sub ) (TUint32)((((main) & 0xFF) << 16) + ((sub) & 0xFFFF)) - -/** -* Extracts main part from uid. -* -* Macro is equivalent to (main / 2**16) mod 256. -*/ -#define PHONE_EXTRACT_MAIN( uid ) (((uid) >> 16) & 0xFF) - -// CONSTANTS - -/** -* ALL MAIN UIDS ARE LISTED HERE. -* -* Please, do not change unless you know what you are doing! -*/ - -/** -* Invalid string. -*/ -const TUint32 KPhoneGsmUidInvalid = 0; - -/** -* Supplementary services. -*/ -const TUint32 KPhoneGsmUidSupplementaryService = 1; - -/** -* Sim control procedure. -*/ -const TUint32 KPhoneGsmUidSimControlProcedure = 2; - -/** -* Phone number -*/ -const TUint32 KPhoneGsmUidDialPhoneNumber = 3; - -/** -* Misc GSM required strings, most notably USSD. -*/ -const TUint32 KPhoneGsmUidMisc = 4; - -/** -* Supplementary service, during calls. -*/ -const TUint32 KPhoneGsmUidSupplementaryServiceDuringCall = 5; - -/** -* Manufacturer specific codes. -*/ -const TUint32 KPhoneGsmUidManufacturer = 6; - -/** -* PCN specific codes. -*/ -const TUint32 KPhoneGsmUidPcnProcedures = 7; - -/** -* Emergency number -*/ -const TUint32 KPhoneGsmUidDialEmergencyNumber = 8; - -/** -* Voip number -*/ -const TUint32 KPhoneUidDialVoipyNumber = 9; - -/** -* ALL MISC UIDS: -*/ -const TUint32 KPhoneUidUnstructuredService = - PHONE_MAKE_UID( KPhoneGsmUidMisc, 0 ); - -// FORWARD DECLARATIONS -class CPhoneGsmParserResult; -class CPhoneGsmOptionContainerBase; - -// CLASS DECLARATION - -/** -* It is base class for parsers. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -class CPhoneGsmParserBase - : public CBase - { - public: // New functions - - /** - * Parses string. - * - * String must not contain other characters than from set - * { 0..9, *, #, +, p, w }. If method leaves, then result - * may contain something that is not valid. - * - * @param aString string to be parsed. - * @param aResult It will contain result. - * @param aOptions It contains all options related to parsing. - * @return It returns boolean value indicating success of parsing. - */ - virtual TBool ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ) = 0; - - // SOME COMMON STATIC FUNCTIONS - - /** - * Checks if string is prefix of another. - * - * @param aString original string. - * @param aPrefix possibly prefix of aString. - * @return ETrue iff aPrefix is prefix of aString. - */ - static TBool IsPrefixOf( - const TDesC& aString, - const TDesC& aPrefix ); - - /** - * Checks if string is postfix of another. - * - * @param aString original string. - * @param aPrefix possibly postfix of aString. - * @return ETrue iff aPostfix is postfix of aString. - */ - static TBool IsPostfixOf( - const TDesC& aString, - const TDesC& aPostfix ); - - /** - * Extracts sequence of digits. - * - * @param aString input. - * @return sequence of digits, prefix of aString. - */ - static TPtrC ExtractNumber( - const TDesC& aString ); - - }; - -#endif // CPHONEGSMPARSERBASE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmParserResult.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmParserResult.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Instances will contain the results of the parsing. -* -*/ - - -#ifndef CPHONEGSMPARSERRESULT_H -#define CPHONEGSMPARSERRESULT_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Instances will contain the results of the parsing. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneGsmParserResult ) - : public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneGsmParserResult* NewL(); - - /** - * Destructor. - */ - ~CPhoneGsmParserResult(); - - public: // New functions - - /** - * Reserve parameters. - * - * @param aAmount It is the amount of parameters to reserve. - */ - void ReserveParametersL( TUint aAmount ); - - /** - * Sets state to initial. - */ - void ClearL(); - - /** - * Returns uid. - */ - inline TUint Uid() const; - - /** - * Returns auxilirary information. - */ - inline TUint AuxInformation() const; - - /** - * Returns the count of parameters. - */ - inline TUint CountParameters() const; - - /** - * Returns parameter at given position. - * - * @param aIndex It is the position. - * @return Returns the parameter. - */ - const TDesC& ParameterAt( TInt aIndex ) const; - - /** - * Sets the uid. - * - * @param aUid It is the new uid. - */ - void SetUid( TUint aUid ); - - /** - * Sets auxilirary information. - * - * @param aAuxInformation It is the new aux information. - */ - void SetAuxInformation( TUint aAuxInformation ); - - /** - * Adds a parameter. - * - * It will leave if there is not enough memory. - * - * @param aParameter It is the parameter. - */ - void AddParameterL( const TDesC& aParameter ); - - private: - - /** - * C++ default constructor. - */ - CPhoneGsmParserResult(); - - /** - * Symbian OS constructor. - */ - void ConstructL(); - - // By default, prohibit copy constructor - CPhoneGsmParserResult( const CPhoneGsmParserResult& ); - // Prohibit assigment operator - CPhoneGsmParserResult& operator= ( const CPhoneGsmParserResult& ); - - private: // Data - - // Unique identifier, type of result. - TUint iUid; - - // Additional information, specific to type. - TUint iAuxInformation; - - // Array of parameters, pointer descriptors to original string. - CArrayFixFlat< TPtrC >* iParameters; - - }; - -#include "cphonegsmparserresult.inl" - -#endif // CPHONEGSMPARSERRESULT_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmParserResult.inl --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmParserResult.inl Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 2002 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: Inline functions of the CPhoneGsmParserResult class. -* -*/ - - -// ================= MEMBER FUNCTIONS ======================= - -// --------------------------------------------------------- -// CPhoneGsmParserResult::Uid -// --------------------------------------------------------- -// -inline TUint CPhoneGsmParserResult::Uid() const - { - return iUid; - } - -// --------------------------------------------------------- -// CPhoneGsmParserResult::AuxInformation -// --------------------------------------------------------- -// -inline TUint CPhoneGsmParserResult::AuxInformation() const - { - return iAuxInformation; - } - -// --------------------------------------------------------- -// CPhoneGsmParserResult::CountParameters -// --------------------------------------------------------- -// -inline TUint CPhoneGsmParserResult::CountParameters() const - { - return iParameters->Count(); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmPcnProcedureHandler.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmPcnProcedureHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* -* Copyright (c) 2002 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: It is handler for PCN specific procedures. -* -*/ - - -#ifndef CPHONEGSMPCNPROCEDUREHANDLER_H -#define CPHONEGSMPCNPROCEDUREHANDLER_H - -// INCLUDES -#include "cphonegsmhandlerbase.h" - -// CLASS DECLARATION - -/** -* It is handler for GsmPcn procedures. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -class CPhoneGsmPcnProcedureHandler - : public CPhoneGsmHandlerBase - { - public: // New functions - - /** - * Process SIM locking. - * - * Parameters are empty strings if SIM lock - * code was just garbage. - * - * @param aPassword sequence of digits. - * @param aType sequence of digits. - */ - virtual void ProcessSimLockL( - const TDesC& aPassword, - const TDesC& aType ) = 0; - - /** - * Process SIM unlocking. - * - * Parameters are empty strings if SIM unlock - * code was just garbage. - * - * @param aPassword sequence of digits. - * @param aType sequence of digits. - */ - virtual void ProcessSimUnlockL( - const TDesC& aPassword, - const TDesC& aType ) = 0; - - public: // Functions from base classes - - /** - * From CPhoneGsmHandlerBase, processes result. - * - * @param aResult It is to be processed. - */ - IMPORT_C virtual void ProcessL( CPhoneGsmParserResult& aResult ); - - }; - -#endif // CPHONEGSMPCNPROCEDUREHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmPhoneNumberHandler.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmPhoneNumberHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,76 +0,0 @@ -/* -* Copyright (c) 2002 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: It is base handler for phone number. -* -*/ - - -#ifndef CPHONEGSMPHONENUMBERHANDLER_H -#define CPHONEGSMPHONENUMBERHANDLER_H - -// INCLUDES -#include "cphonegsmhandlerbase.h" - -// CLASS DECLARATION - -/** -* It is base handler for phone number. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -class CPhoneGsmPhoneNumberHandler - : public CPhoneGsmHandlerBase - { - public: // New functions - - /** - * Clir overriding options - * - * EClirDefault - default clir - * EClirInvoke - explicit invoke - * EClirSuppress - explicit suppress - */ - enum TClir - { - EClirDefault, - EClirInvoke, - EClirSuppress - }; - - /** - * Process dial to number - * - * @param aNumber main number part. - * @param aDtmfPostfix dtmf postfix. - * @param aClir clir part. - */ - virtual void ProcessDialToNumberL( - const TDesC& aNumber, - const TDesC& aDtmfPostfix, - TClir aClir ) = 0; - - public: // Functions from base classes - - /** - * From CPhoneGsmHandlerBase, processes result. - * - * @param aResult It is to be processed. - */ - IMPORT_C virtual void ProcessL( CPhoneGsmParserResult& aResult ); - }; - -#endif // CPHONEGSMPHONENUMBERHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmSimControlHandler.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmSimControlHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,104 +0,0 @@ -/* -* Copyright (c) 2002 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: It is handler for SIM control procedures. -* -*/ - - -#ifndef CPHONEGSMSIMCONTROLHANDLER_H -#define CPHONEGSMSIMCONTROLHANDLER_H - -// INCLUDES -#include "cphonegsmhandlerbase.h" - -// CLASS DECLARATION - -/** -* It is handler for sim control procedures. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -class CPhoneGsmSimControlHandler - : public CPhoneGsmHandlerBase - { - public: // New functions - - /** - * It defines different types of codes. - */ - enum TPinCode - { - EPinCode, - EPin2Code - }; - - /** - * Change pin code - * - * @param aType It is type of pin. - * @param aOldPin It is old pin. - * @param aNewPin It is new pin. - * @param aNewPin2 It is new pin. - */ - virtual void ProcessChangePinL( - TPinCode aType, - const TDesC& aOldPin, - const TDesC& aNewPin, - const TDesC& aNewPin2 ) = 0; - - /** - * Unblock pin code. - * - * @param aType It is type of pin to unblock. - * @param aPuk It is unblocking code. - * @param aNewPin It is new pin. - * @param aNewPin2 It is new pin. - */ - virtual void ProcessUnblockPinL( - TPinCode aType, - const TDesC& aPuk, - const TDesC& aNewPin, - const TDesC& aNewPin2 ) = 0; - - public: // Functions from base classes - - /** - * From CPhoneGsmHandlerBase, process the results of parsing. - * - * @param aResult It is results to be processed. - */ - IMPORT_C virtual void ProcessL( - CPhoneGsmParserResult& aResult ); - - private: - - /** - * Process pin change. - */ - void ProcessPinChangeL( - TPinCode aType, - CPhoneGsmParserResult& aResult ); - - /** - * Process pin unblock. - */ - void ProcessPinUnblockL( - TPinCode aType, - CPhoneGsmParserResult& aResult ); - }; - -#endif // CPHONEGSMSIMCONTROLHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmSsCallHandler.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmSsCallHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,103 +0,0 @@ -/* -* Copyright (c) 2002 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: It is base handler for supplementary services during calls. -* -*/ - - -#ifndef CPHONEGSMSSCALLHANDLER_H -#define CPHONEGSMSSCALLHANDLER_H - -// INCLUDES -#include "cphonegsmhandlerbase.h" - -// CLASS DECLARATION - -/** -* It is base handler for supplementary services during calls. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -class CPhoneGsmSsCallHandler - : public CPhoneGsmHandlerBase - { - public: // New functions - - /** - * Reject a call. - * - * Command: 0 SEND. - */ - virtual void ProcessEndOrRejectL() = 0; - - /** - * Ends a call and accepts another. - * - * Command: 1 SEND. - */ - virtual void ProcessEndAndAcceptL() = 0; - - /** - * End specific active call. - * - * Command: 1X SEND. - * - * @param aCallNo index of call, X in 1X. - */ - virtual void ProcessEndCallL( TInt aCallNo ) = 0; - - /** - * Hold all active calls except specific call. - * - * Command: 2X SEND. - * - * @param aCallNo index of call, X in 2X. - */ - virtual void ProcessHoldAllCallsExceptL( TInt aCallNo ) = 0; - - /** - * Swap - * - * Command: 2 SEND. - */ - virtual void ProcessSwapL() = 0; - - /** - * Join two calls to conference. - * - * Command: 3 SEND. - */ - virtual void ProcessJoinL() = 0; - - /** - * Perform explicit call transfer - * - * Command: 4 SEND. - */ - virtual void ProcessExplicitCallTransferL() = 0; - - public: // Functions from base classes - - /** - * From CPhoneGsmHandlerBase, processes result. - * - * @param aResult It is to be processed. - */ - IMPORT_C virtual void ProcessL( CPhoneGsmParserResult& aResult ); - }; - -#endif // CPHONEGSMSSCALLHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneGsmSsHandler.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneGsmSsHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,204 +0,0 @@ -/* -* Copyright (c) 2002 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: It is base class for handlers of supplementary service requests. -* -*/ - - -#ifndef CPHONEGSMSSHANDLER_H -#define CPHONEGSMSSHANDLER_H - -// INCLUDES -#include "cphonegsmhandlerbase.h" - -// FORWARD DECLARATIONS -class CPhoneGsmParserResult; - -// CLASS DECLARATION - -/** -* It is base class for handlers of supplementary service requests. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -class CPhoneGsmSsHandler - : public CPhoneGsmHandlerBase - { - public: // New functions - - /** - * It is enumeration containing all actions. - */ - enum TAction - { - EActivate, - EDeactivate, - EInterrogate, - ERegister, - EErase - }; - - /** - * It is enumeration containing all forwarding procedures. - */ - enum TForwardingProcedure - { - EForwardingNotReachable, - EForwardingNoReply, - EForwardingBusy, - EForwardingUnconditional, - EForwardingAll, - EForwardingAllConditional - }; - - /** - * It is enumeration containing all barring procedures. - */ - enum TBarringProcedure - { - EBarringAllOutgoingCalls, - EBarringAllOutgoingInternationalCalls, - EBarringAllOutgoingInternationalCallsExceptHome, - EBarringAllIncomingCalls, - EBarringAllIncomingCallsWhenRoaming, - EBarringAllServices, - EBarringAllOutgoingServices, - EBarringAllIncomingServices - }; - - /** - * It is enumeration containing all password procedures. - */ - enum TPasswordProcedure - { - EPasswordBarring, - EPasswordNetwork - }; - - /** - * Process forwarding procedures. - * - * If a parameter is not allowed for a procedure, - * then it is empty. If a parameter is not explicitly given, - * then it is empty. If a parameter is present, then it can - * be assumed to contain appropriate values. - * - * @param aAction It is action. - * @param aForwarding It contains forwarding procedure. - * @param aNumber It is directory number. - * @param aBasicCode It is basic service code. - * @param aTimer It is timer. - */ - virtual void ProcessForwardingL( - TAction aAction, - TForwardingProcedure aForwarding, - const TDesC& aNumber, - const TDesC& aBasicCode, - const TDesC& aTimer ) = 0; - - /** - * Process barring procedures. - * - * See comments for forwarding, they apply also in here. - * - * @param aAction It is action. - * @param aBarring It contains barring procedure. - * @param aPassword It should be barring password, if required. - * @param aBasicCode It is basic service code. - */ - virtual void ProcessBarringL( - TAction aAction, - TBarringProcedure aBarring, - const TDesC& aPassword, - const TDesC& aBasicCode ) = 0; - - /** - * Process password change - * - * @param aPassword It is password procedure. - * @param aOldPassword It should be old password. - * @param aNewPassword1 It is new password. - * @param aNewPassword2 It is new password. - */ - virtual void ProcessPasswordChangeL( - TPasswordProcedure aPassword, - const TDesC& aOldPassword, - const TDesC& aNewPassword1, - const TDesC& aNewPassword2 ) = 0; - - /** - * Process waiting. - * - * @param aAction It is action. - * @param aBasicCode It is basic service code. - */ - virtual void ProcessWaitingL( - TAction aAction, - const TDesC& aBasicCode ) = 0; - - /** - * Process calling line identification presentation status. - */ - virtual void ProcessClipStatusL() = 0; - - /** - * Process calling line idnetification restriction status. - */ - virtual void ProcessClirStatusL() = 0; - - /** - * Process connected line presentation status. - */ - virtual void ProcessColpStatusL() = 0; - - /** - * Process connected line restriction status. - */ - virtual void ProcessColrStatusL() = 0; - - /** - * Process calling name presentation status. - */ - virtual void ProcessCnapStatusL() = 0; - - public: // Functions from base classes - - /** - * From CPhoneGsmHandlerBase, processes result. - * - * @param aResult It is to be processed. - */ - IMPORT_C virtual void ProcessL( CPhoneGsmParserResult& aResult ); - - private: - - /** - * Process barring result. - */ - void DoProcessBarringL( - TBarringProcedure aBarring, - CPhoneGsmParserResult& aResult ); - - /** - * Process forwarding result. - */ - void DoProcessForwardingL( - TForwardingProcedure aForwarding, - CPhoneGsmParserResult& aResult ); - }; - -#endif // CPHONEGSMSSHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/CPhoneVoipNumberHandler.h --- a/phonesrv_plat/string_parser_api/inc/CPhoneVoipNumberHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,61 +0,0 @@ -/* -* 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: It is base handler for voip number. -* -*/ - - -#ifndef CPHONEVOIPNUMBERHANDLER_H -#define CPHONEVOIPNUMBERHANDLER_H - -// INCLUDES -#include "cphonegsmhandlerbase.h" - -// CLASS DECLARATION - -/** -* It is base handler for phone number. -* -* @since S60 5.0 -* @lib phoneparser.lib -*/ -class CPhoneVoipNumberHandler - : public CPhoneGsmHandlerBase - { - public: // New functions - - /** - * Process dial to voip number - * - * @param aNumber main number part. - * @param aDtmfPostfix DTMF postfix of the number - */ - virtual void ProcessDialToVoipNumberL( - const TDesC& aNumber, - const TDesC& aDtmfPostfix - ) = 0; - - public: // Functions from base classes - - /** - * From CPhoneGsmHandlerBase, processes result. - * - * @param aResult It is to be processed. - */ - IMPORT_C virtual void ProcessL( CPhoneGsmParserResult& aResult ); - }; - -#endif // CPHONEVOIPNUMBERHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/string_parser_api/inc/PhoneGsmParser.h --- a/phonesrv_plat/string_parser_api/inc/PhoneGsmParser.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,164 +0,0 @@ -/* -* Copyright (c) 2002 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: It is class containing static methods to create -* instances of parser and parser results. -* -*/ - - -#ifndef PHONEGSMPARSER_H -#define PHONEGSMPARSER_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class CPhoneGsmParserBase; -class CPhoneGsmParserResult; -class CPhoneGsmOptionContainerBase; -class CPhoneParserFeatures; - -// CLASS DECLARATION - -/** -* It is class containing static methods to create -* instances of parser and parser results. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -class PhoneGsmParser - { - public: // New functions - - /** - * Creates an instance of CPhoneGsmParser, GSM specific parser. - * - * @return Returns new instance of CPhoneGsmParser. - */ - IMPORT_C static CPhoneGsmParserBase* - CreateParserL(); - - /** - * Creates an instance of CPhoneGsmParserResult. - * - * @return Returns new instance of CPhoneGsmParserResult. - */ - IMPORT_C static CPhoneGsmParserResult* - CreateResultL(); - - /** - * Creates option container. - * - * Note that options are defined and set to initial status. - * - * @return Returns new instance of CPhoneGsmOptionContainerBase. - */ - IMPORT_C static CPhoneGsmOptionContainerBase* - CreateOptionContainerL(); - - /** - * Enumerates all common types. - */ - enum TContentType - { - EContentInvalid, - EContentUnknown, // but still valid - EContentPhoneNumber, - EContentSupplementaryService, - EContentUnstructuredService - }; - - /** - * Determines the type of content. - */ - IMPORT_C static TContentType DetermineContentType( - const CPhoneGsmParserResult& aResult ); - - /** - * Checks if it is allowed for arriving call. - * - * Note that this is ui issue. This could be done otherwise, - * but this is clearly the simplest option. - * - * @return ETrue if allowed. - */ - IMPORT_C static TBool IsAllowedForArriving( - const CPhoneGsmParserResult& aResult ); - - /** - * Checks if it is allowed for bad sim state. - * - * Note that this is ui issue. This could be done otherwise, - * but this is clearly the simplest option. - * - * @return ETrue if allowed. - */ - IMPORT_C static TBool IsAllowedForBadSim( - const CPhoneGsmParserResult& aResult ); - -#ifdef __WINS__ - /** - * For testing purposes. - * - * @param aStub feature stub. - */ - IMPORT_C static void UseFeatureStub( CPhoneParserFeatures* aStub ); -#endif // __WINS__ - - /** - * It enumerates the reasons for panics in parser. - */ - enum TPanicReason - { - EIncorrectServiceDescription, - EIncorrectUse, - EOptionNotDefined, - EOptionAlreadyDefined, - EShouldNeverHappen - }; - - /** - * Panic! - * - * @param aReason It is the reason for panic. - */ - static void Panic( TPanicReason aReason ); - - private: - - /** - * Define all options. - * - * @param aOptions It is the option container. - */ - static void DefineOptionsL( - CPhoneGsmOptionContainerBase& aOptions ); - - /** - * Initialise options to default values. - */ - static void InitialiseOptionsToDefaultValues( - CPhoneGsmOptionContainerBase& aOptions ); - - /** - * Creates parser for manufacturer specific procedures. - */ - static CPhoneGsmParserBase* CreateManufacturerProcedureParserLC(); - - }; - -#endif // PHONEGSMPARSER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/telephony_mediator_api/tsrc/ut_telephony_mediator_api/src/ut_telephonymediator_DllMain.cpp --- a/phonesrv_plat/telephony_mediator_api/tsrc/ut_telephony_mediator_api/src/ut_telephonymediator_DllMain.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,38 +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 "ut_callinfos.h" -#include "ut_remotepartyinfos.h" -#include "ut_remotepartyinfo.h" -#include - - - -EXPORT_C MEUnitTest* CreateTestSuiteL() - { - _LIT( KSuiteName, "Mediator API tests" ); - CEUnitTestSuite* rootSuite = CEUnitTestSuite::NewLC( KSuiteName ); - // Note that NewLC leaves the object in the cleanupstack. - rootSuite->AddL( ut_callinfos::NewLC() ); - CleanupStack::Pop(); - rootSuite->AddL( ut_remotepartyinfos::NewLC() ); - CleanupStack::Pop(); - rootSuite->AddL( ut_remotepartyinfo::NewLC() ); - CleanupStack::Pop(); - CleanupStack::Pop( rootSuite ); - return rootSuite; - } diff -r 35488577e233 -r 2fa1fa551b0b phonesrv_plat/telephony_network_information_api/inc/NetworkHandlingDomainPSKeys.h --- a/phonesrv_plat/telephony_network_information_api/inc/NetworkHandlingDomainPSKeys.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -/* -* Copyright (c) 2005 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: Domain Publish & Subscribe keys for network handling - * - * -*/ - - -#ifndef NETWORKHANDLINGDOMAINPSKEYS_H -#define NETWORKHANDLINGDOMAINPSKEYS_H - -const TUid KPSUidNetworkInfo = { 0x10202999 }; -/** -* Used to indicate status of homezone -* -* Possible values: -* 0: None -* 1: City zone -* 2: Home zone - */ -const TUint KNWHomeZoneStatus = 0x00000001; - -enum KNWZoneStatus - { - ENWNone, - ENWCityZone, - ENWHomeZone - }; - -/** -* Used to indicate mode of network -* -* Possible values: -* 0: Unknown mode, Default value -* 1: Gsm mode -* 2: Cdma mode -* 3: Wcdma mode -*/ -const TUint KNWTelephonyNetworkMode = 0x00000002; - -enum KNWNetworkMode - { - ENWNetworkModeUnknown, - ENWNetworkModeGsm, - ENWNetworkModeCdma, - ENWNetworkModeWcdma - }; -/** -* Used to indicate network registration status -* -* Possible values: -* 0: Registration status unknown -* 1: Not registered, no service -* 2: Not registered, service available for emergency calls only -* 3: Not registered, searching for network -* 4: Registered, network busy -* 5: Registered on home network -* 6: Registration denied -* 7: Registered on roaming network -*/ -const TUint KNWRegistrationStatus = 0x00000003; - -enum TNWNetworkRegistrationStatus - { - ENWStatusRegistrationUnknown, - ENWStatusNotRegisteredNoService, - ENWStatusNotRegisteredEmergencyOnly, - ENWStatusNotRegisteredSearching, - ENWStatusRegisteredBusy, - ENWStatusRegisteredOnHomeNetwork, - ENWStatusRegistrationDenied, - ENWStatusRegisteredRoaming - }; - -#endif //NETWORKHANDLINGDOMAINPSKEYS_H \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/CenRep/SATInternalPSKeys.h --- a/satengine/SatServer/CenRep/SATInternalPSKeys.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,85 +0,0 @@ -/* -* Copyright (c) 2004-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: SATEngine Subsystem PubSub uid and keys declaration. -* -*/ - - -#ifndef SATINTERNALPSKEYS_H -#define SATINTERNALPSKEYS_H - -// CONSTANTS - -// SAT Internal Configuration API - -/* - * The UID for internal use only. Using process secure uid 0x1000A833 - * which is define in satserver.mmp - */ -const TUid KPSUidSatServerInternal = { 0x1000A833 }; - -/* - * Indicates the occurred End Key action. Used to determine whether to fetch - * icons from NAA syncronously or asynchronously. When the value is set to 1 - * it indicates that the End Key is pressed and synchronous mode must be used. - * - * Default value: 0 - */ -const TUint32 KSatAppClosedUsingEndKey( 0x00000032 ); - -/** - * Set Up Idle Mode Text. Value is a unicode string with length 0 to 242. - * - * Default value: N/A - **/ -const TUint32 KSatIdleModeText( 0x00000001 ); - -/** - * Set Up Idle Mode Text Icon Id. Possible values are -1 to 255. - * ID Determined independently of SAT. - * - * Default value: N/A - */ -const TUint32 KSatIdleModeTextIconId( 0x00000002 ); - -/** - * Set Up Idle Mode Text Icon qualifier. - * - * Default value: N/A - */ -const TUint32 KSatIdleModeTextIconQualifier( 0x00000004 ); - -/** - * Possible enumerations values for KSatAppClosedUsingEndKey. - */ -enum TSatAppTerminatedEventValue - { - KSatAppTerminatedNormal, - KSatAppTerminatedUsingEndKey - }; - -/** - * Possible enumerations values for KSatIdleModeTextIconQualifier. - */ -enum TSatIdleModeTextIconQualifierValue - { - KSatIdleIconQInit = 0x00, - KSatIdleIconQNoIcon = 0x01, - KSatIdleIconQSelfExplanatory = 0x02, - KSatIdleIconQNotSelfExplanatory = 0x04 - }; - -#endif // SATINTERNALPSKEYS_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/CenRep/keys_sat.xls Binary file satengine/SatServer/CenRep/keys_sat.xls has changed diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CallControlCmd/group/CallControlCmd.mmp --- a/satengine/SatServer/Commands/CallControlCmd/group/CallControlCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project CallControl plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET CallControlCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x1020298B - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CCallControlHandler.cpp -SOURCE ccallcontrolrequesthandler.cpp - -START RESOURCE 1020298B.rss -TARGET CallControlCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY charconv.lib -LIBRARY etelsat.lib -LIBRARY etelmm.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CallControlCmd/group/bld.inf --- a/satengine/SatServer/Commands/CallControlCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project CallControlCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -CallControlCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CallControlCmd/inc/CCallControlHandler.h --- a/satengine/SatServer/Commands/CallControlCmd/inc/CCallControlHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,182 +0,0 @@ -/* -* Copyright (c) 2002-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: CallControl command handler -* -*/ - - - -#ifndef CCALLCONTROLHANDLER_H -#define CCALLCONTROLHANDLER_H - -#include -#include "CSatCommandHandler.h" -#include "SatSTypes.h" - -class MSatUtils; -class CCallControlRequestHandler; - -/** -* Command handler for CallControl command. -* -* @lib CallControlCmd.lib -* @since Series 60 3.0 -*/ -class CCallControlHandler : public CSatCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils Utils inteface - */ - static CCallControlHandler* NewL( MSatUtils* aUtils ); - - /** - * Destructor. - */ - virtual ~CCallControlHandler(); - - public: // Functions from base classes - - /** - * From MSatCommand. - */ - void ClientResponse(); - - public:// New Functions - - /** - * Processes the Cc Request Complete. - * - * @param aErrCode Result of ETelMM Api calling. - */ - void DispatchCcRequestComplete( const TInt aErrCode ); - - /** - * TCcStatus - * Call control status, when there is an asynchronous - * operation is handling by the CCallControlRequestHandler - * we will save some status information - */ - enum TCcStatus - { - ECcIdle = 0, - ECcDialWaiting, - ECcSendSsWaiting, - ECcSendUssdWaiting - }; - - protected: // Functions from base classes - - /** - * From CActive Cancels the usat request. - */ - void DoCancel(); - - /** - * From CSatCommandHandler Requests the command notification. - * @param aStatus Request status to active object notification - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler Precheck before executing the command. - * @return Boolean indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler Need for ui session. - * @return Boolean indicating does this command need UI session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler Called when USAT API notifies that command. - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. Indicates the failure of launching ui client - */ - void UiLaunchFailed(); - - private: - - /** - * C++ default constructor. - */ - CCallControlHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - - /** - * If it is needed that sat makes a no FDN check call or - * send SS or send USSD we should perform these operation - */ - void CallControlClientOperation(); - - /** - * If SAT needs to do Call Control next action, - * i.e. Call Control has modified the type of request, - * then this method should be called - */ - TInt DialNumber(); - - /** - * Make a no FDN check Send SS - */ - TInt SendSs(); - - /** - * Make a no FDN check Send USSD - */ - TInt SendUssd(); - - /** - * Notify session done, start recieve more command. - */ - void CompleteCallControlCmd( TInt aErrCode ); - - private: // Data - - // CallControl command data. - RSat::TCallControlV6 iCallControlData; - // CallControl command package. - RSat::TCallControlV6Pckg iCallControlPckg; - // CallControl send data - TSatNotificationV1 iCallControlSendData; - // CallControl SendData package - TSatNotificationV1Pckg iCallControlSendDataPckg; - // CallControl UI Response data - TSatNotificationRspV1 iCallControlUiRespData; - // CallControl UI Response package - TSatNotificationRspV1Pckg iCallControlUiRespDataPckg; - // Indicates is UI needed or not - TBool iNeedUiSession; - // Handing the asynchronous request - CCallControlRequestHandler* iRequestHandler; - // Current status - TCcStatus iCcStatus; - - }; - -#endif // CCALLCONTROLHANDLER_H - - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CallControlCmd/inc/CallControlCmd.rls --- a/satengine/SatServer/Commands/CallControlCmd/inc/CallControlCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project CallControlCmd -* -*/ - - -#ifndef CALLCONTROLCMD_RLS -#define CALLCONTROLCMD_RLS - -rls_string STRING_r_callcontrolcmd_display_name "CallControl command" -rls_string STRING_r_callcontrolcmd_default_data "CallControlCmd" -rls_string STRING_r_callcontrolcmd_opaque_data "" - -#endif // CALLCONTROLCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CallControlCmd/inc/ccallcontrolrequesthandler.h --- a/satengine/SatServer/Commands/CallControlCmd/inc/ccallcontrolrequesthandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,125 +0,0 @@ -/* -* Copyright (c) 2007-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: Handles CallControl request that need SAT perform -* -*/ - - -#ifndef CCALLCONTROLREQUESTHANDLER_H -#define CCALLCONTROLREQUESTHANDLER_H - -#include -#include "msatmultimodeapi.h" - -class CCallControlHandler; - -/** -* This is the handler for the ETel MM api Request. -* This active objects is registered with ETelMM Api to send request and -* receive notifications about some Request Complete. -* -* @lib CallControlCmd -* @since S60 v5.0.1 -*/ - -class CCallControlRequestHandler : public CActive - { - -public: - - /** - * Two-phased constructor. - * @param aPhone A reference to the MSatMultiModeApi. - * @param aDispatcher Pointer to Ss handler - * @return a pointer to the newly created object. - */ - static CCallControlRequestHandler* NewL( MSatMultiModeApi& aPhone, - CCallControlHandler* aDispatcher ); - - /** - * Destructor. - */ - virtual ~CCallControlRequestHandler(); - - /** - * Access RMobileCall::DialNoFdnCheck by MSatMultiModeApi - * for the paramter information please see the etelmm.h - */ - void DialNumber( const TDesC8& aCallParams, const TDesC& aTelNumber ); - - /** - * Starts send the SS Request (No FDN check). - * for the paramter information please see the etelmm.h - */ - void SendSs( const TDesC& aServiceString ); - - /** - * Starts send the USSD Request (No FDN check). - * for the paramter information please see the etelmm.h - */ - void SendUssd( const TDesC8& aMsgData, const TDesC8& aMsgAttributes ); - - /** - * Cancel the asynchronous operations that required to the ETel MM api - * for the paramter information please see the etelmm.h - */ - void CancelOperation( TInt aOperationType ); - -protected: - - /** - * From CActive, handles the request completion. - */ - void RunL(); - - - /** - * From CActive, handle the request cancel - */ - void DoCancel(); - -private: - - /** - * C++ default constructor. - * @param aPriority An active object priority value. - * @param aPhone A reference to MSatMultiModeApi. - */ - CCallControlRequestHandler( MSatMultiModeApi& aPhone, - CCallControlHandler* aDispatcher ); - - /** - * Two phase contruction. - */ - void ConstructL(); - -private: // Data - - /** - * Reference to the MSatMultiModeApi - */ - MSatMultiModeApi& iPhone; - - /** - * Result of the operations - */ - TInt iCcStatus; - - /** - * Pointer to SendSs command handler - */ - CCallControlHandler* iDispatcher; - }; - -#endif // CCALLCONTROLREQUESTHANDLER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CallControlCmd/src/1020298B.rss --- a/satengine/SatServer/Commands/CallControlCmd/src/1020298B.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1020 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "CallControlCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// CallControlCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO CallControlCmdInfo - { - dll_uid = 0x1020298B; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x1020298C; - version_no = 1; - display_name = STRING_r_callcontrolcmd_display_name; - default_data = STRING_r_callcontrolcmd_default_data; - opaque_data = STRING_r_callcontrolcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CallControlCmd/src/CCallControlHandler.cpp --- a/satengine/SatServer/Commands/CallControlCmd/src/CCallControlHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,650 +0,0 @@ -/* -* Copyright (c) 2002-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: Handles CallControl command -* -*/ - - -//Include Files -#include -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "MSatSUiClientHandler.h" -#include "CCallControlHandler.h" -#include "ccallcontrolrequesthandler.h" -#include "msatmultimodeapi.h" -#include "SatLog.h" - -// USSD DCS coding. -const TUint8 KSatDcs7Bit( 0x40 ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CCallControlHandler::CCallControlHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized, harmless. -CCallControlHandler::CCallControlHandler() : - CSatCommandHandler(), - iCallControlData(), - iCallControlPckg( iCallControlData ), - iCallControlSendData(), - iCallControlSendDataPckg( iCallControlSendData ), - iCallControlUiRespData(), - iCallControlUiRespDataPckg( iCallControlUiRespData ), - iCcStatus( ECcIdle ) - { - LOG( SIMPLE, "CALLCONTROL: \ - CCallControlHandler::CCallControlHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CCallControlHandler::ConstructL() - { - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::ConstructL calling" ) - - iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, - this ); - - iRequestHandler = - CCallControlRequestHandler::NewL( iUtils->MultiModeApi(), this ); - - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCallControlHandler* CCallControlHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::NewL calling" ) - - CCallControlHandler* self = new( ELeave ) CCallControlHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::NewL exiting" ) - return self; - } - - -// ----------------------------------------------------------------------------- -// CCallControlHandler::~CCallControlHandler -// Destructor -// ----------------------------------------------------------------------------- -CCallControlHandler::~CCallControlHandler() - { - LOG( SIMPLE, - "CALLCONTROL: CCallControlHandler::~CCallControlHandler calling" ) - - Cancel(); - - LOG( SIMPLE, - "CALLCONTROL: CCallControlHandler::~CCallControlHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlHandler::ClientResponse -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCallControlHandler::ClientResponse() - { - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::ClientResponse calling" ) - - CallControlClientOperation(); - - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlHandler::DoCancel -// Cancels the sat request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCallControlHandler::DoCancel() - { - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifyCallControlCancel(); - iRequestHandler->CancelOperation( iCcStatus ); - - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlHandler::IssueUSATRequest -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCallControlHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iCallControlData) RSat::TCallControlV6(); - iNeedUiSession = EFalse; - iUtils->USatAPI().NotifyCallControl( aStatus, iCallControlPckg ); - - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlHandler::CommandAllowed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCallControlHandler::CommandAllowed() - { - LOG( SIMPLE, - "CALLCONTROL: CCallControlHandler::CommandAllowed calling - exiting" ) - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CCallControlHandler::NeedUiSession -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CCallControlHandler::NeedUiSession() - { - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::NeedUiSession calling" ) - // UI is not needed, if control is AllowedWithMod and AlphaId is NULL or - // control is Allowed and AlphaId is not provided - - // Get values - RSat::TAlphaId alphaId; - RSat::TAlphaIdValidity validity; - RSat::TControlResult controlResult; - - // Get Alpha Id and Control result by SIM. - iCallControlPckg().GetAlphaId( validity, alphaId ); - iCallControlPckg().GetCcGeneralResult( controlResult ); - - const TBool alphaIdNull( RSat::EAlphaIdNull == alphaId.iStatus || - RSat::EAlphaIdNotSet == alphaId.iStatus ); - - const TBool controlAllowed( - RSat::EAllowedNoModification == controlResult || - RSat::EControlResultNotSet == controlResult ); - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::NeedUiSession \ - controlResult: %d", controlResult ) - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::NeedUiSession \ - alphaId.iStatus: %d", alphaId.iStatus ) - - if ( RSat::EAllowedWithModifications == controlResult && - alphaIdNull ) - { - LOG( NORMAL, "CALLCONTROL: CCallControlHandler::NeedUiSession \ - EAllowedWithModifications" ) - iNeedUiSession = EFalse; - } - else if ( controlAllowed && ( RSat::EAlphaIdProvided != alphaId.iStatus ) ) - { - LOG( NORMAL, "CALLCONTROL: CCallControlHandler::NeedUiSession \ - RSat::EAlphaIdProvided != alphaId.iStatus" ) - iNeedUiSession = EFalse; - } - else - { - iNeedUiSession = ETrue; - } - - // Notify other commands that we are executing. - iUtils->NotifyEvent( MSatUtils::ECallControlExecuting ); - - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::NeedUiSession exiting" ) - return iNeedUiSession; - } - -// ----------------------------------------------------------------------------- -// CCallControlHandler::HandleCommand -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCallControlHandler::HandleCommand() - { - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::HandleCommand calling" ) - - // Check do we need UI - if ( iNeedUiSession ) - { - // Clear send data. - TSatNotificationV1 clear; - iCallControlSendData = clear; - - // Build the IPC package. - RSat::TAlphaId alphaId; - RSat::TAlphaIdValidity validity; - RSat::TControlResult controlResult; - - // Get Alpha Id and Control result by SIM. - iCallControlPckg().GetAlphaId( validity, alphaId ); - iCallControlPckg().GetCcGeneralResult( controlResult ); - - // Enums to UI related parameters - TSatAlphaIdStatus satAlphaIdStatus; - TSatControlResult satControlResult; - - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::HandleCommand\ - alphaId.iStatus: %d", alphaId.iStatus ) - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::HandleCommand\ - controlResult: %d", controlResult ) - // Map RSat value - switch ( alphaId.iStatus ) - { - case RSat::EAlphaIdProvided : - { - satAlphaIdStatus = ESatAlphaIdNotNull; - break; - } - - case RSat::EAlphaIdNotPresent : - { - satAlphaIdStatus = ESatAlphaIdNotProvided; - break; - } - - // Use this also as a default value - case RSat::EAlphaIdNull : - case RSat::EAlphaIdNotSet : - default : - { - satAlphaIdStatus = ESatAlphaIdNull; - break; - } - } - - // Map RSat value - switch ( controlResult ) - { - case RSat::ENotAllowed : - { - satControlResult = ESatNotAllowed; - break; - } - - case RSat::EAllowedWithModifications : - { - satControlResult = ESatAllowedWithModifications; - break; - } - - // Use this also as a default value - case RSat::EAllowedNoModification : - case RSat::EControlResultNotSet : - default : - { - satControlResult = ESatAllowedNoModification; - break; - } - } - - // Get information needed. - iCallControlSendData.iCommand = ESatSCallControlNotify; - iCallControlSendData.iText = alphaId.iAlphaId; - iCallControlSendData.iAlphaIdStatus = satAlphaIdStatus; - iCallControlSendData.iControlResult = satControlResult; - - // Register notification observer - TRAPD( regErr, iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, - this ) - ); // TRAPD - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::HandleCommand \ - regErr: %d",regErr ) - // No need to check error value, since we cannot send terminal - // response for this command - if ( KErrNone == regErr ) - { - // Get UISession. - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - - // Send command to SatClient. - uiSession->SendCommand( &iCallControlSendDataPckg, - &iCallControlUiRespDataPckg, ESatSProactiveNotification ); - } - } - else - { - LOG( NORMAL, "CCallControlHandler::HandleCommand UI isn't needed" ) - CallControlClientOperation(); - } - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlHandler::UiLaunchFailed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCallControlHandler::UiLaunchFailed() - { - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::UiLaunchFailed calling" ) - - // We cannot send terminal response to SIM since it doesn't - // expect terminal response from MoSmControl command... - - // Inform the session that we are done here - iUtils->NotifyEvent( MSatUtils::EDelaySimSessionEnd ); - - // Start to receive more commands. - Start(); - - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlHandler::CallControlClientOperation -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCallControlHandler::CallControlClientOperation() - { - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::CallControlClientOperation\ - calling" ) - RSat::TCallParamOrigin controlOrigin; - iCallControlData.GetCallParamOrigin( controlOrigin ); - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::\ - CallControlClientOperation GetCallParamOrigin = %d", controlOrigin ) - iCcStatus = ECcIdle; - - RSat::TActionOriginator actionOrigin; - iCallControlData.GetActionOriginator( actionOrigin ); - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::\ - CallControlClientOperation GetActionOriginator: %d", actionOrigin ) - - if ( RSat::EClientOriginator == actionOrigin ) - { - RSat::TCallControlType controlType; - iCallControlData.GetCallControlType( controlType ); - - switch ( controlType ) - { - case RSat::ECcAddress: - { - LOG( NORMAL, "CALLCONTROL: CCallControlHandler::\ - CallControlClientOperation ControlType ECcArddress" ) - if ( KErrNone == DialNumber() ) - { - iCcStatus = ECcDialWaiting; - } - break; - } - case RSat::ECcSsString: - { - LOG( NORMAL, "CALLCONTROL: CCallControlHandler::\ - CallControlClientOperation ControlType ECcSsString" ) - if ( KErrNone == SendSs() ) - { - iCcStatus = ECcSendSsWaiting; - } - break; - } - case RSat::ECcUssdString: - { - LOG( NORMAL, "CALLCONTROL: CCallControlHandler::\ - CallControlClientOperation ControlType ECcUssdString" ) - if ( KErrNone == SendUssd() ) - { - iCcStatus = ECcSendUssdWaiting; - } - break; - } - default: - { - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::\ - CallControlClientOperation ControlType %d", controlType ) - break; - } - } - } - - if ( ECcIdle == iCcStatus ) - { - CompleteCallControlCmd( KErrNone ); - } - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::CallControlClientOperation\ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlHandler::DialNumber -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCallControlHandler::DialNumber() - { - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::DialNumber calling" ) - TInt err( KErrNone ); - iCcStatus = ECcDialWaiting; - RSat::TCallSetUpParams callParams; - err = iCallControlData.GetCallSetUpDetails ( callParams ); - - if ( !err ) - { - RMobileCall::TMobileCallParamsV7 dialParams; - dialParams.iAutoRedial = ETrue; - dialParams.iBearerMode = RMobileCall::EMulticallNewBearer; - dialParams.iCallParamOrigin = RMobileCall::EOriginatorEtelClient; - dialParams.iSubAddress = callParams.iSubAddress; - dialParams.iBearerCap1 = callParams.iCcp1; - dialParams.iBearerCap2 = callParams.iCcp2; - iCallControlData.GetBCRepeatIndicator( - reinterpret_cast< RSat::TBCRepeatIndicator& > - ( dialParams.iBCRepeatIndicator ) ); - dialParams.iIconId.iQualifier = RMobileCall::EIconQualifierNotSet; - dialParams.iIconId.iIdentifier = 0; - - RSat::TAlphaId alphaid; - RSat::TAlphaIdValidity validity; - iCallControlData.GetAlphaId( validity, alphaid ); - - if ( (RSat::EValidAlpaId == validity) - && ( RSat::EAlphaIdProvided == alphaid.iStatus ) ) - { - LOG2( NORMAL, - "CALLCONTROL: CCallControlHandler::DialNumber id:%S", - &alphaid.iAlphaId ) - dialParams.iAlphaId = alphaid.iAlphaId; - } - - LOG2( NORMAL, - "CALLCONTROL: CCallControlHandler::DialNumber string %S", - &callParams.iAddress.iTelNumber ) - - - RMobileCall::TMobileCallParamsV7Pckg package( dialParams ); - iRequestHandler->DialNumber( package, callParams.iAddress.iTelNumber ); - } - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::DialNumber exiting %d", - err) - return err; - } - -// ----------------------------------------------------------------------------- -// CCallControlHandler::SendSS -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCallControlHandler::SendSs() - { - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::SendSs calling" ) - TInt err( KErrNone ); - - RSat::TSsString ssString; - err = iCallControlData.GetSendSsDetails( ssString ); - if ( !err ) - { - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::SendSs type %d", - ssString.iTypeOfNumber ) - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::SendSs plan %d", - ssString.iNumberPlan ) - - HBufC16* ss16 = HBufC16::New( ssString.iSsString.Length() ); - if ( ss16 ) - { - TPtr16 ssPtr( ss16->Des() ); - CnvUtfConverter::ConvertToUnicodeFromUtf8( ssPtr, - ssString.iSsString ); - - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::SendSs string %S", - ss16 ) - iRequestHandler->SendSs( *ss16 ); - delete ss16; - } - else - { - err = KErrNoMemory; - } - } - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::SendSs exiting %d", err) - return err; - } - -// ----------------------------------------------------------------------------- -// CCallControlHandler::SendUssd -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CCallControlHandler::SendUssd() - { - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::SendUssd calling" ) - TInt err( KErrNone ); - RSat::TUssdString ussdString; - err = iCallControlData.GetSendUssdDetails ( ussdString ); - if ( !err ) - { - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::SendUssd string %S", - &ussdString.iUssdString ) - - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::SendUssd schema %d", - ussdString.iDcs ) - - RMobileUssdMessaging::TMobileUssdAttributesV1 ussdAttr; - - - if ( KSatDcs7Bit == ussdString.iDcs ) - { - ussdAttr.iFormat= RMobileUssdMessaging::EFormatPackedString; - } - else - { - ussdAttr.iFormat= RMobileUssdMessaging::EFormatUnspecified; - } - - HBufC8* ussd8 = HBufC8::New( ussdString.iUssdString.Length() ); - if ( ussd8 ) - { - ussd8->Des().Copy( ussdString.iUssdString ); - - ussdAttr.iFlags = RMobileUssdMessaging::KUssdDataFormat - | RMobileUssdMessaging::KUssdMessageType - | RMobileUssdMessaging::KUssdMessageDcs; - - ussdAttr.iDcs = ussdString.iDcs; - ussdAttr.iType = RMobileUssdMessaging::EUssdMORequest; - RMobileUssdMessaging::TMobileUssdAttributesV1Pckg - ussdPckg( ussdAttr ); - - iRequestHandler->SendUssd ( *ussd8, ussdPckg ); - delete ussd8; - } - else - { - err = KErrNoMemory; - } - } - - LOG2( NORMAL, "CALLCONTROL: CCallControlHandler::SendUssd exiting %d", - err) - return err; - } - - -// ----------------------------------------------------------------------------- -// CCallControlHandler::DispatchCcRequestComplete -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCallControlHandler::DispatchCcRequestComplete( TInt aErrCode ) - { - LOG( SIMPLE, - "CALLCONTROL: CCallControlHandler::DispatchCcRequestComplete calling" ) - - LOG2( NORMAL, - "CALLCONTROL: CCallControlHandler::DispatchCcRequestComplete aErrCode %d", - aErrCode ) - - iCcStatus = ECcIdle; - CompleteCallControlCmd( aErrCode ); - - LOG2( NORMAL, - "CALLCONTROL: CCallControlHandler::SendUssd exiting %d", aErrCode ) - } - - -// ----------------------------------------------------------------------------- -// CCallControlHandler::CompleteCallControlCmd -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CCallControlHandler::CompleteCallControlCmd( TInt /*aErrCode*/ ) - { - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::CompleteCallControlCmd\ - calling" ) - - // Start to receive more commands. We have to start again here because - // we don't send terminal response, wich does this automatically. - Start(); - - // Inform the system that we are finished executing. If there is - // proactive SendSm command pending, it is notified and it continues - // from here. - iUtils->NotifyEvent( MSatUtils::ECallControlDone ); - - // If we launched UI, close it. - if ( !iUtils->SatUiHandler().UiLaunchedByUser() ) - { - iUtils->NotifyEvent( MSatUtils::ESimSessionEndCallBack ); - } - else - { - // Inform the session that we are done here. - iUtils->NotifyEvent( MSatUtils::EDelaySimSessionEnd ); - } - - // We do not send TerminalResponse to SIM. - LOG( SIMPLE, "CALLCONTROL: CCallControlHandler::CompleteCallControlCmd\ - exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CallControlCmd/src/ccallcontrolrequesthandler.cpp --- a/satengine/SatServer/Commands/CallControlCmd/src/ccallcontrolrequesthandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,224 +0,0 @@ -/* -* 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: Handles CallControl request that need SAT perform -* -*/ - - -#include - -#include "ccallcontrolrequesthandler.h" -#include "CCallControlHandler.h" -#include "SatLog.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CCallControlRequestHandler::CCallControlRequestHandler -// The class constructor. -// ----------------------------------------------------------------------------- -// -CCallControlRequestHandler::CCallControlRequestHandler( - MSatMultiModeApi& aPhone, CCallControlHandler* aDispatcher ) - : CActive( EPriorityStandard ), iPhone( aPhone ), - iDispatcher( aDispatcher ) - { - LOG( SIMPLE, - "CALLCONTROL: CCallControlRequestHandler::CCallControlRequestHandler \ - calling" ) - - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "CALLCONTROL: CCallControlRequestHandler::CCallControlRequestHandler \ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlRequestHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCallControlRequestHandler* CCallControlRequestHandler::NewL( - MSatMultiModeApi& aPhone, CCallControlHandler* aDispatcher ) - { - LOG( SIMPLE, "CALLCONTROL: CCallControlRequestHandler::NewL calling" ) - - CCallControlRequestHandler* self = - new ( ELeave ) CCallControlRequestHandler( aPhone, aDispatcher ); - - LOG( SIMPLE, "CALLCONTROL: CCallControlRequestHandler::NewL exiting" ) - return self; - } - - -// ----------------------------------------------------------------------------- -// CCallControlRequestHandler::~CCallControlRequestHandler -// Destructor -// ----------------------------------------------------------------------------- -// -CCallControlRequestHandler::~CCallControlRequestHandler() - { - LOG( SIMPLE, "CALLCONTROL: \ - CCallControlRequestHandler::~CCallControlRequestHandler calling" ) - - Cancel(); - iDispatcher = NULL; - - LOG( SIMPLE, "CALLCONTROL: \ - CCallControlRequestHandler::~CCallControlRequestHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlRequestHandler::DialNumber -// ----------------------------------------------------------------------------- -// -void CCallControlRequestHandler::DialNumber( const TDesC8& aCallParams, - const TDesC& aTelNumber ) - { - LOG( SIMPLE, "CALLCONTROL: CCallControlRequestHandler::DialNumber calling" ) - - if ( !IsActive() ) - { - iPhone.DialNoFdnCheck( iStatus, aCallParams, aTelNumber ); - SetActive(); - } - else - { - iDispatcher->DispatchCcRequestComplete( KErrInUse ); - } - - LOG( SIMPLE, "CALLCONTROL: CCallControlRequestHandler::DialNumber exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlRequestHandler::SendSs -// ----------------------------------------------------------------------------- -// -void CCallControlRequestHandler::SendSs( const TDesC& aServiceString ) - { - LOG( SIMPLE, "CALLCONTROL: CCallControlRequestHandler::SendSs calling" ) - - if ( !IsActive() ) - { - iPhone.SendNetworkServiceRequestNoFdnCheck( iStatus, aServiceString ); - SetActive(); - } - else - { - iDispatcher->DispatchCcRequestComplete( KErrInUse ); - } - - LOG( SIMPLE, "CALLCONTROL: CCallControlRequestHandler::SendSs exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlRequestHandler::SendUssd -// ----------------------------------------------------------------------------- -// -void CCallControlRequestHandler::SendUssd( const TDesC8& aMsgData, - const TDesC8& aMsgAttributes ) - { - LOG( SIMPLE, "CALLCONTROL: CCallControlRequestHandler::SendUssd calling" ) - - if ( !IsActive() ) - { - iPhone.SendMessageNoFdnCheck( iStatus, aMsgData, aMsgAttributes ); - SetActive(); - } - else - { - iDispatcher->DispatchCcRequestComplete( KErrInUse ); - } - - LOG( SIMPLE, "CALLCONTROL: CCallControlRequestHandler::SendUssd exiting" ) - } - - -// ----------------------------------------------------------------------------- -// CCallControlRequestHandler::RunL -// Handles the command. -// ----------------------------------------------------------------------------- -// -void CCallControlRequestHandler::RunL() - { - LOG( SIMPLE, "CALLCONTROL: CCallControlRequestHandler::RunL calling" ) - - if ( iStatus == KErrNone ) - { - LOG( NORMAL, "CALLCONTROL: CCallControlRequestHandler::RunL\ - iStatus == KErrNone" ) - iDispatcher->DispatchCcRequestComplete( iCcStatus ); - } - else - { - LOG2( NORMAL, "CALLCONTROL: CCallControlRequestHandler::RunL\ - iStatus == %i", iStatus.Int() ) - iDispatcher->DispatchCcRequestComplete( KErrGeneral ); - } - - LOG( SIMPLE, "CALLCONTROL: CCallControlRequestHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CCallControlRequestHandler::CancelOperation -// ----------------------------------------------------------------------------- -// -void CCallControlRequestHandler::CancelOperation( TInt aOperationType ) - { - LOG( SIMPLE, "CALLCONTROL: \ - CCallControlRequestHandler::CancelOperation calling" ) - - LOG2( NORMAL, "CALLCONTROL: \ - CCallControlRequestHandler::CancelOperation callingOperation Type %d", - aOperationType ) - - switch( aOperationType ) - { - case CCallControlHandler::ECcDialWaiting: - { - iPhone.DialCancel(); - break; - } - case CCallControlHandler::ECcSendSsWaiting: - { - iPhone.CancelAsyncRequest( - EMobilePhoneSendNetworkServiceRequestNoFdnCheck ); - break; - } - case CCallControlHandler::ECcSendUssdWaiting: - { - iPhone.CancelAsyncRequest( - EMobileUssdMessagingSendMessageNoFdnCheck ); - break; - } - } - LOG( SIMPLE, - "CALLCONTROL: CCallControlRequestHandler::CancelOperation exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CCallControlRequestHandler::DoCancel() - { - LOG( SIMPLE, "CALLCONTROL: CCallControlRequestHandler::DoCancel calling" ) - - LOG( SIMPLE, "CALLCONTROL: CCallControlRequestHandler::DoCancel exiting" ) - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CallControlCmd/src/std.cpp --- a/satengine/SatServer/Commands/CallControlCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CCallControlHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x1020298C, CCallControlHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CloseChannelCmd/group/CloseChannelCmd.mmp --- a/satengine/SatServer/Commands/CloseChannelCmd/group/CloseChannelCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project CloseChannel plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET CloseChannelCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x102078DB - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CCloseChannelHandler.cpp - -START RESOURCE 102078DB.rss -TARGET CloseChannelCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CloseChannelCmd/group/bld.inf --- a/satengine/SatServer/Commands/CloseChannelCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project CloseChannel plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -CloseChannelCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CloseChannelCmd/inc/CCloseChannelHandler.h --- a/satengine/SatServer/Commands/CloseChannelCmd/inc/CCloseChannelHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,180 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: CloseChannel command handler -* -*/ - - - -#ifndef CCLOSECHANNELHANDLER_H -#define CCLOSECHANNELHANDLER_H - -#include - -#include "CSatCommandHandler.h" -#include "SatSTypes.h" - -class MSatUtils; - -// CLASS DECLARATION - -/** -* Command handler for CloseChannel command. -* -* @lib CloseChannelCmd.lib -* @since Series 60 v3.0 -*/ -class CCloseChannelHandler : public CSatCommandHandler - { - -public: - - static CCloseChannelHandler* NewL( MSatUtils* aUtils ); - - virtual ~CCloseChannelHandler(); - -// from base class MSatCommand - - /** - * From MSatCommand. - * Response from the client - * - */ - void ClientResponse(); - -protected: - -// from base class CActive - - /** - * From CActive. - * Cancels the usat request. - * - */ - void DoCancel(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler. - * Requests the command notification. - * - * @param aStatus Request status to active object notification - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler. - * Precheck before executing the command. - * - * @return TBool indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler. - * Need for ui session. - * - * @return TBool indicating does this command need UI session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler. - * Called when USAT API notifies that command. - * - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. - * Indicates the failure of launching ui client. - * - */ - void UiLaunchFailed(); - -private: - - CCloseChannelHandler(); - - /** - * Sends notification to UI. - * - * @return KErrNone if notification is sent successfully - */ - TInt SendUiNotification(); - -private: // data - - /** - * CloseChannel command data - */ - RSat::TCloseChannelV2 iCloseChannelData; - - /** - * CloseChannel command package - */ - RSat::TCloseChannelV2Pckg iCloseChannelPckg; - - /** - * CloseChannel response data - */ - RSat::TCloseChannelRspV2 iCloseChannelRspData; - - /** - * CloseChannel response package - */ - RSat::TCloseChannelRspV2Pckg iCloseChannelRspPckg; - - /** - * Data to UI - */ - TSatNotificationV1 iCloseChannelUiData; - - /** - * IPC Package to ui data - */ - TSatNotificationV1Pckg iCloseChannelUiPckg; - - /** - * UI Response - */ - TSatNotificationRspV1 iCloseChannelUiRsp; - - /** - * IPC Package to response - */ - TSatNotificationRspV1Pckg iCloseChannelUiRspPckg; - - /** - * Flag to signal client response that handle command is not done - */ - TBool iWaitHandleCloseCommand; - - /** - * Flag to signal that icon response is needed before terminal - * response is done - */ - TBool iWaitClientIconResponse; - - /** - * Flag to signal that command has icon data - * To be removed when icons are allowed in this command - */ - TBool iIconCommand; - - }; - -#endif // CCLOSECHANNELHANDLER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CloseChannelCmd/inc/CloseChannelCmd.rls --- a/satengine/SatServer/Commands/CloseChannelCmd/inc/CloseChannelCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project CloseChannelCmd -* -*/ - - -#ifndef CLOSECHANNELCMD_RLS -#define CLOSECHANNELCMD_RLS - -rls_string STRING_r_closechannelcmd_display_name "CloseChannel command" -rls_string STRING_r_closechannelcmd_default_data "CloseChannelCmd" -rls_string STRING_r_closechannelcmd_opaque_data "" - -#endif // CLOSECHANNELCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CloseChannelCmd/src/102078DB.rss --- a/satengine/SatServer/Commands/CloseChannelCmd/src/102078DB.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1020 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "CloseChannelCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// CloseChannelCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO CloseChannelCmdInfo - { - dll_uid = 0x102078DB; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x102078DC; - version_no = 1; - display_name = STRING_r_closechannelcmd_display_name; - default_data = STRING_r_closechannelcmd_default_data; - opaque_data = STRING_r_closechannelcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CloseChannelCmd/src/CCloseChannelHandler.cpp --- a/satengine/SatServer/Commands/CloseChannelCmd/src/CCloseChannelHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,491 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles CloseChannel command -* -*/ - - -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatBIPUtils.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CCloseChannelHandler.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CCloseChannelHandler* CCloseChannelHandler::NewL( MSatUtils* aUtils ) - { - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::NewL calling" ) - - CCloseChannelHandler* self = new( ELeave ) CCloseChannelHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - // ConstructL not needed. - CleanupStack::Pop( self ); - - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -// -CCloseChannelHandler::~CCloseChannelHandler() - { - LOG( NORMAL, - "CLOSECHANNEL: CCloseChannelHandler::~CCloseChannelHandler calling" ) - - Cancel(); - - LOG( NORMAL, - "CLOSECHANNEL: CCloseChannelHandler::~CCloseChannelHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatCommand. -// Response from client -// ----------------------------------------------------------------------------- -// -void CCloseChannelHandler::ClientResponse() - { - LOG( NORMAL, - "CLOSECHANNEL: CCloseChannelHandler::ClientResponse calling" ) - - // Send terminal response if closing channel doesn't have to be waited and - // it was necessary to wait UI response due to icon response - if ( !iWaitHandleCloseCommand && iWaitClientIconResponse ) - { - // requested icon not shown - if ( !iCloseChannelUiRsp.iRequestedIconDisplayed ) - { - LOG( NORMAL, "CCloseChannelHandler::ClientResponse requested icon\ - not shown" ) - // Icons are not yet supported - iCloseChannelRspData.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - else - { - LOG( NORMAL, "CCloseChannelHandler::ClientResponse success" ) - iCloseChannelRspData.iGeneralResult = RSat::KSuccess; - } - - iCloseChannelRspData.iInfoType = RSat::KNoAdditionalInfo; - iCloseChannelRspData.iAdditionalInfo.Zero(); - TerminalRsp( RSat::ECloseChannel, iCloseChannelRspPckg ); - } - - iWaitClientIconResponse = EFalse; - LOG( NORMAL, - "CLOSECHANNEL: CCloseChannelHandler::ClientResponse calling" ) - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CCloseChannelHandler::DoCancel() - { - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifyCloseChannelCancel(); - - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Requests the command notification. -// ----------------------------------------------------------------------------- -// -void CCloseChannelHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( NORMAL, - "CLOSECHANNEL: CCloseChannelHandler::IssueUSATRequest calling" ) - - // Reset command data. - new (&iCloseChannelData) RSat::TCloseChannelV2(); - - iUtils->USatAPI().NotifyCloseChannel( aStatus, iCloseChannelPckg ); - - LOG( NORMAL, - "CLOSECHANNEL: CCloseChannelHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Precheck before executing the command. -// ----------------------------------------------------------------------------- -// -TBool CCloseChannelHandler::CommandAllowed() - { - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::CommandAllowed calling" ) - TBool commandAllowed( ETrue ); - - LOG2( NORMAL, - "CLOSECHANNEL: CCloseChannelHandler::CommandAllowed \ - iCloseChannelData.iAlphaId.iStatus: %d", - iCloseChannelData.iAlphaId.iStatus ) - - LOG2( NORMAL, - "CLOSECHANNEL: CCloseChannelHandler::CommandAllowed \ - iCloseChannelData.iIconId.iQualifier: %d", - iCloseChannelData.iIconId.iQualifier ) - - // If icon data without alpha id - if ( ( RSat::EAlphaIdProvided != iCloseChannelData.iAlphaId.iStatus ) && - ( ( RSat::ESelfExplanatory == - iCloseChannelData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iCloseChannelData.iIconId.iQualifier ) ) ) - { - commandAllowed = EFalse; - iCloseChannelRspData.iGeneralResult = RSat::KCmdDataNotUnderstood; - iCloseChannelRspData.iInfoType = RSat::KNoAdditionalInfo; - iCloseChannelRspData.iAdditionalInfo.Zero(); - iCloseChannelRspData.SetPCmdNumber( iCloseChannelData.PCmdNumber() ); - TerminalRsp( RSat::ECloseChannel, iCloseChannelRspPckg ); - LOG( SIMPLE, - "CLOSECHANNEL: CCloseChannelHandler::CommandAllowed \ - data not understood" ) - } - // Set icon command flag whether icon data was received and set qualifier - // to no icon id - // To be removed when icons are allowed in this command - else if ( ( RSat::ESelfExplanatory == - iCloseChannelData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iCloseChannelData.iIconId.iQualifier ) ) - { - LOG( NORMAL, "CCloseChannelHandler::CommandAllowed set no icon id" ) - iIconCommand = ETrue; - iCloseChannelData.iIconId.iQualifier = RSat::ENoIconId; - } - else - { - LOG( NORMAL, "CCloseChannelHandler::CommandAllowed others" ) - iIconCommand = EFalse; - } - - LOG2( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::CommandAllowed \ - exiting,commandAllowed: %d", commandAllowed ) - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Need for ui session. -// ----------------------------------------------------------------------------- -// -TBool CCloseChannelHandler::NeedUiSession() - { - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::NeedUiSession calling" ) - - // UI is NOT needed in case where AlphaID is provided and it is a NULL - const TBool retVal( !( RSat::EAlphaIdNull == - iCloseChannelData.iAlphaId.iStatus ) ); - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::NeedUiSession calling" ) - - // Send notification to Mediator client if Cover UI is supported - if ( retVal && iUtils->CoverUiSupported() ) - { - LOG( NORMAL, "CCloseChannelHandler::NeedUiSession CoverUiSupported" ) - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::ECloseChannel; - medEventData.iAlphaId = iCloseChannelData.iAlphaId; - medEventData.iDuration.iNumOfUnits = KSatDefaultDuration; - medEventData.iIconID = iCloseChannelData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - - LOG2( NORMAL, - "CLOSECHANNEL: CCloseChannelHandler::NeedUiSession exiting,retVal: %d", - retVal ) - return retVal; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when USAT API notifies that command. -// ----------------------------------------------------------------------------- -// -void CCloseChannelHandler::HandleCommand() - { - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::HandleCommand calling" ) - - // Notify other's about this command execution. - iUtils->NotifyEvent( MSatUtils::ECloseChannelExecuting ); - - TInt uiError( KErrNone ); - - // Reset flags - iWaitHandleCloseCommand = EFalse; - iWaitClientIconResponse = EFalse; - - // If information indication to the user is needed, show it now. - if ( !( RSat::EAlphaIdNull == iCloseChannelData.iAlphaId.iStatus ) ) - { - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::HandleCommand \ - Sending UI Notification" ) - iWaitHandleCloseCommand = ETrue; - uiError = SendUiNotification(); - } - LOG2( NORMAL, "CCloseChannelHandler::HandleCommand uiError: %i", - uiError ) - // Check UI error status - if ( KErrNone == uiError ) - { - // Proceed with the command - const TInt channelId( iCloseChannelData.iDestination ); - LOG2( NORMAL, - "CLOSECHANNEL: CCloseChannelHandler::HandleCommand channelId: %d", - channelId ) - if ( RSat::KChannel1 > channelId || RSat::KChannel7 < channelId ) - { - // Create the response IPC package - iCloseChannelRspData.SetPCmdNumber( - iCloseChannelData.PCmdNumber() ); - iCloseChannelRspData.iGeneralResult = RSat::KCmdDataNotUnderstood; - iCloseChannelRspData.iInfoType = RSat::KNoAdditionalInfo; - iCloseChannelRspData.iAdditionalInfo.Zero(); - iWaitClientIconResponse = EFalse; - } - else - { - // Close the channel - const TInt err( iUtils->BipUtils().CloseChannel( channelId ) ); - // Create the response IPC package - iCloseChannelRspData.SetPCmdNumber( - iCloseChannelData.PCmdNumber() ); - - // Check were the channel close-up success. - if ( MSatBIPUtils::ESatBIPSuccess != err ) - { - LOG2( NORMAL, - "CLOSECHANNEL: CCloseChannel::HandleCommand Error %i", err ) - iCloseChannelRspData.iGeneralResult = - RSat::KBearerIndepProtocolError; - iCloseChannelRspData.iInfoType = RSat::KMeProblem; - iCloseChannelRspData.iAdditionalInfo.SetLength( 1 ); - iCloseChannelRspData.iAdditionalInfo[0] = - static_cast ( err ); - iWaitClientIconResponse = EFalse; - } - else - { - LOG( NORMAL, - "CLOSECHANNEL: CCloseChannel::HandleCommand success") - LOG2( NORMAL, - "CLOSECHANNEL: CCloseChannel::HandleCommand \ - iCloseChannelUiRsp.iRequestedIconDisplayed: %i", - iCloseChannelUiRsp.iRequestedIconDisplayed ) - - LOG2( NORMAL, - "CLOSECHANNEL: CCloseChannel::HandleCommand \ - iCloseChannelData.iIconId.iQualifier: %i", - iCloseChannelData.iIconId.iQualifier ) - // requested icon not shown - if ( !iCloseChannelUiRsp.iRequestedIconDisplayed && - ( ( RSat::ENotSelfExplanatory == - iCloseChannelData.iIconId.iQualifier ) || - ( RSat::ESelfExplanatory == - iCloseChannelData.iIconId.iQualifier ) ) ) - { - // Icons could not be shown - iCloseChannelRspData.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - else - { - iCloseChannelRspData.iGeneralResult = RSat::KSuccess; - } - - // No additional info for CloseChannel - iCloseChannelRspData.iInfoType = RSat::KNoAdditionalInfo; - iCloseChannelRspData.iAdditionalInfo.Zero(); - } - } - - iWaitHandleCloseCommand = EFalse; - - // If command had icon data and was done succesfully, report that icon - // was not shown - // To be removed when icons are allowed in this command - if ( ( RSat::KSuccess == iCloseChannelRspData.iGeneralResult ) && - iIconCommand ) - { - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::\ - HandleCommand requested icon not shown" ) - iCloseChannelRspData.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - - // Send terminal response if UI response doesn't have to be waited - if ( !iWaitClientIconResponse ) - { - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::\ - HandleCommand send terminal response" ) - TerminalRsp( RSat::ECloseChannel, iCloseChannelRspPckg ); - } - } - - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Indicates the failure of launching ui client. -// ----------------------------------------------------------------------------- -// -void CCloseChannelHandler::UiLaunchFailed() - { - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::UiLaunchFailed calling" ) - - iCloseChannelRspData.iGeneralResult = RSat::KMeUnableToProcessCmd; - iCloseChannelRspData.iInfoType = RSat::KMeProblem; - iCloseChannelRspData.iAdditionalInfo.SetLength( 1 ); - iCloseChannelRspData.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iCloseChannelRspData.SetPCmdNumber( iCloseChannelData.PCmdNumber() ); - TerminalRsp( RSat::ECloseChannel, iCloseChannelRspPckg ); - - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized. -CCloseChannelHandler::CCloseChannelHandler() : - CSatCommandHandler(), - iCloseChannelData(), - iCloseChannelPckg( iCloseChannelData ), - iCloseChannelRspData(), - iCloseChannelRspPckg( iCloseChannelRspData ), - iCloseChannelUiData(), - iCloseChannelUiPckg( iCloseChannelUiData ), - iCloseChannelUiRsp(), - iCloseChannelUiRspPckg( iCloseChannelUiRsp ), - iWaitHandleCloseCommand( EFalse ), - iWaitClientIconResponse( EFalse ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( NORMAL, "CLOSECHANNEL: CCloseChannelHandler::CCloseChannelHandler \ - calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// Sends notification to UI. -// ----------------------------------------------------------------------------- -// -TInt CCloseChannelHandler::SendUiNotification() - { - LOG( NORMAL, - "CloseChannel: CCloseChannelHandler::SendUiNotification calling" ) - - // Register to ui service request - TRAPD( uiError, iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, - this ) ); - LOG2( NORMAL, "CCloseChannelHandler::SendUiNotification uiError: %i", - uiError ) - if ( KErrNone != uiError ) - { - // Send error terminal response - UiLaunchFailed(); - } - else - { - // Create IPC data to UI - iCloseChannelUiData.iCommand = ESatSCloseChannelNotify; - iCloseChannelUiData.iText = iCloseChannelData.iAlphaId.iAlphaId; - iCloseChannelUiData.iIconId.iIdentifier - = iCloseChannelData.iIconId.iIdentifier; - - // Define icon qualifier - if ( RSat::ENotSelfExplanatory == - iCloseChannelData.iIconId.iQualifier ) - { - LOG( NORMAL, "CloseChannel: CCloseChannelHandler::\ - SendUiNotification ENotSelfExplanatory" ) - iCloseChannelUiData.iIconId.iIconQualifier = - ESatNotSelfExplanatory; - // Terminal response may be only when UI has resposed - iWaitClientIconResponse = ETrue; - } - else if ( RSat::ESelfExplanatory == - iCloseChannelData.iIconId.iQualifier ) - { - LOG( NORMAL, "CloseChannel: CCloseChannelHandler::\ - SendUiNotification ESelfExplanatory" ) - iCloseChannelUiData.iIconId.iIconQualifier = ESatSelfExplanatory; - // Terminal response may be only when UI has resposed - iWaitClientIconResponse = ETrue; - } - else // Icon qualifier not present - { - LOG( NORMAL, "CloseChannel: CCloseChannelHandler::\ - SendUiNotification others" ) - iCloseChannelUiData.iIconId.iIconQualifier = ESatENoIconId; - } - LOG2( NORMAL, "CCloseChannelHandler::SendUiNotification \ - iCloseChannelData.iAlphaId.iStatus: %i", - iCloseChannelData.iAlphaId.iStatus ) - // Define AlphaID status - switch ( iCloseChannelData.iAlphaId.iStatus ) - { - case RSat::EAlphaIdNotPresent: - { - iCloseChannelUiData.iAlphaIdStatus = ESatAlphaIdNotProvided; - break; - } - - case RSat::EAlphaIdProvided: - { - iCloseChannelUiData.iAlphaIdStatus = ESatAlphaIdNotNull; - break; - } - - default: - { - iCloseChannelUiData.iAlphaIdStatus = ESatAlphaIdNull; - break; - } - } - - // Send notification to UI - MSatUiSession* session = iUtils->SatUiHandler().UiSession(); - session->SendCommand( &iCloseChannelUiPckg, - &iCloseChannelUiRspPckg, - ESatSProactiveNotification ); - } - - LOG( NORMAL, - "CloseChannel: CCloseChannelHandler::SendUiNotification exiting" ) - return uiError; - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/CloseChannelCmd/src/std.cpp --- a/satengine/SatServer/Commands/CloseChannelCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CCloseChannelHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x102078DC, CCloseChannelHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/DisplayTextCmd/group/DisplayTextCmd.mmp --- a/satengine/SatServer/Commands/DisplayTextCmd/group/DisplayTextCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project DisplayText plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET DisplayTextCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x10202989 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CDisplayTextHandler.cpp -SOURCE CClearScreenHandler.cpp - -START RESOURCE 10202989.rss -TARGET DisplayTextCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/DisplayTextCmd/group/bld.inf --- a/satengine/SatServer/Commands/DisplayTextCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project DisplayTextCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -DisplayTextCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/DisplayTextCmd/inc/CClearScreenHandler.h --- a/satengine/SatServer/Commands/DisplayTextCmd/inc/CClearScreenHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,104 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: ClearScreen handler is responsible for clearing screen when -* DisplayText has sent immediate response and it is still active -* when any other command starts to execute. -* -*/ - - - -#ifndef CCLEARSCREENHANDLER_H -#define CCLEARSCREENHANDLER_H - -// INCLUDES -#include -#include "MSatEventObserver.h" - -// CONSTANTS - -// FORWARD DECLARATIONS -class MSatUtils; - -// CLASS DECLARATION - -/** -* CClearScreenHandler for ClearScreen event -* -* @lib DisplayTextCmd.lib -* @since Series 60 3.0 -*/ -class CClearScreenHandler : public CBase, - public MSatEventObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils SAT Utils interface - */ - static CClearScreenHandler* NewL( MSatUtils& aUtils ); - - /** - * Destructor. - */ - virtual ~CClearScreenHandler(); - - public: // New functions - - /** - * Updates immediate response state to ETrue or EFalse - * @param aState new state - */ - void UpdateImmediateState( TBool aState ); - - public: // From MSatEventObserver - - /** - * Notification of event. - * @param aEvent Identifies the event. - */ - void Event( TInt aEvent ); - - private: - - /** - * C++ default constructor. - * @param aUtils SAT Utils interface - */ - CClearScreenHandler( MSatUtils& aUtils ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Sends the request for clear screen. - */ - void ClearScreen(); - - private: // Data - - // Holds immediate response's status. - TBool iImmediateResponse; - - // Utils interface - MSatUtils& iUtils; - - }; - -#endif // CCLEARSCREENHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/DisplayTextCmd/inc/CDisplayTextHandler.h --- a/satengine/SatServer/Commands/DisplayTextCmd/inc/CDisplayTextHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,149 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: DisplayText command handler -* -*/ - - - -#ifndef CDISPLAYTEXTHANDLER_H -#define CDISPLAYTEXTHANDLER_H - -// INCLUDES -#include -#include "CSatCommandHandler.h" -#include "SatSTypes.h" - -// FORWARD DECLARATION -class MSatUtils; -class CClearScreenHandler; - -// CLASS DECLARATION - -/** -* Command handler for DisplayText command. -* -* @lib DisplayTextCmd.lib -* @since Series 60 3.0 -*/ -class CDisplayTextHandler : public CSatCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils SAT Utils interface - */ - static CDisplayTextHandler* NewL( MSatUtils* aUtils ); - - - /** - * Destructor. - */ - virtual ~CDisplayTextHandler(); - - public: // Functions from base classes - - /** - * From MSatCommand. - */ - void ClientResponse(); - - protected: // Functions from base classes - - /** - * From CActive Cancels the usat request. - */ - void DoCancel(); - - /** - * From CSatCommandHandler Requests the command notification. - * @param aStatus Request status - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler Precheck before executing the command. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler Need for ui session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler Called when USAT API notifies that command. - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. Indicates the failure of launching ui client - */ - void UiLaunchFailed(); - - private: - - /** - * C++ default constructor. - */ - CDisplayTextHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Return given duration in seconds. - * @param aDuration Duration data - * @return Return given duration in seconds. - */ - TTimeIntervalSeconds DurationInSeconds( - const RSat::TDuration& aDuration ) const; - - private: // Data - - // DisplayText command data. - RSat::TDisplayTextV2 iDisplayTextData; - - // DisplayText command package. - RSat::TDisplayTextV2Pckg iDisplayTextPckg; - - // Response from client. - RSat::TDisplayTextRspV1 iDisplayTextRsp; - - // Response package. - RSat::TDisplayTextRspV1Pckg iDisplayTextRspPckg; - - // DisplayText IPC data. - TSatDisplayTextV1 iDisplayTextSendData; - - // DisplayText IPC package. - TSatDisplayTextV1Pckg iDisplayTextSendPckg; - - // ClearScreen handler. - CClearScreenHandler* iClearScreenHandler; - - // Own information of Immediate response - TBool iImmediateResponse; - - // Next immediate pending - TBool iImmediatePending; - - }; - -#endif // CDISPLAYTEXTHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/DisplayTextCmd/inc/DisplayTextCmd.rls --- a/satengine/SatServer/Commands/DisplayTextCmd/inc/DisplayTextCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project DisplayTextCmd -* -*/ - - -#ifndef DISPLAYTEXTCMD_RLS -#define DISPLAYTEXTCMD_RLS - -rls_string STRING_r_displaytextcmd_display_name "DisplayText command" -rls_string STRING_r_displaytextcmd_default_data "DisplayTextCmd" -rls_string STRING_r_displaytextcmd_opaque_data "" - -#endif // DISPLAYTEXTCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/DisplayTextCmd/src/10202989.rss --- a/satengine/SatServer/Commands/DisplayTextCmd/src/10202989.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1020 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "DisplayTextCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// DisplayTextCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO DisplayTextCmdInfo - { - dll_uid = 0x10202989; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x1020298A; - version_no = 1; - display_name = STRING_r_displaytextcmd_display_name; - default_data = STRING_r_displaytextcmd_default_data; - opaque_data = STRING_r_displaytextcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/DisplayTextCmd/src/CClearScreenHandler.cpp --- a/satengine/SatServer/Commands/DisplayTextCmd/src/CClearScreenHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,198 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: ClearScreen handler is responsible for clearing screen when -* DisplayText has sent immediate response and it is still active -* when any other command starts to execute. -* -*/ - - - -// INCLUDE FILES -#include "MSatUtils.h" -#include "SatSTypes.h" -#include "CClearScreenHandler.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CClearScreenHandler::CClearScreenHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CClearScreenHandler::CClearScreenHandler( MSatUtils& aUtils ) : - iUtils( aUtils ) - { - LOG( SIMPLE, "DISPLAYTEXT: \ - CClearScreenHandler::CClearScreenHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CClearScreenHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CClearScreenHandler::ConstructL() - { - LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::ConstructL calling" ) - - // Set immediate response to false. - iImmediateResponse = EFalse; - - // List all events we should listen. - iUtils.RegisterL( this, MSatUtils::ESetUpMenuExecuting ); - iUtils.RegisterL( this, MSatUtils::ESelectItemExecuting ); - iUtils.RegisterL( this, MSatUtils::ESetUpCallExecuting ); - iUtils.RegisterL( this, MSatUtils::EDisplayTextExecuting ); - iUtils.RegisterL( this, MSatUtils::ELaunchBrowserExecuting ); - iUtils.RegisterL( this, MSatUtils::EGetInputExecuting ); - iUtils.RegisterL( this, MSatUtils::EGetInkeyExecuting ); - iUtils.RegisterL( this, MSatUtils::ESendDtmfExecuting ); - iUtils.RegisterL( this, MSatUtils::ESendSsExecuting ); - iUtils.RegisterL( this, MSatUtils::ESendUssdExecuting ); - iUtils.RegisterL( this, MSatUtils::EPlayToneExecuting ); - iUtils.RegisterL( this, MSatUtils::ERefreshExecuting ); - iUtils.RegisterL( this, MSatUtils::ECallControlExecuting ); - iUtils.RegisterL( this, MSatUtils::ESendSmExecuting ); - iUtils.RegisterL( this, MSatUtils::EMoSmControlExecuting ); - - LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CClearScreenHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CClearScreenHandler* CClearScreenHandler::NewL( MSatUtils& aUtils ) - { - LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::NewL calling" ) - - CClearScreenHandler* self = - new ( ELeave ) CClearScreenHandler( aUtils ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::NewL exiting" ) - return self; - } - - -// Destructor -CClearScreenHandler::~CClearScreenHandler() - { - LOG( SIMPLE, - "DISPLAYTEXT: CClearScreenHandler::~CClearScreenHandler calling" ) - - // Unregister this as an event observer - iUtils.UnregisterEventObserver( this ); - - LOG( SIMPLE, - "DISPLAYTEXT: CClearScreenHandler::~CClearScreenHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CClearScreenHandler::UpdateImmediateState -// Updates immediate response state. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CClearScreenHandler::UpdateImmediateState( TBool aState ) - { - LOG( SIMPLE, - "DISPLAYTEXT: CClearScreenHandler::UpdateImmediateState calling" ) - - iImmediateResponse = aState; - - LOG( SIMPLE, - "DISPLAYTEXT: CClearScreenHandler::UpdateImmediateState exiting" ) - } - -// ----------------------------------------------------------------------------- -// CClearScreenHandler::Event -// Notification of an event. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CClearScreenHandler::Event( TInt aEvent ) - { - LOG2( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::Event calling, \ - aEvent: %d", aEvent ) - LOG2( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::Event, \ - iImmediateResponse: %d", iImmediateResponse ) - // We don't have to do anything if immediate response is not active. - if ( iImmediateResponse ) - { - switch ( aEvent ) - { - case MSatUtils::ESetUpMenuExecuting: - case MSatUtils::ESelectItemExecuting: - case MSatUtils::ESetUpCallExecuting: - case MSatUtils::EDisplayTextExecuting: - case MSatUtils::ELaunchBrowserExecuting: - case MSatUtils::EGetInputExecuting: - case MSatUtils::EGetInkeyExecuting: - case MSatUtils::ESendDtmfExecuting: - case MSatUtils::ESendSsExecuting: - case MSatUtils::ESendUssdExecuting: - case MSatUtils::EPlayToneExecuting: - case MSatUtils::ERefreshExecuting: - case MSatUtils::ECallControlExecuting: - case MSatUtils::ESendSmExecuting: - case MSatUtils::EMoSmControlExecuting: - { - ClearScreen(); - break; - } - - default: - { - // Do nothing. - break; - } - } - } - - LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// CClearScreenHandler::ClearScreen -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CClearScreenHandler::ClearScreen() - { - LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::ClearScreen calling" ) - LOG2( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::ClearScreen, \ - iImmediateResponse: %d", iImmediateResponse ) - // Clear the screen if immediate response is active. - //lint -e{961} Else block meaningless - if ( iImmediateResponse ) - { - iUtils.NotifyUiEvent( - ESatSClearScreenEvent, ESatEventNone, KErrNone ); - iImmediateResponse = EFalse; - - iUtils.NotifyEvent( MSatUtils::ESustainedTextRemoved ); - } - - LOG( SIMPLE, "DISPLAYTEXT: CClearScreenHandler::ClearScreen exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/DisplayTextCmd/src/CDisplayTextHandler.cpp --- a/satengine/SatServer/Commands/DisplayTextCmd/src/CDisplayTextHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,539 +0,0 @@ -/* -* Copyright (c) 2002-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: Handles DisplayText command -* -*/ - - -#include -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatSystemState.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CDisplayTextHandler.h" -#include "CClearScreenHandler.h" -#include "SatLog.h" - -const TInt8 KSecondsInMinute = 60; -const TInt8 KSecond = 10; -const TUint8 KHalfSecond = 5; - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CDisplayTextHandler::CDisplayTextHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CDisplayTextHandler::CDisplayTextHandler() : - CSatCommandHandler(), - iDisplayTextData(), - iDisplayTextPckg( iDisplayTextData ), - iDisplayTextRsp(), - iDisplayTextRspPckg( iDisplayTextRsp ), - iDisplayTextSendData(), - iDisplayTextSendPckg( iDisplayTextSendData ) - { - LOG( SIMPLE, "DISPLAYTEXT: \ - CDisplayTextHandler::CDisplayTextHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CDisplayTextHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CDisplayTextHandler::ConstructL() - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::ConstructL calling" ) - - // Register service request handler for DisplayText command - iUtils->RegisterServiceRequestL( - ESatSProactiveDisplayText, - ESatSProactiveDisplayTextResponse, - this ); - - iClearScreenHandler = CClearScreenHandler::NewL( *iUtils ); - - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CDisplayTextHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CDisplayTextHandler* CDisplayTextHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::NewL calling" ) - - CDisplayTextHandler* self = new( ELeave ) CDisplayTextHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::NewL exiting" ) - return self; - } - -// Destructor -CDisplayTextHandler::~CDisplayTextHandler() - { - LOG( SIMPLE, - "DISPLAYTEXT: CDisplayTextHandler::~CDisplayTextHandler calling" ) - - Cancel(); - delete iClearScreenHandler; - - LOG( SIMPLE, - "DISPLAYTEXT: CDisplayTextHandler::~CDisplayTextHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CDisplayTextHandler::ClientResponse -// ----------------------------------------------------------------------------- -// -void CDisplayTextHandler::ClientResponse() - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::ClientResponse calling" ) - - // SatShellController checks if SatUi was brought to foreground from - // background and set SatUi background again. - if ( RSat::EHighPriority == iDisplayTextData.iPriority ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::ClientResponse \ - set SatUi background" ) - iUtils->SatUiHandler().ShellController().SetSatUiToBackground(); - } - - TBool terminatedByUser( EFalse ); - if ( RSat::KPSessionTerminatedByUser == iDisplayTextRsp.iGeneralResult ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::ClientResponse \ - session terminated by user" ) - terminatedByUser = ETrue; - - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - - // Check immediate response. If true, no need to send TerminalResponse - // This must be checked from our own member variable, because - // ClearScreenHandler may have this value set to false already if the - // timer has run out and screen was cleared. - if ( iImmediateResponse ) - { - // Check has sustained text cleared in ClearScreen handler - if ( !iImmediatePending ) - { - // No need to send terminal response since it is already sent. - iImmediateResponse = EFalse; - - // Notify sustained text removal, if not yet notified. - iUtils->NotifyEvent( MSatUtils::ESustainedTextRemoved ); - iClearScreenHandler->UpdateImmediateState( EFalse ); - - if ( !iUtils->SatUiHandler().UiLaunchedByUser() || - terminatedByUser ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::\ - ClientResponse close ui session" ) - // Next SimSession end will close the ui session. - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - else - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::\ - ClientResponse others" ) - // If SATUI client application is running, show the setup menu. - if ( iUtils->SatUiHandler().UiSession() ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::\ - ClientResponse SetUpMenu" ) - iUtils->NotifyEvent( MSatUtils::ESetUpMenuNeeded ); - } - } - } - iImmediatePending = EFalse; - } - else - { - LOG( SIMPLE, - "DISPLAYTEXT: CDisplayTextHandler::ClientResponse Success" ) - // Generate terminal response - iDisplayTextRsp.SetPCmdNumber( iDisplayTextData.PCmdNumber() ); - TerminalRsp( RSat::EDisplayText, iDisplayTextRspPckg ); - } - - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// CDisplayTextHandler::DoCancel -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CDisplayTextHandler::DoCancel() - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifyDisplayTextCancel(); - - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CDisplayTextHandler::IssueUSATRequest -// ----------------------------------------------------------------------------- -// -void CDisplayTextHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iDisplayTextData) RSat::TDisplayTextV2(); - iDisplayTextRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; // default - iDisplayTextSendData.iDuration = 0; - iDisplayTextSendData.iClearScreen = RSat::EClearScreenTriggerNotSet; - - iUtils->USatAPI().NotifyDisplayText( aStatus, iDisplayTextPckg ); - - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// CDisplayTextHandler::CommandAllowed -// ----------------------------------------------------------------------------- -// -TBool CDisplayTextHandler::CommandAllowed() - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::CommandAllowed calling" ) - - // By default, this is true. - TBool commandAllowed( ETrue ); - - const TBool callIncoming( iUtils->SystemState().IsCallIncoming() ); - const TBool phoneInIdle( IsPhoneInIdleState() ); - - - TBool screenSaver( EFalse ); - - // By default, this is true. - TBool uiNotReady( ETrue ); - - // If screen saver is actived from idle. - screenSaver = iUtils->SystemState().IsScreenSaverActivedFromIdle(); - - if ( screenSaver ) - { - uiNotReady = EFalse; - } - else - { - uiNotReady = ( !phoneInIdle && - ( !iUtils->SatUiHandler().UiSession() ) ); - } - - const RSat::TDisplayPriority priority( iDisplayTextData.iPriority ); - - // Icon without text - if ( ( 0 == iDisplayTextData.iText.Length() ) && - ( RSat::ENotSelfExplanatory == iDisplayTextData.iIconId.iQualifier || - RSat::ESelfExplanatory == iDisplayTextData.iIconId.iQualifier ) ) - { - iDisplayTextRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iDisplayTextRsp.iInfoType = RSat::KNoAdditionalInfo; - iDisplayTextRsp.iAdditionalInfo.Zero(); - commandAllowed = EFalse; - } - // Check is call incoming or if Normal priority check is call ongoing or is - // phone in idle state and is there UiSession. AND Ui is not closing - else if ( callIncoming || - ( ( priority == RSat::ENormalPriority ) && - ( uiNotReady ) ) ) - { - // Check is UI closing - if ( !iUtils->SatUiHandler().IsUiClosing() ) - { - // Generate proper terminal response and send it. - // By default, this command does not have additional information, - // except in this case when screen is busy. - iDisplayTextRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iDisplayTextRsp.iInfoType = RSat::KMeProblem; - iDisplayTextRsp.iAdditionalInfo.SetLength( 1 ); - iDisplayTextRsp.iAdditionalInfo[0] = RSat::KScreenBusy; - - // Command is not allowed. - LOG( SIMPLE, - "DISPLAYTEXT: CDisplayTextHandler::CommandAllowed Not allowed" ) - commandAllowed = EFalse; - } - else // UI is closing, command is allowed. UI is launched again when it - // has been fully closed - { - LOG( SIMPLE, - "DISPLAYTEXT: CDisplayTextHandler::CommandAllowed Ui is closing\ - Command is allowed" ) - } - } - else - { - LOG( SIMPLE, - "DISPLAYTEXT: CDisplayTextHandler::CommandAllowed Allowed" ) - } - - if ( !commandAllowed ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::CommandAllowed \ - commandAllowed false" ) - iDisplayTextRsp.SetPCmdNumber( iDisplayTextData.PCmdNumber() ); - TerminalRsp( RSat::EDisplayText, iDisplayTextRspPckg ); - } - - LOG2( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::CommandAllowed exiting,\ - commandAllowed: %d", commandAllowed ) - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// CDisplayTextHandler::NeedUiSession -// ----------------------------------------------------------------------------- -// -TBool CDisplayTextHandler::NeedUiSession() - { - // Priority and phone idle state is checked in CommandAllowed function, so - // in this case it has passed and we need UI. - LOG( NORMAL, - "DISPLAYTEXT: CDisplayTextHandler::NeedUiSession calling - calling" ) - - // Notify Mediator if Cover UI is supported - if ( iUtils->CoverUiSupported() ) - { - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::EDisplayText; - medEventData.iAlphaId.iStatus = RSat::EAlphaIdProvided; - medEventData.iAlphaId.iAlphaId.Copy( iDisplayTextData.iText ); - if ( RSat::ETimeUnitNotSet == iDisplayTextData.iDuration.iTimeUnit && - RSat::EClearAfterDelay == iDisplayTextData.iClearScreenTrigger ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::NeedUiSession \ - KSatDefaultDuration" ) - medEventData.iDuration.iTimeUnit = RSat::ESeconds; - medEventData.iDuration.iNumOfUnits = KSatDefaultDuration; - } - else if ( - ( RSat::ETimeUnitNotSet == iDisplayTextData.iDuration.iTimeUnit ) && - ( RSat::EUserClear == iDisplayTextData.iClearScreenTrigger ) ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::NeedUiSession \ - KSatLongDuration" ) - medEventData.iDuration.iTimeUnit = RSat::ESeconds; - medEventData.iDuration.iNumOfUnits = KSatLongDuration; - } - else - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::NeedUiSession \ - others" ) - medEventData.iDuration = iDisplayTextData.iDuration; - } - - medEventData.iIconID = iDisplayTextData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - - LOG( NORMAL, - "DISPLAYTEXT: CDisplayTextHandler::NeedUiSession - exiting" ) - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CDisplayTextHandler::HandleCommand -// ----------------------------------------------------------------------------- -// -void CDisplayTextHandler::HandleCommand() - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::HandleCommand calling" ) - - // If this is a High priority message, bring SatUi to foreground. - if ( RSat::EHighPriority == iDisplayTextData.iPriority ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::HandleCommand bring \ - SatUi to foreground" ) - iUtils->SatUiHandler().ShellController().BringSatUiToForeground(); - } - - // Notify must be here, because it triggers ClearScreen and - // this notify must be before UpdateImmediateState function call. - iUtils->NotifyEvent( MSatUtils::EDisplayTextExecuting ); - - // Send terminal response immediately if SIM requires it. - if ( RSat::EImmediateRsp == iDisplayTextData.iImmediateRsp ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::HandleCommand \ - immediate response" ) - // There is sustained text already on display - if ( iImmediateResponse ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::HandleCommand \ - iImmediateResponse true" ) - iImmediatePending = ETrue; - } - - // Generate terminal response - iDisplayTextRsp.iGeneralResult = RSat::KSuccess; - iDisplayTextRsp.iInfoType = RSat::KNoAdditionalInfo; - iDisplayTextRsp.iAdditionalInfo.Zero(); - iDisplayTextRsp.SetPCmdNumber( iDisplayTextData.PCmdNumber() ); - - // We cannot use CSatCommandHandler's TerminalRsp here because it - // restarts the request and we are not yet ready for that - iUtils->NotifyEvent( MSatUtils::EDelaySimSessionEnd ); - - iUtils->USatAPI().TerminalRsp( - RSat::EDisplayText, iDisplayTextRspPckg ); - - iImmediateResponse = ETrue; - iClearScreenHandler->UpdateImmediateState( ETrue ); - - iUtils->NotifyEvent( MSatUtils::ESustainedTextInDisplay ); - - // Inform UI that this is sustained text - iDisplayTextSendData.iSustainedText = ETrue; - } - else - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::HandleCommand \ - others" ) - // Reset information for other cases. - // Inform UI that this is not sustained text. - iDisplayTextSendData.iSustainedText = EFalse; - } - - // Check if duration data is available. - if ( ( RSat::ENoDurationAvailable != iDisplayTextData.iDuration.iTimeUnit ) - && ( RSat::ETimeUnitNotSet != iDisplayTextData.iDuration.iTimeUnit ) - && iDisplayTextData.iDuration.iNumOfUnits ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::HandleCommand \ - duration data available" ) - // The resolution of a timer is 1 second. - TTimeIntervalSeconds duration( 0 ); - duration = DurationInSeconds( iDisplayTextData.iDuration ); - iDisplayTextSendData.iDuration = duration; - } - - // Build the IPC Package. - iDisplayTextSendData.iText = iDisplayTextData.iText; - iDisplayTextSendData.iSimApplicationName = iUtils->SatAppName(); - iDisplayTextSendData.iPCmdNumber = iDisplayTextData.PCmdNumber(); - iDisplayTextSendData.iIconId = iDisplayTextData.iIconId; - iDisplayTextSendData.iClearScreen = iDisplayTextData.iClearScreenTrigger; - - // Now we can send command to client. - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - uiSession->SendCommand( - &iDisplayTextSendPckg, - &iDisplayTextRspPckg, - ESatSProactiveDisplayText ); - - // Restart request, if immediate response. - if ( RSat::EImmediateRsp == iDisplayTextData.iImmediateRsp ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::HandleCommand \ - immediate response" ) - // Renew the request - Start(); - } - - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CDisplayTextHandler::UiLaunchFailed -// ----------------------------------------------------------------------------- -// -void CDisplayTextHandler::UiLaunchFailed() - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::UiLaunchFailed calling" ) - - // Send terminal response - iDisplayTextRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iDisplayTextRsp.iInfoType = RSat::KMeProblem; - iDisplayTextRsp.iAdditionalInfo.SetLength( 1 ); - iDisplayTextRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iDisplayTextRsp.SetPCmdNumber( iDisplayTextData.PCmdNumber() ); - TerminalRsp( RSat::EDisplayText, iDisplayTextRspPckg ); - - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// CDisplayTextHandler::DurationInSeconds -// Return duration in seconds. -// ----------------------------------------------------------------------------- -// -TTimeIntervalSeconds CDisplayTextHandler::DurationInSeconds( - const RSat::TDuration& aDuration ) const - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::DurationInSeconds calling" ) - - TTimeIntervalSeconds duration( 0 ); - LOG2( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::DurationInSeconds \ - aDuration.iTimeUnit: %d", aDuration.iTimeUnit ) - switch ( aDuration.iTimeUnit ) - { - case RSat::EMinutes: - { - duration = aDuration.iNumOfUnits * KSecondsInMinute; - break; - } - - case RSat::ESeconds: - { - duration = aDuration.iNumOfUnits; - break; - } - - case RSat::ETenthsOfSeconds: - { - // If duration exists minimum values is 1 second - if ( aDuration.iNumOfUnits < KHalfSecond ) - { - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::\ - DurationInSeconds aDuration.iNumOfUnits < KHalfSecond" ) - duration = KSecond; - } - else - { - // Make Roundup - duration = ( aDuration.iNumOfUnits + KHalfSecond ) / KSecond; - } - break; - } - - default: - { - //duration is 0 - break; - } - } - - LOG( SIMPLE, "DISPLAYTEXT: CDisplayTextHandler::DurationInSeconds exiting" ) - return duration; - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/DisplayTextCmd/src/std.cpp --- a/satengine/SatServer/Commands/DisplayTextCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CDisplayTextHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x1020298A, CDisplayTextHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetChannelStatusCmd/group/GetChannelStatusCmd.mmp --- a/satengine/SatServer/Commands/GetChannelStatusCmd/group/GetChannelStatusCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project GetChannelStatus plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET GetChannelStatusCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x102078DD - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CGetChannelStatusHandler.cpp - -START RESOURCE 102078DD.rss -TARGET GetChannelStatusCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetChannelStatusCmd/group/bld.inf --- a/satengine/SatServer/Commands/GetChannelStatusCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project GetChannelStatus plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -GetChannelStatusCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetChannelStatusCmd/inc/CGetChannelStatusHandler.h --- a/satengine/SatServer/Commands/GetChannelStatusCmd/inc/CGetChannelStatusHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,118 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: GetChannelStatus command handler -* -*/ - - - -#ifndef CGETCHANNELSTATUSHANDLER_H -#define CGETCHANNELSTATUSHANDLER_H - -// INCLUDES -#include -#include "CSatCommandHandler.h" -#include "SatSTypes.h" - -// FORWARD DECLARATION -class MSatUtils; - -// CLASS DECLARATION - -/** -* Command handler for GetChannelStatus command. -* -* @lib GetChannelStatusCmd.lib -* @since Series 60 3.0 -*/ -class CGetChannelStatusHandler : public CSatCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CGetChannelStatusHandler* NewL( MSatUtils* aUtils ); - - /** - * Destructor. - */ - virtual ~CGetChannelStatusHandler(); - - protected: // Functions from base classes - - /** - * From CActive Cancels the usat request. - */ - void DoCancel(); - - /** - * From CSatCommandHandler Requests the command notification. - * @param aStatus Request status to active object notification - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler Precheck before executing the command. - * @return Boolean indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler Need for ui session. - * @return Boolean indicating does this command need UI session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler Called when USAT API notifies that command. - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. Indicates the failure of launching ui client. - */ - void UiLaunchFailed(); - - private: - - /** - * Gets channel statuses and adds them into Terminalresponse - * @param aChannelCount The number of non-closed channels - */ - void GetChannelStatusesL( const TInt aChannelCount ); - - /** - * C++ default constructor. - */ - CGetChannelStatusHandler(); - - private: // Data - - // GetChannelStatus command data - RSat::TGetChannelStatusV2 iGetChannelData; - - // GetChannelStatus command package - RSat::TGetChannelStatusV2Pckg iGetChannelDataPckg; - - // GetChannelStatus response data - RSat::TGetChannelStatusRspV2 iGetChannelRsp; - - // GetChannelStatus response package - RSat::TGetChannelStatusRspV2Pckg iGetChannelRspPckg; - }; - -#endif // CGETCHANNELSTATUSHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetChannelStatusCmd/inc/GetChannelStatusCmd.rls --- a/satengine/SatServer/Commands/GetChannelStatusCmd/inc/GetChannelStatusCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project GetChannelStatusCmd -* -*/ - - -#ifndef GETCHANNELSTATUSCMD_RLS -#define GETCHANNELSTATUSCMD_RLS - -rls_string STRING_r_getchannelstatuscmd_display_name "GetChannelStatus command" -rls_string STRING_r_getchannelstatuscmd_default_data "GetChannelStatusCmd" -rls_string STRING_r_getchannelstatuscmd_opaque_data "" - -#endif // GETCHANNELSTATUSCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetChannelStatusCmd/src/102078DD.rss --- a/satengine/SatServer/Commands/GetChannelStatusCmd/src/102078DD.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1020 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "GetChannelStatusCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// GetChannelStatusCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO GetChannelStatusCmdInfo - { - dll_uid = 0x102078DD; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x102078DE; - version_no = 1; - display_name = STRING_r_getchannelstatuscmd_display_name; - default_data = STRING_r_getchannelstatuscmd_default_data; - opaque_data = STRING_r_getchannelstatuscmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetChannelStatusCmd/src/CGetChannelStatusHandler.cpp --- a/satengine/SatServer/Commands/GetChannelStatusCmd/src/CGetChannelStatusHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,270 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles GetChannelStatus command -* -*/ - - - -// INCLUDE FILES -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatBIPUtils.h" -#include "MSatBIPDataChannel.h" -#include "CGetChannelStatusHandler.h" -#include "SatLog.h" - -// CONSTANTS -// length of channel status info -const TUint8 KChannelStatusLength = 2; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CGetChannelStatusHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CGetChannelStatusHandler* CGetChannelStatusHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "GETCHANNELSTATUS: CGetChannelStatusHandler::NewL calling" ) - CGetChannelStatusHandler* self = new( ELeave ) CGetChannelStatusHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - // ConstructL not needed. - CleanupStack::Pop( self ); - - LOG( SIMPLE, "GETCHANNELSTATUS: CGetChannelStatusHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CGetChannelStatusHandler::~CGetChannelStatusHandler -// Destructor -// ----------------------------------------------------------------------------- -// -CGetChannelStatusHandler::~CGetChannelStatusHandler() - { - LOG( SIMPLE, "GETCHANNELSTATUS: CGetChannelStatusHandler::\ - CGetChannelStatusHandler calling" ) - - Cancel(); - - LOG( SIMPLE, "GETCHANNELSTATUS: CGetChannelStatusHandler::\ - ~CGetChannelStatusHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CGetChannelStatusHandler::DoCancel -// Cancels the sat request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CGetChannelStatusHandler::DoCancel() - { - LOG( SIMPLE, "GETCHANNELSTATUS: CGetChannelStatusHandler::\ - DoCancel calling" ) - - iUtils->USatAPI().NotifyGetChannelStatusCancel(); - - LOG( SIMPLE, "GETCHANNELSTATUS: CGetChannelStatusHandler::\ - DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CGetChannelStatusHandler::IssueUSATRequest -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CGetChannelStatusHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, - "GETCHANNELSTATUS: CGetChannelStatusHandler::IssueUSATRequest calling" ) - - // Reset previously received data - new (&iGetChannelData) RSat::TGetChannelStatusV2(); - iUtils->USatAPI().NotifyGetChannelStatus( aStatus, iGetChannelDataPckg ); - - LOG( SIMPLE, - "GETCHANNELSTATUS: CGetChannelStatusHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// CGetChannelStatusHandler::CommandAllowed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CGetChannelStatusHandler::CommandAllowed() - { - LOG( SIMPLE, "GETCHANNELSTATUS: CGetChannelStatusHandler::CommandAllowed \ - calling - exiting" ) - // Get channel status command is always allowed - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CGetChannelStatusHandler::NeedUiSession -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CGetChannelStatusHandler::NeedUiSession() - { - LOG( SIMPLE, "GETCHANNELSTATUS: CGetChannelStatusHandler::NeedUiSession\ - calling - exiting" ) - // This command doesn't need UI - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CGetChannelStatusHandler::HandleCommand -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CGetChannelStatusHandler::HandleCommand() - { - LOG( SIMPLE, - "GETCHANNELSTATUS: CGetChannelStatusHandler::HandleCommand calling" ) - - iUtils->NotifyEvent( MSatUtils::EGetChannelStatusExecuting ); - // Get data channels from BIP Utils - CArrayPtrFlat* dataChannels( - iUtils->BipUtils().DataChannels() ); - - // Get number of data channels - const TInt channelCount( dataChannels->Count() ); - - // Create IPC package - iGetChannelRsp.SetPCmdNumber( iGetChannelData.PCmdNumber() ); - - // Check that count is more than 0 - if ( channelCount > 0 ) - { - LOG( NORMAL, "GETCHANNELSTATUS: CGetChannelStatusHandler::HandleCommand\ - Gathering channel statuses" ) - - TRAPD( err, GetChannelStatusesL( channelCount ) ); - if ( KErrNone == err ) - { - // Result is success - iGetChannelRsp.iInfoType = RSat::KChannelStatusInfo; - iGetChannelRsp.iGeneralResult = RSat::KSuccess; - } - else - { - LOG2( NORMAL, "GETCHANNELSTATUS: CGetChannelStatusHandler::\ - HandleCommand with error: %i", err ) - // Error - iGetChannelRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iGetChannelRsp.iInfoType = RSat::KMeProblem; - iGetChannelRsp.iAdditionalInfo.SetLength( 1 ); - iGetChannelRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - } - } - else - { - LOG( NORMAL, "GETCHANNELSTATUS: CGetChannelStatusHandler::HandleCommand\ - No data channels" ) - // No data channels available, return one empty ChannelStatus object - iGetChannelRsp.iInfoType = RSat::KChannelStatusInfo; - iGetChannelRsp.iGeneralResult = RSat::KSuccess; - // No channels, return ChannelStatusInfo 00 00 - iGetChannelRsp.iAdditionalInfo.SetLength( KChannelStatusLength ); - iGetChannelRsp.iAdditionalInfo[0] = 0x00; - iGetChannelRsp.iAdditionalInfo[1] = 0x00; - } - - // Send terminal response - TerminalRsp( RSat::EGetChannelStatus, iGetChannelRspPckg ); - - LOG( SIMPLE, - "GETCHANNELSTATUS: CGetChannelStatusHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CGetChannelStatusHandler::UiLaunchFailed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CGetChannelStatusHandler::UiLaunchFailed() - { - LOG( SIMPLE, "GETCHANNELSTATUS: CGetChannelStatusHandler::UiLaunchFailed \ - calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CGetChannelStatusHandler::GetChannelStatusesL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CGetChannelStatusHandler::GetChannelStatusesL( const TInt aChannelCount ) - { - LOG( SIMPLE, "GETCHANNELSTATUS: CGetChannelStatusHandler::\ - GetChannelStatuses calling" ) - - // Get data channels from BIP Utils - CArrayPtrFlat* dataChannels( - iUtils->BipUtils().DataChannels() ); - - // Each data channel needs 2 slots in additional info - iGetChannelRsp.iAdditionalInfo.SetLength( - aChannelCount * KChannelStatusLength ); - - TInt addInfoIndex = 0; - LOG2( SIMPLE, "GETCHANNELSTATUS: CGetChannelStatusHandler::\ - GetChannelStatusesL aChannelCount: %d", aChannelCount ) - // Loop data channels - if ( dataChannels->Count() >= aChannelCount ) - { - LOG( SIMPLE, "GETCHANNELSTATUS: CGetChannelStatusHandler::\ - GetChannelStatusesL dataChannels->Count() >= aChannelCount" ) - for ( TInt i = 0; i < aChannelCount; i++ ) - { - // Get data channel from array - MSatBIPDataChannel* channel = dataChannels->At( i ); - // Generate TChannelStatus - RSat::TChannelStatus status( - iUtils->BipUtils().GenerateChannelStatusL( - channel->ChannelId(), channel->Status() ) ); - - // Add first byte (channel ID and context activation state) - iGetChannelRsp.iAdditionalInfo[addInfoIndex++] = status[0]; - // Add second byte (channel status) - iGetChannelRsp.iAdditionalInfo[addInfoIndex++] = status[1]; - } - } - - LOG( SIMPLE, "GETCHANNELSTATUS: CGetChannelStatusHandler::\ - GetChannelStatuses exiting" ) - } - -// ----------------------------------------------------------------------------- -// CGetChannelStatusHandler::CGetChannelStatusHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CGetChannelStatusHandler::CGetChannelStatusHandler() : - CSatCommandHandler(), - iGetChannelData(), - iGetChannelDataPckg( iGetChannelData ), - iGetChannelRsp(), - iGetChannelRspPckg( iGetChannelRsp ) - { - LOG( SIMPLE, - "GETCHANNELSTATUS: CGetChannelStatusHandler::\ - CGetChannelStatusHandler calling - exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetChannelStatusCmd/src/std.cpp --- a/satengine/SatServer/Commands/GetChannelStatusCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CGetChannelStatusHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x102078DE, CGetChannelStatusHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInkeyCmd/group/GetInkeyCmd.mmp --- a/satengine/SatServer/Commands/GetInkeyCmd/group/GetInkeyCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project GetInkey plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET GetInkeyCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x1000A889 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CGetInkeyHandler.cpp - -START RESOURCE 1000A889.rss -TARGET GetInkeyCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInkeyCmd/group/bld.inf --- a/satengine/SatServer/Commands/GetInkeyCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project GetInkeyCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -GetInkeyCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInkeyCmd/inc/CGetInkeyHandler.h --- a/satengine/SatServer/Commands/GetInkeyCmd/inc/CGetInkeyHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,140 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: GetInkeyHandler -* -*/ - - -#ifndef CGETINKEYHANDLER_H -#define CGETINKEYHANDLER_H - -#include "CSatCommandHandler.h" - -#include - -class MSatUtils; - -/** - * Command handler for GetInkey command. - * - * @lib GetInkeyCmd.lib - * @since S60 v3.0 - */ -class CGetInkeyHandler : public CSatCommandHandler - { - -public: - - static CGetInkeyHandler* NewL( MSatUtils* aUtils ); - - virtual ~CGetInkeyHandler(); - -// from base class MSatCommand - - /** - * From MSatCommand - * Response from the client. - * - */ - void ClientResponse(); - -protected: - -// from base class CActive - - /** - * From CActive. - * Cancels the usat request. - * - */ - void DoCancel(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler. - * Requests the command notification. - * - * @param aStatus Request status - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler. - * Precheck before executing the command. - * - * @return TBool indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler. - * Need for ui session. - * - * @return TBool indicating need of ui session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler. - * Called when USAT API notifies that command. - * - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. - * Indicates the failure of launching ui client. - * - */ - void UiLaunchFailed(); - -private: - - CGetInkeyHandler(); - - void ConstructL(); - -private: // data - - /** - * SetUpCall command data. - */ - RSat::TGetInkeyV2 iGetInkeyData; - - /** - * SetUpCall command package. - */ - RSat::TGetInkeyV2Pckg iGetInkeyPckg; - - /** - * Response from client. - */ - RSat::TGetInkeyRspV2 iGetInkeyRsp; - - /** - * Response package. - */ - RSat::TGetInkeyRspV2Pckg iGetInkeyRspPckg; - - /** - * Flag to signal that command has icon data - * To be removed when icons are allowed in this command - */ - TBool iIconCommand; - - }; - -#endif // CGETINKEYHANDLER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInkeyCmd/inc/GetInkeyCmd.rls --- a/satengine/SatServer/Commands/GetInkeyCmd/inc/GetInkeyCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project GetInkeyCmd -* -*/ - - -#ifndef GETINKEYCMD_RLS -#define GETINKEYCMD_RLS - -rls_string STRING_r_getinkeycmd_display_name "GetInkey command" -rls_string STRING_r_getinkeycmd_default_data "GetInkeyCmd" -rls_string STRING_r_getinkeycmd_opaque_data "" - -#endif // GETINKEYCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInkeyCmd/src/1000A889.rss --- a/satengine/SatServer/Commands/GetInkeyCmd/src/1000A889.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1000 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "GetInkeyCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// GetInkeyCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO GetInkeyCmdInfo - { - dll_uid = 0x1000A889; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x1000A888; - version_no = 1; - display_name = STRING_r_getinkeycmd_display_name; - default_data = STRING_r_getinkeycmd_default_data; - opaque_data = STRING_r_getinkeycmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInkeyCmd/src/CGetInkeyHandler.cpp --- a/satengine/SatServer/Commands/GetInkeyCmd/src/CGetInkeyHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,311 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles GetInkey command -* -*/ - - -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CGetInkeyHandler.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CGetInkeyHandler* CGetInkeyHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::NewL calling" ) - - CGetInkeyHandler* self = new( ELeave ) CGetInkeyHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -// -CGetInkeyHandler::~CGetInkeyHandler() - { - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::~CGetInkeyHandler calling" ) - - Cancel(); - - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::~CGetInkeyHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatCommand. -// Response from the client. -// ----------------------------------------------------------------------------- -// -void CGetInkeyHandler::ClientResponse() - { - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::ClientResponse calling" ) - - if ( RSat::KPSessionTerminatedByUser == iGetInkeyRsp.iGeneralResult ) - { - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::ClientResponse close ui \ - session" ) - // Next SimSession end will close the ui session - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - - // If command had icon data and was done succesfully, report that icon - // was not shown - // To be removed when icons are allowed in this command - if ( ( RSat::KSuccess == iGetInkeyRsp.iGeneralResult ) && - iIconCommand ) - { - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::ClientResponse requested \ - icon not displayed" ) - iGetInkeyRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - - iGetInkeyRsp.SetPCmdNumber( iGetInkeyData.PCmdNumber() ); - CSatCommandHandler::TerminalRsp( RSat::EGetInkey, iGetInkeyRspPckg ); - - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CGetInkeyHandler::DoCancel() - { - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifyGetInkeyCancel(); - - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Requests the command notification. -// ----------------------------------------------------------------------------- -// -void CGetInkeyHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iGetInkeyData) RSat::TGetInkeyV2(); - iGetInkeyRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; // default - - iUtils->USatAPI().NotifyGetInkey( aStatus, iGetInkeyPckg ); - - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Precheck before executing the command. -// ----------------------------------------------------------------------------- -// -TBool CGetInkeyHandler::CommandAllowed() - { - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::CommandAllowed calling" ) - TBool allowed( ETrue ); - - // If provided duration is missing time units - if ( ( RSat::ENoDurationAvailable != iGetInkeyData.iDuration.iTimeUnit && - RSat::ETimeUnitNotSet != iGetInkeyData.iDuration.iTimeUnit ) && - 0 == iGetInkeyData.iDuration.iNumOfUnits ) - { - LOG( SIMPLE, - "GETINKEY: CGetInkeyHandler::CommandAllowed invalid duration" ) - allowed = EFalse; - } - - // If icon is provided without any text - if ( ( 0 == iGetInkeyData.iText.Length() ) && - ( RSat::ENotSelfExplanatory == iGetInkeyData.iIconId.iQualifier || - RSat::ESelfExplanatory == iGetInkeyData.iIconId.iQualifier ) ) - { - LOG( SIMPLE, - "GETINKEY: CGetInkeyHandler::CommandAllowed icon w/o alpha id" ) - allowed = EFalse; - } - // Set icon command flag whether icon data was received and set qualifier - // to no icon id - // To be removed when icons are allowed in this command - else if ( ( RSat::ESelfExplanatory == - iGetInkeyData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iGetInkeyData.iIconId.iQualifier ) ) - { - LOG( SIMPLE, - "GETINKEY: CGetInkeyHandler::CommandAllowed set no icon id" ) - iIconCommand = ETrue; - iGetInkeyData.iIconId.iQualifier = RSat::ENoIconId; - } - else - { - iIconCommand = EFalse; - } - - if ( !allowed ) - { - LOG( SIMPLE, - "GETINKEY: CGetInkeyHandler::CommandAllowed allowed false" ) - iGetInkeyRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iGetInkeyRsp.iInfoType = RSat::KNoAdditionalInfo; - iGetInkeyRsp.iAdditionalInfo.Zero(); - iGetInkeyRsp.SetPCmdNumber( iGetInkeyData.PCmdNumber() ); - // send terminal response - TerminalRsp( RSat::EGetInkey, iGetInkeyRspPckg ); - } - - LOG2( SIMPLE, "GETINKEY: CGetInkeyHandler::CommandAllowed exiting,\ - allowed: %d", allowed ) - return allowed; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Need for ui session. -// ----------------------------------------------------------------------------- -// -TBool CGetInkeyHandler::NeedUiSession() - { - LOG( NORMAL, "GETINKEY: CGetInkeyHandler::NeedUiSession calling" ) - - // Notify Cover UI if it's supported - if ( iUtils->CoverUiSupported() ) - { - LOG( NORMAL, "CGetInkeyHandler::NeedUiSession coverui supported" ) - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::EGetInkey; - if ( iGetInkeyData.iText.Length() ) - { - LOG( NORMAL, "CGetInkeyHandler::NeedUiSession EAlphaIdProvided" ) - medEventData.iAlphaId.iStatus = RSat::EAlphaIdProvided; - medEventData.iAlphaId.iAlphaId.Copy( iGetInkeyData.iText ); - } - else - { - medEventData.iAlphaId.iStatus = RSat::EAlphaIdNotPresent; - } - // Duration not set, use KSatLongDuration - if ( RSat::ETimeUnitNotSet == iGetInkeyData.iDuration.iTimeUnit ) - { - LOG( NORMAL, "CGetInkeyHandler::NeedUiSession Duration not set" ) - medEventData.iDuration.iTimeUnit = RSat::ESeconds; - medEventData.iDuration.iNumOfUnits = KSatLongDuration; - } - else - { - medEventData.iDuration = iGetInkeyData.iDuration; - } - - medEventData.iIconID = iGetInkeyData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - - LOG( NORMAL, "GETINKEY: CGetInkeyHandler::NeedUiSession exiting" ) - return ETrue; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when USAT API notifies that command. -// ----------------------------------------------------------------------------- -// -void CGetInkeyHandler::HandleCommand() - { - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::HandleCommand calling" ) - - iUtils->NotifyEvent( MSatUtils::EGetInkeyExecuting ); - - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - uiSession->SendCommand( - &iGetInkeyPckg, - &iGetInkeyRspPckg, - ESatSProactiveGetInkey ); - - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Indicates the failure of launching ui client. -// ----------------------------------------------------------------------------- -// -void CGetInkeyHandler::UiLaunchFailed() - { - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::UiLaunchFailed calling" ) - - iGetInkeyRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iGetInkeyRsp.iInfoType = RSat::KMeProblem; - iGetInkeyRsp.iAdditionalInfo.SetLength( 1 ); - iGetInkeyRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iGetInkeyRsp.SetPCmdNumber( iGetInkeyData.PCmdNumber() ); - TerminalRsp( RSat::EGetInkey, iGetInkeyRspPckg ); - - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CGetInkeyHandler::CGetInkeyHandler() : - CSatCommandHandler(), - iGetInkeyData(), - iGetInkeyPckg( iGetInkeyData ), - iGetInkeyRsp(), - iGetInkeyRspPckg( iGetInkeyRsp ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( SIMPLE, - "GETINKEY: CGetInkeyHandler::CGetInkeyHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CGetInkeyHandler::ConstructL() - { - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::ConstructL calling" ) - - // Register service request handler for GetInkey command - iUtils->RegisterServiceRequestL( - ESatSProactiveGetInkey, - ESatSProactiveGetInkeyResponse, - this ); - - LOG( SIMPLE, "GETINKEY: CGetInkeyHandler::ConstructL exiting" ) - } - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInkeyCmd/src/std.cpp --- a/satengine/SatServer/Commands/GetInkeyCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CGetInkeyHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x1000A888, CGetInkeyHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInputCmd/group/GetInputCmd.mmp --- a/satengine/SatServer/Commands/GetInputCmd/group/GetInputCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project GetInput plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET GetInputCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x10202985 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CGetInputHandler.cpp - -START RESOURCE 10202985.rss -TARGET GetInputCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInputCmd/group/bld.inf --- a/satengine/SatServer/Commands/GetInputCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project GetInputCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -GetInputCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInputCmd/inc/CGetInputHandler.h --- a/satengine/SatServer/Commands/GetInputCmd/inc/CGetInputHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,140 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: GetInput command handler -* -*/ - - -#ifndef CGETINPUTHANDLER_H -#define CGETINPUTHANDLER_H - -#include - -#include "CSatCommandHandler.h" - -class MSatUtils; - -/** - * Command handler for GetInput command. - * - * @lib GetInputCmd.lib - * @since S60 v3.0 - */ -class CGetInputHandler : public CSatCommandHandler - { - -public: - - static CGetInputHandler* NewL( MSatUtils* aUtils ); - - virtual ~CGetInputHandler(); - -// from base class MSatCommand - - /** - * From MSatCommand. - * Response from the client. - * - */ - void ClientResponse(); - -protected: - -// from base class CActive - - /** - * From CActive. - * Cancels the usat request. - * - */ - void DoCancel(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler. - * Requests the command notification. - * - * @param aStatus Request status - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler. - * Precheck before executing the command. - * - * @return TBool indicating command is currently allowed. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler. - * Need for ui session. - * - * @return TBool indicating need of ui session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler. - * Called when USAT API notifies that command. - * - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. - * Indicates the failure of launching ui client. - * - */ - void UiLaunchFailed(); - -private: - - CGetInputHandler(); - - void ConstructL(); - -private: // data - - /** - * GetInput command data. - */ - RSat::TGetInputV1 iGetInputData; - - /** - * GetInput command package. - */ - RSat::TGetInputV1Pckg iGetInputPckg; - - /** - * Response from client. - */ - RSat::TGetInputRspV1 iGetInputRsp; - - /** - * Response package. - */ - RSat::TGetInputRspV1Pckg iGetInputRspPckg; - - /** - * Flag to signal that command has icon data - * To be removed when icons are allowed in this command - */ - TBool iIconCommand; - - }; - -#endif // CGETINPUTHANDLER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInputCmd/inc/GetInputCmd.rls --- a/satengine/SatServer/Commands/GetInputCmd/inc/GetInputCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project GetInputCmd -* -*/ - - -#ifndef GETINPUTCMD_RLS -#define GETINPUTCMD_RLS - -rls_string STRING_r_getinputcmd_display_name "GetInput Command" -rls_string STRING_r_getinputcmd_default_data "GetInputCmd" -rls_string STRING_r_getinputcmd_opaque_data "" - -#endif // GETINPUTCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInputCmd/src/10202985.rss --- a/satengine/SatServer/Commands/GetInputCmd/src/10202985.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1020 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "GetInputCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// GetInputCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO GetInputCmdInfo - { - dll_uid = 0x10202985; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x10202986; - version_no = 1; - display_name = STRING_r_getinputcmd_display_name; - default_data = STRING_r_getinputcmd_default_data; - opaque_data = STRING_r_getinputcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInputCmd/src/CGetInputHandler.cpp --- a/satengine/SatServer/Commands/GetInputCmd/src/CGetInputHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,308 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles GetInputCall command -* -*/ - - -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "MSatSystemState.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CGetInputHandler.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CGetInputHandler* CGetInputHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "GETINPUT: CGetInputHandler::NewL calling" ) - - CGetInputHandler* self = new( ELeave ) CGetInputHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "GETINPUT: CGetInputHandler::NewL exiting" ) - return self; - } - - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -// -CGetInputHandler::~CGetInputHandler() - { - LOG( SIMPLE, "GETINPUT: CGetInputHandler::~CGetInputHandler calling" ) - - Cancel(); - - LOG( SIMPLE, "GETINPUT: CGetInputHandler::~CGetInputHandler exiting" ) - } - -// --------------------------------------------------------------------------- -// From class MSatCommand. -// Response from the client. -// --------------------------------------------------------------------------- -// -void CGetInputHandler::ClientResponse() - { - LOG( SIMPLE, "GETINPUT: CGetInputHandler::ClientResponse calling" ) - - iGetInputRsp.SetPCmdNumber( iGetInputData.PCmdNumber() ); - if ( RSat::KPSessionTerminatedByUser == iGetInputRsp.iGeneralResult ) - { - LOG( SIMPLE, "GETINPUT: CGetInputHandler::ClientResponse close ui \ - session" ) - // Next SimSession end will close the ui session - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - - // If command had icon data and was done succesfully, report that icon - // was not shown - // To be removed when icons are allowed in this command - if ( ( RSat::KSuccess == iGetInputRsp.iGeneralResult ) && - iIconCommand ) - { - LOG( SIMPLE, "GETINPUT: CGetInputHandler::ClientResponse requested \ - icon not displayed" ) - iGetInputRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - - CSatCommandHandler::TerminalRsp( RSat::EGetInput, iGetInputRspPckg ); - - LOG( SIMPLE, "GETINPUT: CGetInputHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CGetInputHandler::DoCancel() - { - LOG( SIMPLE, "GETINPUT: CGetInputHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifyGetInputCancel(); - - LOG( SIMPLE, "GETINPUT: CGetInputHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Requests the command notification. -// ----------------------------------------------------------------------------- -// -void CGetInputHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "GETINPUT: CGetInputHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iGetInputData) RSat::TGetInputV1(); - iGetInputRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; // default - - iUtils->USatAPI().NotifyGetInput( aStatus, iGetInputPckg ); - - LOG( SIMPLE, "GETINPUT: CGetInputHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Precheck before executing the command. -// ----------------------------------------------------------------------------- -// -TBool CGetInputHandler::CommandAllowed() - { - LOG( SIMPLE, "GETINPUT: CGetInputHandler::CommandAllowed calling" ) - - //Is This command Allowed. - TBool response( ETrue ); - - // If icon is provided without any text - if ( ( 0 == iGetInputData.iText.Length() ) && - ( RSat::ENotSelfExplanatory == iGetInputData.iIconId.iQualifier || - RSat::ESelfExplanatory == iGetInputData.iIconId.iQualifier ) ) - { - LOG( SIMPLE, - "GETINPUT: CGetInputHandler::CommandAllowed icon without text" ) - iGetInputRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iGetInputRsp.iInfoType = RSat::KNoAdditionalInfo; - iGetInputRsp.iAdditionalInfo.Zero(); - response = EFalse; - } - // Check if phone is busy on calling and send response - // to SIM if phone is busy. - else if ( iUtils->SystemState().IsCallIncoming() ) - { - LOG( SIMPLE, - "GETINPUT: CGetInputHandler::CommandAllowed busy or calling" ) - // By default, this command does not have additional information - // except in this case when phone is busy on calling - iGetInputRsp.iInfoType = RSat::KMeProblem; - iGetInputRsp.iAdditionalInfo.Zero(); - iGetInputRsp.iAdditionalInfo.Append( RSat::KMeBusyOnCall ); - iGetInputRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - // This command will not be allowed for now. - response = EFalse; - } - // Set icon command flag whether icon data was received and set qualifier - // to no icon id - // To be removed when icons are allowed in this command - else if ( ( RSat::ESelfExplanatory == - iGetInputData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iGetInputData.iIconId.iQualifier ) ) - { - LOG( SIMPLE, - "GETINPUT: CGetInputHandler::CommandAllowed set no icon id" ) - iIconCommand = ETrue; - iGetInputData.iIconId.iQualifier = RSat::ENoIconId; - } - else - { - iIconCommand = EFalse; - } - - if ( !response ) - { - LOG( SIMPLE, - "GETINPUT: CGetInputHandler::CommandAllowed response false" ) - iGetInputRsp.SetPCmdNumber( iGetInputData.PCmdNumber() ); - TerminalRsp( RSat::EGetInput, iGetInputRspPckg ); - } - - LOG2( SIMPLE, "GETINPUT: CGetInputHandler::CommandAllowed exiting,\ - response: %d", response ) - return response; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Need for ui session. -// ----------------------------------------------------------------------------- -// -TBool CGetInputHandler::NeedUiSession() - { - LOG( NORMAL, "GETINPUT: CGetInputHandler::NeedUiSession calling" ) - // Notify Cover UI if it's supported - if ( iUtils->CoverUiSupported() ) - { - LOG( NORMAL, "CGetInputHandler::NeedUiSession coverui supported" ) - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::EGetInput; - if ( iGetInputData.iText.Length() ) - { - LOG( NORMAL, "CGetInputHandler::NeedUiSession EAlphaIdProvided" ) - medEventData.iAlphaId.iStatus = RSat::EAlphaIdProvided; - medEventData.iAlphaId.iAlphaId.Copy( iGetInputData.iText ); - } - else - { - medEventData.iAlphaId.iStatus = RSat::EAlphaIdNotPresent; - } - medEventData.iDuration.iNumOfUnits = KSatDefaultDuration; - medEventData.iDuration.iTimeUnit = RSat::ESeconds; - medEventData.iIconID = iGetInputData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - LOG( NORMAL, "GETINPUT: CGetInputHandler::NeedUiSession exiting" ) - return ETrue; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when USAT API notifies that command. -// ----------------------------------------------------------------------------- -// -void CGetInputHandler::HandleCommand() - { - LOG( SIMPLE, "GETINPUT: CGetInputHandler::HandleCommand calling" ) - - // Send the response - iUtils->NotifyEvent( MSatUtils::EGetInputExecuting ); - - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - uiSession->SendCommand( - &iGetInputPckg, - &iGetInputRspPckg, - ESatSProactiveGetInput ); - - LOG( SIMPLE, "GETINPUT: CGetInputHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Indicates the failure of launching ui client. -// ----------------------------------------------------------------------------- -// -void CGetInputHandler::UiLaunchFailed() - { - LOG( SIMPLE, "GETINPUT: CGetInputHandler::UiLaunchFailed calling" ) - - iGetInputRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iGetInputRsp.iInfoType = RSat::KMeProblem; - iGetInputRsp.iAdditionalInfo.SetLength( 1 ); - iGetInputRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iGetInputRsp.SetPCmdNumber( iGetInputData.PCmdNumber() ); - TerminalRsp( RSat::EGetInput, iGetInputRspPckg ); - - LOG( SIMPLE, "GETINPUT: CGetInputHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CGetInputHandler::CGetInputHandler() : - CSatCommandHandler(), - iGetInputData(), - iGetInputPckg( iGetInputData ), - iGetInputRsp(), - iGetInputRspPckg( iGetInputRsp ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( SIMPLE, - "GETINPUT: CGetInputHandler::CGetInputHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CGetInputHandler::ConstructL() - { - LOG( SIMPLE, "GETINPUT: CGetInputHandler::ConstructL calling" ) - - // Register service request handler for GetInput command - iUtils->RegisterServiceRequestL( - ESatSProactiveGetInput, - ESatSProactiveGetInputResponse, - this ); - - LOG( SIMPLE, "GETINPUT: CGetInputHandler::ConstructL exiting" ) - } - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/GetInputCmd/src/std.cpp --- a/satengine/SatServer/Commands/GetInputCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CGetInputHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x10202986, CGetInputHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LanguageNotificationCmd/group/LanguageNotificationCmd.mmp --- a/satengine/SatServer/Commands/LanguageNotificationCmd/group/LanguageNotificationCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project LanguageNotificationCmd -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET LanguageNotificationCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x101F79FE - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CLanguageNotificationHandler.cpp - -START RESOURCE 101F79FE.rss -TARGET LanguageNotificationCmd.rsc -END // RESOURCE - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LanguageNotificationCmd/group/bld.inf --- a/satengine/SatServer/Commands/LanguageNotificationCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2003-2006 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: Build information file for project LanguageNotificationCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -LanguageNotificationCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LanguageNotificationCmd/inc/CLanguageNotificationHandler.h --- a/satengine/SatServer/Commands/LanguageNotificationCmd/inc/CLanguageNotificationHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,120 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Launguage Notification command handler -* -*/ - - -#ifndef CLANGUAGENOTIFICATIONHANDLER_H -#define CLANGUAGENOTIFICATIONHANDLER_H - -// INCLUDES -#include -#include "CSatCommandHandler.h" -#include "SatSTypes.h" - -// FORWARD DECLARATION -class MSatUtils; - -// CLASS DECLARATION - -/** -* Command handler for Language Notification command. -* -* @lib CLanguageNotificationHandler.lib -* @since Series 60 3.0 -*/ -class CLanguageNotificationHandler : public CSatCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils Utils interface - */ - static CLanguageNotificationHandler* NewL( MSatUtils* aUtils ); - - /** - * Destructor. - */ - virtual ~CLanguageNotificationHandler(); - - public: // Functions from base classes - - /** - * From MSatCommand. - */ - void ClientResponse(){}; - - protected: // Functions from base classes - - /** - * From CActive Cancels the usat request. - */ - void DoCancel(); - - /** - * From CSatCommandHandler Requests the command notification. - * @param aStatus Request status to active object notification - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler Precheck before executing the command. - * @return Boolean indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler Need for ui session. - * @return Boolean indicating does this command need UI session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler Called when USAT API notifies that command. - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. Indicates the failure of launching ui client - */ - void UiLaunchFailed(){}; - - private: - - /** - * C++ default constructor. - */ - CLanguageNotificationHandler(); - - private: // Data - - // The data structure for the command data - RSat::TLanguageNotificationV2 iLanguageNotify; - - // The data package for IPC - RSat::TLanguageNotificationV2Pckg iLanguageNotifyPckg; - - // The response. - RSat::TLanguageNotificationRspV2 iLanguageNotifyRsp; - - // The response package. - RSat::TLanguageNotificationRspV2Pckg iLanguageNotifyRspPckg; - - }; - -#endif // CLANGUAGENOTIFICATIONHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LanguageNotificationCmd/inc/LanguageNotificationCmd.rls --- a/satengine/SatServer/Commands/LanguageNotificationCmd/inc/LanguageNotificationCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project LanguageNotificationCmd -* -*/ - - -#ifndef LANGUAGENOTIFICATIONCMD_RLS -#define LANGUAGENOTIFICATIONCMD_RLS - -rls_string STRING_r_languagenotificationcmd_display_name "Language notification" -rls_string STRING_r_languagenotificationcmd_default_data "LanguageNotificationCmd" -rls_string STRING_r_languagenotificationcmd_opaque_data "" - -#endif // LANGUAGENOTIFICATIONCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LanguageNotificationCmd/src/101F79FE.rss --- a/satengine/SatServer/Commands/LanguageNotificationCmd/src/101F79FE.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "LanguageNotificationCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// LanguageNotificationInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO LanguageNotificationInfo - { - dll_uid = 0x101F79FE; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x101F79FF; - version_no = 1; - display_name = STRING_r_languagenotificationcmd_display_name; - default_data = STRING_r_languagenotificationcmd_default_data; - opaque_data = STRING_r_languagenotificationcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LanguageNotificationCmd/src/CLanguageNotificationHandler.cpp --- a/satengine/SatServer/Commands/LanguageNotificationCmd/src/CLanguageNotificationHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,174 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles CLanguageNotification command -* -*/ - - -// INCLUDE FILES -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "MSatSystemState.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CLanguageNotificationHandler.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CLanguageNotificationHandler::CLanguageNotificationHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CLanguageNotificationHandler::CLanguageNotificationHandler() : - CSatCommandHandler(), - iLanguageNotify(), - iLanguageNotifyPckg( iLanguageNotify ), - iLanguageNotifyRsp(), - iLanguageNotifyRspPckg( iLanguageNotifyRsp ) - { - LOG( SIMPLE, "LangNotify: CLanguageNotificationHandler:: \ - CLanguageNotificationHandler calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CLanguageNotificationHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CLanguageNotificationHandler* CLanguageNotificationHandler::NewL( -MSatUtils* aUtils ) - { - LOG( SIMPLE, "LangNotify: CLanguageNotificationHandler::NewL calling" ) - CLanguageNotificationHandler* self = new( ELeave ) CLanguageNotificationHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - // ConstructL not needed. - CleanupStack::Pop( self ); - LOG( SIMPLE, "LangNotify: CLanguageNotificationHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CLanguageNotificationHandler::~CLanguageNotificationHandler -// Destructor. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CLanguageNotificationHandler::~CLanguageNotificationHandler() - { - LOG( SIMPLE, - "LangNotify: CLanguageNotificationHandler:: \ - ~CLanguageNotificationHandler() calling" ) - - Cancel(); - - LOG( SIMPLE, - "LangNotify: CLanguageNotificationHandler:: \ - ~CLanguageNotificationHandler() exiting" ) - } - -// ----------------------------------------------------------------------------- -// CLanguageNotificationHandler::DoCancel -// Cancels the sat request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLanguageNotificationHandler::DoCancel() - { - LOG( SIMPLE, - "LangNotify: CLanguageNotificationHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifyLanguageNotificationCancel(); - - LOG( SIMPLE, - "LangNotify: CLanguageNotificationHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CLanguageNotificationHandler::IssueUSATRequest -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLanguageNotificationHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, - "LangNotify: CLanguageNotificationHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iLanguageNotify) RSat::TLanguageNotificationV2(); - - iUtils->USatAPI().NotifyLanguageNotification( - aStatus, - iLanguageNotifyPckg ); - - LOG( SIMPLE, - "LangNotify: CLanguageNotificationHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// CLanguageNotificationHandler::CommandAllowed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CLanguageNotificationHandler::CommandAllowed() - { - LOG( SIMPLE, "LangNotify: \ - CLanguageNotificationHandler::CommandAllowed calling-exiting" ) - // By default, this is true - // There is never any reason to disallow this - // command, even if an error occurs. - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CLanguageNotificationHandler::NeedUiSession -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CLanguageNotificationHandler::NeedUiSession() - { - LOG( SIMPLE, "LangNotify: CLanguageNotificationHandler::NeedUiSession \ - calling-exiting" ) - // The UI is not needed by this command. - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CLanguageNotificationHandler::HandleCommand -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CLanguageNotificationHandler::HandleCommand() - { - LOG( SIMPLE, - "LangNotify: CLanguageNotificationHandler::HandleCommand calling" ) - - // Just OK the request and send a response. - iLanguageNotifyRsp.iInfoType = RSat::KNoAdditionalInfo; - iLanguageNotifyRsp.iAdditionalInfo.Zero(); - iLanguageNotifyRsp.iGeneralResult = RSat::KSuccess; - iLanguageNotifyRsp.SetPCmdNumber( iLanguageNotify.PCmdNumber() ); - - TerminalRsp( RSat::ELanguageNotification, iLanguageNotifyRspPckg ); - - LOG( SIMPLE, - "LangNotify: CLanguageNotificationHandler::HandleCommand exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LanguageNotificationCmd/src/std.cpp --- a/satengine/SatServer/Commands/LanguageNotificationCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CLanguageNotificationHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x101F79FF, CLanguageNotificationHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LaunchBrowserCmd/group/LaunchBrowserCmd.mmp --- a/satengine/SatServer/Commands/LaunchBrowserCmd/group/LaunchBrowserCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project LaunchBrowser plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET LaunchBrowserCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x1000A88D - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CLaunchBrowserHandler.cpp - -START RESOURCE 1000A88D.rss -TARGET LaunchBrowserCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -// Application layer system include is needed due CR provided by Browser -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib -LIBRARY ws32.lib // RWsSession -LIBRARY apgrfx.lib // CApaCommandLine -LIBRARY cmmanager.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LaunchBrowserCmd/group/bld.inf --- a/satengine/SatServer/Commands/LaunchBrowserCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project LaunchBrowserCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -LaunchBrowserCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LaunchBrowserCmd/inc/CLaunchBrowserHandler.h --- a/satengine/SatServer/Commands/LaunchBrowserCmd/inc/CLaunchBrowserHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,381 +0,0 @@ -/* -* Copyright (c) 2002-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: LaunchBrowser command handler -* -*/ - - -#ifndef CLAUNCHBROWSERHANDLER_H -#define CLAUNCHBROWSERHANDLER_H - -#include -#include -#include // WsSession -#include // TApaTask -#include // KWmlcHandler - -#include "CSatCommandHandler.h" -#include "SatSTypes.h" // TSatQuery - -class MSatUtils; -class RCmManager; -class RCmConnectionMethod; - -/** - * Command handler for LaunchBrowser command. - * - * @lib LaunchBrowserCmd.lib - * @since S60 v3.0 - */ -class CLaunchBrowserHandler : public CSatCommandHandler - { - -public: - - static CLaunchBrowserHandler* NewL( MSatUtils* aUtils ); - - virtual ~CLaunchBrowserHandler(); - -// from base class MSatCommand - - /** - * From MSatCommand. - * Response from the client. - * - */ - void ClientResponse(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler. - * Event notification. - * - * @param aEvent An event that is occured. - */ - void Event( TInt aEvent ); - -protected: - -// from base class CActive - - /** - * From CActive. - * Cancels the usat request. - * - */ - void DoCancel(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler. - * Requests the command notification. - * - * @param aStatus Request status - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler. - * Precheck before executing the command. - * - * @return TBool indicating command is currently allowed. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler. - * Need for ui session. - * - * @return TBool indicating need of ui session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler. - * Called when USAT API notifies that command. - * - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. - * Indicates the failure of launching ui client. - * - */ - void UiLaunchFailed(); - -private: - - CLaunchBrowserHandler(); - - void ConstructL(); - - /** - * Checks if Browser application is launched. - * - * @return The result of the operation. - */ - TBool BrowserExists(); - - /** - * Closes the Browser application if it is active. - * - * @return The result of the operation. - */ - void CloseBrowser(); - - /** - * Launches The Browser with URL. - * - * @param aParam, Reference to the parameter for the Browser - * application. - * @param aAccessPointUid, Reference to the accesspoint uid. - */ - void LaunchWithUrlL( - const TDesC& aParam, - const TUid& aAccessPointUid ); - - /** - * Handle the Launch Browser command. - * - */ - void LaunchBrowserL(); - - /** - * Starts timer. Function returns as the given time has elapsed or - * timer is cancelled. - * - * @param aDelay Delay from the function call to complete function in - * microseconds - * @param aInterval Interval to complete wait after aDelay, zero by - * default - */ - void After( - const TTimeIntervalMicroSeconds32& aDelay, - const TTimeIntervalMicroSeconds32& aInterval = 0 ); - - /** - * Called after given delay in After function. - * Causes the After function to complete - * - * @param aPtr Pointer to itself since this is static function - * @return whether to call function again after an interval - */ - static TInt DelayCallBack( TAny* aPtr ); - - /** - * Create a new APN with given parameters using Access Point engine. - * - * @param aApName APN name. - * @param aProxyServerAddr Proxy/Gateway server address. - * @param aProxyPortNumber Proxy server port number. - * @param aIPvType Gateway address IP type. - * - * @return the ID for the new APN - */ - TUint32 CreateAccessPointL( const TDesC16& aApName, - const TDesC16& aProxyServerAddr, - const TUint32 aProxyPortNumber, - const RPacketContext::TProtocolType& aIPvType ); - - /** - * Select an Access Point by the given gateway address. Create one if - * there is not a corresponding AP. - * - * @return IAP id from GCF connection method. - */ - TUint32 GetAccessPointByGatewayAddressL(); - - /** - * Get an Access Point by default. - * - * @return IAP id from default connection method. - */ - TUint32 GetAccessPointByDefaultL(); - - /** - * Get default Url by access point id. - * - * @param aApId Input IAP id by given connection method. - * @return Default Url by given connection method. - */ - HBufC* GetDefaultUrlByAccessPointLC( TUint32 aApId ); - - /** - * A gateway address is required to be a IP address in - * connection method, so it is necessary to check - * the validity of the gateway address to avioding leave in - * APE. - * - * @param aAddress A gateway address. - * @return EIPv4 if the gateway address is a valid IPv4 address. - * EIPv6 if the gateway address is a valid IPv6 address. - * otherwise return 0 to indicate a invalid IP address. - */ - TInt ValidateGatewayAddress( const TDesC16& aAddress ); - - /** - * Check the validity of a IPv4 address. - * - * @param aAddress A IPv4 address. - * @return ETrue if the address is a valid IPv4 address. - */ - TBool ValidateIPv4Address( const TDesC16& aAddress ); - - /** - * Check the validity of a IPv6 address. - * - * @param aAddress A IPv6 address. - * @return ETrue if the address is a valid IPv6 address. - */ - TBool ValidateIPv6Address( const TDesC16& aAddress ); - - /** - * Convert a descriptor to a integer. - * - * @param aAddress A descriptor. - * @return Integer value. - */ - TInt ConvertDesToInt( const TDesC16& aValue ); - - /** - * Check the validity of a descriptor in hex. - * - * @param aAddress A descriptor. - * @return ETrue if each character in the descriptor is a valid - * hexadecimal. - */ - TBool ValidateHexadecimal( const TDesC16& aHex ); - - /** - * Separate the port number from a address if it is existing. For example, - * 210.13.246.172:8080. - * - * @param aAddress A address. - * @param aPureAddr The pure address without any additional info. - * @param aPortNumber The port number. - * @return None. - */ - void SeparatePortNumberFromAddress( const TDesC16& aAddress, - TDes16& aPureAddr, TUint32& aPortNumber ); - - /** - * Fulfill connecion method with default params. - * - * @param aCmManager Connection method manager. - * @param aCm Output reference to RCmConnectionMethod. - * @return None - */ - void FulfillConnnectionMethodL( RCmManager& aCmManager, - RCmConnectionMethod& aCm ); - - /** - * Check the validity of offered bearer type - * - * @param aCm reference to RCmConnectionMethod. - * @param aIsValid Output KErrNone if connection method is valid. - * @return None - */ - void ValidateBearerTypeL( RCmConnectionMethod& aCm, TInt& aIsValid ); - - /** - * Get default connection method. - * - * @param aCmManager Input Connection method manager. - * @param aDefCm Output reference to RCmConnectionMethod. - * @param aIsValid Output KErrNone if found - * @return None - */ - void GetDefConnMethodL( RCmManager& aCmManager, - RCmConnectionMethod& aDefCm, - TInt& aIsValid ); - -private: // data - - /** - * LaunchBrowser command data. - */ - RSat::TLaunchBrowserV2 iLaunchBrowserData; - - /** - * LaunchBrowser command package. - */ - RSat::TLaunchBrowserV2Pckg iLaunchBrowserPckg; - - /** - * Response from client - */ - RSat::TLaunchBrowserRspV2 iLaunchBrowserRsp; - - /** - * Response package. - */ - RSat::TLaunchBrowserRspV2Pckg iLaunchBrowserRspPckg; - - /** - * Query command data - */ - TSatQueryV1 iQueryData; - - /** - * Query package - */ - TSatQueryV1Pckg iQueryPckg; - - /** - * Query response - */ - TSatQueryRspV1 iQueryRsp; - - /** - * Query response package - */ - TSatQueryRspV1Pckg iQueryRspPckg; - - /** - * Window server session - */ - RWsSession iWsSession; - - /** - * Application UID of the Browser. - */ - TUid iUidWmlBrowser; - - /** - * Indicates does this command need UI session ot not - */ - TBool iNeedUiSession; - - /** - * Blocker for After - */ - CActiveSchedulerWait iAfterWait; - - /** - * Timer used in After - */ - CPeriodic* iAfterTimer; - - /** - * Flag to signal that command has icon data - * To be removed when icons are allowed in this command - */ - TBool iIconCommand; - }; - -#endif // CLAUNCHBROWSERHANDLER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LaunchBrowserCmd/inc/LaunchBrowserCmd.rls --- a/satengine/SatServer/Commands/LaunchBrowserCmd/inc/LaunchBrowserCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project LaunchBrowserCmd -* -*/ - - -#ifndef LAUNCHBROWSERCMD_RLS -#define LAUNCHBROWSERCMD_RLS - -rls_string STRING_r_launchbrowsercmd_display_name "LaunchBrowser command" -rls_string STRING_r_launchbrowsercmd_default_data "LaunchBrowserCmd" -rls_string STRING_r_launchbrowsercmd_opaque_data "" - -#endif // LAUNCHBROWSERCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LaunchBrowserCmd/src/1000A88D.rss --- a/satengine/SatServer/Commands/LaunchBrowserCmd/src/1000A88D.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1000 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "LaunchBrowserCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// LaunchBrowserCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO LaunchBrowserCmdInfo - { - dll_uid = 0x1000A88D; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x1000A88E; - version_no = 1; - display_name = STRING_r_launchbrowsercmd_display_name; - default_data = STRING_r_launchbrowsercmd_default_data; - opaque_data = STRING_r_launchbrowsercmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LaunchBrowserCmd/src/CLaunchBrowserHandler.cpp --- a/satengine/SatServer/Commands/LaunchBrowserCmd/src/CLaunchBrowserHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1967 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Handles LaunchBrowser command -* -*/ - - - -#include -#include -#include -#include -#include -#include - -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CLaunchBrowserHandler.h" -#include "SatLog.h" -#include "MSatSystemState.h" - -// The pause constant for checking if BrowserApp has exited. -// This value may be adjusted to ensure the time sequence -const TInt KSatSShortLoopTimeout = 800000; //0.8 sec - -// How many times the browser status is checked, when waiting for -// browser shutdown. Total time -// used to check the exiting of browser app is -// KSatSWaitCount * KSatSShortLoopTimeout. -const TInt KSatSWaitCount = 10; - -// Invalid PDP type -const TInt KSatInvalidPdpType = -1; - -#ifdef _DEBUG -// Class name for error information. -//lint -e752 Accessed in __ASSERT_DEBUG, but lint will not notice it. -_LIT( KLaunchBrowserHandlerName, "CLaunchBrowserHandler" ); -#endif - -const TInt KSatMaxIPv4AddressLength( 15 ); -const TInt KSatMaxIPv6AddressLength( 39 ); -const TInt KSatMinIPv4AddressLength( 7 ); -const TInt KSatMinIPv6AddressLength( 7 ); -const TInt KSatMaxIPv4SegmentCounter( 3 ); -const TInt KSatMaxIPv4SegmentLength( 3 ); -const TInt KSatIPv4Broadcast( 255 ); -const TInt KSatIPv4Network( 0 ); -const TInt KSatMaxIPv6SegmentCounter( 7 ); -const TInt KSatMaxIPv6SegmentLength( 4 ); -const TUint32 KSatLaunchBrowserProxyPortNumber( 80 ); -const TUint32 KSatMaxProxyPortNumber( 9999 ); -const TUint32 KSatMinProxyPortNumber( 0 ); -// Granularity for getting connection methods from CM session -const TUint32 KSatCMGranularity( 5 ); - -_LIT( KSatAccessPointName, "SAT Launch Browser" ); -_LIT( KSatGprsAccessPointName, "internet" ); -_LIT( KSatIPv4Delimiter, "." ); -_LIT( KSatIPv6Delimiter, ":" ); - -// ======== MEMBER FUNCTIONS ======== -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CLaunchBrowserHandler* CLaunchBrowserHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::NewL calling" ) - - CLaunchBrowserHandler* self = new( ELeave ) CLaunchBrowserHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::NewL exiting" ) - return self; - } - - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -// -CLaunchBrowserHandler::~CLaunchBrowserHandler() - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::~CSatSLaunchBrowserHandler \ - calling" ) - - if ( iAfterWait.IsStarted() ) - { - iAfterWait.AsyncStop(); - } - - if ( iAfterTimer ) - { - iAfterTimer->Cancel(); - delete iAfterTimer; - iAfterTimer = NULL; - } - - iWsSession.Close(); - - Cancel(); - - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::~CSatSLaunchBrowserHandler \ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatCommand. -// Response from the client. -// ----------------------------------------------------------------------------- -// -void CLaunchBrowserHandler::ClientResponse() - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::ClientResponse calling" ) - - // TPCmdResult - iLaunchBrowserRsp.iGeneralResult = RSat::KLaunchBrowserError; - - // TAdditionalInfoType - iLaunchBrowserRsp.iInfoType = RSat::KNoAdditionalInfo; - iLaunchBrowserRsp.iAdditionalInfo.Zero(); - iLaunchBrowserRsp.SetPCmdNumber( iLaunchBrowserData.PCmdNumber() ); - - // Perform the action that we just queried the user for. - if ( iQueryRsp.iAccepted ) - { - // Launch the Browser. - TRAPD( err, LaunchBrowserL() ); - if ( KErrNone != err ) - { - iLaunchBrowserRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ClientResponse error: %i", err ) - } - else - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLBH::CR ESetUpMenuRequested registered" ) - TRAP_IGNORE( iUtils->RegisterL( - this, MSatUtils::ESetUpMenuRequested ) ) - } - } - else // User denied this action - { - iLaunchBrowserRsp.iGeneralResult = RSat::KPCmdNotAcceptedByUser; - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ClientResponse not accepted" ) - if ( iQueryRsp.iSessionTerminatedByUser ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ClientResponse close ui session" ) - // Next SimSession end will close the ui session - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - } - - // If command had icon data and was done succesfully, report that icon - // was not shown - // To be removed when icons are allowed in this command - if ( ( RSat::KSuccess == iLaunchBrowserRsp.iGeneralResult ) && - iIconCommand ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ClientResponse icon not display" ) - iLaunchBrowserRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - - TerminalRsp( RSat::ELaunchBrowser, iLaunchBrowserRspPckg ); - - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Event notification -// ----------------------------------------------------------------------------- -// -void CLaunchBrowserHandler::Event( TInt aEvent ) - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::Event calling" ) - - switch ( aEvent ) - { - // SetUpMenu is listening by SAT Client. - case MSatUtils::ESetUpMenuRequested: - { - LOG( NORMAL, - "LAUNCHBROWSER::Event ESetUpMenuRequested catched and unreg" ) - iUtils->UnregisterEvent( this, MSatUtils::ESetUpMenuRequested ); - // Browser is brought to the top after short period of time. - //iUtils->SatUiHandler().ShellController(). - // BringBrowserToForegroundAfterPeriod(); - break; - } - - default: - { - LOG2( NORMAL, "LAUNCHBROWSER: Unexpected event: %i", aEvent ) - CSatCommandHandler::Event( aEvent ); - } - } - - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CLaunchBrowserHandler::DoCancel() - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifyLaunchBrowserCancel(); - - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Requests the command notification. -// ----------------------------------------------------------------------------- -// -void CLaunchBrowserHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iLaunchBrowserData) RSat::TLaunchBrowserV2(); - iQueryRsp.iAccepted = EFalse; // default - - iUtils->USatAPI().NotifyLaunchBrowser( aStatus, iLaunchBrowserPckg ); - - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Precheck before executing the command. -// ----------------------------------------------------------------------------- -// -TBool CLaunchBrowserHandler::CommandAllowed() - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::CommandAllowed calling" ) - - iLaunchBrowserRsp.iGeneralResult = RSat::KLaunchBrowserError; - iLaunchBrowserRsp.iInfoType = RSat::KNoAdditionalInfo; - iLaunchBrowserRsp.iAdditionalInfo.Zero(); - - RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus( - iUtils->SystemState().GetNetworkRegistrationStatus() ); - - TBool commandAllowed( ETrue ); - - if ( RSat::EBrowserIdNotSpecified == iLaunchBrowserData.iBrowserId ) - { - // When get unknown browser id, such as RFU value, return - // terminal response of command not understood. - iLaunchBrowserRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - commandAllowed = EFalse; - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::CommandAllowed unknown browser id" ) - } - else if ( ( RSat::EAlphaIdProvided != - iLaunchBrowserData.iAlphaId.iStatus ) && - ( RSat::ESelfExplanatory == - iLaunchBrowserData.iIconId.iQualifier || - RSat::ENotSelfExplanatory == - iLaunchBrowserData.iIconId.iQualifier ) ) - { - iLaunchBrowserRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - commandAllowed = EFalse; - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::CommandAllowed icon without alpha id" ) - } - else if ( - ( RMobilePhone::ERegisteredOnHomeNetwork != registrationStatus ) && - ( RMobilePhone::ERegisteredRoaming != registrationStatus ) ) - { - iLaunchBrowserRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iLaunchBrowserRsp.iInfoType = RSat::KMeProblem; - iLaunchBrowserRsp.iAdditionalInfo.SetLength( 1 ); - iLaunchBrowserRsp.iAdditionalInfo[0] = RSat::KNoService; - commandAllowed = EFalse; - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::CommandAllowed\ - MS is out of service (Net. Reg. status wrong)" ) - } - else if ( RSat::EBrowserSelectionNotSet == iLaunchBrowserData.iBrowserSel ) - { - iLaunchBrowserRsp.iGeneralResult = RSat::KCmdTypeNotUnderstood; - commandAllowed = EFalse; - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::CommandAllowed selection not set" ) - } - else if ( RSat::ELaunchBrowserIfNotAlreadyLaunched == - iLaunchBrowserData.iBrowserSel ) - { - if ( BrowserExists() ) - { - iLaunchBrowserRsp.iInfoType = RSat::KMeProblem; - iLaunchBrowserRsp.iAdditionalInfo.Append( - RSat::KBrowserUnavailable ); - commandAllowed = EFalse; - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::CommandAllowed not launched" ) - } - } - else - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::CommandAllowed ok" ) - } - - if ( !commandAllowed ) - { - LOG( SIMPLE, - "CLaunchBrowserHandler::CommandAllowed commandAllowed false" ) - iLaunchBrowserRsp.SetPCmdNumber( iLaunchBrowserData.PCmdNumber() ); - TerminalRsp( RSat::ELaunchBrowser, iLaunchBrowserRspPckg ); - } - // Set icon command flag whether icon data was received and set qualifier - // to no icon id - // To be removed when icons are allowed in this command - else if ( ( RSat::ESelfExplanatory == - iLaunchBrowserData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iLaunchBrowserData.iIconId.iQualifier ) ) - { - LOG( SIMPLE, - "CLaunchBrowserHandler::CommandAllowed commandAllowed ENoIconId" ) - iIconCommand = ETrue; - iLaunchBrowserData.iIconId.iQualifier = RSat::ENoIconId; - } - else - { - iIconCommand = EFalse; - } - - LOG2( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::CommandAllowed exiting, \ - commandAllowed: %d", commandAllowed ) - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Answers for need of UI session. -// ----------------------------------------------------------------------------- -// -TBool CLaunchBrowserHandler::NeedUiSession() - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::NeedUiSession calling" ) - - const RSat::TAlphaId alphaId( iLaunchBrowserData.iAlphaId ); - - iNeedUiSession = ETrue; - - if ( ( ( alphaId.iStatus == RSat::EAlphaIdProvided && - alphaId.iAlphaId.Length() == 0 ) || - alphaId.iStatus == RSat::EAlphaIdNull ) && - ( !iUtils->SystemState().IsConfirmSatOperationsOn() ) ) - { - iNeedUiSession = EFalse; - LOG( NORMAL, - "LAUNCHBROWSER: CLaunchBrowserHandler::NeedUiSession no \ - Ui session needed" ) - } - - if ( iUtils->CoverUiSupported() && iNeedUiSession ) - { - LOG( NORMAL, - "LAUNCHBROWSER: CLaunchBrowserHandler::NeedUiSession Ui session \ - needed" ) - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::ELaunchBrowser; - medEventData.iAlphaId = iLaunchBrowserData.iAlphaId; - - if ( iUtils->SystemState().IsConfirmSatOperationsOn() ) - { - LOG( NORMAL, - "LAUNCHBROWSER: CLaunchBrowserHandler::NeedUiSession \ - KSatLongDuration" ) - medEventData.iDuration.iNumOfUnits = KSatLongDuration; - } - else - { - medEventData.iDuration.iNumOfUnits = KSatDefaultDuration; - } - - medEventData.iDuration.iTimeUnit = RSat::ESeconds; - medEventData.iIconID = iLaunchBrowserData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - - LOG2( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::NeedUiSession exiting, \ - iNeedUiSession: %d", iNeedUiSession ) - return iNeedUiSession; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when USAT API notifies that command. -// ----------------------------------------------------------------------------- -// -void CLaunchBrowserHandler::HandleCommand() - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::HandleCommand calling" ) - - // Register service request handler for LaunchBrowser command, - // If there is already service request for query, registering - // updates command handler, so client responses comes to this - // command handler - TRAPD( err, iUtils->RegisterServiceRequestL( - ESatSProactiveQuery, - ESatSProactiveQueryResponse, - this ) ); - - if ( KErrNone != err ) - { - iLaunchBrowserRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iLaunchBrowserRsp.iInfoType = RSat::KMeProblem; - iLaunchBrowserRsp.iAdditionalInfo.SetLength( 1 ); - iLaunchBrowserRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iLaunchBrowserRsp.SetPCmdNumber( iLaunchBrowserData.PCmdNumber() ); - TerminalRsp( RSat::ELaunchBrowser, iLaunchBrowserRspPckg ); - - LOG2( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::HandleCommand error: %i", err ) - } - else if ( iNeedUiSession ) - { - iQueryData.iCommand = ESatSLaunchBrowserQuery; - iQueryData.iQueryText = iLaunchBrowserData.iAlphaId.iAlphaId; - iQueryData.iIconId.iIdentifier = - iLaunchBrowserData.iIconId.iIdentifier; - LOG2( SIMPLE, "CLaunchBrowserHandler::HandleCommand \ - iLaunchBrowserData.iIconId.iQualifier: %i", - iLaunchBrowserData.iIconId.iQualifier ) - switch ( iLaunchBrowserData.iIconId.iQualifier ) - { - case RSat::ESelfExplanatory: - { - // Icon qualifier is self explanatory (to display instead - // of the alpha id or text string). - iQueryData.iIconId.iIconQualifier = ESatSelfExplanatory; - break; - } - - case RSat::ENotSelfExplanatory: - { - // Icon qualifier is not self explanatory. - iQueryData.iIconId.iIconQualifier = ESatNotSelfExplanatory; - break; - } - - default: - { - // Icon qualifier not present - iQueryData.iIconId.iIconQualifier = ESatENoIconId; - break; - } - } - - if ( RSat::EAlphaIdNotPresent == iLaunchBrowserData.iAlphaId.iStatus ) - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::HandleCommand \ - EAlphaIdNotPresent" ) - iQueryData.iAlphaIdStatus = ESatAlphaIdNotProvided; - } - else if ( RSat::EAlphaIdProvided == - iLaunchBrowserData.iAlphaId.iStatus ) - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::HandleCommand \ - EAlphaIdProvided" ) - iQueryData.iAlphaIdStatus = ESatAlphaIdNotNull; - } - else - { - iQueryData.iAlphaIdStatus = ESatAlphaIdNull; - } - - iQueryData.iSimApplicationName = iUtils->SatAppName(); - - // Ask the user permission to launch browser. Reply will come - // to ClientResponse() method. - iUtils->SatUiHandler().UiSession()->SendCommand( - &iQueryPckg, - &iQueryRspPckg, - ESatSProactiveQuery ); - } - else // transparent launch - { - // Launch the Browser. - TRAP( err, LaunchBrowserL() ); - - if ( KErrNone != err ) - { - iLaunchBrowserRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::HandleCommand error: %i", err ) - } - else - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLBH::CR ESetUpMenuRequested registered" ) - TRAP_IGNORE( iUtils->RegisterL( - this, MSatUtils::ESetUpMenuRequested ) ) - } - - TerminalRsp( RSat::ELaunchBrowser, iLaunchBrowserRspPckg ); - } - - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Indicates the failure of launching ui client. -// ----------------------------------------------------------------------------- -// -void CLaunchBrowserHandler::UiLaunchFailed() - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::UiLaunchFailed calling" ) - - iLaunchBrowserRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iLaunchBrowserRsp.iInfoType = RSat::KMeProblem; - iLaunchBrowserRsp.iAdditionalInfo.SetLength( 1 ); - iLaunchBrowserRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iLaunchBrowserRsp.SetPCmdNumber( iLaunchBrowserData.PCmdNumber() ); - TerminalRsp( RSat::ELaunchBrowser, iLaunchBrowserRspPckg ); - - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized, harmless. -CLaunchBrowserHandler::CLaunchBrowserHandler() : - CSatCommandHandler(), - iLaunchBrowserData(), - iLaunchBrowserPckg( iLaunchBrowserData ), - iLaunchBrowserRsp(), - iLaunchBrowserRspPckg( iLaunchBrowserRsp ), - iQueryData(), - iQueryPckg( iQueryData ), - iQueryRsp(), - iQueryRspPckg( iQueryRsp ), - iUidWmlBrowser( TUid::Uid( KWmlcHandler ) ), - iAfterTimer( NULL ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::CLaunchBrowserHandler \ - calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CLaunchBrowserHandler::ConstructL() - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::ConstructL calling" ) - - // Open the Window server session. - User::LeaveIfError( iWsSession.Connect() ); - - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::ConstructL exiting" ) - } - - -// ----------------------------------------------------------------------------- -// Checks if Browser application is launched. -// ----------------------------------------------------------------------------- -// -TBool CLaunchBrowserHandler::BrowserExists() - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::BrowserExists calling" ) - TBool browserExists( EFalse ); - - TApaTaskList taskList( iWsSession ); - TApaTask task = taskList.FindApp( iUidWmlBrowser ); - browserExists = task.Exists(); - - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::BrowserExists exiting" ) - return browserExists; - } - -// ----------------------------------------------------------------------------- -// The Launch Browser handler. -// ----------------------------------------------------------------------------- -// -void CLaunchBrowserHandler::LaunchBrowserL() - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchBrowserL calling" ) - - // Check the URL length. - const TInt urlLen( iLaunchBrowserData.iUrl.Length() ); - - // ID of the accesspoint in the communications database. - TUid accesspointID( TUid::Uid( KErrNotFound ) ); - - // If apId is given by SIM card, then we use that, otherwise, - // get default apId from default connection method. - TUint32 apId( 0 ); - // GCF is supported since S60 5.0 - apId = GetAccessPointByGatewayAddressL(); - if ( apId ) - { - LOG2( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchBrowserL, \ - Get gcf AP id = %d", apId ) - accesspointID.iUid = static_cast( apId ); - } - - // Get default AP if GCF ap not found - if ( KErrNotFound == accesspointID.iUid ) - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchBrowserL, \ - no gcf AP id" ) - apId = GetAccessPointByDefaultL(); - if ( apId ) - { - LOG2( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchBrowserL, \ - default AP id = %d", apId ) - accesspointID.iUid = static_cast( apId ); - } - } - - LOG2( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchBrowserL, \ - accesspointID.iUid=%d", accesspointID.iUid ) - - HBufC* param = NULL; - // If the URL is given by SIM, then we use that - if ( urlLen ) - { - // Url is given by SIM, and we use that. - param = HBufC::NewLC( urlLen ); - param->Des().Copy( iLaunchBrowserData.iUrl ); - LOG3( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchBrowserL,\ - url is given by SIM, url=%s, length=%d", - param, param->Des().Length() ) - } - // If no url from SIM, get default URL by selected access point. - else if ( !param && accesspointID.iUid > 0 ) - { - param = GetDefaultUrlByAccessPointLC( - static_cast( accesspointID.iUid) ); - LOG3( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchBrowserL,\ - url is given by IAP, url=%s, length=%d", - param, param->Des().Length() ) - } - else - { - param = KNullDesC().AllocLC(); - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchBrowserL no url" ) - } - - switch ( iLaunchBrowserData.iBrowserSel ) - { - case RSat::ECloseExistingLaunchNewBrowserSession: - { - LOG( NORMAL, "LAUNCHBROWSER: CLaunchBrowserHandler:: \ - LaunchBrowserL, ECloseExistingLaunchNewBrowserSession" ) - CloseBrowser(); // Close Browser Session if it exists. - LaunchWithUrlL( param->Des(), accesspointID ); - break; - } - - case RSat::ELaunchBrowserIfNotAlreadyLaunched: - { - LOG( NORMAL, "LAUNCHBROWSER: CLaunchBrowserHandler:: \ - LaunchBrowserL, ELaunchBrowserIfNotAlreadyLaunched" ) - if ( BrowserExists() ) - { - LOG( SIMPLE,"CLaunchBrowserHandler::LaunchBrowserL \ - BrowserExists" ) - // Browser exists, error response returned. - iLaunchBrowserRsp.iGeneralResult = RSat::KLaunchBrowserError; - iLaunchBrowserRsp.iInfoType = RSat::KMeProblem; - iLaunchBrowserRsp.iAdditionalInfo.Append( - RSat::KBrowserUnavailable ); - } - else - { - LaunchWithUrlL( param->Des(), accesspointID ); - } - break; - } - - case RSat::EUseExistingBrowser: - { - // SAT Shell Controller looks if browser already exists. - LOG( NORMAL, "LAUNCHBROWSER: CLaunchBrowserHandler:: \ - LaunchBrowserL,EUseExistingBrowser" ) - LaunchWithUrlL( param->Des(), accesspointID ); - break; - } - - case RSat::EBrowserSelectionNotSet: - default: - __ASSERT_DEBUG( EFalse, - Panic( KLaunchBrowserHandlerName, KErrBadName ) ); - break; - } - - CleanupStack::PopAndDestroy( param ); - - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchBrowserL exiting" ) - } - -// -------------------------------------------------------------------------- -// Closes the Browser application if it is active and waits until -// closing is complete. -// -------------------------------------------------------------------------- -// -void CLaunchBrowserHandler::CloseBrowser() - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::CloseBrowser calling" ) - TApaTaskList taskList( iWsSession ); - TApaTask task = taskList.FindApp( iUidWmlBrowser ); - - if ( task.Exists() ) - { - task.SendSystemEvent( EApaSystemEventShutdown ); - - TBool browserExists( ETrue ); - TInt waitCount( 0 ); - LOG2( SIMPLE, - "CLaunchBrowserHandler::CloseBrowser browserExists: %d", - browserExists ) - // Make sure that closing is completed. - while ( browserExists ) - { - After( KSatSShortLoopTimeout ); - ++waitCount; - - TApaTask newTask = taskList.FindApp( iUidWmlBrowser ); - browserExists = newTask.Exists(); - - if ( KSatSWaitCount <= waitCount ) - { - newTask.KillTask(); - browserExists = EFalse; - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler:: \ - CloseBrowser force kill task" ) - } - } - } - - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::CloseBrowser exiting" ) - } - -// -------------------------------------------------------------------------- -// Launches The Browser with URL. -// -------------------------------------------------------------------------- -// -void CLaunchBrowserHandler::LaunchWithUrlL( const TDesC& aParam, - const TUid& aAccessPointUid ) - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchWithUrlL calling" ) - LOG3( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchWithUrlL\ - url=%s, IAP=%d", &aParam, aAccessPointUid.iUid ) - - // Browser launching called. - //TInt err = iUtils->SatUiHandler().ShellController().LaunchBrowserL( - // aParam, aAccessPointUid ); - TInt err = KErrNone; - - if ( KErrNone == err ) - { - if ( !iQueryRsp.iRequestedIconDisplayed && - ( ( RSat::ESelfExplanatory == - iLaunchBrowserData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iLaunchBrowserData.iIconId.iQualifier ) ) ) - { - iLaunchBrowserRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchWithUrlL \ - no icon shown" ) - } - else - { - iLaunchBrowserRsp.iGeneralResult = RSat::KSuccess; - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchWithUrlL \ - command ok" ) - } - } - else - { - iLaunchBrowserRsp.iGeneralResult = RSat::KLaunchBrowserError; - iLaunchBrowserRsp.iInfoType = RSat::KMeProblem; - iLaunchBrowserRsp.iAdditionalInfo.Append( - RSat::KBrowserUnavailable ); - LOG2( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchWithUrlL error: %i", - err ) - } - - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::LaunchWithUrlL exiting" ) - } - -// -------------------------------------------------------------------------- -// Starts timer. Function returns as the given time has elapsed or -// timer is cancelled. -// -------------------------------------------------------------------------- -void CLaunchBrowserHandler::After( - const TTimeIntervalMicroSeconds32& aDelay, - const TTimeIntervalMicroSeconds32& aInterval ) - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::After calling" ) - - if ( !iAfterWait.IsStarted() ) - { - TRAPD( err, iAfterTimer = CPeriodic::NewL( EPriorityStandard ) ) - LOG2( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::After err: %i", err ) - if ( ( KErrNone == err ) && iAfterTimer ) - { - iAfterTimer->Start( - aDelay, aInterval, TCallBack( DelayCallBack, this ) ); - iAfterWait.Start(); - - delete iAfterTimer; - iAfterTimer = NULL; - } - } - - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::After exiting" ) - } - -// -------------------------------------------------------------------------- -// Timer call back function -// -------------------------------------------------------------------------- -TInt CLaunchBrowserHandler::DelayCallBack( TAny* aPtr ) - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::DelayCallBack \ - calling" ) - CLaunchBrowserHandler* ptrThis = - static_cast( aPtr ); - - if ( ptrThis && ( ptrThis->iAfterWait.IsStarted() ) ) - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::DelayCallBack \ - stop iAfterWait" ) - ptrThis->iAfterWait.AsyncStop(); - } - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::DelayCallBack \ - exiting" ) - return ( EFalse ); - } - -// -------------------------------------------------------------------------- -// Create a new access point using the Access Point Engine. -// -------------------------------------------------------------------------- -// -TUint32 CLaunchBrowserHandler::CreateAccessPointL( - const TDesC16& aApName, - const TDesC16& aProxyServerAddr, - const TUint32 aProxyPortNumber, - const RPacketContext::TProtocolType& aIPvType ) - { - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::CreateAccessPointL calling" ) - - // Connection method interface. - RCmConnectionMethod cm; - // Connection method manager interface. - RCmManager cmManager; - // Used to exit connection methods go through loop - TBool exitConnectionMethodsLoop( EFalse ); - - cmManager.OpenLC(); - - // Find if the access point with the same name is already exist. - // If such access point exists, delete it and then create a new one. - - // Get the Connection Methods does not belogns to any destination - RArray array = RArray( KSatCMGranularity ); - CleanupClosePushL( array ); - - cmManager.ConnectionMethodL( array ); - - // Go through the Connection Method list to find if there is matched one - - for( TInt i = 0; - ( i < array.Count() ) && !exitConnectionMethodsLoop; ++i) - { - cm = cmManager.ConnectionMethodL( array[i] ); - CleanupClosePushL( cm ); - - // query the access point name - HBufC * pa = NULL; - pa = cm.GetStringAttributeL( CMManager::ECmName ); - CleanupStack::PushL(pa); - - if ( *pa == aApName ) - { - // Find the matched connection method - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::\ - CreateAccessPointL, find the existing ap" ) - cm.DeleteL(); - exitConnectionMethodsLoop = ETrue; - } - CleanupStack::PopAndDestroy( pa ); - CleanupStack::PopAndDestroy( &cm ); - } - CleanupStack::PopAndDestroy( &array ); - - // Create a connection method without destination. - cm = cmManager.CreateConnectionMethodL( KUidPacketDataBearerType ); - CleanupClosePushL( cm ); - - // Fulfill connection method params with default setting from OCC. - // We use trap to continue following operations even if leaving from - // FulfillConnnectionMethodL. - TRAPD( errCode, FulfillConnnectionMethodL( cmManager, cm ) ); - LOG3( SIMPLE, "SATENGINE: CLaunchBrowserHandler::CreateAccessPointL \ - errCode=%d ad line %d", errCode, __LINE__ ) - // Set attributes of the connection method. - cm.SetStringAttributeL( CMManager::ECmName, aApName ); - cm.SetIntAttributeL( CMManager::EPacketDataPDPType, aIPvType ); - cm.SetStringAttributeL( CMManager::ECmWapIPGatewayAddress, - TPtrC( aProxyServerAddr ) ); - cm.SetStringAttributeL( CMManager::ECmProxyServerName, - TPtrC( aProxyServerAddr ) ); - cm.SetIntAttributeL( CMManager::ECmProxyPortNumber, aProxyPortNumber ); - - // Update the access point ID for use later. - cm.UpdateL(); - - TUint32 apId = cm.GetIntAttributeL( CMManager::ECmIapId ); - LOG2( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::CreateAccessPointL apId=%d", - apId ) - - CleanupStack::PopAndDestroy( &cm ); - CleanupStack::PopAndDestroy( &cmManager ); - - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::CreateAccessPointL exiting" ) - - return apId; - } - -// -------------------------------------------------------------------------- -// Get a AP from the Connection Method Manager. -// -------------------------------------------------------------------------- -TUint32 CLaunchBrowserHandler::GetAccessPointByGatewayAddressL() - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::GetAccessPointByGatewayAddressL calling" ) - // Access Point ID. - TUint32 apId( 0 ); - // Unknown IP address type. - TInt ipvType( 0 ); - // Get the gateway address. - TPtrC gatewayAddrPtr( iLaunchBrowserData.iText ); - // Get the bearer list. - TPtrC8 bearerListPtr( iLaunchBrowserData.iBearerList ); - - // Proxy address. - HBufC* proxyAddress = NULL; - // Proxy port number. - TUint32 proxyPortNumber( 0 ); - HBufC* pa = NULL; - TUint32 pn( 0 ); - - // Used to exit the connection method go through loop - TBool exitConnectionMethodsLoop( EFalse ); - - // SAT access point name. - TPtrC satAPN( KNullDesC ); - - // Use SAT application name as SAT APN. - satAPN.Set( iUtils->SatAppName() ); - // Use default SAT APN if SAT application name is not available. - if ( satAPN == KNullDesC ) - { - LOG( SIMPLE, - "CLaunchBrowserHandler::GetAccessPointByGatewayAddressL\ - satAPN == KNullDesC" ) - satAPN.Set( KSatAccessPointName ); - } - - // Get the proxy address and port number - proxyAddress = HBufC::NewLC( gatewayAddrPtr.Length() ); - TPtr proxyAddrPtr( proxyAddress->Des() ); - SeparatePortNumberFromAddress( gatewayAddrPtr, proxyAddrPtr, - proxyPortNumber ); - proxyAddrPtr.TrimAll(); - - // Check the launch browser package for gateway setting. - ipvType = ValidateGatewayAddress( proxyAddrPtr ); - - if ( RPacketContext::EPdpTypeIPv4 == ipvType || \ - RPacketContext::EPdpTypeIPv6 == ipvType ) - { - LOG2( SIMPLE, - "CLaunchBrowserHandler::GetAccessPointByGatewayAddressL \ - gatewayAddrPtr.Length(): %d", gatewayAddrPtr.Length() ) - // Check the launch browser package for bearer setting if the gateway - // address is valid. - LOG2( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler:: \ - GetAccessPointByGatewayAddressL, IPvType is %d", - ipvType) - if ( gatewayAddrPtr.Length() ) - { - // The bearer is GPRS. - if ( bearerListPtr != KNullDesC8 && bearerListPtr.Length() > 0 - && RSat::KGprsBearer == bearerListPtr[0] ) - { - - // Go through the candidate connection methods to find - // the one matched the gateway address. If a matched one - // is found,using it as the access point for SIM service, - // else a new one is created. - RCmManager cmManager; - cmManager.OpenLC(); - - // Get the Connection Methods does not belongs to - // any destination - RArray array = RArray( - KSatCMGranularity ); - CleanupClosePushL( array ); - - cmManager.ConnectionMethodL( array ); - - // Go through the Connection Method list to find - // if there is matched one - - for( TInt i = 0; - ( i < array.Count() ) && !exitConnectionMethodsLoop; - ++i ) - { - RCmConnectionMethod cm = cmManager.ConnectionMethodL( - array[i] ); - CleanupClosePushL( cm ); - - // query the Gateway proxy address - // of the Connection Method - pa = cm.GetStringAttributeL( - CMManager::ECmWapIPGatewayAddress ); - CleanupStack::PushL(pa); - - // query the Gateway proxy port number of the Connection - // Method - pn = cm.GetIntAttributeL( - CMManager::ECmProxyPortNumber ); - - if (( pn == proxyPortNumber ) && - ( *pa == *proxyAddress )) - { - // Find the matched connection method - apId = cm.GetIntAttributeL( CMManager::ECmIapId ); - LOG2( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::\ - GetAccessPointByGatewayAddressL, apId=%d", - apId ) - exitConnectionMethodsLoop = ETrue; - } - - CleanupStack::PopAndDestroy( pa ); - CleanupStack::PopAndDestroy( &cm ); - } - - CleanupStack::PopAndDestroy( &array ); - CleanupStack::PopAndDestroy( &cmManager ); - - LOG2( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler:: \ - GetAccessPointByGatewayAddressL apId=%d", apId ) - - if ( !apId ) - { - // Create a new AP if there is not a matched one. - apId = CreateAccessPointL( - satAPN, - proxyAddrPtr, - proxyPortNumber, - static_cast( - ipvType ) ); - } - } - } - } - CleanupStack::PopAndDestroy( proxyAddress ); - - LOG2( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::\ - GetAccessPointByGatewayAddressL exiting, apId=%d", apId ) - - // return the AP. - return apId; - } - -// -------------------------------------------------------------------------- -// Get an Access Point by default. -// -------------------------------------------------------------------------- -TUint32 CLaunchBrowserHandler::GetAccessPointByDefaultL() - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::\ - GetAccessPointByDefaultL calling" ) - - TUint32 apId ( KErrNone ); - RCmManager cmManager; - cmManager.OpenLC(); - RCmConnectionMethod cm; - CleanupClosePushL( cm ); - - // Get a default connection method - TInt ret( KErrNotFound ); - GetDefConnMethodL( cmManager, cm, ret ); - if ( !ret ) - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::\ - GetAccessPointByDefaultL default connection found" ) - apId = cm.GetIntAttributeL( CMManager::ECmIapId ); - } - - CleanupStack::PopAndDestroy( &cm ); - CleanupStack::PopAndDestroy( &cmManager ); - - LOG2( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::\ - GetAccessPointByDefaultL exiting, apId=%d", apId ) - - return apId; - } - -// -------------------------------------------------------------------------- -// Get default URL by access point -// -------------------------------------------------------------------------- -HBufC* CLaunchBrowserHandler::GetDefaultUrlByAccessPointLC( TUint32 aApId ) - { - LOG2( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::\ - GetDefaultUrlByAccessPointLC calling, aApId=%d", aApId ) - - HBufC* url = NULL; - if ( aApId > 0 ) - { - // Create CMManager session - RCmManager cmManager; - cmManager.OpenLC(); - - // get the connection method by apId - RCmConnectionMethod cm = cmManager.ConnectionMethodL( aApId ); - CleanupClosePushL( cm ); - - // Get the default URL from default accesspoint - // If the access point doesn't include the default URL, - // the empty string is returned. - url = cm.GetStringAttributeL( CMManager::ECmStartPage ); - - CleanupStack::PopAndDestroy( &cm ); - CleanupStack::PopAndDestroy( &cmManager ); - - CleanupStack::PushL( url ); - } - - if ( !url ) - { - url = KNullDesC().AllocLC(); - } - - LOG2( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::\ - GetDefaultUrlByAccessPointLC exiting, url=%s", url ) - return url; - } - -// -------------------------------------------------------------------------- -// Convert a descriptor into a integer. -// -------------------------------------------------------------------------- -TInt CLaunchBrowserHandler::ConvertDesToInt( const TDesC16& aDes ) - { - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ConvertDesToInt calling,length of aDes:%d", - aDes.Length() ) - - TLex converter; - TInt intValue( KErrNotFound ); - TBool digital( ETrue ); - - if ( aDes != KNullDesC && aDes.Length() > 0 ) - { - // The literal value of every element in the descriptor - // should be numerical. - for ( TInt i = 0; i < aDes.Length() && digital; i++ ) - { - TChar ch( aDes[i] ); - - if ( !ch.IsDigit() ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ConvertDesToInt not digit" ) - digital = EFalse; - } - } - - if ( digital ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ConvertDesToInt digit" ) - // Converting. - converter.Assign( aDes ); - converter.Val( intValue ); - } - } - - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ConvertDesToInt exiting,intValue:%d", - intValue ) - - return intValue; - } - -// -------------------------------------------------------------------------- -// Check the validity of a descriptor in hex. -// -------------------------------------------------------------------------- -TBool CLaunchBrowserHandler::ValidateHexadecimal( const TDesC16& aHex ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateHexadecimal calling" ) - - // The hexadecimal descriptor can be null. - TInt length( aHex.Length() ); - TBool retVal( ETrue ); - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateHexadecimal length:%d", length ) - - // Validate characters one by one. - for ( TInt i = 0; i < length && retVal; i++ ) - { - TChar ch( aHex[i] ); - - if ( !ch.IsHexDigit() ) - { - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateHexadecimal hex digit,i: %d", - i ) - retVal = EFalse; - } - } - - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateHexadecimal exiting, retVal:%d", - retVal ) - - return retVal; - } - -// -------------------------------------------------------------------------- -// Check the validity of a IPv4 address. For example, 210.13.246.172. -// -------------------------------------------------------------------------- -TBool CLaunchBrowserHandler::ValidateIPv4Address( - const TDesC16& aAddress ) - { - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv4Address calling,aAddress: %s", - &aAddress ) - - // Separate the address to be three segments using dot and validate - // each segment. - TPtrC segPtr( aAddress ); - TBuf segment; - TInt posInDes( KErrNone ); - TInt posInPtr( KErrNone ); - TInt segCounter( KErrNone ); - TBool first( ETrue ); - TBool retVal( ETrue ); - // Segment value in integer. - TInt intValue( KErrNone ); - - // Convert each segment into integer. - while ( KErrNotFound != ( posInPtr = segPtr.Find( KSatIPv4Delimiter ) ) - && retVal ) - { - - if ( KSatMaxIPv4SegmentLength >= posInPtr && 0 < posInPtr ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv4Address posInPtr valid" ) - segCounter++; - posInDes += posInPtr; - segment = segPtr.Mid( 0, posInPtr ); - - // The first integer should be > 0 and < 255, others should be - // >=0 and < 255. - intValue = ConvertDesToInt( segment ); - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv4Address first:%d",first ) - if ( first ) - { - first = EFalse; - - if ( !( KSatIPv4Network < intValue && - KSatIPv4Broadcast > intValue ) ) - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::\ - ValidateIPv4Address intValue valid" ) - retVal = EFalse; - } - } - else - { - - if ( !( KSatIPv4Network <= intValue && - KSatIPv4Broadcast > intValue ) ) - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::\ - ValidateIPv4Address intValue range" ) - retVal = EFalse; - } - } - // Skip dot. - posInDes++; - segPtr.Set( aAddress.Mid( posInDes, - aAddress.Length() - posInDes ) ); - } - else - { - retVal = EFalse; - } - } - - // IPv4 address is consist of 4 segment - if ( KSatMaxIPv4SegmentCounter == segCounter && retVal ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv4Address valid address" ) - // Validate the last segment. - segment = segPtr; - - if ( KSatMaxIPv4SegmentLength < segment.Length() ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv4Address address invalid" ) - retVal = EFalse; - } - - intValue = ConvertDesToInt( segment ); - - if ( !( KSatIPv4Network < intValue && - KSatIPv4Broadcast > intValue ) ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv4Address intValue range" ) - retVal = EFalse; - } - } - else - { - retVal = EFalse; - } - - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv4Address exiting,retVal:%d", - retVal ) - - return retVal; - } - -// -------------------------------------------------------------------------- -// Check the validity of a IPv6 address. For example, -// 3ffe:ffff:101::230:6eff:fe04:d9ff. -// -------------------------------------------------------------------------- -TBool CLaunchBrowserHandler::ValidateIPv6Address( - const TDesC16& aAddress ) - { - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv6Address calling,aAddress: %s", - &aAddress ) - - // Separate the address to be eight segments using colon and validate - // each segment. - TPtrC segPtr( aAddress ); - TBuf segment; - TInt posInDes( KErrNone ); - TInt posInPtr( KErrNone ); - TInt segCounter( KErrNone ); - TBool first( ETrue ); - TBool retVal( ETrue ); - - while ( KErrNotFound != ( posInPtr = segPtr.Find( KSatIPv6Delimiter ) ) - && retVal ) - { - - if ( KSatMaxIPv6SegmentLength >= posInPtr && 0 <= posInPtr ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv6Address posInPtr valid" ) - segCounter++; - posInDes += posInPtr; - segment = segPtr.Mid( 0, posInPtr ); - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv6Address first:%d",first ) - if ( first ) - { - first = EFalse; - - if ( 0 >= segment.Length() ) - { - retVal = EFalse; - } - } - - if ( KSatMaxIPv6SegmentLength < segment.Length() ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv6Address address invalid" ) - retVal = EFalse; - } - - if ( !ValidateHexadecimal( segment ) ) - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::\ - ValidateIPv6Address address invalid hex" ) - retVal = EFalse; - } - - // Skip colon. - posInDes++; - segPtr.Set( aAddress.Mid( posInDes, - aAddress.Length() - posInDes ) ); - } - else - { - retVal = EFalse; - } - } - - // IPv6 address is consist of 8 segment - if ( KSatMaxIPv6SegmentCounter == segCounter && retVal ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv6Address valid address" ) - // Validate the last segment. - segment = segPtr; - - if ( KSatMaxIPv6SegmentLength < segment.Length() ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv6Address address invalid" ) - retVal = EFalse; - } - - if ( !ValidateHexadecimal( segment ) ) - { - LOG( SIMPLE, "LAUNCHBROWSER: CLaunchBrowserHandler::\ - ValidateIPv6Address address invalid hex" ) - retVal = EFalse; - } - } - else - { - retVal = EFalse; - } - - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateIPv6Address exiting,retVal:%d", - retVal ) - - return retVal; - } - -// -------------------------------------------------------------------------- -// Check the validity of a gateway IP address. Either it is IPv4 or IPv6. -// For example, 210.13.246.172 or 3ffe:ffff:101::230:6eff:fe04:d9ff. -// -------------------------------------------------------------------------- -TInt CLaunchBrowserHandler::ValidateGatewayAddress( - const TDesC16& aAddress ) - { - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateGatewayAddress calling,length of \ - aAddress: %d", aAddress.Length() ) - - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateGatewayAddress aAddress: %s", &aAddress ) - TInt ipvType( KSatInvalidPdpType ); - TInt length( aAddress.Length() ); - - if ( length ) - { - // The maximum length of a IP address is less than 39. - if ( KSatMaxIPv4AddressLength >= length && - KSatMinIPv4AddressLength <= length ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateGatewayAddress IPV4 address" ) - // aAddress is a IPv4 address. - if ( ValidateIPv4Address( aAddress ) ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateGatewayAddress valid IPV4 \ - address" ) - ipvType = RPacketContext::EPdpTypeIPv4; - } - } - else if ( KSatMaxIPv6AddressLength >= length && - KSatMinIPv6AddressLength <= length ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateGatewayAddress IPV6 address" ) - // aAddress is a IPv6 address. - if ( ValidateIPv6Address( aAddress ) ) - { - LOG( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateGatewayAddress valid IPV6 \ - address" ) - ipvType = RPacketContext::EPdpTypeIPv6; - } - } - } - - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::ValidateGatewayAddress exiting,ipvType:%d", - ipvType ) - - // Returned IP address. - return ipvType; - } - -// -------------------------------------------------------------------------- -// Separate the port number from a address if it is existing. For example, -// 210.13.246.172:8080. -// -------------------------------------------------------------------------- -void CLaunchBrowserHandler::SeparatePortNumberFromAddress( - const TDesC16& aAddress, - TDes16& aPureAddr, - TUint32& aPortNumber ) - { - LOG2( SIMPLE, "LAUNCHBROWSER: \ - CLaunchBrowserHandler::SeparatePortNumberFromAddress calling,\ - aAddress: %s", &aAddress ) - - // The following three variables are used to locate the port number. - TBool isSeparator( EFalse ); - TBool portNumberBegin( EFalse ); - TBool portNumberEnd( EFalse ); - TBool pureAddrEnd( EFalse ); - // Count delimiters in the address. - TInt delimiterCounter( 0 ); - // Count symbols in a segment of the address. - TInt symbolCounter( 0 ); - // Currsent position of the address descriptor. - TInt curPos( 0 ); - TInt posOffset( 0 ); - // The position of the last valid character. - TInt rightBound( 0 ); - // Digital port number. - TUint32 portNumber( KSatLaunchBrowserProxyPortNumber ); - // The descriptor pointer for the address. - TPtrC addrPtr; - // The length of the address. - TInt addrLen( 0 ); - - // The address is a valid descriptor. - if ( NULL != &aAddress && - KSatMinIPv4AddressLength <= aAddress.Length() ) - { - addrPtr.Set( aAddress ); - addrLen = aAddress.Length(); - curPos = addrPtr.Find( KSatIPv4Delimiter ); - - LOG2( SIMPLE, "CLaunchBrowserHandler::\ - SeparatePortNumberFromAddress curPos: %i", curPos ) - if ( KErrNotFound != curPos ) - { - // Skip three delimiters in the IPv4 address. - delimiterCounter++; - - while ( KSatMaxIPv4SegmentCounter > delimiterCounter - && curPos < addrLen ) - { - curPos++; - posOffset = addrPtr.Right( addrLen - curPos ).Find( - KSatIPv4Delimiter ); - LOG2( SIMPLE, "CLaunchBrowserHandler::\ - SeparatePortNumberFromAddress posOffset: %i", posOffset ) - if ( KErrNotFound != posOffset ) - { - delimiterCounter++; - curPos += posOffset; - } - else - { - delimiterCounter = KSatMaxIPv4SegmentCounter; - } - } - - // Locate the separator between the pure address and - // the port number. - curPos++; - - while ( curPos < addrLen - && KSatMaxIPv4SegmentLength > symbolCounter - && !isSeparator ) - { - TChar ch( addrPtr[curPos] ); - - if ( ch.IsAlphaDigit() ) - { - LOG( SIMPLE, "CLaunchBrowserHandler::\ - SeparatePortNumberFromAddress AlphaDigit" ) - symbolCounter++; - } - else - { - isSeparator = ETrue; - } - - curPos++; - } - } - else - { - curPos = addrPtr.Find( KSatIPv6Delimiter ); - LOG2( SIMPLE, "CLaunchBrowserHandler::\ - SeparatePortNumberFromAddress curPos: %i", curPos ) - if ( KErrNotFound != curPos ) - { - // Skip seven delimiters in the IPv6 address. - delimiterCounter++; - - while ( KSatMaxIPv6SegmentCounter > delimiterCounter - && curPos < addrLen ) - { - curPos++; - posOffset = addrPtr.Right( addrLen - curPos ).Find( - KSatIPv6Delimiter ); - LOG2( SIMPLE, "CLaunchBrowserHandler::\ - SeparatePortNumberFromAddress posOffset: %i", posOffset ) - if ( KErrNotFound != posOffset ) - { - delimiterCounter++; - curPos += posOffset; - } - } - - // Locate the separator between the pure address and - // the port number. - curPos++; - - while ( curPos < addrLen && - KSatMaxIPv6SegmentLength > symbolCounter && - !isSeparator ) - { - TChar ch( addrPtr[curPos] ); - - if ( ch.IsAlphaDigit() ) - { - LOG( SIMPLE, "CLaunchBrowserHandler::\ - SeparatePortNumberFromAddress AlphaDigit" ) - symbolCounter++; - } - else - { - isSeparator = ETrue; - } - - curPos++; - } - } - } - - // Extract the pure address. - while ( curPos < addrLen && KSatMinIPv4AddressLength < curPos - && !pureAddrEnd ) - { - TChar ch( addrPtr[curPos] ); - - if ( !ch.IsAlphaDigit() ) - { - LOG( SIMPLE, "CLaunchBrowserHandler::\ - SeparatePortNumberFromAddress not AlphaDigit" ) - curPos--; - } - else - { - pureAddrEnd = ETrue; - } - } - - if ( curPos <= addrLen ) - { - aPureAddr.Copy( addrPtr.Left( curPos + 1 ) ); - } - - // Extract the port number. - // Locate the beginning of the port number. - curPos++; - - while ( curPos < addrLen && !portNumberBegin) - { - TChar ch( addrPtr[curPos] ); - - if ( ch.IsDigit() ) - { - LOG( SIMPLE, "CLaunchBrowserHandler::\ - SeparatePortNumberFromAddress Digit" ) - portNumberBegin = ETrue; - } - else - { - curPos++; - } - } - - // Locate the end of the port number. - rightBound = addrLen; - rightBound--; - - while ( rightBound > curPos && !portNumberEnd ) - { - TChar ch( addrPtr[rightBound] ); - - if ( ch.IsDigit() ) - { - LOG( SIMPLE, "CLaunchBrowserHandler::\ - SeparatePortNumberFromAddress Digit" ) - portNumberEnd = ETrue; - } - else - { - rightBound--; - } - } - - // Convert the port number and validate it. - // Set the port number to default port number - aPortNumber = portNumber; - if ( curPos < rightBound && rightBound < addrLen ) - { - portNumber = ConvertDesToInt( - addrPtr.Mid( curPos, rightBound - curPos + 1 ) ); - - if ( KSatMaxProxyPortNumber > portNumber && - KSatMinProxyPortNumber < portNumber ) - { - LOG( SIMPLE, "CLaunchBrowserHandler::\ - SeparatePortNumberFromAddress valid portNumber" ) - aPortNumber = portNumber; - } - } - } - - LOG( SIMPLE, - "LAUNCHBROWSER: CLaunchBrowserHandler::SeparatePortNumberFromAddress \ - exiting" ) - } - -// -------------------------------------------------------------------------- -// Fulfill connecion method params with default params. -// -------------------------------------------------------------------------- -void CLaunchBrowserHandler::FulfillConnnectionMethodL( - RCmManager& aCmManager, - RCmConnectionMethod& aCm ) - { - LOG( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - FulfillConnnectionMethodL calling" ) - - // The following 3 lines are used to preset the default parameters - // to avoid doing nothing for them if leaving. - aCm.SetStringAttributeL( CMManager::EPacketDataAPName, - KSatGprsAccessPointName ); - aCm.SetBoolAttributeL( CMManager::ECmIFPromptForAuth, EFalse ); - aCm.SetBoolAttributeL( CMManager::ECmDisablePlainTextAuth, EFalse ); - - // Get default access point ID. - RCmConnectionMethod defCm; - CleanupClosePushL( defCm ); - - TInt ret ( KErrNotFound ); - GetDefConnMethodL( aCmManager, defCm, ret ); - - if ( !ret ) - { - // Default AP found! Copy parameters from - // default AP to new created AP. - - // Copy AP name. - HBufC* strValue = defCm.GetStringAttributeL( - CMManager::EPacketDataAPName ); - LOG2( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - FulfillConnnectionMethodL AP Name is %s", strValue ) - CleanupStack::PushL( strValue ); - aCm.SetStringAttributeL( CMManager::EPacketDataAPName, *strValue ); - CleanupStack::PopAndDestroy( strValue ); - - // Copy authentic name - strValue = defCm.GetStringAttributeL( CMManager::ECmIFAuthName ); - LOG2( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - FulfillConnnectionMethodL Auch name is %s", strValue ) - CleanupStack::PushL( strValue ); - aCm.SetStringAttributeL( CMManager::ECmIFAuthName, *strValue ); - CleanupStack::PopAndDestroy( strValue ); - - // Copy authentic pass - strValue = defCm.GetStringAttributeL( CMManager::ECmIFAuthPass ); - LOG2( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - FulfillConnnectionMethodL Auch pass is %s", strValue ) - CleanupStack::PushL( strValue ); - aCm.SetStringAttributeL( CMManager::ECmIFAuthPass, *strValue ); - CleanupStack::PopAndDestroy( strValue ); - - // Copy default URL - strValue = defCm.GetStringAttributeL( CMManager::ECmStartPage ); - LOG2( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - FulfillConnnectionMethodL Start page pass is %s", strValue ) - CleanupStack::PushL( strValue ); - aCm.SetStringAttributeL( CMManager::ECmStartPage, *strValue ); - CleanupStack::PopAndDestroy( strValue ); - - // Copy status if prompt for auth - TBool bValue = defCm.GetBoolAttributeL( - CMManager::ECmIFPromptForAuth ); - aCm.SetBoolAttributeL( CMManager::ECmIFPromptForAuth, bValue ); - - // Copy security status. - bValue = defCm.GetBoolAttributeL( - CMManager::ECmDisablePlainTextAuth ); - aCm.SetBoolAttributeL( CMManager::ECmIFPromptForAuth, bValue ); - } - - CleanupStack::PopAndDestroy( &defCm ); - - LOG( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - FulfillConnnectionMethodL exiting" ) - } - -// -------------------------------------------------------------------------- -// Check the validity of offered bearer type -// -------------------------------------------------------------------------- -void CLaunchBrowserHandler::ValidateBearerTypeL( RCmConnectionMethod& aCm, - TInt& aIsValid ) - { - LOG( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - ValidateBearerTypeL calling" ) - - TUint32 bearerType = aCm.GetIntAttributeL( - CMManager::ECmBearerType ); - LOG2( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - ValidateBearerTypeL bearerType=0x%x", bearerType ) - - if ( KUidPacketDataBearerType == bearerType ) - { - LOG( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - ValidateBearerTypeL bearer type is GPRS" ) - aIsValid = KErrNone; - } - - LOG2( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - ValidateBearerTypeL exiting, aIsValid=%d", aIsValid ) - } - -// -------------------------------------------------------------------------- -// Get default connection method -// -------------------------------------------------------------------------- -void CLaunchBrowserHandler::GetDefConnMethodL( RCmManager& aCmManager, - RCmConnectionMethod& aDefCm, - TInt& aIsValid ) - { - LOG( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - GetDefConnMethodL calling" ) - - // Go through the default connection methods to find - // the one valid connection method. - TCmDefConnValue defConn; - aCmManager.ReadDefConnL( defConn ); - - LOG3( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - GetDefConnMethodL DefConn type=%d, id=%d", - defConn.iType, defConn.iId ) - - // Mark aIsFound as KErrNone if there is one valid - // connection method, otherwise KErrNotFound. - aIsValid = KErrNotFound; - - // Default setting is a connection method - if ( ECmDefConnConnectionMethod == defConn.iType ) - { - LOG( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - GetDefConnMethodL ECmDefConnConnectionMethod" ) - aDefCm = aCmManager.ConnectionMethodL( defConn.iId ); - // Check bearer type, leave if not GPRS - ValidateBearerTypeL( aDefCm, aIsValid ); - } - - // Default setting is a destination - else if ( ECmDefConnDestination == defConn.iType ) - { - LOG( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - GetDefConnMethodL ECmDefConnDestination" ) - RCmDestination defDes = aCmManager.DestinationL( defConn.iId ); - - TInt desCount = defDes.ConnectionMethodCount(); - - LOG2( SIMPLE, "SATENGINE: CLaunchBrowserHandler::\ - GetDefConnMethodL ECmDefConnDestination count=%d", - desCount ) - - for ( TInt i = 0; - desCount > 0 && aIsValid != KErrNone && i < desCount; i++ ) - { - // Go through all the connection methods, - // until find a valid one. - aDefCm = defDes.ConnectionMethodL( i ); - ValidateBearerTypeL( aDefCm, aIsValid ); - } - } - else - { - aIsValid = KErrNotFound; - } - LOG( SIMPLE, "SATENGINE: CLaunchBrowserHandler::GetDefConnMethodL exit" ) - } -// End Of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/LaunchBrowserCmd/src/std.cpp --- a/satengine/SatServer/Commands/LaunchBrowserCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CLaunchBrowserHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x1000A88E, CLaunchBrowserHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/MoSmControlCmd/group/MoSmControl.mmp --- a/satengine/SatServer/Commands/MoSmControlCmd/group/MoSmControl.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project MoSmControlCmd plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET MoSmControlCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x1020298D - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CMoSmControlHandler.cpp - -START RESOURCE 1020298D.rss -TARGET MoSmControlCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/MoSmControlCmd/group/bld.inf --- a/satengine/SatServer/Commands/MoSmControlCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project MoSmControlCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -MoSmControl.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/MoSmControlCmd/inc/CMoSmControlHandler.h --- a/satengine/SatServer/Commands/MoSmControlCmd/inc/CMoSmControlHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,130 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: MO Short Message Control command handler -* -*/ - - - -#ifndef CMOSMCONTROLHANDLER_H -#define CMOSMCONTROLHANDLER_H - -// INCLUDES -#include -#include "CSatCommandHandler.h" -#include "SatSTypes.h" - - -// FORWARD DECLARATIONS -class MSatUtils; - -// CLASS DECLARATION - -/** -* Command handler for MO Short message control command -* -* @lib MoSmControlCmd.lib -* @since Series 60 3.0 -*/ -class CMoSmControlHandler : public CSatCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils Utils inteface - */ - static CMoSmControlHandler* NewL( MSatUtils* aUtils ); - - /** - * Destructor. - */ - virtual ~CMoSmControlHandler(); - - public: // Functions from base classes - - /** - * From MSatCommand. - */ - void ClientResponse(); - - protected: // Functions from base classes - - /** - * From CActive Cancels the usat request. - */ - void DoCancel(); - - /** - * From CSatCommandHandler Requests the command notification. - * @param aStatus Request status to active object notification - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler Precheck before executing the command. - * @return Boolean indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler Need for ui session. - * @return Boolean indicating does this command need UI session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler Called when USAT API notifies that command. - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. Indicates the failure of launching ui client. - */ - void UiLaunchFailed(); - - private: // Default functions - - /** - * C++ default constructor - */ - CMoSmControlHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // MoSmControl command data. - RSat::TMoSmControlV1 iMoSmControlData; - // MoSmControl command package. - RSat::TMoSmControlV1Pckg iMoSmControlPckg; - // MoSmControl command data for SatClient. - TSatNotificationV1 iMoSmControlSendData; - // MoSmControl command package for SatClient. - TSatNotificationV1Pckg iMoSmControlSendPckg; - // MoSmControl command response data from SatClient - TSatNotificationRspV1 iMoSmControlUiRespData; - // MoSmControl command response package from SatClient - TSatNotificationRspV1Pckg iMoSmControlUiRespPckg; - // Indicates is UI needed or not - TBool iNeedUiSession; - - }; - -#endif // CMOSMCONTROLHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/MoSmControlCmd/inc/MoSmControlCmd.rls --- a/satengine/SatServer/Commands/MoSmControlCmd/inc/MoSmControlCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project MoSmControlCmd -* -*/ - - -#ifndef MOSMCONTROLCMD_RLS -#define MOSMCONTROLCMD_RLS - -rls_string STRING_r_mosmcontrolcmd_display_name "MoSmControl Command" -rls_string STRING_r_mosmcontrolcmd_default_data "MoSmControlCmd" -rls_string STRING_r_mosmcontrolcmd_opaque_data "" - -#endif // MOSMCONTROLCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/MoSmControlCmd/src/1020298D.rss --- a/satengine/SatServer/Commands/MoSmControlCmd/src/1020298D.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1020 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "MoSmControlCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// MoSmControlCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO MoSmControlCmdInfo - { - dll_uid = 0x1020298D; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x1020298E; - version_no = 1; - display_name = STRING_r_mosmcontrolcmd_display_name; - default_data = STRING_r_mosmcontrolcmd_default_data; - opaque_data = STRING_r_mosmcontrolcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/MoSmControlCmd/src/CMoSmControlHandler.cpp --- a/satengine/SatServer/Commands/MoSmControlCmd/src/CMoSmControlHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,369 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles MO ShortMessage Control command -* -*/ - - - -// INCLUDE FILES -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "MSatSUiClientHandler.h" -#include "CMoSmControlHandler.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CMoSmControlHandler::CMoSmControlHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized, harmless. -CMoSmControlHandler::CMoSmControlHandler() : - CSatCommandHandler(), - iMoSmControlData(), - iMoSmControlPckg( iMoSmControlData ), - iMoSmControlSendData(), - iMoSmControlSendPckg( iMoSmControlSendData ), - iMoSmControlUiRespData(), - iMoSmControlUiRespPckg( iMoSmControlUiRespData ) - { - LOG( SIMPLE, "MOSMCONTROL: \ - CMoSmControlHandler::CMoSmControlHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CMoSmControlHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CMoSmControlHandler::ConstructL() - { - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::ConstructL calling" ) - - // Register notification observer - iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, - this ); - - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CMoSmControlHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CMoSmControlHandler* CMoSmControlHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::NewL calling" ) - - CMoSmControlHandler* self = new( ELeave ) CMoSmControlHandler(); - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::NewL exiting" ) - return self; - } - - -// Destructor -CMoSmControlHandler::~CMoSmControlHandler() - { - LOG( SIMPLE, - "MOSMCONTROL: CMoSmControlHandler::~CMoSmControlHandler calling" ) - - Cancel(); - - LOG( SIMPLE, - "MOSMCONTROL: CMoSmControlHandler::~CMoSmControlHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CMoSmControlHandler::ClientResponse -// Handles responses from client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CMoSmControlHandler::ClientResponse() - { - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::ClientResponse calling" ) - - // Start to receive more commands. We have to start again here because - // we don't send terminal response, wich does this automatically. - Start(); - - // Inform the system that we are finished executing. If there is proactive - // SendSm command pending, it is notified and it continues from here. - iUtils->NotifyEvent( MSatUtils::EMoSmControlDone ); - - // If we launched UI, close it. - if ( !iUtils->SatUiHandler().UiLaunchedByUser() ) - { - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::ClientResponse \ - ESimSessionEndCallBack" ) - iUtils->NotifyEvent( MSatUtils::ESimSessionEndCallBack ); - } - - else - { - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::ClientResponse \ - EDelaySimSessionEnd" ) - // Inform the session that we are done here. - iUtils->NotifyEvent( MSatUtils::EDelaySimSessionEnd ); - } - - // We do not send TerminalResponse to SIM. - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// CMoSmControlHandler::DoCancel -// Cancels the SAT request -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CMoSmControlHandler::DoCancel() - { - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifyMoSmControlCancel(); - - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CMoSmControlHandler::IssueUSATRequest -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CMoSmControlHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iMoSmControlData) RSat::TMoSmControlV1(); - iNeedUiSession = EFalse; - - iUtils->USatAPI().NotifyMoSmControl( aStatus, iMoSmControlPckg ); - - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// CMoSmControlHandler::CommandAllowed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CMoSmControlHandler::CommandAllowed() - { - LOG( SIMPLE, - "MOSMCONTROL: CMoSmControlHandler::CommandAllowed calling - exiting" ) - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CMoSmControlHandler::NeedUiSession -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CMoSmControlHandler::NeedUiSession() - { - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::NeedUiSession calling" ) - // UI is not needed, if control is AllowedWithMod and AlphaId is NULL or - // control is Allowed and AlphaId is not provided - - const RSat::TAlphaIdStatus alphaId( iMoSmControlData.iAlphaId.iStatus ); - const RSat::TControlResult control( iMoSmControlData.iResult ); - - const TBool alphaIdNull( RSat::EAlphaIdNull == alphaId || - RSat::EAlphaIdNotSet == alphaId ); - - const TBool controlAllowed( - RSat::EAllowedNoModification == control || - RSat::EControlResultNotSet == control ); - - if ( RSat::EAllowedWithModifications == control && - alphaIdNull ) - { - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::NeedUiSession \ - RSat::EAllowedWithModifications == control" ) - iNeedUiSession = EFalse; - } - else if ( controlAllowed && ( RSat::EAlphaIdProvided != alphaId ) ) - { - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::NeedUiSession \ - RSat::EAlphaIdProvided != alphaId" ) - iNeedUiSession = EFalse; - } - else - { - iNeedUiSession = ETrue; - } - - LOG2( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::NeedUiSession exiting,\ - iNeedUiSession:%d", iNeedUiSession ) - return iNeedUiSession; - } - -// ----------------------------------------------------------------------------- -// CMoSmControlHandler::HandleCommand -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CMoSmControlHandler::HandleCommand() - { - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::HandleCommand calling" ) - - // Notify other commands that we are executing. - iUtils->NotifyEvent( MSatUtils::EMoSmControlExecuting ); - LOG2( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::HandleCommand \ - iNeedUiSession:%d", iNeedUiSession ) - if ( iNeedUiSession ) - { - // Clear send data. - TSatNotificationV1 temp; - iMoSmControlSendData = temp; - - // Enums to UI related parameters - TSatAlphaIdStatus satAlphaIdStatus; - TSatControlResult satControlResult; - LOG2( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::HandleCommand \ - iMoSmControlData.iAlphaId.iStatus:%d", - iMoSmControlData.iAlphaId.iStatus ) - // Map RSat value - switch ( iMoSmControlData.iAlphaId.iStatus ) - { - case RSat::EAlphaIdProvided : - { - satAlphaIdStatus = ESatAlphaIdNotNull; - break; - } - - case RSat::EAlphaIdNotPresent : - { - satAlphaIdStatus = ESatAlphaIdNotProvided; - break; - } - - // Use this also as a default value - case RSat::EAlphaIdNull : - case RSat::EAlphaIdNotSet : - default : - { - satAlphaIdStatus = ESatAlphaIdNull; - break; - } - } - LOG2( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::HandleCommand \ - iMoSmControlData.iResult:%d", iMoSmControlData.iResult ) - // Map RSat value - switch ( iMoSmControlData.iResult ) - { - case RSat::ENotAllowed : - { - satControlResult = ESatNotAllowed; - break; - } - - case RSat::EAllowedWithModifications : - { - satControlResult = ESatAllowedWithModifications; - break; - } - - // Use this also as a default value - case RSat::EAllowedNoModification : - case RSat::EControlResultNotSet : - default : - { - satControlResult = ESatAllowedNoModification; - break; - } - } - - // Build the IPC package. - iMoSmControlSendData.iCommand = ESatSMoSmControlNotify; - iMoSmControlSendData.iText = iMoSmControlData.iAlphaId.iAlphaId; - iMoSmControlSendData.iAlphaIdStatus = satAlphaIdStatus; - iMoSmControlSendData.iControlResult = satControlResult; - - // Register notification observer - TRAPD( regErr, iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, - this ) - ); // TRAPD - LOG2( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::HandleCommand \ - regErr:%d", regErr ) - // No need to check error value, since we cannot send terminal response - // for this command - if ( KErrNone == regErr ) - { - // Get UISession. - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - - // Send command to SatClient. - uiSession->SendCommand( &iMoSmControlSendPckg, - &iMoSmControlUiRespPckg, ESatSProactiveNotification ); - } - } - - else - { - // Restart request since we don't get client response - Start(); - - // Inform the system that we are finished executing. If there is - // proactive - // SendSm command pending, it is notified and it continues from here. - iUtils->NotifyEvent( MSatUtils::EMoSmControlDone ); - - // Inform the session that we are done here. - iUtils->NotifyEvent( MSatUtils::EDelaySimSessionEnd ); - } - - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CMoSmControlHandler::UiLaunchFailed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CMoSmControlHandler::UiLaunchFailed() - { - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::UiLaunchFailed calling" ) - - // We cannot send terminal response to UICC since it doesn't - // expect terminal response from MoSmControl command... - - // Inform the session that we are done here. - iUtils->NotifyEvent( MSatUtils::EDelaySimSessionEnd ); - - // Start to receive more commands. - Start(); - - LOG( SIMPLE, "MOSMCONTROL: CMoSmControlHandler::UiLaunchFailed exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/MoSmControlCmd/src/std.cpp --- a/satengine/SatServer/Commands/MoSmControlCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CMoSmControlHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x1020298E, CMoSmControlHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/OpenChannelCmd/group/OpenChannelCmd.mmp --- a/satengine/SatServer/Commands/OpenChannelCmd/group/OpenChannelCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project OpenChannel plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET OpenChannelCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x101F79FA - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE COpenChannelHandler.cpp - -START RESOURCE 101F79FA.rss -TARGET OpenChannelCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib -LIBRARY commdb.lib -LIBRARY extendedconnpref.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/OpenChannelCmd/group/bld.inf --- a/satengine/SatServer/Commands/OpenChannelCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project OpenChannel plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -OpenChannelCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/OpenChannelCmd/inc/COpenChannelHandler.h --- a/satengine/SatServer/Commands/OpenChannelCmd/inc/COpenChannelHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,278 +0,0 @@ -/* -* Copyright (c) 2002-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: OpenChannel command handler -* -*/ - - -#ifndef COPENCHANNELHANDLER_H -#define COPENCHANNELHANDLER_H - -#include - -#include "CSatCommandHandler.h" -#include "MSatBIPDataChannel.h" -#include "MSatBIPUtils.h" -#include "SatSTypes.h" -#include "MSatConnectionObserver.h" - -class MSatUtils; -class MSatBIPDataChannel; - -/** - * Command handler for OpenChannel command. - * - * @lib OpenChannelCmd.lib - * @since S60 v3.0 - */ -class COpenChannelHandler : public CSatCommandHandler, - public MSatConnectionObserver - { - -public: - - static COpenChannelHandler* NewL( MSatUtils* aUtils ); - - virtual ~COpenChannelHandler(); - -// from base class MSatCommand - - /** - * From MSatCommand. - * Response from the client - * - */ - void ClientResponse(); - -// from base class MSatConnectionObserver - - /** - * From MSatConnectionObserver. - * Notification from the connection. - * - * @param aError Indicates the status of connection - */ - void ConnectionNotification( TInt aError ); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler. - * Event notification. - * - * @param aEvent Identifies the event. - */ - void Event( TInt aEvent ); - -protected: - -// from base class CActive - - /** - * From CActive. - * Cancels the usat request. - * - */ - void DoCancel(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler. - * Requests the command notification. - * - * @param aStatus Request status to active object notification - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler. - * Precheck before executing the command. - * - * @return Boolean indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler. - * Need for ui session. - * - * @return Boolean indicating does this command need UI session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler. - * Called when USAT API notifies that command. - * - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. - * Indicates the failure of launching ui client. - * - */ - void UiLaunchFailed(); - -private: - - COpenChannelHandler(); - - void ConstructL(); - - /** - * Sets new connection settings for channel to open. - * - * @param aBearerType Bearer type for new connection. - */ - void SetConnectionSettingsL( - MSatBIPUtils::TSatBearerType aBearerType ); - - /** - * Sets override settings into connection information. - * - * @param aIapId Unique ID in the IAP table. - */ - void SetOverrideSettingsL( const TUint32 aIapId ); - - /** - * Sets up data channel. Does not activate context. - * - * @return Error code indicating connection settings setup - */ - TInt SetUpChannel(); - - /** - * Activates context. - * - * @return Error code indicating the activation. - */ - TInt ActivateChannel(); - - /** - * Creates and sends the terminal response on successful cases. - * - */ - void SendSuccessTerminalRsp(); - - /** - * Sends confirmation query to UI. - * - */ - void SendConfirmToUi(); - - /** - * Closes the channel in error cases. - * - */ - void CloseChannel(); - - /** - * Checks parameters from SIM and makes modifications, if needed. - * - * @return TBool indicating is command allowed after parameters checked. - */ - TBool CheckParameters(); - - /** - * Launches UI if it not active. - * - * @return Boolean value indicating did the function launch the UI or not. - */ - TBool LaunchUiSession(); - -private: // data - - /** - * OpenChannel command data from SIM. - */ - RSat::TOpenGprsChannelV4 iOpenChannelData; - - /** - * OpenChannel command package. - */ - RSat::TOpenGprsChannelV4Pckg iOpenChannelPckg; - - /** - * OpenChannel response data from client. - */ - RSat::TOpenChannelRspV2 iOpenChannelRsp; - - /** - * OpenChannel response package. - */ - RSat::TOpenChannelRspV2Pckg iOpenChannelRspPckg; - - /** - * Query command data. - */ - TSatQueryV1 iQueryData; - - /** - * Query package. - */ - TSatQueryV1Pckg iQueryPckg; - - /** - * Query response. - */ - TSatQueryRspV1 iQueryRsp; - - /** - * Query rsp package. - */ - TSatQueryRspV1Pckg iQueryRspPckg; - - /** - * Commands PCmd. depends on requested bearer type. - */ - RSat::TPCmd iPCmd; - - /** - * Data channel. - * Not own. - */ - MSatBIPDataChannel* iDataChannel; - - /** - * Indicates did the channel setup need modifications. - */ - TBool iSetUpWithModifications; - - /** - * Indicates does this command need UI session. - */ - TBool iNeedUiSession; - - /** - * Bearer type. - */ - MSatBIPUtils::TSatBearerType iBearerType; - - /** - * Connection information. - */ - MSatBIPDataChannel::TSatBipConnectionInfo iConnectionInfo; - - /** - * Flag to signal that command has icon data - * To be removed when icons are allowed in this command - */ - TBool iIconCommand; - - }; - -#endif // COPENCHANNELHANDLER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/OpenChannelCmd/inc/OpenChannelCmd.rls --- a/satengine/SatServer/Commands/OpenChannelCmd/inc/OpenChannelCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project OpenChannelCmd -* -*/ - - -#ifndef OPENCHANNELCMD_RLS -#define OPENCHANNELCMD_RLS - -rls_string STRING_r_openchannelcmd_display_name "OpenChannel command" -rls_string STRING_r_openchannelcmd_default_data "OpenChannelCmd" -rls_string STRING_r_openchannelcmd_opaque_data "" - -#endif // OPENCHANNELCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/OpenChannelCmd/src/101F79FA.rss --- a/satengine/SatServer/Commands/OpenChannelCmd/src/101F79FA.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "OpenChannelCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// OpenChannelCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO OpenChannelCmdInfo - { - dll_uid = 0x101F79FA; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x101F79FB; - version_no = 1; - display_name = STRING_r_openchannelcmd_display_name; - default_data = STRING_r_openchannelcmd_default_data; - opaque_data = STRING_r_openchannelcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/OpenChannelCmd/src/COpenChannelHandler.cpp --- a/satengine/SatServer/Commands/OpenChannelCmd/src/COpenChannelHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1164 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Handles OpenChannel command -* -*/ - - -#include -#include - -#include "COpenChannelHandler.h" -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "MSatSystemState.h" -#include "MSatApnHandler.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "SatLog.h" -#include "extendedconnpref.h" - -const TUint8 KChannelStatusLength( 2 ); - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -COpenChannelHandler* COpenChannelHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::NewL calling" ) - - COpenChannelHandler* self = new( ELeave ) COpenChannelHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -// -COpenChannelHandler::~COpenChannelHandler() - { - LOG( SIMPLE, - "OPENCHANNEL: COpenChannelHandler::~COpenChannelHandler calling" ) - - Cancel(); - iDataChannel = NULL; - - delete iConnectionInfo.iOverrideSet; - - LOG( SIMPLE, - "OPENCHANNEL: COpenChannelHandler::~CCloseChannelHandler exiting" ) - } - -// --------------------------------------------------------------------------- -// From class MSatCommand. -// Response from the client. -// --------------------------------------------------------------------------- -// -void COpenChannelHandler::ClientResponse() - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::ClientResponse calling" ) - - // Query response from client. - if ( !iQueryRsp.iAccepted ) // Not accepted by user - { - // Close data channel - CloseChannel(); - - if ( iQueryRsp.iSessionTerminatedByUser ) // Terminated by user - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::ClientResponse \ - Session terminated by user" ) - // Notify sim session end command that next sim session end - // should close the ui session. - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - - // Terminal response, SimSessionTerminatedByUser - iOpenChannelRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; - } - else - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::ClientResponse \ - User not accept command" ) - - // Send terminal response -> User not accepted - iOpenChannelRsp.iGeneralResult = RSat::KPCmdNotAcceptedByUser; - } - - iOpenChannelRsp.iInfoType = RSat::KNoAdditionalInfo; - iOpenChannelRsp.iAdditionalInfo.Zero(); - iOpenChannelRsp.SetPCmdNumber( iOpenChannelData.PCmdNumber() ); - TerminalRsp( iPCmd, iOpenChannelRspPckg ); - } - else // Accepted by user - { - LOG( NORMAL, - "OPENCHANNEL: COpenChannelHandler::ClientResponse User accepted" ) - // User accepted - const TInt linkEst( iOpenChannelData.iLinkEst ); - - // SetUp channel if activation is on demand - if ( ( RSat::EOnDemand == linkEst ) && ( KErrNone != SetUpChannel() ) ) - { - // Close channel and send error if setup failed - CloseChannel(); - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::ClientResponse \ - SetUp failed" ) - iOpenChannelRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iOpenChannelRsp.iInfoType = RSat::KNoAdditionalInfo; - iOpenChannelRsp.iAdditionalInfo.Zero(); - iOpenChannelRsp.SetPCmdNumber( iOpenChannelData.PCmdNumber() ); - TerminalRsp( iPCmd, iOpenChannelRspPckg ); - } - else - { - // Send terminal response - SendSuccessTerminalRsp(); - } - - } - - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatConnectionObserver. -// Notification from the connection. -// ----------------------------------------------------------------------------- -// -void COpenChannelHandler::ConnectionNotification( TInt aError ) - { - LOG2( SIMPLE, "OPENCHANNEL: COpenChannelHandler::ConnectionNotification\ - calling with code %i", aError ) - - // Check connection status - if ( KErrNone == aError ) - { - // If information indication to the user is needed, show it now. - if ( iNeedUiSession ) - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::HandleCommand \ - Sending UI Notification" ) - - // Send confirmation to UI and wait for client response - SendConfirmToUi(); - } - else - { - // Send successfull terminal response - SendSuccessTerminalRsp(); - } - } - else - { - // Activation failed, Close channel and send error - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::ConnectionNotification \ - Channel activation failed" ) - - // Close channel - CloseChannel(); - - // PDP Activation failed - iOpenChannelRsp.iGeneralResult = RSat::KBearerIndepProtocolError; - iOpenChannelRsp.iInfoType = RSat::KMeProblem; - iOpenChannelRsp.iAdditionalInfo.SetLength( 1 ); - iOpenChannelRsp.iAdditionalInfo[0] = RSat::KNoSpecificBIPError; - iOpenChannelRsp.SetPCmdNumber( iOpenChannelData.PCmdNumber() ); - TerminalRsp( iPCmd, iOpenChannelRspPckg ); - } - - LOG( SIMPLE, - "OPENCHANNEL: COpenChannelHandler::ConnectionNotification exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Event notification. -// ----------------------------------------------------------------------------- -// -void COpenChannelHandler::Event( TInt aEvent ) - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::Event calling" ) - - // Check event - if ( MSatUtils::ESatUiLaunched == aEvent ) - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::Event ESatUiLaunched" ) - iUtils->UnregisterEvent( this, MSatUtils::ESatUiLaunched ); - - // Send confirm to UI - SendConfirmToUi(); - } - - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void COpenChannelHandler::DoCancel() - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifyOpenChannelCancel(); - - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Requests the command notification. -// ----------------------------------------------------------------------------- -// -void COpenChannelHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::IssueUSATRequest calling" ) - - // Reset values - iDataChannel = NULL; - iSetUpWithModifications = EFalse; - iNeedUiSession = EFalse; - - // Reset open channel data. - new (&iOpenChannelData) RSat::TOpenGprsChannelV4(); - new (&iQueryData) TSatQueryV1(); - - iUtils->USatAPI().NotifyOpenChannel( aStatus, iOpenChannelPckg ); - iUtils->NotifyEvent( MSatUtils::EBipCommandDoneExecuting ); - - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// OpenChannel command is not allowed in following situations: -// - Phone is not registered to homenetwork and roaming. -// - phone is ringing, alerting or call is on and OpenChannel command -// is "make call only if not busy", "make call only if not busy wiht -// redial" or "Call type not set". -// ----------------------------------------------------------------------------- -// -TBool COpenChannelHandler::CommandAllowed() - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::CommandAllowed calling" ) - - // Define the PCmd here since this is the first place after notification - iPCmd = RSat::EOpenChannelGprs; // Other possible values - // RSat::EOpenChannelCs - // RSat::EOpenChannelLocal - - // Check parameters here, because every terminal response must contain info - // about Bearer Set and BufferSize. - TBool result( CheckParameters() ); - - // Indicates channel activation type - const TBool activateImmediately( - RSat::EImmediate == iOpenChannelData.iLinkEst ); - - //lint -e{961} Else block not needed. - if ( ( RSat::EAlphaIdProvided != iOpenChannelData.iAlphaId.iStatus ) && - ( RSat::ESelfExplanatory == iOpenChannelData.iIconId.iQualifier || - RSat::ENotSelfExplanatory == iOpenChannelData.iIconId.iQualifier ) ) - { - iOpenChannelRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iOpenChannelRsp.iInfoType = RSat::KNoAdditionalInfo; - iOpenChannelRsp.iAdditionalInfo.Zero(); - result = EFalse; - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::CommandAllowed \ - icon received without alpha id" ) - } - // If parameters are OK, check rest. - else if ( result && activateImmediately ) - { - // Set result to False. If checks goes OK, this is set to ETrue. - result = EFalse; - - RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus( - iUtils->SystemState().GetNetworkRegistrationStatus() ); - - // Indicates is there service on network - const TBool noService( - ( RMobilePhone::ERegisteredOnHomeNetwork != registrationStatus ) && - ( RMobilePhone::ERegisteredRoaming != registrationStatus ) ); - - if ( RMobilePhone::ERegistrationUnknown == registrationStatus ) - { - LOG( NORMAL, - "OPENCHANNEL: COpenChannelHandler::CommandAllowed \ - NetworkRegStatus not available" ) - iOpenChannelRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iOpenChannelRsp.iInfoType = RSat::KMeProblem; - iOpenChannelRsp.iAdditionalInfo.SetLength( 1 ); - iOpenChannelRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - } - // Check registration status - else if ( noService ) - { - // No service - LOG( NORMAL, - "OPENCHANNEL: COpenChannelHandler::CommandAllowed No service" ) - - iOpenChannelRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iOpenChannelRsp.iInfoType = RSat::KMeProblem; - iOpenChannelRsp.iAdditionalInfo.SetLength( 1 ); - iOpenChannelRsp.iAdditionalInfo[0] = RSat::KNoService; - } - else - { - // Command allowed - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::CommandAllowed \ - Command is allowed Immediate activation" ) - result = ETrue; - } - } - - if ( !result ) // Send Terminal response, if result is not OK - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::CommandAllowed \ - result not OK" ) - iOpenChannelRsp.SetPCmdNumber( iOpenChannelData.PCmdNumber() ); - TerminalRsp( iPCmd, iOpenChannelRspPckg ); - } - else - { - // Register to handle UI commands. - TRAPD( err, iUtils->RegisterServiceRequestL( ESatSProactiveQuery, - ESatSProactiveQueryResponse, this ) ); - - LOG2( NORMAL, "OPENCHANNEL: COpenChannelHandler::CommandAllowed \ - err: %d", err ) - // Above function leaves only when there is not enough memory to - // allocate new object. So this case is very rare. - if ( KErrNone != err ) - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::CommandAllowed \ - Error while registering service request" ) - - // Send general terminal response (no BIP specific) - iOpenChannelRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iOpenChannelRsp.iInfoType = RSat::KMeProblem; - iOpenChannelRsp.iAdditionalInfo.SetLength( 1 ); - iOpenChannelRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iOpenChannelRsp.SetPCmdNumber( iOpenChannelData.PCmdNumber() ); - TerminalRsp( iPCmd, iOpenChannelRspPckg ); - - // Cannot complete, there are some major memory problems - result = EFalse; - } - // Set icon command flag whether icon data was received and - // set qualifier to no icon id - // To be removed when icons are allowed in this command - else if ( ( RSat::ESelfExplanatory == - iOpenChannelData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iOpenChannelData.iIconId.iQualifier ) ) - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::CommandAllowed \ - ENoIconId" ) - iIconCommand = ETrue; - iOpenChannelData.iIconId.iQualifier = RSat::ENoIconId; - } - else - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::CommandAllowed \ - others" ) - iIconCommand = EFalse; - } - } - - LOG2( SIMPLE, "OPENCHANNEL: COpenChannelHandler::CommandAllowed exiting,\ - result: %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Need for ui session. -// ----------------------------------------------------------------------------- -// -TBool COpenChannelHandler::NeedUiSession() - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::NeedUiSession calling" ) - - // UI is NOT needed in case where AlphaID is provided and it is a NULL - iNeedUiSession = - !( RSat::EAlphaIdNull == iOpenChannelData.iAlphaId.iStatus ); - - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::NeedUiSession exiting" ) - // We do not need UI session at this point, but we will launch it by - // ourselves when we do. - return EFalse; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when USAT API notifies that command. -// ----------------------------------------------------------------------------- -// -void COpenChannelHandler::HandleCommand() - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::HandleCommand calling" ) - - // Notify others - iUtils->NotifyEvent( MSatUtils::EOpenChannelExecuting ); - iUtils->NotifyEvent( MSatUtils::EBipCommandExecuting ); - - TInt error( MSatBIPUtils::ESatBIPNoChannelAvail ); // By default, negative - - // Create data channel - TRAPD( leaveErr, - iDataChannel = iUtils->BipUtils().CreateChannelL( - iBearerType, error ) ); - - // Check the channel creation - if ( ( MSatBIPUtils::ESatBIPSuccess != error ) || - ( KErrNone != leaveErr ) ) - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::HandleCommand\ - Channel creation failed" ) - - // Channel creation failed -> Send terminal response - iOpenChannelRsp.iGeneralResult = RSat::KBearerIndepProtocolError; - iOpenChannelRsp.iInfoType = RSat::KMeProblem; - iOpenChannelRsp.iAdditionalInfo.SetLength( 1 ); - iOpenChannelRsp.iAdditionalInfo[0] = RSat::KNoChannelAvailable; - iOpenChannelRsp.SetPCmdNumber( iOpenChannelData.PCmdNumber() ); - TerminalRsp( iPCmd, iOpenChannelRspPckg ); - - LOG( SIMPLE, "OPENCHANNEL: COpenChannel::HandleCommand exiting" ) - return; - } - - LOG( NORMAL, - "OPENCHANNEL: COpenChannelHandler::HandleCommand Channel creation OK" ) - - // Open channel or request confirmation from user - const TInt linkEst( iOpenChannelData.iLinkEst ); - - // If not confirmation to user or immediate activation, open channel - if ( ( !iNeedUiSession || RSat::EImmediate == linkEst ) - && KErrNone != SetUpChannel() ) - { - // Setup failed, close channel and send error - LOG( NORMAL, - "OPENCHANNEL: COpenChannelHandler::HandleCommand SetUp failed" ) - - // Close channel, there was an error - CloseChannel(); - - // Channel setup failed - iOpenChannelRsp.iGeneralResult = RSat::KBearerIndepProtocolError; - iOpenChannelRsp.iInfoType = RSat::KMeProblem; - iOpenChannelRsp.iAdditionalInfo.SetLength( 1 ); - iOpenChannelRsp.iAdditionalInfo[0] = RSat::KNoSpecificBIPError; - iOpenChannelRsp.SetPCmdNumber( iOpenChannelData.PCmdNumber() ); - TerminalRsp( iPCmd, iOpenChannelRspPckg ); - - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::HandleCommand \ - exiting" ) - return; - } - - // If immediate activation, activate. - if ( RSat::EImmediate == linkEst ) - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::HandleCommand \ - immediate activation" ) - // Check activation - TInt activateError = ActivateChannel(); - if ( KErrNone != activateError ) - { - // Activation failed, Close channel and send error - LOG2( NORMAL, "OPENCHANNEL: COpenChannelHandler::HandleCommand \ - Channel activation failed error = %i", activateError ) - // Close channel - CloseChannel(); - - // Check is there a call ongoing - const TBool callIsOngoing( iUtils->SystemState().IsCallActive() || - iUtils->SystemState().IsCallIncoming() ); - - iOpenChannelRsp.iGeneralResult = RSat::KBearerIndepProtocolError; - - // Map the error to correct response - if ( KErrGprsUserAuthenticationFailure == activateError ) - { - LOG( DETAILED, - "OPENCHANNEL: COpenChannelHandler::HandleCommand Security \ - error" ) - activateError = RSat::KSecurityError; - } - else if ( KErrGprsServicesNotAllowed == activateError || callIsOngoing ) - { - LOG( DETAILED, - "OPENCHANNEL: COpenChannelHandler::HandleCommand Busy on \ - call or CC on GPRS" ) - activateError = RSat::KMeBusyOnCall; - iOpenChannelRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - } - else if ( ( KErrMMEtelActivationBlockedByCallControlNoText == - activateError ) || - ( KErrMMEtelActivationBlockedByCallControlWithText == - activateError ) ) - { - iOpenChannelRsp.iGeneralResult = RSat::KInteractionWithCCPermanentError; - activateError = RSat::KActionNotAllowed; - - LOG( DETAILED, - "OPENCHANNEL: COpenChannelHandler::HandleCommand CC on GPRS \ - not allowed" ) - } - else - { - LOG( DETAILED, - "OPENCHANNEL: COpenChannelHandler::HandleCommand No specific \ - BIP error" ) - activateError = RSat::KNoSpecificBIPError; - } - - // PDP Activation failed - iOpenChannelRsp.iInfoType = RSat::KMeProblem; - iOpenChannelRsp.iAdditionalInfo.SetLength( 1 ); - iOpenChannelRsp.iAdditionalInfo[0] = - static_cast( activateError ); - iOpenChannelRsp.SetPCmdNumber( iOpenChannelData.PCmdNumber() ); - TerminalRsp( iPCmd, iOpenChannelRspPckg ); - } - } - else // OnDemand. Send terminal response or confirm to UI - { - // If information indication to the user is needed, show it now. - if ( iNeedUiSession ) - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::HandleCommand \ - Sending UI Notification" ) - // Send confirmation to UI and wait for client response - SendConfirmToUi(); - } - else - { - // Send successfull terminal response - SendSuccessTerminalRsp(); - } - } - - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Indicates the failure of launching ui client. -// ----------------------------------------------------------------------------- -// -void COpenChannelHandler::UiLaunchFailed() - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::UiLaunchFailed calling" ) - - iOpenChannelRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iOpenChannelRsp.iInfoType = RSat::KMeProblem; - iOpenChannelRsp.iAdditionalInfo.SetLength( 1 ); - iOpenChannelRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iOpenChannelRsp.SetPCmdNumber( iOpenChannelData.PCmdNumber() ); - TerminalRsp( iPCmd, iOpenChannelRspPckg ); - - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized. -COpenChannelHandler::COpenChannelHandler() : - CSatCommandHandler(), - iOpenChannelData(), - iOpenChannelPckg( iOpenChannelData ), - iOpenChannelRsp(), - iOpenChannelRspPckg( iOpenChannelRsp ), - iQueryData(), - iQueryPckg( iQueryData ), - iQueryRsp(), - iQueryRspPckg( iQueryRsp ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::COpenChannelHandler \ - calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void COpenChannelHandler::ConstructL() - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::ConstructL calling" ) - - iUtils->RegisterServiceRequestL( ESatSProactiveQuery, - ESatSProactiveQueryResponse, this ); - - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// Sets new connection settings for channel to open. -// ----------------------------------------------------------------------------- -// -void COpenChannelHandler::SetConnectionSettingsL( - MSatBIPUtils::TSatBearerType aBearerType ) - { - LOG2( SIMPLE, - "OPENCHANNEL: COpenChannelHandler::SetConnectionSettingsL calling,\ - aBearerType: %d", aBearerType ) - - RPacketContext::TProtocolType pdpType = RPacketContext::EPdpTypeIPv4; - TUint32 defaultId( 0 ); - switch ( aBearerType ) - { - case MSatBIPUtils::ESatGPRS: - { - // Resolve override settings - if ( iOpenChannelData.iAccessName.Length() > 0 ) - { - LOG( NORMAL, - "OPENCHANNEL: COpenChannelHandler::SetConnectionSettingsL \ - Getting APN" ) - - TUint32 iapId( 0 ); - TUint32 nwId( 0 ); - TBool apnCreated( EFalse ); - - pdpType = RPacketContext::EPdpTypeIPv6; - - if ( RSat::EIPv4Address == - iOpenChannelData.iDestinationAddress.iType ) - { - LOG( NORMAL, - "OPENCHANNEL: COpenChannelHandler::SetConnectionSettingsL \ - IPV4 Address" ) - pdpType = RPacketContext::EPdpTypeIPv4; - } - iUtils->BipUtils().ApnHandler().GetApnInfoL - ( - iOpenChannelData.iAccessName, - iOpenChannelData.iUserLogin, - iOpenChannelData.iUserPassword, - iapId, - nwId, - apnCreated, - pdpType, // IPv6 or IPv4 - iOpenChannelData.iLocalAddress.iAddress - ); - - if ( apnCreated ) - { - LOG( NORMAL, - "OPENCHANNEL: COpenChannelHandler::SetConnectionSettingsL \ - APN created by SAT" ) - // Store APN Id for later use - iConnectionInfo.iCreatedApnId = nwId; - } - - SetOverrideSettingsL( iapId ); - } - else - { - LOG( NORMAL, "OPENCHANNEL: SetConnectionSettingsL \ - No APN, using defaults" ) - // No APN, use default settings - TRAPD( err, defaultId = - iUtils->BipUtils().ApnHandler().FindDefaultApL( pdpType ) ); - LOG2( NORMAL, "OPENCHANNEL: SetConnectionSettingsL \ - No APN, using defaults err = %i", err ) - SetOverrideSettingsL( defaultId ); - } - break; - } - - default: - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::\ - SetConnectionSettingsL exiting default" ) - // Leave if not supported - User::Leave( KErrNotSupported ); - } - } - -#ifdef SAT_USE_DUMMY_TSY - // No APN, use default settings - TRAPD( err, - defaultId = iUtils->BipUtils().ApnHandler().FindDefaultApL( pdpType ) ); - LOG2( NORMAL, "OPENCHANNEL: COpenChannelHandler::SetConnectionSettingsL \ - No APN, using defaults err = %i", err ) - SetOverrideSettingsL( defaultId ); -#endif // SAT_USE_DUMMY_TSY - - LOG( SIMPLE, - "OPENCHANNEL: COpenChannelHandler::SetConnectionSettingsL exiting" ) - } - -// ----------------------------------------------------------------------------- -// Sets override settings into connection information. -// ----------------------------------------------------------------------------- -// -void COpenChannelHandler::SetOverrideSettingsL( const TUint32 aIapId ) - { - - LOG2( SIMPLE, - "OPENCHANNEL: COpenChannelHandler::SetOverrideSettingsL aIapId: %i", - aIapId ) - - delete iConnectionInfo.iOverrideSet; - iConnectionInfo.iOverrideSet = NULL; - - // Override connection preferences - TExtendedConnPref* overrideSettings = new( ELeave ) TExtendedConnPref; - overrideSettings->SetIapId( aIapId ); - overrideSettings->SetNoteBehaviour( - TExtendedConnPref::ENoteBehaviourConnSilent ); - iConnectionInfo.iOverrideSet = overrideSettings; - - LOG( SIMPLE, - "OPENCHANNEL: COpenChannelHandler::SetOverrideSettingsL exiting" ) - } - -// ----------------------------------------------------------------------------- -// Sets up data channel. Does not activate context. -// ----------------------------------------------------------------------------- -// -TInt COpenChannelHandler::SetUpChannel() - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::SetUpChannel calling" ) - - // get connection settings from CommDB and - // set connection settings to data channel - TRAPD( status, - SetConnectionSettingsL( iBearerType ); - iDataChannel->SetupConnectionL( iConnectionInfo ); ); - - LOG2( SIMPLE, - "OPENCHANNEL: COpenChannelHandler::SetUpChannel exiting with status %i", - status ) - return status; - } - -// ----------------------------------------------------------------------------- -// Activates context. -// ----------------------------------------------------------------------------- -// -TInt COpenChannelHandler::ActivateChannel() - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::ActivateChannel calling" ) - - // Activate the connection - TRAPD( err, iDataChannel->ActivateConnectionL( this ) ); - - LOG2( SIMPLE, "OPENCHANNEL: COpenChannelHandler::ActivateChannel exiting\ - with error %i:", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// Creates and sends the terminal response on successful cases. -// ----------------------------------------------------------------------------- -// -void COpenChannelHandler::SendSuccessTerminalRsp() - { - LOG( SIMPLE, - "OPENCHANNEL: COpenChannelHandler::SendSuccessTerminalRsp calling" ) - - iDataChannel->GetNegotiatedQoSParams( iOpenChannelRsp.iBearer.iParams ); - - // Get the channel status - RSat::TChannelStatus channelStatus; - TRAPD( err, channelStatus = iUtils->BipUtils().GenerateChannelStatusL( - iDataChannel->ChannelId(), 0 ) ); - LOG2( SIMPLE, "OPENCHANNEL: COpenChannelHandler::SendSuccessTerminalRsp \ - error: %i", err ) - - if ( KErrNone == err ) - { - iOpenChannelRsp.iInfoType = RSat::KChannelStatusInfo; - iOpenChannelRsp.iAdditionalInfo.SetLength( KChannelStatusLength ); - - // Channel ID + PDP context status - iOpenChannelRsp.iAdditionalInfo[0] = channelStatus[0]; - - // Channel status - iOpenChannelRsp.iAdditionalInfo[1] = channelStatus[1]; - iOpenChannelRsp.SetPCmdNumber( iOpenChannelData.PCmdNumber() ); - - // Define the result of this command handling - if ( iSetUpWithModifications ) - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::HandleCommand\ - Channel setup modified" ) - iOpenChannelRsp.iGeneralResult = RSat::KPerformedWithModifications; - } - else if ( !iQueryRsp.iRequestedIconDisplayed && - ( ( RSat::ESelfExplanatory == - iOpenChannelData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iOpenChannelData.iIconId.iQualifier ) ) ) - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::HandleCommand\ - Open channel successful, no icon displayed" ) - iOpenChannelRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - else - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::HandleCommand\ - Open channel successful" ) - iOpenChannelRsp.iGeneralResult = RSat::KSuccess; - } - } - else - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::HandleCommand\ - Channel not found!" ) - iOpenChannelRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iOpenChannelRsp.iInfoType = RSat::KMeProblem; - iOpenChannelRsp.iAdditionalInfo.SetLength( 1 ); - iOpenChannelRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - } - - // If command had icon data and was done succesfully, report that icon - // was not shown - // To be removed when icons are allowed in this command - if ( ( RSat::KSuccess == iOpenChannelRsp.iGeneralResult ) && - iIconCommand ) - { - LOG( SIMPLE, "COpenChannelHandler::SendSuccessTerminalRsp requested\ - icon not displayed" ) - iOpenChannelRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - - // Sending terminal response - TerminalRsp( iPCmd, iOpenChannelRspPckg ); - - LOG( SIMPLE, - "OPENCHANNEL: COpenChannelHandler::SendSuccessTerminalRsp exiting" ) - } - -// ----------------------------------------------------------------------------- -// Sends confirmation query to UI. -// ----------------------------------------------------------------------------- -// -void COpenChannelHandler::SendConfirmToUi() - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::SendConfirmToUi calling" ) - - // Command Duration for Mediator Client - TUint8 commandDuration( KSatDurationNotSet ); - - // Launch UI of not launched. This function is called again when UI is - // launched. - if ( !LaunchUiSession() ) - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::SendConfirmToUi \ - not launch UI" ) - // Create IPC data to UI - iQueryData.iCommand = ESatOpenChannelQuery; - iQueryData.iQueryText = iOpenChannelData.iAlphaId.iAlphaId; - iQueryData.iIconId.iIdentifier = iOpenChannelData.iIconId.iIdentifier; - LOG2( SIMPLE, "COpenChannelHandler::SendConfirmToUi \ - iOpenChannelData.iIconId.iQualifier:%d", - iOpenChannelData.iIconId.iQualifier ) - // Check Icon - switch ( iOpenChannelData.iIconId.iQualifier ) - { - case RSat::ESelfExplanatory: - { - // Icon qualifier is self explanatory (to display instead - // of the alpha id or text string). - iQueryData.iIconId.iIconQualifier = ESatSelfExplanatory; - break; - } - - case RSat::ENotSelfExplanatory: - { - // Icon qualifier is not self explanatory. - iQueryData.iIconId.iIconQualifier = ESatNotSelfExplanatory; - break; - } - - default: - { - // Icon qualifier not present - iQueryData.iIconId.iIconQualifier = ESatENoIconId; - break; - } - } - LOG2( SIMPLE, "COpenChannelHandler::SendConfirmToUi \ - iOpenChannelData.iAlphaId.iStatus:%d", - iOpenChannelData.iAlphaId.iStatus ) - // Define AlphaID status - switch ( iOpenChannelData.iAlphaId.iStatus ) - { - case RSat::EAlphaIdNotPresent: - { - iQueryData.iAlphaIdStatus = ESatAlphaIdNotProvided; - commandDuration = KSatLongDuration; - break; - } - - case RSat::EAlphaIdProvided: - { - iQueryData.iAlphaIdStatus = ESatAlphaIdNotNull; - commandDuration = KSatLongDuration; - break; - } - - default: - { - iQueryData.iAlphaIdStatus = ESatAlphaIdNull; - commandDuration = KSatDurationNotSet; - break; - } - } - - // Send notification to Mediator client if Cover UI is supported - if ( iUtils->CoverUiSupported() ) - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::SendConfirmToUi \ - CoverUiSupported" ) - TSatCommandData medEventData; - medEventData.iPCmdNumber = iPCmd; - medEventData.iAlphaId = iOpenChannelData.iAlphaId; - medEventData.iDuration.iTimeUnit = RSat::ESeconds; - medEventData.iDuration.iNumOfUnits = commandDuration; - medEventData.iIconID = iOpenChannelData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - // Send notification to UI - MSatUiSession* session = iUtils->SatUiHandler().UiSession(); - session->SendCommand( - &iQueryPckg, &iQueryRspPckg, ESatSProactiveQuery ); - } - - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::SendConfirmToUi exiting" ) - } - -// ----------------------------------------------------------------------------- -// Closes the channel in error cases. -// ----------------------------------------------------------------------------- -// -void COpenChannelHandler::CloseChannel() - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::CloseChannel calling" ) - - // If data channel is not null, close it - if ( iDataChannel ) - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::CloseChannel have\ - channel" ) - iUtils->BipUtils().CloseChannel( iDataChannel->ChannelId() ); - } - - if ( iConnectionInfo.iCreatedApnId > 0 ) - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::CloseChannel delete\ - APN" ) - // APN created -> Remove it - TRAP_IGNORE( iUtils->BipUtils().ApnHandler().DeleteApnL( - iConnectionInfo.iCreatedApnId ) ) - } - - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::CloseChannel exiting" ) - } - -// ----------------------------------------------------------------------------- -// Checks parameters from SIM and makes modifications, if needed. -// ----------------------------------------------------------------------------- -// -TBool COpenChannelHandler::CheckParameters() - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::CheckParameters calling" ) - // Return variable. Indicates is the context activation possible with - // given / modified parameters. - TBool paramsOk( EFalse ); - - // Check buffer size - if ( KSatBIPMaxBufferSize < iOpenChannelData.iBufferSize || - 0 == iOpenChannelData.iBufferSize ) - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::CheckParameters \ - Changing buffersize" ) - // Too big requested buffer size -> set to max - iConnectionInfo.iBufferSize = KSatBIPMaxBufferSize; - // put modified buffer size to terminal response - iOpenChannelRsp.iBufferSize = KSatBIPMaxBufferSize; - // Modified parameters - iSetUpWithModifications = ETrue; - } - else - { - iConnectionInfo.iBufferSize = iOpenChannelData.iBufferSize; - iOpenChannelRsp.iBufferSize = iOpenChannelData.iBufferSize; - } - - // Set bearer for the terminal response. This information is mandatory to - // each terminal response. - iOpenChannelRsp.iBearer = iOpenChannelData.iBearer; - - // Indicates is there destination address defined - const TBool destinationAddressNotDefined - ( - RSat::EIPv4Address != iOpenChannelData.iDestinationAddress.iType && - RSat::EIPv6Address != iOpenChannelData.iDestinationAddress.iType - ); - - // Indicates is there a transport protocol defined - const TBool transportProtoNotDefined - ( - RSat::ETcp != iOpenChannelData.iSimMeInterface.iTransportProto && - RSat::EUdp != iOpenChannelData.iSimMeInterface.iTransportProto - ); - - // Indicates is there a transport port number defined - const TBool transportPortNumberNotDefined - ( - 0 == iOpenChannelData.iSimMeInterface.iPrtNumber - ); - - // Indicates is selected bearer supported - const TBool bearerNotSupported - ( - RSat::EPCmdTypeNotSet != iOpenChannelData.iPCmdType && - RSat::EGprsBearer != iOpenChannelData.iPCmdType && - RSat::EAnyBearer != iOpenChannelData.iPCmdType - ); - - // Check parameters - paramsOk = !( destinationAddressNotDefined || - transportProtoNotDefined || - bearerNotSupported || - transportPortNumberNotDefined ); - - // Check is connection possible - if ( paramsOk ) - { - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::CheckParameters \ - Bearer type is GPRS" ) - // Bearer type is GPRS - iBearerType = MSatBIPUtils::ESatGPRS; - // Set bearer type for the terminal response in case it was not defined - iOpenChannelRsp.iBearer.iType = RSat::EGPRSBearer; - // Destination address - iConnectionInfo.iDestination = iOpenChannelData.iDestinationAddress; - // Local address - iConnectionInfo.iSource = iOpenChannelData.iLocalAddress; - // Bearer parameters - iConnectionInfo.iBearerParams = iOpenChannelData.iBearer.iParams; - // Set protocol info to connection data - iConnectionInfo.iProtocol = iOpenChannelData.iSimMeInterface; - } - else if ( transportProtoNotDefined || - bearerNotSupported || - transportPortNumberNotDefined ) - { - // Fail - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::CheckParameters \ - Unable to connect" ) - // If parameters are not OK, send terminal response - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::CommandAllowed \ - Not valid parameters" ) - iOpenChannelRsp.iGeneralResult = RSat::KCmdBeyondMeCapabilities; - iOpenChannelRsp.iInfoType = RSat::KNoAdditionalInfo; - iOpenChannelRsp.iAdditionalInfo.Zero(); - } - else if ( destinationAddressNotDefined ) - { - // Fail - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::CheckParameters \ - Destination not set" ) - iOpenChannelRsp.iGeneralResult = RSat::KErrorRequiredValuesMissing; - iOpenChannelRsp.iInfoType = RSat::KNoAdditionalInfo; - iOpenChannelRsp.iAdditionalInfo.Zero(); - } - else - { - // Fail - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::CheckParameters \ - Unable to connect" ) - // If parameters are not OK, send terminal response - LOG( NORMAL, "OPENCHANNEL: COpenChannelHandler::CheckParameters \ - Not valid parameters" ) - iOpenChannelRsp.iGeneralResult = RSat::KCmdBeyondMeCapabilities; - iOpenChannelRsp.iInfoType = RSat::KNoAdditionalInfo; - iOpenChannelRsp.iAdditionalInfo.Zero(); - } - - LOG2( SIMPLE, "OPENCHANNEL: COpenChannelHandler::CheckParameters exiting,\ - paramsOk: %d", paramsOk ) - return paramsOk; - } - -// ----------------------------------------------------------------------------- -// Launches UI if it not active. -// ----------------------------------------------------------------------------- -// -TBool COpenChannelHandler::LaunchUiSession() - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::LaunchUiSession calling" ) - TBool retVal( EFalse ); - - // If ui session is not availabe, SATUI has to be - // launched. - if ( NULL == iUtils->SatUiHandler().UiSession() ) - { - TRAPD( err, - iUtils->RegisterL( this, MSatUtils::ESatUiLaunched ); - // Try to launch the ui client. - iUtils->SatUiHandler().LaunchSatUiL(); - ); // End of TRAPD - - if ( KErrNone != err ) - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::LaunchUiSession \ - Ui launch failed" ) - // Ui launch failed, unregister event - iUtils->UnregisterEvent( this, MSatUtils::ESatUiLaunched ); - // Notify SIM that ui launch failed. - UiLaunchFailed(); - } - else - { - LOG( SIMPLE, "OPENCHANNEL: COpenChannelHandler::LaunchUiSession \ - Ui launch successfully" ) - // Return true indicating that we had to launch UI - retVal = ETrue; - } - } - - LOG2( SIMPLE, "OPENCHANNEL: COpenChannelHandler::LaunchUiSession exiting,\ - retVal: %d", retVal ) - return retVal; - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/OpenChannelCmd/src/std.cpp --- a/satengine/SatServer/Commands/OpenChannelCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "COpenChannelHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x101F79FB, COpenChannelHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/PlayToneCmd/group/PlayToneCmd.mmp --- a/satengine/SatServer/Commands/PlayToneCmd/group/PlayToneCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project PlayTone plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET PlayToneCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x1000A887 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CPlayToneHandler.cpp - -START RESOURCE 1000A887.rss -TARGET PlayToneCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/PlayToneCmd/group/bld.inf --- a/satengine/SatServer/Commands/PlayToneCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project PlayToneCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -PlayToneCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/PlayToneCmd/inc/CPlayToneHandler.h --- a/satengine/SatServer/Commands/PlayToneCmd/inc/CPlayToneHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,138 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Play Tone command handler -* -*/ - - -#ifndef CPLAYTONEHANDLER_H -#define CPLAYTONEHANDLER_H - -#include - -#include "CSatCommandHandler.h" - -class MSatUtils; - -/** - * Command handler for SelectItem command. - * - * @lib PlayToneCmd.lib - * @since S60 v3.0 - */ -class CPlayToneHandler : public CSatCommandHandler - { - -public: - - static CPlayToneHandler* NewL( MSatUtils* aUtils ); - - virtual ~CPlayToneHandler(); - -// from base class MSatCommand - - /** - * From MSatCommand. - * Response from the client. - * - */ - void ClientResponse(); - -protected: - -// from base class CActive - - /** - * From CActive. - * Cancels the usat request - * - */ - void DoCancel(); - - /** - * From CSatCommandHandler - * Requests the command notification. - * - * @param aStatus Request status - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler - * Precheck before executing the command. - * - * @return TBool indicating command is currently allowed. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler - * Need for ui session. - * - * @return TBool indicating need of ui session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler - * Called when USAT API notifies that command. - * - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. - * Indicates the failure of launching ui client. - * - */ - void UiLaunchFailed(); - -private: - - CPlayToneHandler(); - - void ConstructL(); - -private: // data - - /** - * The data structure for the command data. - */ - RSat::TPlayToneV2 iPlayToneData; - - /** - * The data package for IPC. - */ - RSat::TPlayToneV2Pckg iPlayTonePckg; - - /** - * the response. - */ - RSat::TPlayToneRspV1 iPlayToneRsp; - - /** - * the response package. - */ - RSat::TPlayToneRspV1Pckg iPlayToneRspPckg; - - /** - * Flag to signal that command has icon data. - *To be removed when icons are allowed in this command. - */ - TBool iIconCommand; - - }; - -#endif // CPLAYTONEHANDLER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/PlayToneCmd/inc/PlayToneCmd.rls --- a/satengine/SatServer/Commands/PlayToneCmd/inc/PlayToneCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project PlayToneCmd -* -*/ - - -#ifndef PLAYTONECMD_RLS -#define PLAYTONECMD_RLS - -rls_string STRING_r_playtonecmd_display_name "PlayTone command" -rls_string STRING_r_playtonecmd_default_data "PlayToneCmd" -rls_string STRING_r_playtonecmd_opaque_data "" - -#endif // PLAYTONECMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/PlayToneCmd/src/1000A887.rss --- a/satengine/SatServer/Commands/PlayToneCmd/src/1000A887.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1000 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "PlayToneCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// PlayToneCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO PlayToneCmdInfo - { - dll_uid = 0x1000A887; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x1000A88C; - version_no = 1; - display_name = STRING_r_playtonecmd_display_name; - default_data = STRING_r_playtonecmd_default_data; - opaque_data = STRING_r_playtonecmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/PlayToneCmd/src/CPlayToneHandler.cpp --- a/satengine/SatServer/Commands/PlayToneCmd/src/CPlayToneHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,331 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles PlayTone command -* -*/ - - -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "MSatSystemState.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CPlayToneHandler.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CPlayToneHandler* CPlayToneHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::NewL calling" ) - - CPlayToneHandler* self = new( ELeave ) CPlayToneHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -// -CPlayToneHandler::~CPlayToneHandler() - { - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::~CPlayToneHandler calling" ) - - Cancel(); - - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::~CPlayToneHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatCommand. -// Response from the client. -// ----------------------------------------------------------------------------- -// -void CPlayToneHandler::ClientResponse() - { - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::ClientResponse calling" ) - - iPlayToneRsp.SetPCmdNumber( iPlayToneData.PCmdNumber() ); - if ( RSat::KPSessionTerminatedByUser == iPlayToneRsp.iGeneralResult ) - { - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::ClientResponse \ - KPSessionTerminatedByUser" ) - // Next SimSession end will close the ui session. - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - - // If command had icon data and was done succesfully, report that icon - // was not shown - // To be removed when icons are allowed in this command - if ( ( RSat::KSuccess == iPlayToneRsp.iGeneralResult ) && - iIconCommand ) - { - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::ClientResponse \ - requested icon not displayed" ) - iPlayToneRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - - CSatCommandHandler::TerminalRsp( RSat::EPlayTone, iPlayToneRspPckg ); - - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CPlayToneHandler::DoCancel() - { - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifyPlayToneCancel(); - - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Requests the command notification. -// ----------------------------------------------------------------------------- -// -void CPlayToneHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iPlayToneData) RSat::TPlayToneV2(); - iPlayToneRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; // default - - iUtils->USatAPI().NotifyPlayTone( aStatus, iPlayTonePckg ); - - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Precheck before executing the command. -// ----------------------------------------------------------------------------- -// -TBool CPlayToneHandler::CommandAllowed() - { - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::CommandAllowed calling" ) - TBool allowed( ETrue ); - - // This is used to determine zero length duration. - const TBool zeroDuration( iPlayToneData.iDuration.iNumOfUnits == 0 ); - // Determines is it standard supervisory tone. - const TBool standardSupervisoryTone( - ( iPlayToneData.iTone >= RSat::KDialTone ) && - ( iPlayToneData.iTone <= RSat::KRingingTone ) ); - // Determines is it terminal proprietary tone - const TBool terminalProprietaryTone( - ( iPlayToneData.iTone >= RSat::KGeneralBeep ) && - ( iPlayToneData.iTone <= RSat::KUserSelectedToneIncomingSms ) ); - const TBool durationValid( - ( RSat::ENoDurationAvailable != iPlayToneData.iDuration.iTimeUnit ) && - ( RSat::ETimeUnitNotSet != iPlayToneData.iDuration.iTimeUnit ) ); - - // if icon data is received without alpha id, - // command data is not understood. - //lint -e{961} Else block not needed, allowed is then true. - if ( ( RSat::EAlphaIdProvided != iPlayToneData.iAlphaId.iStatus ) && - ( RSat::ENotSelfExplanatory == iPlayToneData.iIconId.iQualifier || - RSat::ESelfExplanatory == iPlayToneData.iIconId.iQualifier ) ) - { - allowed = EFalse; - iPlayToneRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iPlayToneRsp.iInfoType = RSat::KNoAdditionalInfo; - iPlayToneRsp.iAdditionalInfo.Zero(); - LOG( SIMPLE, - "PLAYTONE: CPlayToneHandler::CommandAllowed \ - icon received without alpha id" ) - } - // If the tone is not standard or terminal proprietary OR it is - // standard without duration, command is not allowed. - else if ( iPlayToneData.iTone != RSat::KToneNotSet && - ( !( standardSupervisoryTone ^ terminalProprietaryTone ) || - ( zeroDuration && durationValid ) ) ) - { - allowed = EFalse; - iPlayToneRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iPlayToneRsp.iInfoType = RSat::KNoAdditionalInfo; - iPlayToneRsp.iAdditionalInfo.Zero(); - LOG( SIMPLE, - "PLAYTONE: CPlayToneHandler::CommandAllowed \ - Not valid tone or duration" ) - } - // If alpha id is not to be shown and - // tones are not ON command is not allowed. - else if ( !iUtils->SystemState().IsWarningAndGameTonesOn() && - ( 0 == iPlayToneData.iAlphaId.iAlphaId.Length() ) ) - { - allowed = EFalse; - iPlayToneRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iPlayToneRsp.iInfoType = RSat::KNoAdditionalInfo; - iPlayToneRsp.iAdditionalInfo.Zero(); - LOG( SIMPLE, - "PLAYTONE: CPlayToneHandler::CommandAllowed \ - Tones are OFF" ) - } - // Set icon command flag whether icon data was received and set qualifier - // to no icon id - // To be removed when icons are allowed in this command - else if ( ( RSat::ESelfExplanatory == - iPlayToneData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iPlayToneData.iIconId.iQualifier ) ) - { - LOG( SIMPLE, - "PLAYTONE: CPlayToneHandler::CommandAllowed ENoIconId" ) - iIconCommand = ETrue; - iPlayToneData.iIconId.iQualifier = RSat::ENoIconId; - } - else - { - LOG( SIMPLE, - "PLAYTONE: CPlayToneHandler::CommandAllowed others" ) - iIconCommand = EFalse; - } - - // if not allowed, send terminal response immediatelly. - if ( !allowed ) - { - LOG( SIMPLE, - "PLAYTONE: CPlayToneHandler::CommandAllowed allowed false" ) - iPlayToneRsp.SetPCmdNumber( iPlayToneData.PCmdNumber() ); - // Send terminal response. - TerminalRsp( RSat::EPlayTone, iPlayToneRspPckg ); - } - - LOG2( SIMPLE, "PLAYTONE: CPlayToneHandler::CommandAllowed exiting,\ - allowed: %d", allowed ) - return allowed; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Answers for need of UI session. -// ----------------------------------------------------------------------------- -// -TBool CPlayToneHandler::NeedUiSession() - { - LOG( NORMAL, "PLAYTONE: CPlayToneHandler::NeedUiSession calling" ) - - // Notify Cover UI if it's supported - if ( iUtils->CoverUiSupported() ) - { - LOG( NORMAL, "PLAYTONE: CPlayToneHandler::NeedUiSession \ - CoverUiSupported" ) - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::EPlayTone; - medEventData.iAlphaId = iPlayToneData.iAlphaId; - medEventData.iDuration = iPlayToneData.iDuration; - medEventData.iIconID = iPlayToneData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - - LOG( NORMAL, "PLAYTONE: CPlayToneHandler::NeedUiSession exiting" ) - return ETrue; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when USAT API notifies that command. -// ----------------------------------------------------------------------------- -// -void CPlayToneHandler::HandleCommand() - { - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::HandleCommand calling" ) - - iUtils->NotifyEvent( MSatUtils::EPlayToneExecuting ); - - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - uiSession->SendCommand( - &iPlayTonePckg, - &iPlayToneRspPckg, - ESatSProactivePlayTone ); - - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Indicates the failure of launching ui client. -// ----------------------------------------------------------------------------- -// -void CPlayToneHandler::UiLaunchFailed() - { - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::UiLaunchFailed calling" ) - - iPlayToneRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iPlayToneRsp.iInfoType = RSat::KMeProblem; - iPlayToneRsp.iAdditionalInfo.SetLength( 1 ); - iPlayToneRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iPlayToneRsp.SetPCmdNumber( iPlayToneData.PCmdNumber() ); - TerminalRsp( RSat::EPlayTone, iPlayToneRspPckg ); - - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// - -CPlayToneHandler::CPlayToneHandler() : - CSatCommandHandler(), - iPlayToneData(), - iPlayTonePckg( iPlayToneData ), - iPlayToneRsp(), - iPlayToneRspPckg( iPlayToneRsp ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( SIMPLE, - "PLAYTONE: CPlayToneHandler::CPlayToneHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CPlayToneHandler::ConstructL() - { - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::ConstructL calling" ) - - // Register service request handler for PlayTone command. - iUtils->RegisterServiceRequestL( - ESatSProactivePlayTone, - ESatSProactivePlayToneResponse, - this ); - - LOG( SIMPLE, "PLAYTONE: CPlayToneHandler::ConstructL exiting" ) - } - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/PlayToneCmd/src/std.cpp --- a/satengine/SatServer/Commands/PlayToneCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CPlayToneHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x1000A88C, CPlayToneHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ProvideLocalInfoCmd/group/ProvideLocalInfoCmd.mmp --- a/satengine/SatServer/Commands/ProvideLocalInfoCmd/group/ProvideLocalInfoCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project ProvideLocalInfo plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET ProvideLocalInfoCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x10205C45 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CProvideLocalInfoHandler.cpp - -START RESOURCE 10205C45.rss -TARGET ProvideLocalInfoCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ProvideLocalInfoCmd/group/bld.inf --- a/satengine/SatServer/Commands/ProvideLocalInfoCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project ProvideLocalInfoCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -ProvideLocalInfoCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ProvideLocalInfoCmd/inc/CProvideLocalInfoHandler.h --- a/satengine/SatServer/Commands/ProvideLocalInfoCmd/inc/CProvideLocalInfoHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: ProvideLocalInfo command handler -* -*/ - - -#ifndef CPROVIDELOCALINFOHANDLER_H -#define CPROVIDELOCALINFOHANDLER_H - -// INCLUDES -#include -#include "CSatCommandHandler.h" - -// FORWARD DECLARATION -class MSatUtils; - -// CLASS DECLARATION - -/** -* Command handler for ProvideLocalInfo command. -* -* @lib ProvideLocalInfo.lib -* @since Series 60 3.0 -*/ -class CProvideLocalInfoHandler : public CSatCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils Utils inteface. - */ - static CProvideLocalInfoHandler* NewL( MSatUtils* aUtils ); - - /** - * Destructor. - */ - virtual ~CProvideLocalInfoHandler(); - - public: // Functions from base classes - - /** - * From MSatCommand. - */ - void ClientResponse(); - - protected: // Functions from base classes - - /** - * From CActive Cancels the usat request. - */ - void DoCancel(); - - /** - * From CSatCommandHandler Requests the command notification. - * @param aStatus Request status to active object notification - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler Precheck before executing the command. - * @return Boolean indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler Need for ui session. - * @return Boolean indicating does this command need UI session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler Called when USAT API. - * notifies that command. - */ - void HandleCommand(); - - /** - * From CSatCommandHandler Indicates the failure - * of launching ui client. - */ - void UiLaunchFailed(); - - private: - - /** - * C++ default constructor. - */ - CProvideLocalInfoHandler(); - - protected: // Data - - // The data structure for the command data - RSat::TLocalInfoV3 iLocalInfoData; - - // The data package for IPC - RSat::TLocalInfoV3Pckg iLocalInfoPckg; - - // Response from client - RSat::TLocalInfoRspV3 iLocalInfoRsp; - - // Response package. - RSat::TLocalInfoRspV3Pckg iLocalInfoRspPckg; - - }; - -#endif // CPROVIDELOCALINFOHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ProvideLocalInfoCmd/inc/ProvideLocalInfoCmd.rls --- a/satengine/SatServer/Commands/ProvideLocalInfoCmd/inc/ProvideLocalInfoCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project ProvideLocalInfoCmd -* -*/ - - -#ifndef PROVIDELOCALINFOCMD_RLS -#define PROVIDELOCALINFOCMD_RLS - -rls_string STRING_r_providelocalinfocmd_display_name "ProvideLocalInfo command" -rls_string STRING_r_providelocalinfocmd_default_data "ProvideLocalInfoCmd" -rls_string STRING_r_providelocalinfocmd_opaque_data "" - -#endif // PROVIDELOCALINFOCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ProvideLocalInfoCmd/src/10205C45.rss --- a/satengine/SatServer/Commands/ProvideLocalInfoCmd/src/10205C45.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1020 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "ProvideLocalInfoCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// ProvideLocalInfoCmd -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO ProvideLocalInfoCmd - { - dll_uid = 0x10205C45; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x10205C46; - version_no = 1; - display_name = STRING_r_providelocalinfocmd_display_name; - default_data = STRING_r_providelocalinfocmd_default_data; - opaque_data = STRING_r_providelocalinfocmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ProvideLocalInfoCmd/src/CProvideLocalInfoHandler.cpp --- a/satengine/SatServer/Commands/ProvideLocalInfoCmd/src/CProvideLocalInfoHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,234 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles ProvideLocalInfo command -* -*/ - - -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "MSatSystemState.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "MSatEventMonitorContainer.h" -#include "CProvideLocalInfoHandler.h" -#include "SatLog.h" - -const TInt8 KLangDescrSize( 2 ); - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CProvideLocalInfoHandler::CProvideLocalInfoHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CProvideLocalInfoHandler::CProvideLocalInfoHandler() : - CSatCommandHandler(), - iLocalInfoData(), - iLocalInfoPckg( iLocalInfoData ), - iLocalInfoRsp(), - iLocalInfoRspPckg( iLocalInfoRsp ) - { - LOG( SIMPLE, - "PROVIDELOCALINFO: CProvideLocalInfoHandler::\ - CProvideLocalInfoHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CProvideLocalInfoHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CProvideLocalInfoHandler* CProvideLocalInfoHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "PROVIDELOCALINFO: CProvideLocalInfoHandler::NewL calling" ) - - CProvideLocalInfoHandler* self = new( ELeave ) CProvideLocalInfoHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - // ConstructL not needed. - CleanupStack::Pop( self ); - - LOG( SIMPLE, "PROVIDELOCALINFO: CProvideLocalInfoHandler::NewL exiting" ) - return self; - } - -// Destructor -CProvideLocalInfoHandler::~CProvideLocalInfoHandler() - { - LOG( SIMPLE, "PROVIDELOCALINFO: CProvideLocalInfoHandler::\ - CProvideLocalInfoHandler calling" ) - - Cancel(); - - LOG( SIMPLE, "PROVIDELOCALINFO: CProvideLocalInfoHandler::\ - ~CProvideLocalInfoHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CProvideLocalInfoHandler::ClientResponse -// ----------------------------------------------------------------------------- -// -void CProvideLocalInfoHandler::ClientResponse() - { - LOG( SIMPLE, "PROVIDELOCALINFO: CProvideLocalInfoHandler::\ - ClientResponse calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CProvideLocalInfoHandler::DoCancel -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CProvideLocalInfoHandler::DoCancel() - { - LOG( SIMPLE, "PROVIDELOCALINFO: CProvideLocalInfoHandler::\ - DoCancel calling" ) - - iUtils->USatAPI().NotifyLocalInfoCancel(); - - LOG( SIMPLE, "PROVIDELOCALINFO: CProvideLocalInfoHandler::\ - DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CProvideLocalInfoHandler::IssueUSATRequest -// ----------------------------------------------------------------------------- -// -void CProvideLocalInfoHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "PROVIDELOCALINFO: CProvideLocalInfoHandler::\ - IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iLocalInfoData) RSat::TLocalInfoV3(); - - iUtils->USatAPI().NotifyLocalInfo( aStatus, iLocalInfoPckg ); - - LOG( SIMPLE, "PROVIDELOCALINFO: CProvideLocalInfoHandler::\ - IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// CProvideLocalInfoHandler::CommandAllowed -// ----------------------------------------------------------------------------- -// -TBool CProvideLocalInfoHandler::CommandAllowed() - { - LOG( SIMPLE, "PROVIDELOCALINFO: CProvideLocalInfoHandler::CommandAllowed \ - calling - exiting" ) - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CProvideLocalInfoHandler::NeedUiSession -// ----------------------------------------------------------------------------- -// -TBool CProvideLocalInfoHandler::NeedUiSession() - { - LOG( SIMPLE, "PROVIDELOCALINFO: CProvideLocalInfoHandler::NeedUiSession \ - calling - exiting" ) - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CProvideLocalInfoHandler::HandleCommand -// ----------------------------------------------------------------------------- -// -void CProvideLocalInfoHandler::HandleCommand() - { - LOG( SIMPLE, - "PROVIDELOCALINFO: CProvideLocalInfoHandler::HandleCommand calling" ) - - iUtils->NotifyEvent( MSatUtils::ELocalInfoExecuting ); - - if ( RSat::KProvideLocalInfoLanguage == iLocalInfoData.iInfoType ) - { - LOG( SIMPLE,"PROVIDELOCALINFO: CProvideLocalInfoHandler::\ - HandleCommand KProvideLocalInfoLanguage" ) - - // Get new display text language from SAT SystemState. - TInt language( iUtils->SystemState().DisplayTextLanguage() ); - - // Maximum size in ISO 639-1 language is 2. - TBuf languageISO( KNullDesC ); - - // Verify language. - // If it is automatic, language preferred by SIM is used - TRAPD( err, iUtils->EventMonitors()->LanguageSettingL( language ) ); - LOG2( NORMAL, - "PROVIDELOCALINFO: CProvideLocalInfoHandler::HandleCommand err %i", - err ) - if ( KErrNone == err ) - { - LOG2( NORMAL, - "PROVIDELOCALINFO: CProvideLocalInfoHandler::HandleCommand \ - language: %i", language ) - // If language is automatic, language = 0 - if ( language ) - { - // Event monitor container has the function for resolving - // language string - iUtils->EventMonitors()->GetLanguageString( - language, languageISO ); - } - } - - // Check the language string and build the response - if ( languageISO != KNullDesC ) - { - LOG( NORMAL, "PROVIDELOCALINFO: CProvideLocalInfoHandler::\ - HandleCommand Success" ) - iLocalInfoRsp.iGeneralResult = RSat::KSuccess; - iLocalInfoRsp.iInfoType = RSat::KLocalInformation; - iLocalInfoRsp.iAdditionalInfo.Copy( languageISO ); - } - else - { - LOG( NORMAL, "PROVIDELOCALINFO: CProvideLocalInfoHandler::\ - HandleCommand UnableToProcessCmd" ) - iLocalInfoRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iLocalInfoRsp.iInfoType = RSat::KNoAdditionalInfo; - iLocalInfoRsp.iAdditionalInfo.Zero(); - } - } - else - { - LOG( NORMAL, "PROVIDELOCALINFO: CProvideLocalInfoHandler::\ - HandleCommand TypeNotUnderstood" ) - iLocalInfoRsp.iGeneralResult = RSat::KCmdTypeNotUnderstood; - iLocalInfoRsp.iInfoType = RSat::KNoAdditionalInfo; - iLocalInfoRsp.iAdditionalInfo.Zero(); - } - - iLocalInfoRsp.SetPCmdNumber( iLocalInfoData.PCmdNumber() ); - TerminalRsp( RSat::ELocalInfo, iLocalInfoRspPckg ); - - LOG( SIMPLE, - "PROVIDELOCALINFO: CProvideLocalInfoHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CProvideLocalInfoHandler::UiLaunchFailed -// ----------------------------------------------------------------------------- -// -void CProvideLocalInfoHandler::UiLaunchFailed() - { - LOG( SIMPLE, "PROVIDELOCALINFO: CProvideLocalInfoHandler::UiLaunchFailed \ - calling-exiting" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ProvideLocalInfoCmd/src/std.cpp --- a/satengine/SatServer/Commands/ProvideLocalInfoCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CProvideLocalInfoHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x10205C46, CProvideLocalInfoHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ReceiveDataCmd/group/ReceiveDataCmd.mmp --- a/satengine/SatServer/Commands/ReceiveDataCmd/group/ReceiveDataCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project ReceiveData plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET ReceiveDataCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x10205C52 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CReceiveDataHandler.cpp - -START RESOURCE 10205C52.rss -TARGET ReceiveDataCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ReceiveDataCmd/group/bld.inf --- a/satengine/SatServer/Commands/ReceiveDataCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project ReceiveData plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -ReceiveDataCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ReceiveDataCmd/inc/CReceiveDataHandler.h --- a/satengine/SatServer/Commands/ReceiveDataCmd/inc/CReceiveDataHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,206 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: ReceiveData command handler -* -*/ - - -#ifndef CRECEIVEDATAHANDLER_H -#define CRECEIVEDATAHANDLER_H - -#include - -#include "CSatCommandHandler.h" -#include "SatSTypes.h" -#include "MSatBIPUtils.h" - -class MSatUtils; - -/** -* Command handler for ReceiveData command. -* -* @lib ReceiveDataCmd.lib -* @since S60 v3.0 -*/ -class CReceiveDataHandler : public CSatCommandHandler - { - -public: - - static CReceiveDataHandler* NewL( MSatUtils* aUtils ); - - virtual ~CReceiveDataHandler(); - -// from base class MSatCommand - - /** - * From MSatCommand. - * Response from the client. - * - */ - void ClientResponse(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler - * Overrides the default implementation. - * - * @param aEvent Identifies the event. - */ - void Event( TInt aEvent ); - -protected: - -// from base class CActive - - /** - * From CActive - * Cancels the usat request. - * - */ - void DoCancel(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler - * Requests the command notification. - * - * @param aStatus Request status to active object notification - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler - * Precheck before executing the command. - * - * @return Boolean indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler - * Need for ui session. - * - * @return Boolean indicating does this command need UI session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler - * Called when USAT API notifies that command. - * - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. - * Indicates the failure of launching ui client. - * - */ - void UiLaunchFailed(); - -private: - - CReceiveDataHandler(); - - void ConstructL(); - - /** - * Sends notification to UI. - * - * @return KErrNone if notification is sent successfully - */ - TInt SendUiNotification(); - - /** - * Completes Terminal response and sends it. - * - * @param aError is error code of reason - */ - void SendTerminalResponse( - const TInt aError = MSatBIPUtils::ESatBIPSuccess ); - -private: // data - - /** - * ReceiveData command data. - */ - RSat::TReceiveDataV2 iReceiveDataData; - - /** - * ReceiveData command package. - */ - RSat::TReceiveDataV2Pckg iReceiveDataPckg; - - /** - * ReceiveData response data. - */ - RSat::TReceiveDataRspV2 iReceiveDataRspData; - - /** - * ReceiveData response package. - */ - RSat::TReceiveDataRspV2Pckg iReceiveDataRspPckg; - - /** - * The data structure for notification. - */ - TSatNotificationV1 iReceiveDataUiData; - - /** - * Nitificatio package. - */ - TSatNotificationV1Pckg iReceiveDataUiPckg; - - /** - * Notification response. - */ - TSatNotificationRspV1 iReceiveDataUiRsp; - - /** - * Notification response package. - */ - TSatNotificationRspV1Pckg iReceiveDataUiRspPckg; - - /** - * Reiceive data buffer. - */ - TBuf8 iChData; - - /** - * Remaining amount of data in RX-buffer. - */ - TInt iChDataLength; - - /** - * Indicates has user cancelled the action. - */ - TBool iUserCancelled; - - /** - * Indicates does current command need UI or not. - */ - TBool iNeedUiSession; - - /** - * Flag to signal that command has icon data. - * To be removed when icons are allowed in this command - */ - TBool iIconCommand; - - }; - -#endif // CRECEIVEDATAHANDLER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ReceiveDataCmd/inc/ReceiveDataCmd.rls --- a/satengine/SatServer/Commands/ReceiveDataCmd/inc/ReceiveDataCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project ReceiveDataCmd -* -*/ - - -#ifndef RECEIVEDATACMD_RLS -#define RECEIVEDATACMD_RLS - -rls_string STRING_r_receivedatacmd_display_name "ReceiveData command" -rls_string STRING_r_receivedatacmd_default_data "ReceiveDataCmd" -rls_string STRING_r_receivedatacmd_opaque_data "" - -#endif // RECEIVEDATACMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ReceiveDataCmd/src/10205C52.rss --- a/satengine/SatServer/Commands/ReceiveDataCmd/src/10205C52.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1020 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "ReceiveDataCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// ReceiveDataCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO ReceiveDataCmdInfo - { - dll_uid = 0x10205C52; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x10205C53; - version_no = 1; - display_name = STRING_r_receivedatacmd_display_name; - default_data = STRING_r_receivedatacmd_default_data; - opaque_data = STRING_r_receivedatacmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ReceiveDataCmd/src/CReceiveDataHandler.cpp --- a/satengine/SatServer/Commands/ReceiveDataCmd/src/CReceiveDataHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,591 +0,0 @@ -/* -* Copyright (c) 2002-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: Handles ReceiveData command -* -*/ - - -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatSystemState.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CReceiveDataHandler.h" -#include "SatLog.h" -#include "MSatBIPDataChannel.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CReceiveDataHandler* CReceiveDataHandler::NewL( MSatUtils* aUtils ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::NewL calling" ) - CReceiveDataHandler* self = new( ELeave ) CReceiveDataHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -// -CReceiveDataHandler::~CReceiveDataHandler() - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::\ - CReceiveDataHandler calling" ) - Cancel(); - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::\ - ~CReceiveDataHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatCommand. -// Response from the client. -// ----------------------------------------------------------------------------- -// -void CReceiveDataHandler::ClientResponse() - { - LOG( NORMAL, "CReceiveDataHandler::ClientResponse calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Waits for indication of user wanting to close the BIP session. -// ----------------------------------------------------------------------------- -// -void CReceiveDataHandler::Event( TInt aEvent ) - { - LOG2( NORMAL, "ReceiveData: CReceiveDataHandler::Event calling, \ - aEvent:%d", aEvent ) - - switch ( aEvent ) - { - case MSatUtils::ECommandCancelled: - case MSatUtils::ECancelledUsingEndKey: - { - // Check Channel activation status - if ( iUtils->BipUtils().IsContextActive() ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::Event \ - IsContextActive" ) - // Next command is rejected - iUserCancelled = ETrue; - SendTerminalResponse(); // If command is executing, send. - } - break; - } - case MSatUtils::EOpenChannelExecuting: - { - // New channel, reset user cancel flag. - iUserCancelled = EFalse; - break; - } - default: - { - // Move event to base class - CSatCommandHandler::Event( aEvent ); - } - } - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::Event exiting" ) - } - - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CReceiveDataHandler::DoCancel() - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::\ - DoCancel calling" ) - iUtils->USatAPI().NotifyReceiveDataCancel(); - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::\ - DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Requests the command notification. -// ----------------------------------------------------------------------------- -// -void CReceiveDataHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::\ - IssueUSATRequest calling" ) - // Empty data - new (&iReceiveDataData) RSat::TReceiveDataV2(); - - iUtils->USatAPI().NotifyReceiveData( aStatus, iReceiveDataPckg ); - iUtils->NotifyEvent( MSatUtils::EBipCommandDoneExecuting ); - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::\ - IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Precheck before executing the command. -// ----------------------------------------------------------------------------- -// -TBool CReceiveDataHandler::CommandAllowed() - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::CommandAllowed \ - calling" ) - TBool commandAllowed( ETrue ); - - // Check user cancel - if ( iUserCancelled ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::CommandAllowed \ - iUserCancelled true" ) - SendTerminalResponse(); - commandAllowed = EFalse; - } - else - { - - // Proceed with the command - const TInt channelId( iReceiveDataData.iDestination ); - - if ( ( RSat::KChannel1 > channelId ) || - ( RSat::KChannel7 < channelId ) || - // If icon data without alpha id - ( ( RSat::EAlphaIdProvided != - iReceiveDataData.iAlphaId.iStatus ) && - ( ( RSat::ESelfExplanatory == - iReceiveDataData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iReceiveDataData.iIconId.iQualifier ) ) ) ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::CommandAllowed \ - Unknown channel identifier or icon without alpha id - \ - Not allowed" ) - // Create the response IPC package - iReceiveDataRspData.SetPCmdNumber( - iReceiveDataData.PCmdNumber() ); - iReceiveDataRspData.iGeneralResult = RSat::KCmdDataNotUnderstood; - iReceiveDataRspData.iInfoType = RSat::KNoAdditionalInfo; - iReceiveDataRspData.iAdditionalInfo.Zero(); - TerminalRsp( RSat::EReceiveData, iReceiveDataRspPckg ); - commandAllowed = EFalse; - } - // Set icon command flag whether icon data was received and set qualifier - // to no icon id - // To be removed when icons are allowed in this command - else if ( ( RSat::ESelfExplanatory == - iReceiveDataData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iReceiveDataData.iIconId.iQualifier ) ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::CommandAllowed \ - ENoIconId" ) - iIconCommand = ETrue; - iReceiveDataData.iIconId.iQualifier = RSat::ENoIconId; - } - else - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::CommandAllowed \ - others" ) - iIconCommand = EFalse; - } - - // ReceiveData doesn't need to check Service, ongoing calls etc. - // because data is waiting in SAT Engine, so ReceiveData doesn't - // do any network operations. - } - LOG2( NORMAL, "ReceiveData: CReceiveDataHandler::CommandAllowed exiting,\ - commandAllowed: %d", commandAllowed ) - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Need for ui session. -// ----------------------------------------------------------------------------- -// -TBool CReceiveDataHandler::NeedUiSession() - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::NeedUiSession calling" ) - // UI is NOT needed in case where AlphaID is provided and it is a NULL - iNeedUiSession = ( !( RSat::EAlphaIdNull == - iReceiveDataData.iAlphaId.iStatus ) && - !( RSat::EAlphaIdNotPresent == - iReceiveDataData.iAlphaId.iStatus ) ); - // Send notification to Mediator client if Cover UI is supported - if ( iNeedUiSession && iUtils->CoverUiSupported() ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::NeedUiSession \ - CoverUiSupported" ) - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::EReceiveData; - medEventData.iAlphaId = iReceiveDataData.iAlphaId; - medEventData.iDuration.iNumOfUnits = KSatDefaultDuration; - medEventData.iIconID = iReceiveDataData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - LOG2( NORMAL, "ReceiveData: CReceiveDataHandler::NeedUiSession exiting,\ - iNeedUiSession: %d", iNeedUiSession ) - return iNeedUiSession; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when USAT API notifies that command. -// ----------------------------------------------------------------------------- -// -void CReceiveDataHandler::HandleCommand() - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::HandleCommand calling" ) - - // Notify other's about this command executiuon - iUtils->NotifyEvent( MSatUtils::EReceiveDataExecuting ); - iUtils->NotifyEvent( MSatUtils::EBipCommandExecuting ); - TInt uiError( KErrNone ); - - if ( iNeedUiSession ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::HandleCommand \ - Sending UI Notification" ) - uiError = SendUiNotification(); - } - LOG2( NORMAL, - "ReceiveData: CReceiveDataHandler::HandleCommand uiError: %i", uiError ) - if ( KErrNone == uiError ) - { - iChDataLength = 0; - - // Proceed with the command - TInt err( MSatBIPUtils::ESatBIPSuccess ); - TInt error( KErrNone ); - - TInt requestedLength( iReceiveDataData.iChannelDataLength ); - - // Make sure that reguested data length is not - // more than KSatBIPMaxResponseSize - if ( requestedLength > KSatBIPMaxResponseSize ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::HandleCommand \ - requestedLength > KSatBIPMaxResponseSize" ) - requestedLength = KSatBIPMaxResponseSize; - } - - LOG2( NORMAL, "ReceiveData: CReceiveDataHandler::HandleCommand \ - Requested data length: %i", requestedLength ) - - // Get Data Channel - MSatBIPDataChannel* datachannel = - iUtils->BipUtils().DataChannel( - iReceiveDataData.iDestination, err ); - - LOG2( NORMAL, "ReceiveData: CReceiveDataHandler::HandleCommand \ - err: %i", err ) - //Check if ch was found - if ( MSatBIPUtils::ESatBIPSuccess == err - || MSatBIPUtils::ESatBIPChannelClosed == err ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::HandleCommand \ - MSatBIPUtils::ESatBIPSuccess == err" ) - iChData.Zero(); - TRAP( error, err = datachannel->ReceiveDataL( - iChData, - requestedLength, - iChDataLength ) ); - } - LOG2( NORMAL, "ReceiveData: CReceiveDataHandler::HandleCommand \ - error: %i", error ) - // No point to continue - if ( error != KErrNone ) - { - iReceiveDataRspData.iGeneralResult = - RSat::KBearerIndepProtocolError; - } - // Not all requested data yet available - else if ( MSatBIPUtils::ESatBIPReqBufSizeNotAvail == err || - MSatBIPUtils::ESatBIPChannelClosed == err ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::HandleCommand \ - Not all requested data available" ) - iReceiveDataRspData.iGeneralResult = RSat::KMissingInformation; - } - // Some other error - else if ( MSatBIPUtils::ESatBIPSuccess != err ) - { - LOG2( NORMAL, "ReceiveData: CReceiveDataHandler::HandleCommand \ - Error %i", err ) - iReceiveDataRspData.iGeneralResult = - RSat::KBearerIndepProtocolError; - } - // Everything fine - else - { - LOG( NORMAL, - "ReceiveData: CReceiveDataHandler::HandleCommand success") - iReceiveDataRspData.iGeneralResult = RSat::KSuccess; - } - - // Send terminal response - SendTerminalResponse( err ); - } - - LOG2( NORMAL, - "ReceiveData: CReceiveDataHandler::HandleCommand %i bytes Remain in RX \ - buffer.", iChDataLength ) - LOG2( NORMAL, - "ReceiveData: CReceiveDataHandler::HandleCommand Returning %i bytes", - iChData.Length() ) - - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Indicates the failure of launching ui client. -// ----------------------------------------------------------------------------- -// -void CReceiveDataHandler::UiLaunchFailed() - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::UiLaunchFailed calling" ) - iReceiveDataRspData.iGeneralResult = RSat::KMeUnableToProcessCmd; - iReceiveDataRspData.iInfoType = RSat::KMeProblem; - iReceiveDataRspData.iAdditionalInfo.SetLength( 1 ); - iReceiveDataRspData.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iReceiveDataRspData.SetPCmdNumber( iReceiveDataData.PCmdNumber() ); - TerminalRsp( RSat::EReceiveData, iReceiveDataRspPckg ); - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized. -CReceiveDataHandler::CReceiveDataHandler() : - CSatCommandHandler(), - iReceiveDataData(), - iReceiveDataPckg( iReceiveDataData ), - iReceiveDataRspData(), - iReceiveDataRspPckg( iReceiveDataRspData ), - iReceiveDataUiData(), - iReceiveDataUiPckg( iReceiveDataUiData ), - iReceiveDataUiRsp(), - iReceiveDataUiRspPckg( iReceiveDataUiRsp ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( NORMAL, - "ReceiveData: CReceiveDataHandler::\ - CReceiveDataHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CReceiveDataHandler::ConstructL() - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::ConstructL \ - calling" ) - - iUtils->RegisterServiceRequestL( ESatSProactiveNotification, - ESatSProactiveNotificationResponse, this ); - - // Register to ui service request - iUtils->RegisterL( this, MSatUtils::ECommandCancelled ); - iUtils->RegisterL( this, MSatUtils::ECancelledUsingEndKey ); - iUtils->RegisterL( this, MSatUtils::EOpenChannelExecuting ); - - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::ConstructL \ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// Sends notification to UI. -// ----------------------------------------------------------------------------- -// -TInt CReceiveDataHandler::SendUiNotification() - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::SendUiNotification \ - calling" ) - // Register to ui service request - TRAPD( uiError, iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, this ) ); - LOG2( NORMAL, "ReceiveData: CReceiveDataHandler::SendUiNotification \ - uiError: %d", uiError ) - // Check UI error - if ( KErrNone == uiError ) - { - // Create IPC data to UI - iReceiveDataUiData.iCommand = ESatSReceiveDataNotify; - - iReceiveDataUiData.iText = iReceiveDataData.iAlphaId.iAlphaId; - iReceiveDataUiData.iIconId.iIdentifier - = iReceiveDataData.iIconId.iIdentifier; - - // Define icon qualifier - if ( RSat::ENotSelfExplanatory == - iReceiveDataData.iIconId.iQualifier ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::\ - SendUiNotification ENotSelfExplanatory" ) - iReceiveDataUiData.iIconId.iIconQualifier = - ESatNotSelfExplanatory; - } - else if ( RSat::ESelfExplanatory == - iReceiveDataData.iIconId.iQualifier ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::\ - SendUiNotification ESelfExplanatory" ) - iReceiveDataUiData.iIconId.iIconQualifier = ESatSelfExplanatory; - } - else // Icon qualifier not present - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::\ - SendUiNotification ESatENoIconId" ) - iReceiveDataUiData.iIconId.iIconQualifier = ESatENoIconId; - } - LOG2( NORMAL, "ReceiveData: CReceiveDataHandler::SendUiNotification \ - iReceiveDataData.iAlphaId.iStatus: %d", - iReceiveDataData.iAlphaId.iStatus ) - // Define AlphaID status - switch ( iReceiveDataData.iAlphaId.iStatus ) - { - case RSat::EAlphaIdNotPresent: - { - iReceiveDataUiData.iAlphaIdStatus = ESatAlphaIdNotProvided; - break; - } - - case RSat::EAlphaIdProvided: - { - iReceiveDataUiData.iAlphaIdStatus = ESatAlphaIdNotNull; - break; - } - - default: - { - iReceiveDataUiData.iAlphaIdStatus = ESatAlphaIdNull; - break; - } - } - - // Send notification to UI - MSatUiSession* session = iUtils->SatUiHandler().UiSession(); - session->SendCommand( &iReceiveDataUiPckg, - &iReceiveDataUiRspPckg, - ESatSProactiveNotification ); - } - else - { - // Send error terminal response - iReceiveDataRspData.iGeneralResult = RSat::KMeUnableToProcessCmd; - SendTerminalResponse( RSat::KNoSpecificMeProblem ); - } - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::SendUiNotification \ - exiting" ) - return uiError; - } - -// ----------------------------------------------------------------------------- -// Completes Terminal response and sends it. -// ----------------------------------------------------------------------------- -// -void CReceiveDataHandler::SendTerminalResponse( const TInt aError ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::SendTerminalResponse \ - calling" ) - - if ( iUserCancelled ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::SendTerminalResponse \ - User cancelled the action" ) - iReceiveDataRspData.iGeneralResult = RSat::KPSessionTerminatedByUser; - iReceiveDataRspData.iInfoType = RSat::KNoAdditionalInfo; - iReceiveDataRspData.iAdditionalInfo.Zero(); - } - else if ( RSat::KMissingInformation == iReceiveDataRspData.iGeneralResult || - RSat::KSuccess == iReceiveDataRspData.iGeneralResult ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::SendTerminalResponse\ - KMissingInformation or KSuccess" ) - iReceiveDataRspData.iInfoType = RSat::KChannelData; - iReceiveDataRspData.iAdditionalInfo.Copy( iChData ); - // More than maximum bytes remaining - if ( iChDataLength > KSatBIPMoreThanMaxSize ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::\ - SendTerminalResponse iChDataLength > KSatBIPMoreThanMaxSize" ) - iReceiveDataRspData.iChannelDataLength = KSatBIPMoreThanMaxSize; - } - else - { - iReceiveDataRspData.iChannelDataLength = - static_cast( iChDataLength ); - } - - // If command had icon data and was done succesfully, - // report that icon was not shown. - // To be removed and correct handling (i.e. ClientResponse to - // notification is received) for general result - // KSuccessRequestedIconNotDisplayed must be added when icons - // are allowed in this command - if ( ( RSat::KSuccess == iReceiveDataRspData.iGeneralResult ) && - iIconCommand ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::\ - SendTerminalResponse KSuccessRequestedIconNotDisplayed" ) - iReceiveDataRspData.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - } - else - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::SendTerminalResponse\ - others" ) - iReceiveDataRspData.iInfoType = RSat::KMeProblem; - iReceiveDataRspData.iAdditionalInfo.SetLength( 1 ); - // Error code from MSatBIPUtils is the same as defined in etelsat.h, - // so we can put that error code straigth to additional info - iReceiveDataRspData.iAdditionalInfo[0] = static_cast ( aError ); - iReceiveDataRspData.iChannelDataLength = 0; - } - - if ( IsCommandExecuting() ) - { - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::SendTerminalResponse\ - IsCommandExecuting" ) - // Create the response IPC package - iReceiveDataRspData.SetPCmdNumber( iReceiveDataData.PCmdNumber() ); - - // Fixed order to send terminal response. - iUtils->NotifyEvent( MSatUtils::EDelaySimSessionEnd ); - iUtils->USatAPI().TerminalRsp( RSat::EReceiveData, iReceiveDataRspPckg ); - Start(); - } - LOG( NORMAL, "ReceiveData: CReceiveDataHandler::SendTerminalResponse \ - exiting" ) - } - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/ReceiveDataCmd/src/std.cpp --- a/satengine/SatServer/Commands/ReceiveDataCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CReceiveDataHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x10205C53, CReceiveDataHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshCmd/group/RefreshCmd.mmp --- a/satengine/SatServer/Commands/RefreshCmd/group/RefreshCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project Refresh plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET RefreshCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x10202990 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CRefreshHandler.cpp - -START RESOURCE 10202990.rss -TARGET RefreshCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshCmd/group/bld.inf --- a/satengine/SatServer/Commands/RefreshCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project RefreshCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -RefreshCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshCmd/inc/CRefreshHandler.h --- a/satengine/SatServer/Commands/RefreshCmd/inc/CRefreshHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Refresh command handler -* -*/ - - - -#ifndef CREFRESHHANDLER_H -#define CREFRESHHANDLER_H - -// INCLUDES -#include -#include "SatSTypes.h" -#include "CSatCommandHandler.h" - -// FORWARD DECLARATION -class MSatUtils; - -// CLASS DECLARATION - -/** -* Command handler for Refresh command. -* -* @lib RefreshCmd.lib -* @since Series 60 3.0 -*/ -class CRefreshHandler : public CSatCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils SAT Utils interface - */ - static CRefreshHandler* NewL( MSatUtils* aUtils ); - - /** - * Destructor. - */ - virtual ~CRefreshHandler(); - - public: // Functions from base classes - - /** - * From MSatEventObserver. Overrides the default implementation. - * @param aEvent An event that is occured. - */ - void Event( TInt aEvent ); - - protected: // Functions from base classes - - /** - * From CActive Cancels the usat request. - */ - void DoCancel(); - - /** - * From CCommandHandler Requests the command notification. - * @param aStatus Request status - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler Precheck before executing the command. - * @return TBool indicating command is currently allowed. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler Need for ui session. - * @return TBool indicating need of ui session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler Called when USAT API notifies that command. - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. Indicates the failure of launching ui client. - */ - void UiLaunchFailed(); - - private: - - /** - * C++ default constructor. - */ - CRefreshHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // New functions - - /** - * Notifies the refresh clients about refresh cancel. - */ - void NotifyRefreshClientsCancel(); - - /** - * Completes refresh when all clients has completed. - */ - void CompleteRefresh(); - - private: // Data - - // Refresh command data. - RSat::TRefreshV2 iRefreshData; - - // Refresh command package. - RSat::TRefreshV2Pckg iRefreshPckg; - - // Response from client - RSat::TRefreshRspV1 iRefreshRsp; - - // Response package. - RSat::TRefreshRspV1Pckg iRefreshRspPckg; - - // Count of refresh clients notified refresh but not yet answered. - TInt iRefreshNotifyClientCount; - - // True whether any client has indicated additional EF read. - TBool iAdditionalEFRead; - - // Indicates SimReset type refresh is executing. - TBool iSimResetExecuting; - }; - -#endif // CREFRESHHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshCmd/inc/RefreshCmd.rls --- a/satengine/SatServer/Commands/RefreshCmd/inc/RefreshCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project RefreshCmd -* -*/ - - -#ifndef REFRESHCMD_RLS -#define REFRESHCMD_RLS - -rls_string STRING_r_refreshcmd_display_name "Refresh command" -rls_string STRING_r_refreshcmd_default_data "RefreshCmd" -rls_string STRING_r_refreshcmd_opaque_data "" - -#endif // REFRESHCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshCmd/src/10202990.rss --- a/satengine/SatServer/Commands/RefreshCmd/src/10202990.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1020 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "RefreshCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// RefreshCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO RefreshCmdInfo - { - dll_uid = 0x10202990; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x10202991; - version_no = 1; - display_name = STRING_r_refreshcmd_display_name; - default_data = STRING_r_refreshcmd_default_data; - opaque_data = STRING_r_refreshcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshCmd/src/CRefreshHandler.cpp --- a/satengine/SatServer/Commands/RefreshCmd/src/CRefreshHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,345 +0,0 @@ -/* -* Copyright (c) 2002-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: Handles Refresh command -* -*/ - - -#include -#include "MSatSUiClientHandler.h" -#include "CRefreshHandler.h" -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatSystemState.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatRefreshSubSession.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CRefreshHandler::CRefreshHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CRefreshHandler::CRefreshHandler() : - CSatCommandHandler(), - iRefreshData(), - iRefreshPckg( iRefreshData ), - iRefreshRsp(), - iRefreshRspPckg( iRefreshRsp ), - iRefreshNotifyClientCount( 0 ), - iAdditionalEFRead( EFalse ), - iSimResetExecuting( EFalse ) - { - LOG( SIMPLE, - "REFRESH: CRefreshHandler::CRefreshHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CRefreshHandler::ConstructL() - { - LOG( SIMPLE, "REFRESH: CRefreshHandler::ConstructL calling" ) - - // Register events to be listen. - iUtils->RegisterL( this, MSatUtils::ERefreshEFRead ); - iUtils->RegisterL( this, MSatUtils::ERefreshAdditionalEFRead ); - iUtils->RegisterL( this, MSatUtils::ESimResetCalled ); - - LOG( SIMPLE, "REFRESH: CRefreshHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CRefreshHandler* CRefreshHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "REFRESH: CRefreshHandler::NewL calling" ) - - CRefreshHandler* self = new( ELeave ) CRefreshHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "REFRESH: CRefreshHandler::NewL exiting" ) - return self; - } - - -// Destructor -CRefreshHandler::~CRefreshHandler() - { - LOG( SIMPLE, "REFRESH: CRefreshHandler::~CRefreshHandler calling" ) - - Cancel(); - - LOG( SIMPLE, "REFRESH: CRefreshHandler::~CRefreshHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshHandler::Event -// ----------------------------------------------------------------------------- -// -void CRefreshHandler::Event( TInt aEvent ) - { - LOG( SIMPLE, "REFRESH: CRefreshHandler::Event calling" ) - - switch ( aEvent ) - { - case MSatUtils::ERefreshAdditionalEFRead: - { - LOG( NORMAL, "REFRESH: Event: Additional EF read" ) - - // At least one client indicates additional EF read. - iAdditionalEFRead = ETrue; - } - //lint -fallthrough intended here - - case MSatUtils::ERefreshEFRead: - { - LOG( NORMAL, "REFRESH: Event: Client Completed" ) - - if ( 0 < iRefreshNotifyClientCount ) - { - iRefreshNotifyClientCount--; - // Check whether all clients have replied. - if ( 0 == iRefreshNotifyClientCount ) - { - LOG( NORMAL, "REFRESH: All clients are complete" ) - // Construct and send terminal response.. - CompleteRefresh(); - } - } - break; - } - - case MSatUtils::ESimResetCalled: - { - LOG( NORMAL, "REFRESH: Event: Sim Reset called" ) - iSimResetExecuting = ETrue; - break; - } - - default: - { - LOG2( NORMAL, "REFRESH: Event: %i", aEvent ) - CSatCommandHandler::Event( aEvent ); - } - } - - LOG( SIMPLE, "REFRESH: CRefreshHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshHandler::DoCancel -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CRefreshHandler::DoCancel() - { - LOG( SIMPLE, "REFRESH: CRefreshHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifyRefreshCancel(); - - LOG( SIMPLE, "REFRESH: CRefreshHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshHandler::IssueUSATRequest -// ----------------------------------------------------------------------------- -// -void CRefreshHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "REFRESH: CRefreshHandler::IssueUSATRequest calling" ) - - // Refresh has been cancelled, lets notify clients waiting for it. - if ( KErrGeneral == aStatus.Int() ) - { - LOG( SIMPLE, "REFRESH: Refresh cancelled" ) - NotifyRefreshClientsCancel(); - - if ( iSimResetExecuting ) - { - LOG( SIMPLE, "CRefreshHandler::IssueUSATRequest \ - iSimResetExecuting" ) - iUtils->NotifyEvent( MSatUtils::EAddSatUiCalled ); - iUtils->NotifyEvent( MSatUtils::ESimResetCancelled ); - - iSimResetExecuting = EFalse; - } - } - - // Clear the IPC package. - new (&iRefreshData) RSat::TRefreshV2(); - - iUtils->USatAPI().NotifyRefresh( aStatus, iRefreshPckg ); - - LOG( SIMPLE, "REFRESH: CRefreshHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshHandler::CommandAllowed -// ----------------------------------------------------------------------------- -// -TBool CRefreshHandler::CommandAllowed() - { - LOG( SIMPLE, "REFRESH: CRefreshHandler::CommandAllowed calling - exiting" ) - - // Now we must always allow Refresh. We had our last chnage to deny it in - // RefreshRequired command. - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CRefreshHandler::NeedUiSession -// ----------------------------------------------------------------------------- -// -TBool CRefreshHandler::NeedUiSession() - { - LOG( SIMPLE, "REFRESH: CRefreshHandler::NeedUiSession calling - exiting" ) - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CRefreshHandler::HandleCommand -// ----------------------------------------------------------------------------- -// -void CRefreshHandler::HandleCommand() - { - LOG( SIMPLE, "REFRESH: CRefreshHandler::HandleCommand calling" ) - - // Refresh has been done. - iSimResetExecuting = EFalse; - - #ifdef ENABLE_SAT_LOGGING - TInt fileCount( iRefreshData.iFileList.Length() ); - LOG2( NORMAL, "REFRESH: Refresh file count: %d", fileCount ) - for ( TInt fileIndex = 0; fileIndex < fileCount; fileIndex++ ) - { - LOG2( NORMAL, "REFRESH: Refresh file : %x", - iRefreshData.iFileList[ fileIndex ] ) - } - #endif - - // Notify all registered clients about refresh. - // Whether any clients exists, we must wait them all to complete EF read, - // otherwise we can complete now. - // Count must be local variable, due some client may reply before - // all other has been notified. - TInt clientCount( iUtils->RefreshSubSessions().Count() ); - iRefreshNotifyClientCount = clientCount; // Actually notified clients. - iAdditionalEFRead = EFalse; - if ( 0 != clientCount ) - { - LOG2( NORMAL, "REFRESH: Refresh client count: %d", - iRefreshNotifyClientCount ) - - // Notify refresh clients about refresh completion. - for ( TInt i = 0; i < clientCount ; i++ ) - { - iUtils->RefreshSubSessions()[i]->NotifyClient( iRefreshData ); - } - } - else - { - // Construct and send terminal response.. - CompleteRefresh(); - } - - LOG( SIMPLE, "REFRESH: CRefreshHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshHandler::UiLaunchFailed -// ----------------------------------------------------------------------------- -// -void CRefreshHandler::UiLaunchFailed() - { - // This command will not launch ui. - LOG( SIMPLE, "REFRESH: CRefreshHandler::UiLaunchFailed calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshHandler::CompleteRefresh -// Waits for all clients complete. -// ----------------------------------------------------------------------------- -// -void CRefreshHandler::CompleteRefresh() - { - LOG( SIMPLE, "REFRESH: CRefreshHandler::CompleteRefresh calling" ) - - // Remove the idle mode text and icon for initialization type refreshes. - // Note that idle mode text was removed for ESimReset already in - // RefreshRequired command. - if ( ( RSat::EFileChangeNotification != iRefreshData.iType ) && - ( RSat::ESimReset != iRefreshData.iType ) ) - { - LOG( SIMPLE, "REFRESH: CRefreshHandler::CompleteRefresh ESimInitDone" ) - iUtils->NotifyEvent( MSatUtils::ESimInitDone ); - } - - // Construct a proper refresh response data package. - if ( iAdditionalEFRead ) - { - LOG( SIMPLE, "REFRESH: CRefreshHandler::CompleteRefresh \ - iAdditionalEFRead" ) - iRefreshRsp.iGeneralResult = RSat::KRefreshAdditionEFRead; - iAdditionalEFRead = EFalse; - } - else - { - iRefreshRsp.iGeneralResult = RSat::KSuccess; - } - - iRefreshRsp.iInfoType = RSat::KNoAdditionalInfo; - iRefreshRsp.iAdditionalInfo.Zero(); - iRefreshRsp.SetPCmdNumber( iRefreshData.PCmdNumber() ); - - // Send the response - TerminalRsp( RSat::ERefresh, iRefreshRspPckg ); - - LOG( SIMPLE, "REFRESH: CRefreshHandler::CompleteRefresh exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshHandler::NotifyRefreshClientsCancel -// Notifies waiting clients about refrsh cancel. -// ----------------------------------------------------------------------------- -// -void CRefreshHandler::NotifyRefreshClientsCancel() - { - LOG( SIMPLE, - "REFRESH: CRefreshHandler::NotifyRefreshClientsCancel calling" ) - LOG2( SIMPLE, - "REFRESH: CRefreshHandler::NotifyRefreshClientsCancel \ - iRefreshNotifyClientCount: %d", iRefreshNotifyClientCount ) - for ( TInt i = 0; i < iRefreshNotifyClientCount ; i++ ) - { - iUtils->RefreshSubSessions()[i]->NotifyClientCancel(); - } - iRefreshNotifyClientCount = 0; - - LOG( SIMPLE, - "REFRESH: CRefreshHandler::NotifyRefreshClientsCancel exit" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshCmd/src/std.cpp --- a/satengine/SatServer/Commands/RefreshCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CRefreshHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x10202991, CRefreshHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshRequiredCmd/group/RefreshRequiredCmd.mmp --- a/satengine/SatServer/Commands/RefreshRequiredCmd/group/RefreshRequiredCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project RefreshRequired plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET RefreshRequiredCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x102078D9 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CRefreshRequiredHandler.cpp - -START RESOURCE 102078D9.rss -TARGET RefreshRequiredCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshRequiredCmd/group/bld.inf --- a/satengine/SatServer/Commands/RefreshRequiredCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: Build information file for project RefreshRequiredCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -RefreshRequiredCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshRequiredCmd/inc/CRefreshRequiredHandler.h --- a/satengine/SatServer/Commands/RefreshRequiredCmd/inc/CRefreshRequiredHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,230 +0,0 @@ -/* -* Copyright (c) 2002-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: RefreshRequired command handler -* -*/ - - - -#ifndef CREFRESHREQUIREDHANDLER_H -#define CREFRESHREQUIREDHANDLER_H - -// INCLUDES -#include -#include "SatSTypes.h" -#include "CSatCommandHandler.h" - -// FORWARD DECLARATION -class MSatUtils; - -// CLASS DECLARATION - -/** -* Command handler for RefreshRequired command. -* -* @lib RefreshRequiredCmd.lib -* @since Series 60 3.0 -*/ -class CRefreshRequiredHandler : public CSatCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils SAT Utils interface - */ - static CRefreshRequiredHandler* NewL( MSatUtils* aUtils ); - - /** - * Destructor. - */ - virtual ~CRefreshRequiredHandler(); - - public: // Functions from base classes - - /** - * From MSatEventObserver. Overrides the default implementation. - * @param aEvent An event that is occured. - */ - void Event( TInt aEvent ); - - /** - * From MSatCommand. - */ - void ClientResponse(); - - protected: // Functions from base classes - - /** - * From CActive Cancels the usat request. - */ - void DoCancel(); - - /** - * From CCommandHandler Requests the command notification. - * @param aStatus Request status - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler Precheck before executing the command. - * @return TBool indicating command is currently allowed. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler Need for ui session. - * @return TBool indicating need of ui session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler Called when USAT API notifies that command. - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. Indicates the failure of launching ui client. - */ - void UiLaunchFailed(); - - private: - - /** - * The indicated AID may be of four states. - * We treat it as the Active AID case if the indicated AID is NULL. - */ - enum TAidState - { - EAidInvalid, - EAidActive, - EAidNotActive, - EAidNull - }; - /** - * The header of AID from etelsat is A0 in hex equaled to 160 in decemal. - * The second, third and fourth byte of AID is 0. - */ - enum TAidBytes - { - EAid0, - EAidA0 = 160 - }; - - private: - - /** - * C++ default constructor. - */ - CRefreshRequiredHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // New functions - - /** - * Checks whether EFimsi file change conditions prevent refresh. - * @return TBool indicating EFimsi file refresh allowed. - */ - TBool EFIMSIRefreshAllowed() const; - - /** - * Checks whether phone state prevents refresh. - * @return TBool indicating refresh allowed. - */ - TBool BusyNotAllowed(); - - /** - * Asks permission to make refresh from clients. - * @return TBool indicating refresh can be started immediately. - */ - TBool QueryRefreshClients(); - - /** - * Refresh observers call this to indicate refresh allow. - * Starts the refresh when all clients has agreed. - * @param aAllow Indicates allowness of this client. - */ - void AllowRefresh( TBool aAllow ); - - /** - * Start refresh. - */ - void DoRefresh(); - - /** - * Notifies the refresh clients about refresh cancel. - */ - void NotifyRefreshClientsCancel(); - - /** - * Sends the RefreshRequired specific response to the SIM and renews - * the sat request. Note, this replaces TerminalRsp() here. - * @param aRsp RefreshRequired response data package. - */ - void RefreshAllowed( const TDesC8& aRsp ); - - /** - * Get the indicated AID state according to - * the current application's AID. - * @return TAidstate indicating the state of the indicated AID. - */ - TAidState AidState() const; - - /** - * Check whether the current application's AID is valid. - * @return TBool indicating whether the indicated AID is valid. - * @param aAid RefreshRequired AID data from etelsat. - */ - TBool IsValidAid( const RSat::TAid& aAid ) const; - private: // Data - - // Refresh command data. - RSat::TRefreshV2 iRefreshRequiredData; - - // Refresh command package. - RSat::TRefreshV2Pckg iRefreshRequiredPckg; - - // Response from client. - RSat::TRefreshRspV1 iRefreshRequiredRsp; - - // Response package. - RSat::TRefreshRspV1Pckg iRefreshRequiredRspPckg; - - // Query command data. - TSatQueryV1 iQueryData; - - // Query package. - TSatQueryV1Pckg iQueryPckg; - - // Query response. - TSatQueryRspV1 iQueryRsp; - - // Query response package. - TSatQueryRspV1Pckg iQueryRspPckg; - - // Count of refresh clients queried refresh allow but not yet answered. - TInt iRefreshQueryClientCount; - - // Response of refresh query. - TBool iAllowRefresh; - - }; - -#endif // CREFRESHREQUIREDHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshRequiredCmd/inc/RefreshRequiredCmd.rls --- a/satengine/SatServer/Commands/RefreshRequiredCmd/inc/RefreshRequiredCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project RefreshRequiredCmd -* -*/ - - -#ifndef REFRESHREQUIREDCMD_RLS -#define REFRESHREQUIREDCMD_RLS - -rls_string STRING_r_refreshrequiredcmd_display_name "RefreshRequired command" -rls_string STRING_r_refreshrequiredcmd_default_data "RefreshRequiredCmd" -rls_string STRING_r_refreshrequiredcmd_opaque_data "" - -#endif // REFRESHREQUIREDCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshRequiredCmd/src/102078D9.rss --- a/satengine/SatServer/Commands/RefreshRequiredCmd/src/102078D9.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1020 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "RefreshRequiredCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// RefreshRequiredCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO RefreshRequiredCmdInfo - { - dll_uid = 0x102078D9; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x102078DA; - version_no = 1; - display_name = STRING_r_refreshrequiredcmd_display_name; - default_data = STRING_r_refreshrequiredcmd_default_data; - opaque_data = STRING_r_refreshrequiredcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshRequiredCmd/src/CRefreshRequiredHandler.cpp --- a/satengine/SatServer/Commands/RefreshRequiredCmd/src/CRefreshRequiredHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,847 +0,0 @@ -/* -* Copyright (c) 2002-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: Handles RefreshRequired command -* -*/ - - - -// INCLUDE FILES -#include -#include "MSatSSimSubscriberId.h" -#include "MSatSystemState.h" -#include "MSatEventMonitorContainer.h" -#include "MSatSUiClientHandler.h" -#include "CRefreshRequiredHandler.h" -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatBIPUtils.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatRefreshSubSession.h" -#include "msatmultimodeapi.h" -#include "SatLog.h" - -// CONSTANTS -const TInt KAidMinSize( 12 ); - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::CRefreshRequiredHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized, harmless. -CRefreshRequiredHandler::CRefreshRequiredHandler() : - CSatCommandHandler(), - iRefreshRequiredData(), - iRefreshRequiredPckg( iRefreshRequiredData ), - iRefreshRequiredRsp(), - iRefreshRequiredRspPckg( iRefreshRequiredRsp ), - iQueryData(), - iQueryPckg( iQueryData ), - iQueryRsp(), - iQueryRspPckg( iQueryRsp ), - iRefreshQueryClientCount( 0 ), - iAllowRefresh( ETrue ) - { - LOG( SIMPLE, "REFRESHREQ: \ - CRefreshRequiredHandler::CRefreshRequiredHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CRefreshRequiredHandler::ConstructL() - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::ConstructL calling" ) - - // Register events to be listen. - iUtils->RegisterL( this, MSatUtils::ERefreshAllowed ); - iUtils->RegisterL( this, MSatUtils::ERefreshNotAllowed ); - - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CRefreshRequiredHandler* CRefreshRequiredHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::NewL calling" ) - - CRefreshRequiredHandler* self = new( ELeave ) CRefreshRequiredHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::NewL exiting" ) - return self; - } - - -// Destructor -CRefreshRequiredHandler::~CRefreshRequiredHandler() - { - LOG( SIMPLE, "REFRESHREQ: \ - CRefreshRequiredHandler::~CRefreshRequiredHandler calling" ) - - Cancel(); - - LOG( SIMPLE, "REFRESHREQ: \ - CRefreshRequiredHandler::~CRefreshRequiredHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::Event -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CRefreshRequiredHandler::Event( TInt aEvent ) - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::Event calling" ) - - switch ( aEvent ) - { - case MSatUtils::ERefreshAllowed: - { - LOG( NORMAL, "REFRESHREQ: Event: ERefreshAllowed" ) - AllowRefresh( ETrue ); - break; - } - - case MSatUtils::ERefreshNotAllowed: - { - LOG( NORMAL, "REFRESHREQ: Event: ERefreshNotAllowed" ) - AllowRefresh( EFalse ); - break; - } - - default: - { - LOG2( NORMAL, "REFRESHREQ: Event: %i", aEvent ) - CSatCommandHandler::Event( aEvent ); - break; - } - } - - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::ClientResponse -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CRefreshRequiredHandler::ClientResponse() - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::ClientResponse calling" ) - TBool commandAllowed( ETrue ); - - // Check ui client response for accepting refresh. - if ( iQueryRsp.iAccepted ) - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::ClientResponse \ - accept refresh" ) - // Check phone state again, whether refresh is still allowed, - if ( BusyNotAllowed() ) - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::ClientResponse \ - BusyNotAllowed" ) - // Refresh not allowed due phone is busy. - iRefreshRequiredRsp.iAdditionalInfo.SetLength( 1 ); - iRefreshRequiredRsp.iAdditionalInfo[0] = RSat::KMeBusyOnCall; - commandAllowed = EFalse; - } - } - // Client did not accept refresh. - else - { - // Refresh is prevented by the user - iRefreshRequiredRsp.iAdditionalInfo.SetLength( 1 ); - iRefreshRequiredRsp.iAdditionalInfo[0] = RSat::KScreenBusy; - commandAllowed = EFalse; - - if ( iQueryRsp.iSessionTerminatedByUser ) - { - LOG( SIMPLE, "REFRESHREQ: close the ui session" ) - // Next SimSession end will close the ui session - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - LOG( SIMPLE, "REFRESHREQ: User did not accept refresh" ) - } - - if ( commandAllowed ) - { - LOG( SIMPLE, "REFRESHREQ: commandAllowed" ) - // Refresh allowed. - iRefreshRequiredRsp.iInfoType = RSat::KNoAdditionalInfo; - iRefreshRequiredRsp.iGeneralResult = RSat::KSuccess; - - if ( RSat::ESimReset == iRefreshRequiredData.iType ) - { - LOG( SIMPLE, "REFRESHREQ: ESimReset" ) - iUtils->NotifyEvent( MSatUtils::ESimResetCalled ); - } - } - else - { - // Notify clients already allowed Refresh about cancel. - NotifyRefreshClientsCancel(); - - // Refresh not allowed. - iRefreshRequiredRsp.iInfoType = RSat::KMeProblem; - iRefreshRequiredRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - } - - // Send the response - iRefreshRequiredRsp.SetPCmdNumber( iRefreshRequiredData.PCmdNumber() ); - RefreshAllowed( iRefreshRequiredRspPckg ); - - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::DoCancel -// Cancels the sat request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CRefreshRequiredHandler::DoCancel() - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifyRefreshRequiredCancel(); - - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::IssueUSATRequest -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CRefreshRequiredHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, - "REFRESHREQ: CRefreshRequiredHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iRefreshRequiredData) RSat::TRefreshV2(); - iQueryRsp.iAccepted = EFalse; // default - - iUtils->USatAPI().NotifyRefreshRequired( aStatus, iRefreshRequiredPckg ); - - LOG( SIMPLE, - "REFRESHREQ: CRefreshRequiredHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::CommandAllowed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CRefreshRequiredHandler::CommandAllowed() - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::CommandAllowed calling" ) - TBool commandAllowed( ETrue ); - - #ifdef ENABLE_SAT_LOGGING - - // Log Refresh type. - switch ( iRefreshRequiredData.iType ) - { - case RSat::ERefreshTypeNotSet: - { - LOG( NORMAL, - "REFRESHREQ: Refresh type: ERefreshTypeNotSet" ) - break; - } - - case RSat::ESimInitFullFileChangeNotification: - { - LOG( NORMAL, - "REFRESHREQ: Refresh type: ESimInitFullFileChangeNotificat." ) - break; - } - - case RSat::EFileChangeNotification: - { - LOG( NORMAL, - "REFRESHREQ: Refresh type: EFileChangeNotification" ) - break; - } - - case RSat::ESimInitFileChangeNotification: - { - LOG( NORMAL, - "REFRESHREQ: Refresh type: ESimInitFileChangeNotification" ) - break; - } - - case RSat::ESimInit: - { - LOG( NORMAL, - "REFRESHREQ: Refresh type: ESimInit" ) - break; - } - - case RSat::ESimReset: - { - LOG( NORMAL, - "REFRESHREQ: Refresh type: ESimReset" ) - break; - } - - case RSat::EUsimApplicationReset: - { - LOG( NORMAL, - "REFRESHREQ: Refresh type: EUsimApplicationReset" ) - break; - } - - case RSat::E3GSessionReset: - { - LOG( NORMAL, - "REFRESHREQ: Refresh type: E3GSessionReset" ) - break; - } - - default: - { - LOG2( NORMAL, - "REFRESHREQ: Refresh type: unknown %d", - iRefreshRequiredData.iType ) - break; - } - } - - // Log the file list. - TInt fileCount ( iRefreshRequiredData.iFileList.Length() ); - LOG2( NORMAL, "REFRESHREQ: Refresh file count: %d", fileCount ) - for ( TInt fileIndex = 0; fileIndex < fileCount; fileIndex++ ) - { - LOG2( NORMAL, "REFRESHREQ: Refresh file: %x", - iRefreshRequiredData.iFileList[ fileIndex ] ) - } - - #endif - - // Check EFimsi file refresh type. - if ( !EFIMSIRefreshAllowed() ) - { - LOG( NORMAL, "REFRESHREQ: EFIMSIRefreshAllowed false" ) - // Refresh not allowed - iRefreshRequiredRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iRefreshRequiredRsp.iInfoType = RSat::KNoAdditionalInfo; - commandAllowed = EFalse; - } - // Check phone state. - else if ( BusyNotAllowed() ) - { - LOG( NORMAL, "REFRESHREQ: BusyNotAllowed true" ) - // Refresh not allowed - iRefreshRequiredRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iRefreshRequiredRsp.iInfoType = RSat::KMeProblem; - iRefreshRequiredRsp.iAdditionalInfo.SetLength( 1 ); - iRefreshRequiredRsp.iAdditionalInfo[0] = RSat::KMeBusyOnCall; - commandAllowed = EFalse; - } - //Check the AidState. - else - { - const TAidState aidState = AidState(); - LOG2( NORMAL, "REFRESHREQ: AID state: %i", aidState ) - switch ( aidState ) - { - case EAidNotActive: - { - iRefreshRequiredRsp.iGeneralResult = - RSat::KRefreshUSIMNotActive; - iRefreshRequiredRsp.iInfoType = RSat::KNoAdditionalInfo; - commandAllowed = EFalse; - break; - } - - case EAidInvalid: - { - iRefreshRequiredRsp.iGeneralResult = - RSat::KCmdDataNotUnderstood; - iRefreshRequiredRsp.iInfoType = RSat::KNoAdditionalInfo; - commandAllowed = EFalse; - break; - } - - default: - { - LOG( NORMAL, "REFRESHREQ: Refresh allowed" ) - break; - } - } - } - - // When refresh is not allowed, send terminal response to sim. - if ( !commandAllowed ) - { - LOG( NORMAL, "REFRESHREQ: Refresh not allowed" ) - iRefreshRequiredRsp.SetPCmdNumber( iRefreshRequiredData.PCmdNumber() ); - - // Send the response - RefreshAllowed( iRefreshRequiredRspPckg ); - } - - LOG2( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::CommandAllowed \ - exiting, commandAllowed: %d", commandAllowed ) - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::NeedUiSession -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CRefreshRequiredHandler::NeedUiSession() - { - LOG( NORMAL, "REFRESHREQ: CRefreshRequiredHandler::NeedUiSession calling" ) - TBool needUiSession( EFalse ); - - if ( RSat::ESimReset == iRefreshRequiredData.iType - && iUtils->SystemState().IsConfirmSatOperationsOn() ) - { - LOG( NORMAL, "REFRESHREQ: Need ui session" ) - needUiSession = ETrue; - } - - // Notify Cover UI if it's supported - if ( needUiSession && iUtils->CoverUiSupported() ) - { - LOG( NORMAL, "REFRESHREQ: CoverUiSupported" ) - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::ERefresh; - - //Doesn't have alpha id - medEventData.iAlphaId.iStatus = RSat::EAlphaIdNotSet; - medEventData.iDuration.iNumOfUnits = KSatSustainedDuration; - medEventData.iDuration.iTimeUnit = RSat::ESeconds; - medEventData.iIconID.iQualifier = RSat::ENoIconId; - - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - - LOG2( NORMAL, "REFRESHREQ: CRefreshRequiredHandler::NeedUiSession exiting\ - needUiSession: %d", needUiSession ) - return needUiSession; - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::HandleCommand -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CRefreshRequiredHandler::HandleCommand() - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::HandleCommand calling" ) - - // Ask permission from clients. - if ( QueryRefreshClients() ) - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::HandleCommand \ - refresh" ) - DoRefresh(); - } - - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::UiLaunchFailed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CRefreshRequiredHandler::UiLaunchFailed() - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::UiLaunchFailed calling" ) - - iRefreshRequiredRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iRefreshRequiredRsp.iInfoType = RSat::KNoAdditionalInfo; - iRefreshRequiredRsp.SetPCmdNumber( iRefreshRequiredData.PCmdNumber() ); - - // Send the response - RefreshAllowed( iRefreshRequiredRspPckg ); - - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::EFIMSIRefreshAllowed -// If an EFimsi file change occurs under certain conditions a refresh is not -// allowed. -// ----------------------------------------------------------------------------- -// -TBool CRefreshRequiredHandler::EFIMSIRefreshAllowed() const - { - LOG( SIMPLE, - "REFRESHREQ: CRefreshRequiredHandler::EFIMSIRefreshAllowed calling" ) - TBool refreshAllowed( ETrue ); - - // If changed file is EFimsi and the refresh type is any of the ones - // specifed below, no refresh will take place as the behaviour of the UE - // is unpredicatable. - if ( RSat::EFileChangeNotification == iRefreshRequiredData.iType ) - { - LOG( SIMPLE, - "REFRESHREQ: CRefreshRequiredHandler::EFIMSIRefreshAllowed \ - EFileChangeNotification" ) - const TChar efImsi( RSat::KImsiEf ); - const TInt imsi( iRefreshRequiredData.iFileList.Locate( efImsi ) ); - - // Does the EFimsi file want to be updated. - if ( KErrNotFound != imsi ) - { - LOG( SIMPLE, "REFRESHREQ: EFImsi file refresh not allowed" ) - refreshAllowed = EFalse; - } - } - - LOG2( SIMPLE, - "REFRESHREQ: CRefreshRequiredHandler::EFIMSIRefreshAllowed exiting,\ - refreshAllowed: %d", refreshAllowed ) - return refreshAllowed; - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::BusyNotAllowed -// Check whether Refresh is allowed. -// ----------------------------------------------------------------------------- -// -TBool CRefreshRequiredHandler::BusyNotAllowed() - { - LOG( SIMPLE, - "REFRESHREQ: CRefreshRequiredHandler::BusyNotAllowed calling" ) - TBool notAllowed( EFalse ); - - // Busy checked only for reset due only it may prevent call. - if ( RSat::EFileChangeNotification != iRefreshRequiredData.iType ) - { - LOG( SIMPLE, - "REFRESHREQ: CRefreshRequiredHandler::EFIMSIRefreshAllowed \ - not EFileChangeNotification" ) - // Refresh is not allowed when call is active or incoming. - if ( iUtils->SystemState().IsCallActive() || - iUtils->SystemState().IsCallIncoming() ) - { - notAllowed = ETrue; - LOG( NORMAL, "REFRESHREQ: Refresh not allowed: phone is busy" ) - } - } - - LOG2( SIMPLE, - "REFRESHREQ: CRefreshRequiredHandler::BusyNotAllowed exiting,\ - notAllowed: %d", notAllowed ) - return notAllowed; - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::QueryRefreshClients -// Notifies the observers that refresh query should start. -// ----------------------------------------------------------------------------- -// -TBool CRefreshRequiredHandler::QueryRefreshClients() - { - LOG( SIMPLE, - "REFRESHREQ: CRefreshRequiredHandler::QueryRefreshClients calling" ) - TBool allowNow( ETrue ); - TInt clientCount( iUtils->RefreshSubSessions().Count() ); - - // By default refresh is allowed after all clients have queried. - iAllowRefresh = ETrue; - - // When there are clients, we must ask them first and refresh will be - // started later, after all clients have allowed it. - // When there are clients, we can just start refresh. - if ( 0 != clientCount ) - { - LOG2( NORMAL, "REFRESHREQ: Client count: %d", clientCount ) - allowNow = EFalse; - iRefreshQueryClientCount = clientCount; - for ( TInt i = 0; i < clientCount; i++ ) - { - iUtils->RefreshSubSessions()[i]->QueryClient( - iRefreshRequiredData ); - } - } - - LOG2( SIMPLE, - "REFRESHREQ: CRefreshRequiredHandler::QueryRefreshClients exiting,\ - allowNow: %d", allowNow ) - return allowNow; - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::AllowRefresh -// Waits for all the responses of refresh query and -// starts or declines the refresh. -// ----------------------------------------------------------------------------- -// -void CRefreshRequiredHandler::AllowRefresh( TBool aAllow ) - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::AllowRefresh calling" ) - LOG2( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::AllowRefresh \ - iAllowRefresh: %d", iAllowRefresh ) - LOG2( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::AllowRefresh \ - iRefreshQueryClientCount: %d", iRefreshQueryClientCount ) - // if iAllowRefresh already false no need to set new value. - if ( iAllowRefresh ) - { - iAllowRefresh = aAllow; - } - - // Check whether all clients have replied. - iRefreshQueryClientCount--; - if ( iRefreshQueryClientCount <= 0 ) - { - if ( iAllowRefresh ) - { - DoRefresh(); - } - else - { - LOG( NORMAL, "REFRESHREQ: At least one client rejected refresh" ) - // Notify clients already allowed Refresh about cancel. - NotifyRefreshClientsCancel(); - - // Construct a proper refresh response data package - iRefreshRequiredRsp.iInfoType = RSat::KNoAdditionalInfo; - iRefreshRequiredRsp.SetPCmdNumber( - iRefreshRequiredData.PCmdNumber() ); - iRefreshRequiredRsp.iGeneralResult = RSat::KPCmdNotAcceptedByUser; - - // Send the response - RefreshAllowed( iRefreshRequiredRspPckg ); - } - } - - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::AllowRefresh exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::DoRefresh -// Starts the refresh -// ----------------------------------------------------------------------------- -// -void CRefreshRequiredHandler::DoRefresh() - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::DoRefresh calling" ) - - if ( RSat::ESimReset == iRefreshRequiredData.iType ) - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::DoRefresh \ - ESimReset" ) - // Register service request handler for RefreshRequired command, - // If there is already service request for query, registering - // updates command handler, so client responses comes to this - // command handler. - TRAPD( err, iUtils->RegisterServiceRequestL( - ESatSProactiveQuery, - ESatSProactiveQueryResponse, - this ) ); - - if ( KErrNone != err ) - { - iRefreshRequiredRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iRefreshRequiredRsp.iInfoType = RSat::KMeProblem; - iRefreshRequiredRsp.iAdditionalInfo.SetLength( 1 ); - iRefreshRequiredRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iRefreshRequiredRsp.SetPCmdNumber( - iRefreshRequiredData.PCmdNumber() ); - - // Notify clients already allowed Refresh about cancel. - NotifyRefreshClientsCancel(); - - // Send the response - RefreshAllowed( iRefreshRequiredRspPckg ); - LOG2( SIMPLE, - "REFRESHREQ: CRefreshRequiredHandler::DoRefresh error", err ) - } - else - { - iUtils->NotifyEvent( MSatUtils::ERefreshExecuting ); - - // Ask the user permission to refresh. Reply will come - // to ClientResponse method. - if ( iUtils->SystemState().IsConfirmSatOperationsOn() ) - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::DoRefresh \ - IsConfirmSatOperationsOn true" ) - iQueryData.iCommand = ESatSRefreshQuery; - iUtils->SatUiHandler().UiSession()->SendCommand( - &iQueryPckg, - &iQueryRspPckg, - ESatSProactiveQuery ); - } - else - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::DoRefresh \ - IsConfirmSatOperationsOn false" ) - iQueryRsp.iAccepted = ETrue; - ClientResponse(); - } - } - } - else - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::DoRefresh refresh" ) - // Construct a proper refresh response data package. - iRefreshRequiredRsp.iInfoType = RSat::KNoAdditionalInfo; - iRefreshRequiredRsp.SetPCmdNumber( iRefreshRequiredData.PCmdNumber() ); - iRefreshRequiredRsp.iGeneralResult = RSat::KSuccess; - - // Send the response - RefreshAllowed( iRefreshRequiredRspPckg ); - } - - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::DoRefresh exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshHandler::NotifyRefreshClientsCancel -// Notifies waiting clients about refrsh cancel. -// ----------------------------------------------------------------------------- -// -void CRefreshRequiredHandler::NotifyRefreshClientsCancel() - { - LOG( SIMPLE, - "REFRESHREQ: CRefreshHandler::NotifyRefreshClientsCancel calling" ) - LOG2( SIMPLE, - "REFRESHREQ: CRefreshHandler::NotifyRefreshClientsCancel \ - RefreshSubSessions().Count: %d",iUtils->RefreshSubSessions().Count() ) - for ( TInt i = 0; i < iUtils->RefreshSubSessions().Count() ; i++ ) - { - iUtils->RefreshSubSessions()[i]->NotifyClientCancel(); - } - - LOG( SIMPLE, "REFRESHREQ: CRefreshHandler::NotifyRefreshClientsCancel exit" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshRequiredHandler::RefreshAllowed -// Sends the RefreshRequired specific response to the SIM and renews the sat -// request. Notem, this replaces TerminalRsp() here. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CRefreshRequiredHandler::RefreshAllowed( const TDesC8& aRsp ) - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::RefreshAllowed calling" ) - - iUtils->USatAPI().RefreshAllowed( aRsp ); - iUtils->NotifyEvent( MSatUtils::EDelaySimSessionEnd ); - Start(); - - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::RefreshAllowed exiting" ) - } - -// ----------------------------------------------------------------------------- -// CRefreshHandler::CheckIndicatedAid -// Check the state of the indicated Aid. -// ----------------------------------------------------------------------------- -// -CRefreshRequiredHandler::TAidState -CRefreshRequiredHandler::AidState() const - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::AidState calling" ) - - TAidState aidState( EAidNotActive ); - if ( !iRefreshRequiredData.iAid.Length() ) - { - aidState = EAidNull; - LOG( SIMPLE, "REFRESHREQ: Indicated AID Null" ) - } - else if ( !IsValidAid( iRefreshRequiredData.iAid ) ) - { - aidState = EAidInvalid; - LOG( SIMPLE, "REFRESHREQ: Indicated AID Invalid" ) - } - else - { - RSat::TAid aid; - MSatAsyncToSync* wrapper = iUtils->CreateAsyncToSyncHelper(); - if ( wrapper ) - { - iUtils->MultiModeApi().GetCurrentActiveUSimApplication( - wrapper->RequestStatus() , aid ); - // wait until GetCurrentActiveUSimApplication return aid - TInt err = wrapper->SetActiveAndWait(); - LOG2( NORMAL, "REFRESHREQ: CRefreshHandler::TAidState err %d",err ) - wrapper->Release(); - - if ( KErrNone == err ) - { - #ifdef ENABLE_SAT_LOGGING - for ( TInt i=0; i < aid.Length(); i++ ) - { - LOG2( DETAILED, "REFRESHREQ: AID from TSY: %x", aid[i] ) - } - #endif - if ( aid == iRefreshRequiredData.iAid ) - { - aidState = EAidActive; - } - } - else if ( KErrNotSupported == err ) - { - aidState = EAidActive; - } - } - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::AidState exit" ) - } - return aidState; - } - -// ----------------------------------------------------------------------------- -// Check whether the given AID is valid. -// According to TS 110 220 -// ----------------------------------------------------------------------------- -TBool CRefreshRequiredHandler::IsValidAid( const RSat::TAid& aAid ) const - { - LOG( SIMPLE, "REFRESHREQ: CRefreshRequiredHandler::\ - IsValidAid calling-exiting" ) - TInt result ( EFalse ); - // Check the length of AID, it should be between 12 to 16 bytes - // ETSI: A0,00,00,00,09; - // 3GPP: A0,00,00,00,87 - // the fifth byte is not sure in other situations. - //compare the first to fourth byte - if ( KAidMinSize <= aAid.Length() && RSat::KAidMaxSize >= aAid.Length() ) - { - if ( EAidA0 == aAid[0]&& EAid0 == aAid[1] && - EAid0 == aAid[2]&& EAid0 == aAid[3] ) - { - result = ETrue; - } - } - return result; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/RefreshRequiredCmd/src/std.cpp --- a/satengine/SatServer/Commands/RefreshRequiredCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CRefreshRequiredHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x102078DA, CRefreshRequiredHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SelectItemCmd/group/Create-UT_CSelectItemHandler-Sis.bat --- a/satengine/SatServer/Commands/SelectItemCmd/group/Create-UT_CSelectItemHandler-Sis.bat Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: This BAT copies Test DLL to local folder and makes SIS file -rem - -@echo off -echo. -echo ==================================== -echo. -echo Digia EUnit - Test -echo. -echo This BAT copies Test DLL -echo to local folder and makes SIS file -echo. -echo ==================================== -echo. - -:CHECK_EPOCROOT -echo. -echo - verify epoc root -set EPOCROOT -if errorlevel == 1 goto END_ERROR - -:COPY_DLL -echo. -echo - copy test dll to current directory -copy %EPOCROOT%epoc32\release\thumb\urel\UT_CSelectItemHandler.dll . -if errorlevel == 1 goto END_ERROR - -:CREATE_DIR -echo. -echo - create Sis folder (created only if needed) -mkdir ..\Sis - -:MAKESIS -echo. -echo - makesis UT_CSelectItemHandler.pkg ..\sis\UT_CSelectItemHandler.sis -call makesis UT_CSelectItemHandler.pkg ..\sis\UT_CSelectItemHandler.sis -if errorlevel == 1 goto END_ERROR - -:DELETE_DLL -echo. -echo - remove the copied dll from current folder -del UT_CSelectItemHandler.dll -goto END - -:END_ERROR -echo. -echo Sis creation failed. -goto FINAL_END - -:END -echo. -echo Sis file created succesfully -echo ============================ - -:FINAL_END -echo. - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SelectItemCmd/group/SelectItemCmd.mmp --- a/satengine/SatServer/Commands/SelectItemCmd/group/SelectItemCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project SelectItem plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET SelectItemCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x1000F00A - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CSelectItemHandler.cpp - -START RESOURCE 1000f00A.rss -TARGET SelectItemCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SelectItemCmd/group/UT_CSelectItemHandler.pkg --- a/satengine/SatServer/Commands/SelectItemCmd/group/UT_CSelectItemHandler.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +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: For packing UT_CSelectItemHandler. -; - -; Supported languages -&en - -; Package header (one name for each supported language) -#{"UT_CSelectItemHandler"},(0x01700000),0,10,0 - -; Package signature - - -; Options line not supported currently - -; Conditions blocks not supported currently - -; Language independent files that are always installed -"UT_CSelectItemHandler.dll"-"!:\DigiaEUnit\Tests\UT_CSelectItemHandler.dll" - -; Language dependent files - - -; Requisites (of type: (UID),Major,Minor,Build-Number,{"Requisite Name1", "Requisite Name2"}) -(0x101F6F88), 0, 0, 0, {"Series60ProductID"} diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SelectItemCmd/group/bld.inf --- a/satengine/SatServer/Commands/SelectItemCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project SelectItemCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -SelectItemCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SelectItemCmd/inc/CSelectItemHandler.h --- a/satengine/SatServer/Commands/SelectItemCmd/inc/CSelectItemHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: SelectItem command handler -* -*/ - - - -#ifndef CSELECTITEMHANDLER_H -#define CSELECTITEMHANDLER_H - -// INCLUDES -#include -#include "CSatCommandHandler.h" - -// FORWARD DECLARATION -class MSatUtils; - -// CLASS DECLARATION - -/** -* Command handler for SelectItem command. -* -* @lib SelectItemCmd.lib -* @since Series 60 3.0 -*/ -class CSelectItemHandler : public CSatCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils Utils inteface. - */ - static CSelectItemHandler* NewL( MSatUtils* aUtils ); - - /** - * Destructor. - */ - virtual ~CSelectItemHandler(); - - public: // Functions from base classes - - /** - * From MSatCommand. - */ - void ClientResponse(); - - protected: // Functions from base classes - - /** - * From CActive Cancels the usat request. - */ - void DoCancel(); - - /** - * From CSatCommandHandler Requests the command notification. - * @param aStatus Request status to active object notification - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler Precheck before executing the command. - * @return Boolean indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler Need for ui session. - * @return Boolean indicating does this command need UI session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler Called when USAT API. - * notifies that command. - */ - void HandleCommand(); - - /** - * From CSatCommandHandler Indicates the failure - * of launching ui client. - */ - void UiLaunchFailed(); - - private: - - /** - * C++ default constructor. - */ - CSelectItemHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - protected: // Data - - // SetUpCall command data. - RSat::TSelectItemV2 iSelectItemData; - - // SetUpCall command package. - RSat::TSelectItemV2Pckg iSelectItemPckg; - - // Response from client - RSat::TSelectItemRspV1 iSelectItemRsp; - - // Response package. - RSat::TSelectItemRspV1Pckg iSelectItemRspPckg; - - // Flag to signal that command has icon data - // To be removed when icons are allowed in this command - TBool iIconCommand; - - }; - -#endif // CSELECTITEMHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SelectItemCmd/inc/SelectItemCmd.rls --- a/satengine/SatServer/Commands/SelectItemCmd/inc/SelectItemCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project SelectItemCmd -* -*/ - - -#ifndef SELECTITEMCMD_RLS -#define SELECTITEMCMD_RLS - -rls_string STRING_r_selectitemcmd_display_name "SelectItem command" -rls_string STRING_r_selectitemcmd_default_data "SelectItemCmd" -rls_string STRING_r_selectitemcmd_opaque_data "" - -#endif // SELECTITEMCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SelectItemCmd/src/1000f00A.rss --- a/satengine/SatServer/Commands/SelectItemCmd/src/1000f00A.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1000 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "SelectItemCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// SelectItemCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO SelectItemCmdInfo - { - dll_uid = 0x1000f00A; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x1000f00B; - version_no = 1; - display_name = STRING_r_selectitemcmd_display_name; - default_data = STRING_r_selectitemcmd_default_data; - opaque_data = STRING_r_selectitemcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SelectItemCmd/src/CSelectItemHandler.cpp --- a/satengine/SatServer/Commands/SelectItemCmd/src/CSelectItemHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,319 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles SelectItem command -* -*/ - -#include -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CSelectItemHandler.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSelectItemHandler::CSelectItemHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSelectItemHandler::CSelectItemHandler() : - CSatCommandHandler(), - iSelectItemData(), - iSelectItemPckg( iSelectItemData ), - iSelectItemRsp(), - iSelectItemRspPckg( iSelectItemRsp ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( SIMPLE, - "SELECTITEM: CSelectItemHandler::CSelectItemHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSelectItemHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSelectItemHandler::ConstructL() - { - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::ConstructL calling" ) - - // Register service request handler for SelectItem command. - iUtils->RegisterServiceRequestL( - ESatSProactiveSelectItem, - ESatSProactiveSelectItemResponse, - this ); - - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSelectItemHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSelectItemHandler* CSelectItemHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::NewL calling" ) - CSelectItemHandler* self = new( ELeave ) CSelectItemHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::NewL exiting" ) - return self; - } - - -// Destructor -CSelectItemHandler::~CSelectItemHandler() - { - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::~CSelectItemHandler calling" ) - - Cancel(); - - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::~CSelectItemHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSelectItemHandler::ClientResponse -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSelectItemHandler::ClientResponse() - { - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::ClientResponse calling" ) - - //lint -e{961} Only these two cases need to be handeled. - if ( RSat::KPSessionTerminatedByUser == iSelectItemRsp.iGeneralResult ) - { - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::ClientResponse close \ - ui session" ) - // Next SimSession end will close the ui session. - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - // If command had icon data and was done succesfully, report that icon - // was not shown - // To be removed when icons are allowed in this command - else if ( ( RSat::KSuccess == iSelectItemRsp.iGeneralResult ) && - iIconCommand ) - { - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::ClientResponse \ - KSuccessRequestedIconNotDisplayed" ) - iSelectItemRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - - CSatCommandHandler::TerminalRsp( RSat::ESelectItem, iSelectItemRspPckg ); - - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSelectItemHandler::DoCancel -// Cancels the sat request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSelectItemHandler::DoCancel() - { - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifySelectItemCancel(); - - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSelectItemHandler::IssueUSATRequest -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSelectItemHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - iSelectItemData.Reset(); - iSelectItemData.iDefaultItemId = 0; - iSelectItemData.iIconId.iQualifier = RSat::EIconQualifierNotSet; - iSelectItemData.iIconListQualifier = RSat::EIconQualifierNotSet; - iSelectItemData.iIconId.iIdentifier = 0; - - iUtils->USatAPI().NotifySelectItem( aStatus, iSelectItemPckg ); - - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSelectItemHandler::CommandAllowed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CSelectItemHandler::CommandAllowed() - { - LOG( SIMPLE, - "SELECTITEM: CSelectItemHandler::CommandAllowed calling" ) - - TBool commandAllowed( ETrue ); - TBool nullText( EFalse ); - TInt err ( KErrNone ); - RSat::TItem item; - TUint numberOfItems( iSelectItemData.NumberOfItems() ); - TBool titleIcon( - ( RSat::ENotSelfExplanatory == iSelectItemData.iIconId.iQualifier ) || - ( RSat::ESelfExplanatory == iSelectItemData.iIconId.iQualifier ) ); - TBool itemIcons( - ( RSat::ENotSelfExplanatory == iSelectItemData.iIconListQualifier ) || - ( RSat::ESelfExplanatory == iSelectItemData.iIconListQualifier ) ); - LOG2( NORMAL, "SELECTITEM: CSelectItemHandler::CommandAllowed \ - numberOfItems: %d", numberOfItems ) - // Check if some item does not have text - for ( TUint count = 1; ( count <= numberOfItems ) && !nullText && - ( KErrNone == err ); count++ ) - { - err = iSelectItemData.GetItem( count, item ); - - if ( ( KErrNone == err ) && ( 0 == item.iItemString.Length() ) ) - { - LOG( SIMPLE, - "SELECTITEM: CSelectItemHandler::CommandAllowed null string" ) - nullText = ETrue; - } - } - - // If icon is provided without any text - if ( ( ( RSat::EAlphaIdProvided != iSelectItemData.iAlphaId.iStatus ) && - titleIcon ) || ( nullText && itemIcons ) ) - { - iSelectItemRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iSelectItemRsp.iInfoType = RSat::KNoAdditionalInfo; - iSelectItemRsp.iAdditionalInfo.Zero(); - iSelectItemRsp.SetPCmdNumber( iSelectItemData.PCmdNumber() ); - TerminalRsp( RSat::ESelectItem, iSelectItemRspPckg ); - commandAllowed = EFalse; - LOG( NORMAL, "SELECTITEM: CSelectItemHandler::\ - CommandAllowed icon received without alpha id" ) - } - // Set icon command flag whether icon data was received and set qualifier - // to no icon id - // To be removed when icons are allowed in this command - else if ( !titleIcon && !itemIcons ) - { - LOG( NORMAL, "SELECTITEM: CSelectItemHandler::\ - CommandAllowed no icon " ) - iIconCommand = EFalse; - } - else - { - iIconCommand = ETrue; - - if ( titleIcon ) - { - LOG( NORMAL, "SELECTITEM: CSelectItemHandler::\ - CommandAllowed titleIcon true " ) - iSelectItemData.iIconId.iQualifier = RSat::ENoIconId; - } - - if ( itemIcons ) - { - LOG( NORMAL, "SELECTITEM: CSelectItemHandler::\ - CommandAllowed itemIcons true " ) - iSelectItemData.iIconListQualifier = RSat::ENoIconId; - } - } - - LOG2( SIMPLE, - "SELECTITEM: CSelectItemHandler::CommandAllowed exiting,\ - commandAllowed: %d", commandAllowed ) - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// CSelectItemHandler::NeedUiSession -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CSelectItemHandler::NeedUiSession() - { - LOG( NORMAL, "SELECTITEM: CSelectItemHandler::NeedUiSession calling" ) - // Notify Cover UI if it's supported - if ( iUtils->CoverUiSupported() ) - { - LOG( NORMAL, "SELECTITEM: CSelectItemHandler::NeedUiSession \ - CoverUiSupported" ) - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::ESelectItem; - medEventData.iAlphaId = iSelectItemData.iAlphaId; - medEventData.iDuration.iNumOfUnits = KSatDefaultDuration; - medEventData.iDuration.iTimeUnit = RSat::ESeconds; - medEventData.iIconID = iSelectItemData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - #ifdef ENABLE_SAT_LOGGING - TBuf logAlphaId; - logAlphaId.Copy( medEventData.iAlphaId.iAlphaId ); - LOG2( NORMAL, "SELECTITEM: CSelectItemHandler::NeedUiSession \ - iAlphaId: %S", &logAlphaId ) - #endif - } - LOG( NORMAL, "SELECTITEM: CSelectItemHandler::NeedUiSession exiting" ) - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CSelectItemHandler::HandleCommand -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSelectItemHandler::HandleCommand() - { - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::HandleCommand calling" ) - - iUtils->NotifyEvent( MSatUtils::ESelectItemExecuting ); - - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - uiSession->SendCommand( - &iSelectItemPckg, - &iSelectItemRspPckg, - ESatSProactiveSelectItem ); - - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSelectItemHandler::UiLaunchFailed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSelectItemHandler::UiLaunchFailed() - { - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::UiLaunchFailed calling" ) - - iSelectItemRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSelectItemRsp.iInfoType = RSat::KMeProblem; - iSelectItemRsp.iAdditionalInfo.SetLength( 1 ); - iSelectItemRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iSelectItemRsp.SetPCmdNumber( iSelectItemData.PCmdNumber() ); - CSatCommandHandler::TerminalRsp( RSat::ESelectItem, iSelectItemRspPckg ); - - LOG( SIMPLE, "SELECTITEM: CSelectItemHandler::UiLaunchFailed exiting" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SelectItemCmd/src/std.cpp --- a/satengine/SatServer/Commands/SelectItemCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CSelectItemHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x1000f00B, CSelectItemHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDataCmd/group/SendDataCmd.mmp --- a/satengine/SatServer/Commands/SendDataCmd/group/SendDataCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project SendData plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET SendDataCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x10205C50 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CSendDataHandler.cpp - -START RESOURCE 10205C50.rss -TARGET SendDataCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDataCmd/group/bld.inf --- a/satengine/SatServer/Commands/SendDataCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project SendData plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -SendDataCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDataCmd/inc/CSendDataHandler.h --- a/satengine/SatServer/Commands/SendDataCmd/inc/CSendDataHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,239 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: SendData command handler -* -*/ - - -#ifndef CSENDDATAHANDLER_H -#define CSENDDATAHANDLER_H - -#include - -#include "MSatSendDataObserver.h" -#include "CSatCommandHandler.h" -#include "SatSTypes.h" -#include "MSatConnectionObserver.h" -#include "MSatBIPUtils.h" -#include "MSatEventObserver.h" - -class MSatUtils; -class MSatBIPDataChannel; - -/** - * Command handler for SendData command. - * - * @lib SendDataCmd.lib - * @since S60 v3.0 - */ -class CSendDataHandler : public CSatCommandHandler, - public MSatSendDataObserver, - public MSatConnectionObserver - { - -public: - - static CSendDataHandler* NewL( MSatUtils* aUtils ); - - virtual ~CSendDataHandler(); - -// from base class MSatCommand - - /** - * From MSatCommand. - * Response from the client - * - */ - void ClientResponse(); - -// from base class MSatSendDataObserver - - /** - * From MSatSendDataObserver - * Notification of data has been sent - * - * @param aError Indicates the status of data sent. - * @param aLength Number of bytes sent - */ - void DataSentNotification( const TInt aError, - const TInt aLength ); - - /** - * From MSatConnectionObserver - * Notfication from the connection - * - * @param aError Indicates the status of connection - */ - void ConnectionNotification( TInt aError ); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler - * Overrides the default implementation. - * - * @param aEvent Identifies the event. - */ - void Event( TInt aEvent ); - -protected: - -// from base class CActive - - /** - * From CActive - * Cancels the usat request. - * - */ - void DoCancel(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler - * Requests the command notification. - * - * @param aStatus Request status to active object notification - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler - * Precheck before executing the command. - * - * @return Boolean indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler - * Need for ui session. - * - * @return Boolean indicating does this command need UI session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler - * Called when USAT API notifies that command. - * - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. - * Indicates the failure of launching ui client. - * - */ - void UiLaunchFailed(); - -private: - - CSendDataHandler(); - - void ConstructL(); - - /** - * Sends data - * - */ - void SendData(); - - /** - * Completes Terminal response and sends it - * - * @param aError is error code of reason - */ - void SendTerminalResponse( - const TInt aError = MSatBIPUtils::ESatBIPSuccess ); - - /** - * Sends notification to UI - * - * @return KErrNone if notification is sent successfully - */ - TInt SendUiNotification(); - -private: // data - - /** - * SendData command data - */ - RSat::TSendDataV2 iSendDataData; - - /** - * SendData command package - */ - RSat::TSendDataV2Pckg iSendDataPckg; - - /** - * SendData response data - */ - RSat::TSendDataRspV2 iSendDataRspData; - - /** - * SendData response package - */ - RSat::TSendDataRspV2Pckg iSendDataRspPckg; - - /** - * Data to UI - */ - TSatNotificationV1 iSendDataUiData; - - /** - * IPC Package to ui data - */ - TSatNotificationV1Pckg iSendDataUiPckg; - - /** - * UI Response - */ - TSatNotificationRspV1 iSendDataUiRsp; - - /** - * IPC Package to response - */ - TSatNotificationRspV1Pckg iSendDataUiRspPckg; - - /** - * Remaining space in TX buffer - */ - TInt iFreeBuffSize; - - /** - * Pointer to DataChannel - */ - MSatBIPDataChannel* iDataChannel; - - /** - * Indicates has user cancelled the action - */ - TBool iUserCancelled; - - /** - * Indicates does current command need UI or not - */ - TBool iNeedUiSession; - - /** - * Flag to signal that command has icon data - * To be removed when icons are allowed in this command - */ - TBool iIconCommand; - - }; - -#endif // CSENDDATAHANDLER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDataCmd/inc/SendDataCmd.rls --- a/satengine/SatServer/Commands/SendDataCmd/inc/SendDataCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project SendDataCmd -* -*/ - - -#ifndef SENDDATACMD_RLS -#define SENDDATACMD_RLS - -rls_string STRING_r_senddatacmd_display_name "SendData command" -rls_string STRING_r_senddatacmd_default_data "SendDataCmd" -rls_string STRING_r_senddatacmd_opaque_data "" - -#endif // SENDDATACMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDataCmd/src/10205C50.rss --- a/satengine/SatServer/Commands/SendDataCmd/src/10205C50.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1020 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "SendDataCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// SendDataCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO SendDataCmdInfo - { - dll_uid = 0x10205C50; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x10205C51; - version_no = 1; - display_name = STRING_r_senddatacmd_display_name; - default_data = STRING_r_senddatacmd_default_data; - opaque_data = STRING_r_senddatacmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDataCmd/src/CSendDataHandler.cpp --- a/satengine/SatServer/Commands/SendDataCmd/src/CSendDataHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,723 +0,0 @@ -/* -* Copyright (c) 2002-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: Handles SendData command -* -*/ - - -#include -#include -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatSystemState.h" -#include "MSatBIPUtils.h" -#include "MSatBIPDataChannel.h" -#include "MSatApnHandler.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CSendDataHandler.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSendDataHandler* CSendDataHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "SendData: CSendDataHandler::NewL calling" ) - - CSendDataHandler* self = new( ELeave ) CSendDataHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SendData: CSendDataHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -// -CSendDataHandler::~CSendDataHandler() - { - LOG( SIMPLE, "SendData: CSendDataHandler::~CSendDataHandler calling" ) - - Cancel(); - - iDataChannel = NULL; - - LOG( SIMPLE, "SendData: CSendDataHandler::~CSendDataHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatCommand. -// Response from the client. -// ----------------------------------------------------------------------------- -// -void CSendDataHandler::ClientResponse() - { - LOG( SIMPLE, "SendData: CSendDataHandler::ClientResponse calling-exiting" ) - // Don't send terminal response, already sent in HandleCommand - } - -// ----------------------------------------------------------------------------- -// From class MSatSendDataObserver. -// Notification of data has been sent. -// ----------------------------------------------------------------------------- -// -void CSendDataHandler::DataSentNotification( - const TInt aError, const TInt aLength ) - { - LOG( SIMPLE, "SendData: CSendDataHandler::DataSentNotification calling" ) - - if ( MSatBIPUtils::ESatBIPSuccess != aError ) - { - LOG( SIMPLE, "SendData: CSendDataHandler::DataSentNotification Error" ) - iSendDataRspData.iGeneralResult = RSat::KBearerIndepProtocolError; - } - else - { - iSendDataRspData.iGeneralResult = RSat::KSuccess; - iFreeBuffSize = aLength; - } - - SendTerminalResponse( aError ); - - LOG( SIMPLE, "SendData: CSendDataHandler::DataSentNotification exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatSendDataObserver. -// Notfication from the connection. -// ----------------------------------------------------------------------------- -// -void CSendDataHandler::ConnectionNotification( TInt aError ) - { - LOG2( SIMPLE, "SENDDATA: CSendDataHandler::ConnectionNotification\ - calling with code %i", aError ) - - if ( KErrNone == aError ) - { - // Connection established, send data - SendData(); - } - else - { - - // Get connection info and remove APN from CommDB, if created during - // OpenChannel command - TUint32 apnId( iDataChannel->ConnInfo().iCreatedApnId ); - LOG2( SIMPLE, "SENDDATA: CSendDataHandler::ConnectionNotification \ - apnId: %i", apnId ) - if ( apnId > 0 ) - { - TRAP_IGNORE( iUtils->BipUtils().ApnHandler().DeleteApnL( apnId ) ) - } - - // Connection failed - iSendDataRspData.iGeneralResult = RSat::KBearerIndepProtocolError; - SendTerminalResponse( MSatBIPUtils::ESatBIPChannelClosed ); - } - - LOG( SIMPLE, "SENDDATA: CSendDataHandler::ConnectionNotification exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Waits for indication of user wanting to close the BIP session. -// ----------------------------------------------------------------------------- -// -void CSendDataHandler::Event( TInt aEvent ) - { - LOG2( SIMPLE, "CSendDataHandler::Event calling, aEvent:%d", aEvent ) - - switch ( aEvent ) - { - case MSatUtils::ECommandCancelled: - case MSatUtils::ECancelledUsingEndKey: - { - // Check Channel activation status - if ( iUtils->BipUtils().IsContextActive() ) - { - LOG( SIMPLE, "CSendDataHandler::Event IsContextActive" ) - // Next command is rejected - iUserCancelled = ETrue; - SendTerminalResponse(); // If command is executing, send. - } - break; - } - case MSatUtils::EOpenChannelExecuting: - { - // New channel, reset user cancel flag. - iUserCancelled = EFalse; - break; - } - default: - { - // Move event to base class - CSatCommandHandler::Event( aEvent ); - } - } - - LOG( SIMPLE, "CSendDataHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CSendDataHandler::DoCancel() - { - LOG( SIMPLE, "SendData: CSendDataHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifySendDataCancel(); - - LOG( SIMPLE, "SendData: CSendDataHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Requests the command notification. -// ----------------------------------------------------------------------------- -// -void CSendDataHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "SendData: CSendDataHandler::IssueUSATRequest calling" ) - - // Empty previously recevied data. - new (&iSendDataData) RSat::TSendDataV2(); - - iUtils->USatAPI().NotifySendData( aStatus, iSendDataPckg ); - iUtils->NotifyEvent( MSatUtils::EBipCommandDoneExecuting ); - - LOG( SIMPLE, "SendData: CSendDataHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Precheck before executing the command. -// ----------------------------------------------------------------------------- -// -TBool CSendDataHandler::CommandAllowed() - { - LOG( SIMPLE, "SendData: CSendDataHandler::CommandAllowed calling" ) - - TBool commandAllowed( ETrue ); - - if ( iUserCancelled ) - { - LOG( SIMPLE, "SendData: CSendDataHandler::CommandAllowed \ - UserCancelled" ) - SendTerminalResponse(); - - commandAllowed = EFalse; - } - else - { - // Proceed with the command - const TInt channelId( iSendDataData.iDestination ); - - if ( ( RSat::KChannel1 > channelId || RSat::KChannel7 < channelId ) || - // If icon data without alpha id - ( ( RSat::EAlphaIdProvided != - iSendDataData.iAlphaId.iStatus ) && - ( ( RSat::ESelfExplanatory == - iSendDataData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iSendDataData.iIconId.iQualifier ) ) ) ) - { - LOG( NORMAL, "SendData: CSendDataHandler::CommandAllowed Unknown \ - channel identifier or icon without alpha id - Not allowed" ) - // Create the response IPC package - iSendDataRspData.iGeneralResult = RSat::KCmdDataNotUnderstood; - iSendDataRspData.iInfoType = RSat::KNoAdditionalInfo; - iSendDataRspData.iAdditionalInfo.Zero(); - commandAllowed = EFalse; - } - else - { - RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus( - iUtils->SystemState().GetNetworkRegistrationStatus() ); - - if ( ( RMobilePhone::ERegisteredOnHomeNetwork != - registrationStatus ) && - ( RMobilePhone::ERegisteredRoaming != registrationStatus ) ) - { - - iSendDataRspData.iInfoType = RSat::KMeProblem; - iSendDataRspData.iAdditionalInfo.SetLength( 1 ); - iSendDataRspData.iAdditionalInfo[0] = RSat::KNoService; - iSendDataRspData.iGeneralResult = RSat::KMeUnableToProcessCmd; - commandAllowed = EFalse; - LOG( NORMAL, - "SendData: CSendDataHandler::CommandAllowed Not allowed" ) - } - // Set icon command flag whether icon data was received and set qualifier - // to no icon id - // To be removed when icons are allowed in this command - else if ( ( RSat::ESelfExplanatory == - iSendDataData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iSendDataData.iIconId.iQualifier ) ) - { - LOG( NORMAL, - "SendData: CSendDataHandler::CommandAllowed ENoIconId" ) - iIconCommand = ETrue; - iSendDataData.iIconId.iQualifier = RSat::ENoIconId; - } - else - { - LOG( NORMAL, - "SendData: CSendDataHandler::CommandAllowed others" ) - iIconCommand = EFalse; - } - } - - if ( !commandAllowed ) - { - LOG( NORMAL, - "SendData: CSendDataHandler::CommandAllowed command not allowed" ) - iSendDataRspData.SetPCmdNumber( iSendDataData.PCmdNumber() ); - TerminalRsp( RSat::ESendData, iSendDataRspPckg ); - } - } - - LOG2( SIMPLE, - "SendData: CSendDataHandler::CommandAllowed exiting, commandAllowed: %d", - commandAllowed ) - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Need for ui session. -// ----------------------------------------------------------------------------- -// -TBool CSendDataHandler::NeedUiSession() - { - LOG( SIMPLE, "SendData: CSendDataHandler::NeedUiSession calling" ) - - // UI is NOT needed in case where AlphaID is provided and it is a NULL - // If information indication to the user is needed and data is not - // stored in Tx Buffer, show it now. - iNeedUiSession = ( !( RSat::EAlphaIdNull == - iSendDataData.iAlphaId.iStatus ) && - !( RSat::EAlphaIdNotPresent == - iSendDataData.iAlphaId.iStatus ) && - !( RSat::EStoreDataInTxBuffer == - iSendDataData.iMode ) ); - // Send notification to Mediator client if Cover UI is supported - if ( iNeedUiSession && iUtils->CoverUiSupported() ) - { - LOG( SIMPLE, - "SendData: CSendDataHandler::NeedUiSession CoverUiSupported" ) - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::ESendData; - medEventData.iAlphaId = iSendDataData.iAlphaId; - medEventData.iDuration.iNumOfUnits = KSatDefaultDuration; - medEventData.iIconID = iSendDataData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - - LOG2( SIMPLE, - "SendData: CSendDataHandler::NeedUiSession exiting,iNeedUiSession: %d", - iNeedUiSession ) - return iNeedUiSession; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when USAT API notifies that command. -// ----------------------------------------------------------------------------- -// -void CSendDataHandler::HandleCommand() - { - LOG( SIMPLE, "SendData: CSendDataHandler::HandleCommand calling" ) - - // Notify other's about this command executiuon - iUtils->NotifyEvent( MSatUtils::ESendDataExecuting ); - iUtils->NotifyEvent( MSatUtils::EBipCommandExecuting ); - TInt uiError( KErrNone ); - - if ( iNeedUiSession ) - { - LOG( NORMAL, "SendData: CSendDataHandler::HandleCommand \ - Sending UI Notification" ) - - uiError = SendUiNotification(); - } - LOG2( NORMAL, "SendData: CSendDataHandler::HandleCommand \ - uiError: %i", uiError ) - if ( KErrNone == uiError ) - { - iFreeBuffSize = 0; - TInt err( MSatBIPUtils::ESatBIPSuccess ); - - // Get Data Channel - iDataChannel = iUtils->BipUtils().DataChannel( - iSendDataData.iDestination, err ); - - // Check the SendData mode. If Store, no need for active channel - if ( ( iDataChannel ) && - ( RSat::EStoreDataInTxBuffer == iSendDataData.iMode ) ) - { - LOG( NORMAL, "SendData: CSendDataHandler::HandleCommand \ - send data" ) - SendData(); - } - //Check if ch was found and if not active, try to activate - else if ( ( iDataChannel ) && - ( MSatBIPUtils::ESatBIPChannelClosed == err ) ) - { - LOG( NORMAL, "SendData: CSendDataHandler::HandleCommand \ - Inactive channel found, try to activate" ) - TRAP( err, iDataChannel->ActivateConnectionL( this ) ); - - if ( err != KErrNone ) - { - LOG2( NORMAL, "SendData: CSendDataHandler::HandleCommand \ - Channel activation Failed Error %i", err ) - - // Get connection info and remove APN from CommDB, if created - // during OpenChannel command - TUint32 apnId( iDataChannel->ConnInfo().iCreatedApnId ); - - LOG2( NORMAL, "SendData: CSendDataHandler::HandleCommand \ - apnId: %i", apnId ) - if ( apnId > 0 ) - { - TRAP_IGNORE( - iUtils->BipUtils().ApnHandler().DeleteApnL( apnId ) ) - } - - if ( ( KErrMMEtelActivationBlockedByCallControlNoText == err ) || - ( KErrMMEtelActivationBlockedByCallControlWithText == err ) ) - { - err = RSat::KActionNotAllowed; - iSendDataRspData.iGeneralResult = - RSat::KInteractionWithCCPermanentError; - LOG( DETAILED, " CC on GPRS not allowed" ) - } - - else - { - err = MSatBIPUtils::ESatBIPChannelClosed; - iSendDataRspData.iGeneralResult = - RSat::KBearerIndepProtocolError; - } - - SendTerminalResponse( err ); - } - } - // SendImmediate, Only if Active channel exists - else if ( MSatBIPUtils::ESatBIPSuccess == err ) - { - LOG( NORMAL, "SendData: CSendDataHandler::HandleCommand \ - SendImmediate" ) - SendData(); - } - // Active channel doesn't exist - else - { - LOG2( NORMAL, "SendData: CSendData::HandleCommand \ - Error %i", err ) - iSendDataRspData.iGeneralResult = RSat::KBearerIndepProtocolError; - SendTerminalResponse( err ); - } - } - - LOG( SIMPLE, "SendData: CSendDataHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Indicates the failure of launching ui client. -// ----------------------------------------------------------------------------- -// -void CSendDataHandler::UiLaunchFailed() - { - LOG( SIMPLE, "SendData: CSendDataHandler::UiLaunchFailed calling" ) - - iSendDataRspData.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendDataRspData.iInfoType = RSat::KMeProblem; - iSendDataRspData.iAdditionalInfo.SetLength( 1 ); - iSendDataRspData.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iSendDataRspData.SetPCmdNumber( iSendDataData.PCmdNumber() ); - TerminalRsp( RSat::ESendData, iSendDataRspPckg ); - - LOG( SIMPLE, "SendData: CSendDataHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized. -CSendDataHandler::CSendDataHandler() : - CSatCommandHandler(), - iSendDataData(), - iSendDataPckg( iSendDataData ), - iSendDataRspData(), - iSendDataRspPckg( iSendDataRspData ), - iSendDataUiData(), - iSendDataUiPckg( iSendDataUiData ), - iSendDataUiRsp(), - iSendDataUiRspPckg( iSendDataUiRsp ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( SIMPLE, - "SendData: CSendDataHandler::CSendDataHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSendDataHandler::ConstructL() - { - LOG( SIMPLE, "SendData: CSendDataHandler::ConstructL calling" ) - - // Register to ui service request - iUtils->RegisterServiceRequestL( ESatSProactiveNotification, - ESatSProactiveNotificationResponse, this ); - - // Register to ui service request - // Cancel key event from dialog - iUtils->RegisterL( this, MSatUtils::ECommandCancelled ); - - // End key from dialog - iUtils->RegisterL( this, MSatUtils::ECancelledUsingEndKey ); - - // Open channel execution - iUtils->RegisterL( this, MSatUtils::EOpenChannelExecuting ); - - LOG( SIMPLE, "SendData: CSendDataHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// Sends data -// ----------------------------------------------------------------------------- -// -void CSendDataHandler::SendData() - { - LOG( SIMPLE, "SendData: CSendDataHandler::SendData calling" ) - - // Indicates the send mode. - TBool sendImmediately( RSat::ESendDataImmediately == iSendDataData.iMode ); - TInt err( MSatBIPUtils::ESatBIPSuccess ); - - TRAPD( error, err = iDataChannel->SendDataL( - iSendDataData.iChannelData, - sendImmediately, - iFreeBuffSize, - this ) ); - LOG2( NORMAL, "SendData: CSendDataHandler::SendData error: %i", error ) - - // Check were the send data success. - if ( ( error != KErrNone ) || ( err != MSatBIPUtils::ESatBIPSuccess ) ) - { - LOG2( NORMAL, "SendData: CSendDataHandler::SendData Error %i", err ) - - if ( MSatBIPUtils::ESatBIPServiceError == err ) - { - // Connection suspended - iSendDataRspData.iGeneralResult = RSat::KMeUnableToProcessCmd; - err = RSat::KNoSpecificMeProblem; - } - else - { - iSendDataRspData.iGeneralResult = RSat::KBearerIndepProtocolError; - } - - SendTerminalResponse( err ); - } - else if ( !sendImmediately ) - { - // If data is stored, send terminal response, otherwise wait for - // notification of data sent. - LOG( NORMAL, "SendData: CSendDataHandler::SendData Succeed" ) - iSendDataRspData.iGeneralResult = RSat::KSuccess; - SendTerminalResponse(); - } - else - { - LOG( NORMAL, - "SendData: CSendDataHandler::SendData Waiting send to complete" ) - } - - LOG( SIMPLE, "SendData: CSendDataHandler::SendData exiting" ) - } - -// ----------------------------------------------------------------------------- -// Completes Terminal response and sends it -// ----------------------------------------------------------------------------- -// -void CSendDataHandler::SendTerminalResponse( const TInt aError ) - { - LOG( SIMPLE, "SendData: CSendDataHandler::SendTerminalResponse calling" ) - - if ( iUserCancelled ) - { - LOG( NORMAL, "SENDDATA: CSendDataHandler::SendTerminalResponse \ - User cancelled the action" ) - iSendDataRspData.iGeneralResult = RSat::KPSessionTerminatedByUser; - iSendDataRspData.iInfoType = RSat::KNoAdditionalInfo; - iSendDataRspData.iAdditionalInfo.Zero(); - } - else if ( RSat::KSuccess == iSendDataRspData.iGeneralResult ) - { - LOG( NORMAL, "SENDDATA: CSendDataHandler::SendTerminalResponse \ - KSuccess" ) - iSendDataRspData.iInfoType = RSat::KNoAdditionalInfo; - iSendDataRspData.iAdditionalInfo.Zero(); - if ( iFreeBuffSize > KSatBIPMoreThanMaxSize ) - { - LOG( NORMAL, "SENDDATA: CSendDataHandler::SendTerminalResponse \ - iFreeBuffSize > KSatBIPMoreThanMaxSize" ) - iSendDataRspData.iChannelDataLength = KSatBIPMoreThanMaxSize; - } - else - { - iSendDataRspData.iChannelDataLength = - static_cast ( iFreeBuffSize ); - } - // If command had icon data and was done succesfully, - // report that icon was not shown. - // To be removed and correct handling (i.e. ClientResponse to - // notification is received) for general result - // KSuccessRequestedIconNotDisplayed must be added when icons - // are allowed in this command - if ( iIconCommand ) - { - LOG( NORMAL, "SENDDATA: CSendDataHandler::SendTerminalResponse \ - iIconCommand true" ) - iSendDataRspData.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - } - else - { - iSendDataRspData.iInfoType = RSat::KMeProblem; - iSendDataRspData.iAdditionalInfo.SetLength( 1 ); - // Error code from MSatBIPUtils is the same as defined in etelsat.h, - // so we can put that error code straigth to additional info - iSendDataRspData.iAdditionalInfo[0] = static_cast ( aError ); - iSendDataRspData.iChannelDataLength = 0; - } - - if ( IsCommandExecuting() ) - { - LOG( NORMAL, "SENDDATA: CSendDataHandler::SendTerminalResponse \ - IsCommandExecuting true" ) - iSendDataRspData.SetPCmdNumber( iSendDataData.PCmdNumber() ); - - // Send terminal response - iUtils->NotifyEvent( MSatUtils::EDelaySimSessionEnd ); - iUtils->USatAPI().TerminalRsp( RSat::ESendData, iSendDataRspPckg ); - Start(); - } - - LOG( SIMPLE, "SendData: CSendDataHandler::::SendTerminalResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// Sends notification to UI -// ----------------------------------------------------------------------------- -// -TInt CSendDataHandler::SendUiNotification() - { - LOG( NORMAL, "SendData: CSendDataHandler::SendUiNotification calling" ) - - // Register to ui service request - TRAPD( uiError, iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, this ) ); - LOG2( NORMAL, "CSendDataHandler::SendUiNotification uiError %i", uiError ) - // Check UI error - if ( KErrNone == uiError ) - { - // Create IPC data to UI - iSendDataUiData.iCommand = ESatSSendDataNotify; - - iSendDataUiData.iText = iSendDataData.iAlphaId.iAlphaId; - iSendDataUiData.iIconId.iIdentifier = - iSendDataData.iIconId.iIdentifier; - LOG2( NORMAL, "CSendDataHandler::SendUiNotification \ - iSendDataData.iIconId.iQualifier: %i", - iSendDataData.iIconId.iQualifier ) - // Define icon qualifier - if ( RSat::ENotSelfExplanatory == iSendDataData.iIconId.iQualifier ) - { - iSendDataUiData.iIconId.iIconQualifier = ESatNotSelfExplanatory; - } - else if ( RSat::ESelfExplanatory == iSendDataData.iIconId.iQualifier ) - { - iSendDataUiData.iIconId.iIconQualifier = ESatSelfExplanatory; - } - else // Icon qualifier not present - { - iSendDataUiData.iIconId.iIconQualifier = ESatENoIconId; - } - LOG2( NORMAL, "CSendDataHandler::SendUiNotification \ - iSendDataData.iAlphaId.iStatus: %i", - iSendDataData.iAlphaId.iStatus ) - // Define AlphaID status - switch ( iSendDataData.iAlphaId.iStatus ) - { - case RSat::EAlphaIdNotPresent: - { - iSendDataUiData.iAlphaIdStatus = ESatAlphaIdNotProvided; - break; - } - - case RSat::EAlphaIdProvided: - { - iSendDataUiData.iAlphaIdStatus = ESatAlphaIdNotNull; - break; - } - - default: - { - iSendDataUiData.iAlphaIdStatus = ESatAlphaIdNull; - break; - } - } - - // Send notification to UI - MSatUiSession* session = iUtils->SatUiHandler().UiSession(); - session->SendCommand( &iSendDataUiPckg, - &iSendDataUiRspPckg, - ESatSProactiveNotification ); - } - else - { - // Send error terminal response - iSendDataRspData.iGeneralResult = RSat::KMeUnableToProcessCmd; - SendTerminalResponse( RSat::KNoSpecificMeProblem ); - } - - LOG( NORMAL, "SendData: CSendDataHandler::SendUiNotification exiting" ) - return uiError; - } - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDataCmd/src/std.cpp --- a/satengine/SatServer/Commands/SendDataCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CSendDataHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x10205C51, CSendDataHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDtmfCmd/group/SendDtmfCmd.mmp --- a/satengine/SatServer/Commands/SendDtmfCmd/group/SendDtmfCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project SendDtmf plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET SendDtmfCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x1000A88B - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CSendDtmfHandler.cpp -SOURCE csatdtmfsender.cpp - -START RESOURCE 1000A88B.rss -TARGET SendDtmfCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDtmfCmd/group/bld.inf --- a/satengine/SatServer/Commands/SendDtmfCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project SendDtmfCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -SendDtmfCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDtmfCmd/inc/CSendDtmfHandler.h --- a/satengine/SatServer/Commands/SendDtmfCmd/inc/CSendDtmfHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,253 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: SendDtmf command handler -* -*/ - - -#ifndef CSENDDTMFHANDLER_H -#define CSENDDTMFHANDLER_H - -#include - -#include "CSatCommandHandler.h" -#include "SatSTypes.h" - -class CSatDtmfSender; - -/** - * Command handler for SendDtmf command. - * - * @lib SendDtmfCmd.lib - * @since S60 v3.0 - */ -class CSendDtmfHandler : public CSatCommandHandler - { - -public: - - static CSendDtmfHandler* NewL( MSatUtils* aUtils ); - - virtual ~CSendDtmfHandler(); - - /** - * Gets the result of DTMF sending. - * - * @since S60 3.2 - * @param aErrCode result of completed DTMF sending. - */ - void SendDtmfComplete( const TInt aErrCode ); - -// from base class MSatCommand - - /** - * From MSatCommand. - * Response from the client - * - */ - void ClientResponse(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler - * Overrides the default implementation. - * - * @param aEvent Identifies the event. - */ - void Event( TInt aEvent ); - -protected: - -// from base class CActive - - /** - * From CActive - * Cancels the usat request. - * - */ - void DoCancel(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler - * Requests the command notification. - * - * @param aStatus Request status - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler - * Precheck before executing the command. - * - * @return TBool indicating command is currently allowed. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler - * Need for ui session. - * - * @return TBool indicating need of ui session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler - * Called when USAT API notifies that command. - * - */ - void HandleCommand(); - - /** - * From CSatCommandHandler - * Called when UI launch fails - * - */ - void UiLaunchFailed(); - -private: - - CSendDtmfHandler(); - - void ConstructL(); - - /** - * Converts extended BCD string into UCS2 string - * - * @param aDtmfString destination string, to contain DTMF as UCS2 - * @return ETrue if DTMF string in iSendDtmfData contains valid DTMF characters only - * (0-9,*,#,pause) - */ - TBool ConvertDtmfStringToUcs2( TDes& aDtmfString ); - - /** - * converts an extended BCD character according to GSM 11.11 into a UCS2 character - * - * @param aExtBcd extended BCD character - * @param aEndOfString ETrue iff aExtBcd signals end of string - * @param aDtmfCharacter ETrue iff aExtBcd represents DTMF character (0-9,*,#,pause) - * @param aUcs2Char DTMF character in UCS2 representation - only valid if aDtmfCharacter is true - */ - void ConvertDtmfCharacterToUcs2( - const TChar& aExtBcd, - TBool& aEndOfString, - TBool& aDtmfCharacter, - TChar& aUcs2Char ) const; - - /** - * Handles the result of DTMF sending and sends terminal response - * - */ - void HandleResult(); - - /** - * Sends terminal response. Makes sure that terminal response - * is not send more that once / command. - * - */ - void SendTerminalResponse(); - -private: // data - - /** - * SendDtmf command data from SIM. - */ - RSat::TSendDtmfV1 iSendDtmfData; - - /** - * SendDtmf command package. - */ - RSat::TSendDtmfV1Pckg iSendDtmfPckg; - - /** - * SendDtmf response data from client. - */ - RSat::TSendDtmfRspV1 iSendDtmfRsp; - - /** - * SendDtmf response package - */ - RSat::TSendDtmfRspV1Pckg iSendDtmfRspPckg; - -// UI notification data - - /** - * SendDtmf notification send data - */ - TSatNotificationV1 iNotificationData; - - /** - * SendDtmf notification package - */ - TSatNotificationV1Pckg iNotificationDataPckg; - - /** - * SendDtmf notification Response data - */ - TSatNotificationRspV1 iNotificationRsp; - - /** - * SendDtmf notification Response package - */ - TSatNotificationRspV1Pckg iNotificationRspPckg; - - /** - * DTMF handling - */ - CSatDtmfSender* iDtmfSender; - - /** - * Result of completed DTMF sending. - */ - TInt iDtmfResult; - - /** - * Indicates is terminal response sent - */ - TBool iTerminalRespSent; - - /** - * Indicates do we need UI - */ - TBool iNeedUiSession; - - /** - * Converted DTMF string container. - * Own. - */ - HBufC16* iDtmfStringUcs2; - - /** - * Flag to signal that command has icon data - * To be removed when icons are allowed in this command - */ - TBool iIconCommand; - - /** - * Wait scheduler for fast UI event cases. - */ - CActiveSchedulerWait iWait; - - /** - * Indicates if client response is received. - */ - TBool iClientResponseReceived; - - }; - -#endif // CSENDDTMFHANDLER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDtmfCmd/inc/SendDtmfCmd.rls --- a/satengine/SatServer/Commands/SendDtmfCmd/inc/SendDtmfCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project SendDtmfCmd -* -*/ - - -#ifndef SENDDTMFCMD_RLS -#define SENDDTMFCMD_RLS - -rls_string STRING_r_senddtmfcmd_display_name "SendDtmf command" -rls_string STRING_r_senddtmfcmd_default_data "SendDtmfCmd" -rls_string STRING_r_senddtmfcmd_opaque_data "" - -#endif // SENDDTMFCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDtmfCmd/inc/csatdtmfsender.h --- a/satengine/SatServer/Commands/SendDtmfCmd/inc/csatdtmfsender.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* -* Copyright (c) 2006-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: DTMF sender for SendDtmf command -* -*/ - - - -#ifndef CSATDTMFSENDER_H -#define CSATDTMFSENDER_H - -#include - -// CLASS DECLARATION -class CSendDtmfHandler; -class MSatMultiModeApi; - -/** - * DTMF sender for SendDtmf command. - * - * @lib SendDtmfCmd.lib - * @since S60 3.2 - */ -class CSatDtmfSender : public CActive - { - -public: // Constructors and destructor - - /** - * C++ default constructor. - * @param aDtmfHandler Observes completion of DTMF sending - * @param aPhone API for sending DTMF strings. - */ - CSatDtmfSender( CSendDtmfHandler& aDtmfHandler, - MSatMultiModeApi& aPhone ); - - /** - * Destructor. - */ - virtual ~CSatDtmfSender(); - - /** - * Transmit DTMF tones across all the current active voice calls. - * @since S60 3.2 - * @param aTones The string of DTMF characters. - */ - void SendToneString( const TDesC& aTones ); - -protected: - - /** - * From CActive. - * Called when request status given SetActiveAndWait completes - */ - void RunL(); - - /** - * From CActive. - * Called when request is cancelled - */ - void DoCancel(); - -private: // Data - - /** - * Observer of the DTMF sending. - */ - CSendDtmfHandler& iDtmfHandler; - - /** - * API used for sending DTMF string to adaptation. - */ - MSatMultiModeApi& iPhone; - - }; - -#endif // CSATDTMFSENDER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDtmfCmd/src/1000A88B.rss --- a/satengine/SatServer/Commands/SendDtmfCmd/src/1000A88B.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1000 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "SendDtmfCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// SendDtmfCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO SendDtmfCmdInfo - { - dll_uid = 0x1000A88B; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x10202987; - version_no = 1; - display_name = STRING_r_senddtmfcmd_display_name; - default_data = STRING_r_senddtmfcmd_default_data; - opaque_data = STRING_r_senddtmfcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDtmfCmd/src/CSendDtmfHandler.cpp --- a/satengine/SatServer/Commands/SendDtmfCmd/src/CSendDtmfHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,920 +0,0 @@ -/* -* Copyright (c) 2002-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: Handles SendDtmf command -* -*/ - - -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatSystemState.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CSendDtmfHandler.h" -#include "csatdtmfsender.h" -#include "msatmultimodeapi.h" -#include "SatLog.h" - -const TUint KBcdZero = 0x00; -const TUint KBcdOne = 0x01; -const TUint KBcdTwo = 0x02; -const TUint KBcdThree = 0x03; -const TUint KBcdFour = 0x04; -const TUint KBcdFive = 0x05; -const TUint KBcdSix = 0x06; -const TUint KBcdSeven = 0x07; -const TUint KBcdEight = 0x08; -const TUint KBcdNine = 0x09; -const TUint KBcdStar = 0x0A; -const TUint KBcdHash = 0x0B; -const TUint KBcdPause = 0x0C; -const TUint KBcdWild = 0x0D; -const TUint KBcdExpansion = 0x0E; -const TUint KBcdEnd = 0x0F; - -const TUint KUcs2Zero = 0x30; // '0' -const TUint KUcs2Star = 0x2A; // '*' -const TUint KUcs2Hash = 0x23; // '#' -const TUint KUcs2Pause = 0x70; // 'p' - -const TUint KHighNibble = 0xF0; -const TUint KLowNibble = 0x0F; -const TUint KBitsInNibble = 4; - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSendDtmfHandler* CSendDtmfHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::NewL calling" ) - - CSendDtmfHandler* self = new( ELeave ) CSendDtmfHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::NewL exiting" ) - return self; - } - - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -// -CSendDtmfHandler::~CSendDtmfHandler() - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::~CSendDtmfHandler calling" ) - - Cancel(); - - if ( iDtmfSender ) - { - delete iDtmfSender; - } - - if ( iDtmfStringUcs2 ) - { - delete iDtmfStringUcs2; - iDtmfStringUcs2 = NULL; - } - - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::~CSendDtmfHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// Gets the result of DTMF sending. -// ----------------------------------------------------------------------------- -// -void CSendDtmfHandler::SendDtmfComplete( const TInt aErrCode ) - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::SendDtmfComplete calling" ) - - iDtmfResult = aErrCode; - // Handles result and sends terminal response. - HandleResult(); - - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::SendDtmfComplete exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatCommand. -// Response from the client -// ----------------------------------------------------------------------------- -// -void CSendDtmfHandler::ClientResponse() - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::ClientResponse calling" ) - - iClientResponseReceived = ETrue; - if( iWait.IsStarted() ) - { - iWait.AsyncStop(); - } - - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Waits for indication of user rejection -// ----------------------------------------------------------------------------- -// -void CSendDtmfHandler::Event( TInt aEvent ) - { - LOG2( SIMPLE, - "SENDTMF: CSendDtmfHandler::Event calling, aEvent:%d", aEvent ) - - switch ( aEvent ) - { - case MSatUtils::ECommandCancelled: - { - // Cancel DTMF sending - if ( iDtmfSender ) - { - LOG( SIMPLE, - "SENDTMF: CSendDtmfHandler::Event Cancel DTMF sending" ) - iDtmfSender->Cancel(); - } - - // Cancel key pressed. Send terminal response. - iSendDtmfRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; - iSendDtmfRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendDtmfRsp.iAdditionalInfo.Zero(); - - SendTerminalResponse(); - break; - } - - case MSatUtils::ECancelledUsingEndKey: - { - // Cancel DTMF sending - if ( iDtmfSender ) - { - LOG( SIMPLE, - "CSendDtmfHandler::Event Cancel DTMF sending by endkey" ) - iDtmfSender->Cancel(); - } - - // End key pressed. Send terminal response. - iSendDtmfRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendDtmfRsp.iInfoType = RSat::KMeProblem; - iSendDtmfRsp.iAdditionalInfo.Zero(); - iSendDtmfRsp.iAdditionalInfo.Append( RSat::KNotInSpeechCall ); - - // Next SimSession end will close the ui session - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - SendTerminalResponse(); - break; - } - - default: - { - // Move event to base class - CSatCommandHandler::Event( aEvent ); - } - } - - LOG( SIMPLE, "SENDTMF: CSendDtmfHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CSendDtmfHandler::DoCancel() - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifySendDtmfCancel(); - - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Requests the command notification. -// ----------------------------------------------------------------------------- -// -void CSendDtmfHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iSendDtmfData) RSat::TSendDtmfV1(); - - if ( iDtmfStringUcs2 ) - { - LOG( SIMPLE, - "CSendDtmfHandler::IssueUSATRequest iDtmfStringUcs2 true" ) - delete iDtmfStringUcs2; - iDtmfStringUcs2 = NULL; - } - - iUtils->USatAPI().NotifySendDtmf( aStatus, iSendDtmfPckg ); - - // Unregister from events - iUtils->UnregisterEvent( this, MSatUtils::ECommandCancelled ); - iUtils->UnregisterEvent( this, MSatUtils::ECancelledUsingEndKey ); - - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// SendDtmf command is not allowed if there is not active speech call. -// ----------------------------------------------------------------------------- -// -TBool CSendDtmfHandler::CommandAllowed() - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::CommandAllowed calling" ) - - // By default, this is true - TBool commandAllowed( ETrue ); - - // Allow next terminal response to be sent - iTerminalRespSent = EFalse; - - // This is needed every time - iSendDtmfRsp.SetPCmdNumber( iSendDtmfData.PCmdNumber() ); - - // Call has to be established, otherwise DTMF cannot be sent. -#ifdef SAT_USE_DUMMY_TSY - TInt firstChar( ' ' ); - if ( iSendDtmfData.iAlphaId.iStatus == RSat::EAlphaIdProvided ) - { - firstChar = iSendDtmfData.iAlphaId.iAlphaId[0]; - } - const TBool callIsOngoing( firstChar != 'T' ); -#else - const TBool callIsOngoing( iUtils->SystemState().IsCallActive() ); -#endif - - const TInt dtmfLength( iSendDtmfData.iDtmfString.Length() ); - - // DTMF string shall have at least one BCD character. - // Otherwise, minimum set of data objects is not complete, - // and command has to be rejected with 'Error, required - // values are missing'. - const TBool dtmfStringHasContent( dtmfLength > 0 ); - - // DTMF string shall not be longer than is possible - // according to TS 11.14, clause 6.6.24. If the string is - // longer than this, the DTMF String data object is not valid, - // which means that the minimum set of data objects - // is not complete, and the command has to be rejected - // with 'Error, required values are missing'. - const TBool dtmfStringNotTooLong( dtmfLength <= RSat::KDtmfStringMaxSize ); - - // If icon data without alpha id. - if ( ( RSat::EAlphaIdProvided != iSendDtmfData.iAlphaId.iStatus ) && - ( ( RSat::ESelfExplanatory == iSendDtmfData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == iSendDtmfData.iIconId.iQualifier ) ) ) - { - commandAllowed = EFalse; - iSendDtmfRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iSendDtmfRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendDtmfRsp.iAdditionalInfo.Zero(); - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::CommandAllowed data not \ - understood" ) - } - else if ( !( dtmfStringHasContent && callIsOngoing && dtmfStringNotTooLong ) ) - { // Handle the error cases. - - if ( !dtmfStringHasContent || !dtmfStringNotTooLong ) - { - LOG( SIMPLE, - "SENDDTMF: !dtmfStringHasContent || !dtmfStringNotTooLong" ) - iSendDtmfRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendDtmfRsp.iAdditionalInfo.Zero(); - iSendDtmfRsp.iGeneralResult = RSat::KErrorRequiredValuesMissing; - } - else // No callIsOngoing - { - LOG( SIMPLE, "SENDDTMF: !callIsOngoing" ) - // ME is not in speech call and dtmf string cannot be sent. - iSendDtmfRsp.iInfoType = RSat::KMeProblem; - iSendDtmfRsp.iAdditionalInfo.Zero(); - iSendDtmfRsp.iAdditionalInfo.Append( RSat::KNotInSpeechCall ); - iSendDtmfRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - } - // Command is not allowed - commandAllowed = EFalse; - } - else - { - // Convert DTMF string. This is done here, so UI is not launched. - // for no reason. - - // At the ETel interface level, the DTMF string uses a TBuf where each - // buffer character represents two DTMF digits coded as BCD characters. - const TUint KDtmfStringETelNumberOfBcdPerBufferCharacter = 2; - - // The DTMF string uses a TBuf where each buffer character represents - // one DTMF digit. - const TUint KDtmfStringMaxLength = - KDtmfStringETelNumberOfBcdPerBufferCharacter * - RSat::KDtmfStringMaxSize; - - TRAPD( noMemory, iDtmfStringUcs2 = - HBufC16::NewL( KDtmfStringMaxLength ) ) - - if ( KErrNone != noMemory ) - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::CommandAllowed KErrNone != noMemory" ) - iSendDtmfRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendDtmfRsp.iAdditionalInfo.Zero(); - iSendDtmfRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - // Command is not allowed - commandAllowed = EFalse; - } - else - { - - TPtr ptr = iDtmfStringUcs2->Des(); - - if ( ! ConvertDtmfStringToUcs2( ptr ) ) - { - LOG( SIMPLE, - "CSendDtmfHandler::CommandAllowed not allowed" ) - // DTMF string contains illegal characters - iSendDtmfRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iSendDtmfRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendDtmfRsp.iAdditionalInfo.Zero(); - // Command is not allowed - commandAllowed = EFalse; - } - } - } - - if ( !commandAllowed ) - { - LOG( SIMPLE, - "CSendDtmfHandler::CommandAllowed commandAllowed false" ) - SendTerminalResponse(); - } - // Set icon command flag whether icon data was received and set qualifier - // to no icon id - // To be removed when icons are allowed in this command - else if ( ( RSat::ESelfExplanatory == - iSendDtmfData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iSendDtmfData.iIconId.iQualifier ) ) - { - LOG( SIMPLE, - "CSendDtmfHandler::CommandAllowed ENoIconId" ) - iIconCommand = ETrue; - iSendDtmfData.iIconId.iQualifier = RSat::ENoIconId; - } - else - { - iIconCommand = EFalse; - } - - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::CommandAllowed exiting" ) - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Need for ui session. -// ----------------------------------------------------------------------------- -// -TBool CSendDtmfHandler::NeedUiSession() - { - LOG( NORMAL, "SENDDTMF: CSendDtmfHandler::NeedUiSession calling" ) - iNeedUiSession = ETrue; - - if ( RSat::EAlphaIdNull == iSendDtmfData.iAlphaId.iStatus ) - { - LOG( NORMAL, "SENDDTMF: CSendDtmfHandler::NeedUiSession EAlphaIdNull" ) - iNeedUiSession = EFalse; - } - - // Notify Cover UI if it's supported - if ( iNeedUiSession && iUtils->CoverUiSupported() ) - { - LOG( NORMAL, - "SENDDTMF: CSendDtmfHandler::NeedUiSession CoverUiSupported" ) - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::ESendDtmf; - medEventData.iAlphaId = iSendDtmfData.iAlphaId; - medEventData.iDuration.iNumOfUnits = KSatDefaultDuration; - medEventData.iDuration.iTimeUnit = RSat::ESeconds; - medEventData.iIconID = iSendDtmfData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - - LOG2( NORMAL, - "SENDDTMF: CSendDtmfHandler::NeedUiSession exiting,iNeedUiSession: %d", - iNeedUiSession ) - return iNeedUiSession; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when USAT API notifies that command. -// ----------------------------------------------------------------------------- -// -void CSendDtmfHandler::HandleCommand() - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::HandleCommand calling" ) - - iUtils->NotifyEvent( MSatUtils::ESendDtmfExecuting ); - - // Lower error granularity. This helps for mapping error cases - iUtils->MultiModeApi().LowerErrorGranularity(); - - // Pointer to converted DTMF string - TPtr ptr = iDtmfStringUcs2->Des(); - - iClientResponseReceived = EFalse; - - // First, send DTMF string - iDtmfSender->SendToneString( ptr ); - - if ( iNeedUiSession ) - { - TRAPD( regErr, - // Register to listen user cancel events: - // Cancel key event from dialog - iUtils->RegisterL( this, MSatUtils::ECommandCancelled ); - // End key from dialog - iUtils->RegisterL( this, MSatUtils::ECancelledUsingEndKey ); - - // Then send notification to UI - // Register notification observer - iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, - this ) - ); // TRAPD - LOG2( NORMAL, - "CSendDtmfHandler::HandleCommand regErr: %d", regErr ) - if ( KErrNone != regErr ) - { - iDtmfSender->Cancel(); - // Raise error granularity back to extended errors - iUtils->MultiModeApi().RaiseErrorGranularity(); - - iSendDtmfRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendDtmfRsp.iInfoType = RSat::KMeProblem; - iSendDtmfRsp.iAdditionalInfo.Zero(); - iSendDtmfRsp.iAdditionalInfo.Append( RSat::KNoSpecificMeProblem ); - SendTerminalResponse(); - } - else - { - TSatAlphaIdStatus alphaIdStatus; - if ( iSendDtmfData.iAlphaId.iStatus == RSat::EAlphaIdNotPresent ) - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::HandleCommand EAlphaIdNotPresent" ) - // If AlphaID is not provided, show DTMF string in note. - // Deliver empty text if DTMF string is bigger than it is - // capable to deliver to SAT UI. - alphaIdStatus = ESatAlphaIdNotProvided; - LOG2( NORMAL, - "SENDDTMF: CSendDtmfHandler::HandleCommand ptr.Length: %d", - ptr.Length() ) - if ( RSat::KAlphaIdMaxSize >= ptr.Length() ) - { - iNotificationData.iText = ptr; - } - else - { - iNotificationData.iText.Zero(); - } - } - else if ( iSendDtmfData.iAlphaId.iStatus == RSat::EAlphaIdProvided ) - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::HandleCommand EAlphaIdProvided" ) - alphaIdStatus = ESatAlphaIdNotNull; - iNotificationData.iText = iSendDtmfData.iAlphaId.iAlphaId; - } - else - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::HandleCommand others" ) - alphaIdStatus = ESatAlphaIdNull; - iNotificationData.iText.Zero(); - } - - // Build notification data - iNotificationData.iAlphaIdStatus = alphaIdStatus; - iNotificationData.iCommand = ESatSSendDtmfNotify; - - // Has to be casted to TInt before casting to TSatIconQualifier, - // because GCC warns about the direct cast. - const struct TSatIconId iconId = - { iSendDtmfData.iIconId.iIdentifier, - static_cast( - static_cast( iSendDtmfData.iIconId.iQualifier ) ) }; - - iNotificationData.iIconId = iconId; - - // Send notification - iUtils->SatUiHandler().UiSession()->SendCommand( - &iNotificationDataPckg, - &iNotificationRspPckg, - ESatSProactiveNotification ); - - // DTMF String sent, wait for completion - } - } - - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when UI launch fails. -// ----------------------------------------------------------------------------- -// -void CSendDtmfHandler::UiLaunchFailed() - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::UiLaunchFailed calling" ) - - iSendDtmfRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendDtmfRsp.iInfoType = RSat::KMeProblem; - iSendDtmfRsp.iAdditionalInfo.Append( RSat::KNoSpecificMeProblem ); - iSendDtmfRsp.SetPCmdNumber( iSendDtmfData.PCmdNumber() ); - SendTerminalResponse(); - - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized, harmless. -CSendDtmfHandler::CSendDtmfHandler() : - CSatCommandHandler(), - iSendDtmfData(), - iSendDtmfPckg( iSendDtmfData ), - iSendDtmfRsp(), - iSendDtmfRspPckg( iSendDtmfRsp ), - iNotificationData(), - iNotificationDataPckg( iNotificationData ), - iNotificationRsp(), - iNotificationRspPckg( iNotificationRsp ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::CSendDtmfHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSendDtmfHandler::ConstructL() - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::ConstructL calling" ) - - // Register notification observer - iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, - this ); - - // DTMF Sender - iDtmfSender = - new ( ELeave ) CSatDtmfSender( *this, iUtils->MultiModeApi() ); - - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::ConstructL exiting" ) - } - - -// ----------------------------------------------------------------------------- -// Converts DTMF string from extended BCD to UCS2. -// ----------------------------------------------------------------------------- -// -TBool CSendDtmfHandler::ConvertDtmfStringToUcs2( TDes& aDtmfString ) - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::ConvertDtmfStringToUcs2 calling" ) - aDtmfString.Zero(); - - const TInt bcdLength = iSendDtmfData.iDtmfString.Length(); - TInt i( 0 ); - TBool retVal( ETrue ); - TBool continueLoop( ETrue ); - - for ( i = 0; i < bcdLength && continueLoop; i++ ) - { - // each 16 bit DTMF character of SAT ETel API holds two nibbles, - // high byte always being 0 - TChar twoBcd = iSendDtmfData.iDtmfString[i]; - - // low nibble yields first BCD in semi-octet representation - TChar firstBcd = twoBcd & KLowNibble; - - // high nibble yields second BCD in semi-octet representation - TChar secondBcd = ( twoBcd & KHighNibble ) >> KBitsInNibble; - - TChar destChar; - TBool endOfString; - TBool dtmfCharacter; - - // convert first extended BCD character - ConvertDtmfCharacterToUcs2( - firstBcd, endOfString, dtmfCharacter, destChar ); - - if ( endOfString ) - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::ConvertDtmfStringToUcs2 \ - (End of string in first BCD)" ) - retVal = ETrue; // completed string (F digit) - continueLoop = EFalse; - } - else if ( !dtmfCharacter ) - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::ConvertDtmfStringToUcs2 \ - (not dtmfCharacter in first BCD)" ) - retVal = EFalse; - continueLoop = EFalse; - } - else - { - aDtmfString.Append( destChar ); - - // convert second extended BCD character - ConvertDtmfCharacterToUcs2( - secondBcd, endOfString, dtmfCharacter, destChar ); - - if ( endOfString ) - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::ConvertDtmfStringToUcs2 \ - (End of string in second BCD)" ) - retVal = ETrue; // completed string (F digit) - continueLoop = EFalse; - } - else if ( !dtmfCharacter ) - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::ConvertDtmfStringToUcs2 \ - (not dtmfCharacter in second BCD)" ) - retVal = EFalse; - continueLoop = EFalse; - } - else - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::ConvertDtmfStringToUcs2 \ - others" ) - aDtmfString.Append( destChar ); - } - } - } - LOG2( NORMAL, - "CSendDtmfHandler::ConvertDtmfStringToUcs2 i: %d", i ) - LOG2( SIMPLE, - "SENDDTMF: CSendDtmfHandler::ConvertDtmfStringToUcs2 exiting,\ - retVal: %d", retVal ) - return retVal; // completed string (all bytes converted) - } - -// ----------------------------------------------------------------------------- -// Converts character from extended BCD to UCS2. -// ----------------------------------------------------------------------------- -// -void CSendDtmfHandler::ConvertDtmfCharacterToUcs2( - const TChar& aExtBcd, - TBool& aEndOfString, - TBool& aDtmfCharacter, - TChar& aUcs2Char ) const - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::ConvertDtmfCharacterToUcs2 calling" ) - - aEndOfString = EFalse; - aDtmfCharacter = ETrue; - - switch ( aExtBcd ) - { - case KBcdZero: - case KBcdOne: - case KBcdTwo: - case KBcdThree: - case KBcdFour: - case KBcdFive: - case KBcdSix: - case KBcdSeven: - case KBcdEight: - case KBcdNine: - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::ConvertDtmfCharacterToUcs2 Digit" ) - aUcs2Char = KUcs2Zero + aExtBcd; - break; - } - - case KBcdStar: - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::ConvertDtmfCharacterToUcs2 KBcdStar" ) - aUcs2Char = KUcs2Star; - break; - } - - case KBcdHash: - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::ConvertDtmfCharacterToUcs2 KBcdHash" ) - aUcs2Char = KUcs2Hash; - break; - } - - case KBcdPause: - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::ConvertDtmfCharacterToUcs2 KBcdPause" ) - aUcs2Char = KUcs2Pause; - break; - } - - case KBcdEnd: - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::ConvertDtmfCharacterToUcs2 KBcdEnd" ) - aEndOfString = ETrue; - break; - } - - case KBcdWild: - case KBcdExpansion: - default: - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::ConvertDtmfCharacterToUcs2 unknown" ) - aDtmfCharacter = EFalse; - } - } - - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::ConvertDtmfCharacterToUcs2 exiting" ) - } - -// ----------------------------------------------------------------------------- -// Handles the result of DTMF sending and sends terminal response. -// ----------------------------------------------------------------------------- -// -void CSendDtmfHandler::HandleResult() - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::HandleResult calling" ) - - // If UI is needed, send DTMF Done event to close any progress bar - if ( iNeedUiSession ) - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::HandleResult NeedUiSession" ) - // To prevent client traffic jamming. - // Send UI event only when client response is received. - if ( !iClientResponseReceived && !iWait.IsStarted() ) - { - LOG( SIMPLE, - "SENDDTMF: CSendDtmfHandler::HandleResult start iwait" ) - iWait.Start(); - } - // No need to send command result since this only removes any - // existing wait notes... - iUtils->NotifyUiEvent( ESatSDtmfEndEvent, ESatEventNone, KErrNone ); - } - - // Raise error granularity back to extended errors - iUtils->MultiModeApi().RaiseErrorGranularity(); - -#ifdef __WINS__ - if ( KErrTimedOut == iDtmfResult ) - { - iDtmfResult = KErrNone; - } -#endif - - LOG2( NORMAL, - "SENDDTMF: CSendDtmfHandler::HandleResult Send DTMF result: %i", - iDtmfResult ) - - switch ( iDtmfResult ) - { - case KErrNone: - { - // No errors in DTMF sending. But cases like user termination and - // icons are handled here. - if ( iNotificationRsp.iSessionTerminatedByUser ) - { - LOG( DETAILED, - "SENDDTMF: CSendDtmfHandler::HandleResult session terminated \ - by user" ) - iSendDtmfRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; - iSendDtmfRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendDtmfRsp.iAdditionalInfo.Zero(); - } - else - { - iSendDtmfRsp.iGeneralResult = RSat::KSuccess; - iSendDtmfRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendDtmfRsp.iAdditionalInfo.Zero(); - - // If command had icon data and was done succesfully, - // report that icon was not shown. - // To be removed and correct handling (i.e. ClientResponse to - // notification is received) for general result - // KSuccessRequestedIconNotDisplayed must be added when icons - // are allowed in this command. - if ( iIconCommand ) - { - LOG( DETAILED, - "SENDDTMF: CSendDtmfHandler::HandleResult iIconCommand \ - true" ) - iSendDtmfRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - } - - break; - } - case KErrCancel: - case KErrEtelNoCarrier: - { - // Problems in communicating with receiving device are handled here - // e.g. call was unexpectedly dropped. - iSendDtmfRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendDtmfRsp.iInfoType = RSat::KMeProblem; - iSendDtmfRsp.iAdditionalInfo.Zero(); - iSendDtmfRsp.iAdditionalInfo.Append( RSat::KNoSpecificMeProblem ); - break; - } - case KErrArgument: - { - // Maximum length of DTMF string reached. - LOG( DETAILED, - "SENDDTMF: CSendDtmfHandler Over maximum DTMF length" ) - iSendDtmfRsp.iGeneralResult = RSat::KErrorRequiredValuesMissing; - iSendDtmfRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendDtmfRsp.iAdditionalInfo.Zero(); - break; - } - default: - { - // By default for other errors. - iSendDtmfRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendDtmfRsp.iInfoType = RSat::KMeProblem; - iSendDtmfRsp.iAdditionalInfo.Zero(); - iSendDtmfRsp.iAdditionalInfo.Append( RSat::KNotInSpeechCall ); - break; - } - } - - // Cancel DTMF sending if it is running. - iDtmfSender->Cancel(); - SendTerminalResponse(); - - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::HandleResult exiting" ) - } - -// ----------------------------------------------------------------------------- -// Sends terminal response. Makes sure that terminal response -// is not send more that once / command. -// ----------------------------------------------------------------------------- -// -void CSendDtmfHandler::SendTerminalResponse() - { - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::SendTerminalResponse calling" ) - - if ( !iTerminalRespSent ) - { - LOG( SIMPLE, - "CSendDtmfHandler::SendTerminalResponse iTerminalRespSent false" ) - iTerminalRespSent = ETrue; - TerminalRsp( RSat::ESendDtmf, iSendDtmfRspPckg ); - } - - LOG( SIMPLE, "SENDDTMF: CSendDtmfHandler::SendTerminalResponse exiting" ) - } - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDtmfCmd/src/csatdtmfsender.cpp --- a/satengine/SatServer/Commands/SendDtmfCmd/src/csatdtmfsender.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ -/* -* Copyright (c) 2007-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: Handles SendDTMF command -* -*/ - - -#include "csatdtmfsender.h" -#include "CSendDtmfHandler.h" -#include "msatmultimodeapi.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatDtmfSender::CSatDtmfSender -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatDtmfSender::CSatDtmfSender( - CSendDtmfHandler& aDtmfHandler, MSatMultiModeApi& aPhone ) : - CActive( EPriorityStandard ), - iDtmfHandler( aDtmfHandler ), - iPhone( aPhone ) - { - LOG( SIMPLE, - "SENDDTMF: CSatDtmfSender::CSatDtmfSender calling - exiting" ) - CActiveScheduler::Add( this ); - } - -// Destructor -CSatDtmfSender::~CSatDtmfSender() - { - LOG( SIMPLE, "SENDDTMF: CSatDtmfSender::~CSatDtmfSender calling" ) - - Cancel(); - - LOG( SIMPLE, "SENDDTMF: CSatDtmfSender::~CSatDtmfSender exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatDtmfSender::SendToneString -// Sends DTMF tones during active, connected voice calls. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatDtmfSender::SendToneString( const TDesC& aTones ) - { - LOG( SIMPLE, "SENDDTMF: CSatDtmfSender::SendToneString calling" ) - - if ( !IsActive() ) - { - LOG( SIMPLE, "SENDDTMF: CSatDtmfSender::SendToneString set active" ) - iPhone.SendDTMFTones( iStatus, aTones ); - SetActive(); - } - - LOG( SIMPLE, "SENDDTMF: CSatDtmfSender::SendToneString exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatDtmfSender::DoCancel -// Cancels the DTMF sending request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatDtmfSender::DoCancel() - { - LOG( SIMPLE, "SENDDTMF: CSatDtmfSender::DoCancel calling" ) - - iPhone.CancelAsyncRequest( EMobilePhoneSendDTMFTones ); - - LOG( SIMPLE, "SENDDTMF: CSatDtmfSender::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatDtmfSender::RunL -// Informs observer about result of DTMF sending. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatDtmfSender::RunL() - { - LOG( SIMPLE, "SENDDTMF: CSatDtmfSender::RunL calling" ) - - iDtmfHandler.SendDtmfComplete( iStatus.Int() ); - - LOG( SIMPLE, "SENDDTMF: CSatDtmfSender::RunL exiting" ) - } - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendDtmfCmd/src/std.cpp --- a/satengine/SatServer/Commands/SendDtmfCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CSendDtmfHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x10202987, CSendDtmfHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/group/SendSsCmd.mmp --- a/satengine/SatServer/Commands/SendSSCmd/group/SendSsCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,64 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Project definition file for project SendSs plug-in -* -*/ - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET SendSsCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x1000A884 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CSendSsHandler.cpp -SOURCE csatsendssadditionalinfohandler.cpp -SOURCE csatsendsshandler.cpp -SOURCE csatsendssrequestcompletehandler.cpp -SOURCE csatsendssbarringnouiobs.cpp -SOURCE csatsendssdivertnouiobs.cpp -SOURCE csatsendsscallwaitingnouiobs.cpp -SOURCE csatsendssclinouiobs.cpp - -START RESOURCE 1000A884.rss -TARGET SendSsCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -// The application domain layer systeminclude is needed as PhoneParser is used -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib -LIBRARY PhoneParser.lib -LIBRARY customAPI.lib // RMmCustomAPI -LIBRARY etel.lib -LIBRARY etelmm.lib -LIBRARY phonesettings.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/group/bld.inf --- a/satengine/SatServer/Commands/SendSSCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project SendSsCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -SendSsCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/inc/CSendSsHandler.h --- a/satengine/SatServer/Commands/SendSSCmd/inc/CSendSsHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,337 +0,0 @@ -/* -* Copyright (c) 2002-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: Proactive SendSs command handler -* -*/ - - -#ifndef CSENDSSHANDLER_H -#define CSENDSSHANDLER_H - -#include - -#include "CSatCommandHandler.h" -#include "SatSTypes.h" - -class MSatUtils; -class CSatSendSsRequestCompleteHandler; -class CSatSendSsAdditionalInfoHandler; -class CPhoneGsmHandlerBase; -class CPhoneGsmParserBase; -class CPhoneGsmParserResult; -class CPhoneGsmOptionContainerBase; - -/** -* Command handler for SendSS command. -* -* @lib SendSSCmd.lib -* @since S60 v3.0 -*/ -class CSendSSHandler : public CSatCommandHandler - { - -public: - - static CSendSSHandler* NewL( MSatUtils* aUtils ); - - virtual ~CSendSSHandler(); - - /** - * Processes the SS Request Complete. - * - * @param aErrCode Result of Ss sending - */ - void DispatchSsRequestComplete( const TInt aErrCode ); - - /** - * Processes the SS aditional info. - * - * @param Addtional info. - */ - void DispatchSsAdditionalInfo( const TDesC& aAdditionalInfo ); - -// from base class MSatCommand - - /** - * From MSatCommand. - * Response from the client - * - */ - void ClientResponse(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler - * Overrides the default implementation. - * - * @param aEvent Identifies the event. - */ - void Event( TInt aEvent ); - -protected: - -// from base class CActive - - /** - * From CActive - * Cancels the usat request. - * - */ - void DoCancel(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler - * Requests the command notification. - * - * @param aStatus Request status - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler - * Precheck before executing the command. - * - * @return TBool indicating command is currently allowed. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler - * Need for ui session. - * - * @return TBool indicating need of ui session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler - * Called when USAT API notifies that command. - * - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. - * Indicates the failure of launching ui client - * - */ - void UiLaunchFailed(); - -private: - - CSendSSHandler(); - - void ConstructL(); - - /** - * Handles the Ss string sending - * - */ - void SendSsStringL(); - - /** - * Handles the result of Ss sending - * - */ - void HandleSendSsResult(); - - /** - * Checks is the command transparent or not - * - * @return Boolean indicating is current command transparent to user - */ - TBool TransparentSsSending(); - - /** - * Sends terminal response, if not yet sent - * - */ - void SendTerminalResponse(); - - /** - * Delay callback function. Called when predefined time - * has passed. Used to wait SendSS AdditionalInfoNotification - * - * @param aPtr Pointer to creator - * @return whether to call function again after an interval - */ - static TInt SSRequestCallback( TAny* aPtr ); - -private: // data - - /** - * SendSSCall command data. - */ - RSat::TSendSsV1 iSendSsData; - - /** - * SendSSCall command package. - */ - RSat::TSendSsV1Pckg iSendSsPckg; - - /** - * Response from client - */ - RSat::TSendSsRspV2 iSendSsRsp; - - /** - * Response package. - */ - RSat::TSendSsRspV2Pckg iSendSsRspPckg; - - /** - * UI Queries and notifications: - * Query command data. - */ - TSatQueryV1 iQueryData; - - /** - * Query package. - */ - TSatQueryV1Pckg iQueryPckg; - - /** - * Query response. - */ - TSatQueryRspV1 iQueryRsp; - - /** - * Query rsp package. - */ - TSatQueryRspV1Pckg iQueryRspPckg; - - /** - * Notification send data - */ - TSatNotificationV1 iNotificationData; - - /** - * Notification package - */ - TSatNotificationV1Pckg iNotificationDataPckg; - - /** - * Notification Response data - */ - TSatNotificationRspV1 iNotificationRsp; - - /** - * Notification Response package - */ - TSatNotificationRspV1Pckg iNotificationRspPckg; - - /** - * Indicates is notification sent - */ - TBool iNotificationSent; - - /** - * Ss specific - */ - TInt iSsResult; - - /** - * Indicates is the result arrived - */ - TBool iRequestCompleteArrived; - - /** - * Indicates is additional info arrived - */ - TBool iAdditionalInfoArrived; - - /** - * Additional info of SS message - */ - TBuf iAdditionalInfo; - - /** - * Ss additional info handler - * Own. - */ - CSatSendSsAdditionalInfoHandler* iAdditionalInfoHandler; - - /** - * Ss request complete handler - * Own. - */ - CSatSendSsRequestCompleteHandler* iRequestCompleteHandler; - - /** - * SS Parser used to process parser result. - * Own. - */ - CPhoneGsmHandlerBase* iPhoneGsmHandlerBase; - - /** - * Ss string parsers - * Own. - */ - CPhoneGsmParserBase* iParser; - - /** - * Ss result - * Own. - */ - CPhoneGsmParserResult* iResult; - - /** - * SS options used to update options. - * Own. - */ - CPhoneGsmOptionContainerBase* iPhoneGsmOptionContainerBase; - - /** - * Indicates is terminal response sent - */ - TBool iTerminalRespSent; - - /** - * Indicates is UI needed - */ - TBool iNeedUiSession; - - /** - * Indicates is Confirm SAT Operations on - */ - TBool iQueryOn; - - /** - * delay timer - * Own. - */ - CPeriodic* iTimer; - - /** - * Indicates wether user accepted or rejected - */ - TBool iUserAccepted; - - /** - * For delayed Ss sendinf - */ - CActiveSchedulerWait iSendWait; - - /** - * Flag to signal that command has icon data - * To be removed when icons are allowed in this command - */ - TBool iIconCommand; - }; - -#endif // CSENDSSHANDLER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/inc/SendSsCmd.rls --- a/satengine/SatServer/Commands/SendSSCmd/inc/SendSsCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project SendSsCmd -* -*/ - - -#ifndef SENDSSCMD_RLS -#define SENDSSCMD_RLS - -rls_string STRING_r_sendsscmd_display_name "SendSs command" -rls_string STRING_r_sendsscmd_default_data "SendSsCmd" -rls_string STRING_r_sendsscmd_opaque_data "" - -#endif // SENDSSCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/inc/csatsendssadditionalinfohandler.h --- a/satengine/SatServer/Commands/SendSSCmd/inc/csatsendssadditionalinfohandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Handler for the SS Additional Info notification -* -*/ - - -#ifndef CSATSENDSSADDITIONALINFOHANDLER_H -#define CSATSENDSSADDITIONALINFOHANDLER_H - -#include -#include - -class CSendSSHandler; - -/** -* This is the handler for the SS Additional Info notification. -* This active objects is registered with Custom ETel Api to receive notifications -* about the SS Additional Info. -* -* @lib SendSsCmd -* @since S60 v3.1 -*/ -class CSatSendSsAdditionalInfoHandler : public CActive - { - -public: - - /** - * Two-phased constructor. - * @param aPhone A reference to the Custom ETel API. - * @param aDispatcher Pointer to Ss handler - * @return a pointer to the newly created active object. - */ - static CSatSendSsAdditionalInfoHandler* NewL( RMmCustomAPI& aPhone, - CSendSSHandler* aDispatcher ); - - /** - * Destructor. - */ - virtual ~CSatSendSsAdditionalInfoHandler(); - - /** - * Starts listening for the Sat command. - */ - void Start(); - -protected: - - /** - * From CActive, handles the request completion. - */ - void RunL(); - - /** - * From CActive, implements the cancel protocol. - */ - void DoCancel(); - -private: // data - - /** - * C++ default constructor. - * @param aPriority An active object priority value. - * @param aDispatcher Pointer to Ss handler - * @param aPhone A reference to the Custom ETel API. - */ - CSatSendSsAdditionalInfoHandler( TInt aPriority, RMmCustomAPI& aPhone, - CSendSSHandler* aDispatcher ); - -private: - - /** - * Reference to the Custom API - */ - RMmCustomAPI& iPhone; - - /** - * Additional information received through Custom API - */ - RMmCustomAPI::TSsAdditionalInfo iSsAdditionalInfo; - - /** - * Pointer to SendSs command handler - */ - CSendSSHandler* iDispatcher; - - }; - -#endif // CSATUISSADDITIONALINFOHANDLER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/inc/csatsendssbarringnouiobs.h --- a/satengine/SatServer/Commands/SendSSCmd/inc/csatsendssbarringnouiobs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Implements MPsetBarringObserver. -* -*/ - - -#ifndef CSATSENDSSBARRINGNOUIOBS_H -#define CSATSENDSSBARRINGNOUIOBS_H - -#include - -/** -* Implements MPsetBarringObserver and gets notifications of the barring process -* -* @lib SendSsCmd -* @since S60 v3.1 -*/ -class CSatSendSsBarringNoUiObs : public CBase, - public MPsetBarringObserver - { -public: - - /** - * C++ default constructor. - */ - CSatSendSsBarringNoUiObs(); - - /** - * Destructor. - */ - ~CSatSendSsBarringNoUiObs(); - - /** - * HandleBarringModeChangedL-function handles mode changed notes. - * @param aType defines what kind of barring program is involved. - * @param aStatus defines the status of the barring program. - * @param aPlural Plural notes should be used. - */ - void HandleBarringModeChangedL( TBarringProgram aType, - TBarringStatus aStatus, TBool aPlural ); - - /** - * HandleBarringModeStatusL-function handles mode status notes. - * @param aBsc defines what kind of basic service groups are involved. - * @param aStatus defines the status of the barring program. - */ - void HandleBarringModeStatusL( - TUint8 aBsc[KPSetNumberOfBsc], TBarringStatus aStatus ); - - /** - * HandleBarringErrorL-function handles errors in call barring requests. - * @param aReason is the reason for error. - */ - void HandleBarringErrorL( TInt aReason ); - - /** - * HandleCBRequestingL-function handles requesting notes. - * @param aOngoing defines whether or not there is a request going on. - * @param aInterrupted if ETrue, means that notemaster should be - * immediately deleted. - */ - void HandleCBRequestingL( TBool aOngoing, TBool aInterrupted ); - - /** - * CbPasswordChangedL-function handles notes relating to cb password - * change requests. - * @param aSuccess defines whether or not the change request was successfull. - */ - void CbPasswordChangedL( TBool aSuccess ); - - /** - * SetEngineContact-function is used to - * @param aEngineContact is a connection to the engine. - */ - void SetEngineContact( MPsetCallBarring* aBarringEngine ); - }; - -#endif // CSATSENDSSBARRINGNOUIOBS_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/inc/csatsendsscallwaitingnouiobs.h --- a/satengine/SatServer/Commands/SendSSCmd/inc/csatsendsscallwaitingnouiobs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Call Waiting observer -* -*/ - - -#ifndef CSATSENDSSCALLWAITINGNOUIOBS_H -#define CSATSENDSSCALLWAITINGNOUIOBS_H - -#include - -/** -* Implements MPsetCallWaitingObserver and gets notifications -* of the call waiting process. -* -* @lib SendSsCmd -* @since S60 v3.1 -*/ -class CSatSendSsCallWaitingNoUiObs : public CBase, - public MPsetCallWaitingObserver - { -public: - - /** - * C++ default constructor. - */ - CSatSendSsCallWaitingNoUiObs(); - - /** - * Destructor. - */ - ~CSatSendSsCallWaitingNoUiObs(); - - /** - * HandleCallWaitingGetStatusL-function - * @param aStatus is the query result. - */ - void HandleCallWaitingGetStatusL( - MPsetCallWaiting::TGetCallWaitingStatus aStatus, - TUint8 aBsc[KPSetNumberOfBsc] ); - - /** - * HandleCallWaitingChangedL-function - * @param aSetting is the setting that was changed. - * @param aResult is the result of the action. - */ - void HandleCallWaitingChangedL( - MPsetCallWaiting::TSetCallWaiting aSetting, - TInt aResult ); - - /** - * HandleRequestingL-function handles requesting notes. - * @param aOngoing defines whether or not there is a request going on. - * @param aInterrupted if ETrue deletes immediately CPsuiNoteMaster-object. - */ - void HandleCWRequestingL( TBool aOngoing, TBool aInterrupted ); - - /** - * This function handles errors in call waiting requests. - * @param aReason is the reason for error. - */ - void HandleCWErrorL( TInt aReason ); - - /** - * SetEngineContact-function - * @param aEngineContact is a connection to the engine. - */ - void SetEngineContact( MPsetCallWaiting& aEngineContact ); - }; - -#endif //CSATSENDSSCALLWAITINGNOUIOBS_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/inc/csatsendssclinouiobs.h --- a/satengine/SatServer/Commands/SendSSCmd/inc/csatsendssclinouiobs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: Responsible for handling notes related to CLIR, CLIP, - COLR and COLP. -* -*/ - - -#ifndef CSATSENDSSCLINOUIOBS_H -#define CSATSENDSSCLINOUIOBS_H - -#include - -/** -* Implements MPsetCliObserver and is responsible for handling notes related -* to CLIR, CLIP, COLR and COLP. -* -* @lib SendSsCmd -* @since S60 v3.1 -*/ -class CSatSendSsCliNoUiObs : public CBase, public MPsetCliObserver - { -public: - - /** - * C++ default constructor. - */ - CSatSendSsCliNoUiObs(); - - /** - * Destructor. - */ - ~CSatSendSsCliNoUiObs(); - - /** - * CliInformation-method takes the correct type of cli - * and passes it on to iNote - * @param aType defines the type and status of cli info. - */ - void CliInformationL( TPsuiCli aType ); - - /** - * HandleCliRequestingL-function handles requesting notes. - * @param aOngoing defines whether or not there is a request going on. - * @param aInterrupted if ETrue, means that notemaster should be - * immediately deleted. - */ - void HandleCliRequestingL( TBool aOngoing, TBool aInterrupted ); - - /** - * SetEngineContact-function... - * @param aEngine reference to the PS engine - */ - void SetEngineContact( MPsetCli* aEngine ); - - /* - * HandleCliStatusL-function shows the status of Cli if requested. - * @param aBsc list of basic service groups - * @param aMode status of CLI - */ - void HandleCliStatusL( TUint8 aBsc[KPSetNumberOfBsc], TPsuiCli aMode ); - - /* - * HandleCnapStatusL-function shows the status of Cnap if requested. - * @param aStatus status of Cnap - */ - void HandleCnapStatusL( TInt aStatus ); - - /** - * Handles errors. - * @param aError error code. - */ - void HandleCliErrorL( TInt aError ); - }; - -#endif // CSATSENDSSCLINOUIOBS_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/inc/csatsendssdivertnouiobs.h --- a/satengine/SatServer/Commands/SendSSCmd/inc/csatsendssdivertnouiobs.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Implements the MPsetDivertObserver observer. -* -*/ - - -#ifndef CSATSENDSSDIVERTNOUIOBS_H -#define CSATSENDSSDIVERTNOUIOBS_H - -#include - -/** -* Implements MPsetDivertObserver and gets notifications of -* the diverting process -* -* @lib SendSsCmd -* @since S60 v3.1 -*/ -class CSatSendSsDivertNoUiObs : public CBase, - public MPsetDivertObserver - { -public: - - /** - * C++ default constructor. - */ - CSatSendSsDivertNoUiObs(); - - /** - * Destructor. - */ - ~CSatSendSsDivertNoUiObs(); - - /** - * From MPsetDivertObserver, handles diverting changed. - * @param aSetting identifies the cf setting. - * @param aPlural indicates that operation affected several bscs. - */ - void HandleDivertingChangedL( - const TCallDivertSetting& aSetting, - TBool aPlural ); - - /** - * From MPsetDivertObserver, handles diverting status. - * @param aBsc array of Bscs - * @param aSetting identifies the cf setting. - * @param aPlural indicates that operation affects several bscs. - */ - void HandleDivertingStatusL( - CMobilePhoneCFList& aSetting, - TBool aPlural ); - - /** - * From MPsetDivertObserver, handles diverting error. - * @param aReason identifies the reason for error. - */ - void HandleDivertingErrorL( TInt aReason ); - - /** - * HandleCFRequestingL-function handles requesting notes. - * @param aOngoing defines whether or not there is a request going on. - * @param aInterrupted if ETrue, means that notemaster should be - * immediately deleted. - */ - void HandleCFRequestingL( TBool aOngoing, TBool aInterrupted ); - - /** - * SetEngineContact-function sets engine contact for observer - * @param aDivertEngine is the contact. - */ - void SetEngineContact( MPsetCallDiverting* aDivertEngine ); - }; - -#endif //CSATSENDSSDIVERTNOUIOBS_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/inc/csatsendsshandler.h --- a/satengine/SatServer/Commands/SendSSCmd/inc/csatsendsshandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,221 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Process forwarding procedures. -* -*/ - - -#ifndef CSATSENDSSHANDLER_H -#define CSATSENDSSHANDLER_H - -#include -#include -#include -#include -#include -#include -#include -#include - -class CSatSendSsBarringNoUiObs; -class CSatSendSsCliNoUiObs; -class CSatSendSsCallWaitingNoUiObs; -class CSatSendSsDivertNoUiObs; - -/** -* Handles process forwarding procedures. -* -* @lib SendSsCmd -* @since S60 v3.1 -*/ -class CSatSendSsHandler : public CPhoneGsmSsHandler, - public MPsetRequestObserver - { - -public: - - /** - * Destructor. - */ - ~CSatSendSsHandler(); - - /** - * From CPhoneGsmSsHandler, Process forwarding procedures. - * - * If a parameter is not allowed for a procedure, - * then it is empty. If a parameter is not explicitly given, - * then it is empty. If a parameter is present, then it can - * be asumed to contain appropriate values. - * - * @param aAction It is action. - * @param aForwarding It contains forwarding procedure. - * @param aNumber It is directory number. - * @param aBasicCode It is basic service code. - * @param aTimer It is timer. - */ - void ProcessForwardingL( - TAction aAction, - TForwardingProcedure aForwarding, - const TDesC& aNumber, - const TDesC& aBasicCode, - const TDesC& aTimer ); - - /** - * From CPhoneGsmSsHandler, Process barring procedures. - * - * See comments for forwarding, they apply also in here. - * - * @param aAction It is action. - * @param aBarring It contains barring procedure. - * @param aPassword It should be barring password, if required. - * @param aBasicCode It is basic service code. - */ - void ProcessBarringL( - TAction aAction, - TBarringProcedure aBarring, - const TDesC& aPassword, - const TDesC& aBasicCode ); - - /** - * From CPhoneGsmSsHandler, Process password change - * - * @param aPassword It is password procedure. - * @param aOldPassword It should be old password. - * @param aNewPassword1 It is new password. - * @param aNewPassword2 It is new password. - */ - void ProcessPasswordChangeL( - TPasswordProcedure aPassword, - const TDesC& aOldPassword, - const TDesC& aNewPassword1, - const TDesC& aNewPassword2 ); - - /** - * From CPhoneGsmSsHandler, Process waiting. - * - * @param aAction It is action. - * @param aBasicCode It is basic service code. - */ - void ProcessWaitingL( - TAction aAction, - const TDesC& aBasicCode ); - - /** - * From CPhoneGsmSsHandler, Process calling line - * identification presentation status. - */ - void ProcessClipStatusL(); - - /** - * From CPhoneGsmSsHandler, Process calling line - * idnetification restriction status. - */ - void ProcessClirStatusL(); - - /** - * From CPhoneGsmSsHandler, Process connected line - * presentation status. - */ - void ProcessColpStatusL(); - - /** - * From CPhoneGsmSsHandler, Process connected line - * restriction status. - */ - void ProcessColrStatusL(); - - /** - * From CPhoneGsmSsHandler, Processes result - */ - void ProcessCnapStatusL(); - - /** - * From MPsetRequestObs, called when request is completed - * so that also ui browsing is ended - */ - void RequestComplete(); - - /** - * From MPsetRequestObs, called when request status is changed - * so that also ui browsing is ended - */ - void RequestStatusChanged( TInt aNewStatus ); - - /** - * cancel function cancels current request - */ - void Cancel(); - -private: - - /** - * Changes parameter to basic service code - */ - TBasicServiceGroups ChangeToBsc( const TDesC& aBasicCode ) const; - - /** - * Connects class to the phonesettings - */ - void ConnectToSsEngineL(); - -private: // Data - - /** - * Pointer to PhoneSettings - */ - CPsetContainer* iSettings; - - /** - * Call waiting handler in Phone Settings - */ - CPsetCallWaiting* iWaiting; - - /** - * Call waiting observer - */ - CSatSendSsCallWaitingNoUiObs* iSatCwObserver; - - /** - * Call barring handler in Phone Settings - */ - CPsetCallBarring* iBarring; - - /** - * Call barring observer - */ - CSatSendSsBarringNoUiObs* iSatCbObserver; - - /** - * Cli handler in Phone Settings - */ - CPsetCli* iCli; - - /** - * Cli observer - */ - CSatSendSsCliNoUiObs* iSatCliObserver; - - /** - * Call diverting handler in Phone Settings - */ - CPsetCallDiverting* iDivert; - - /** - * Call diverting observer - */ - CSatSendSsDivertNoUiObs* iSatCfObserver; - - }; - -#endif // CSATSENDSSHANDLER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/inc/csatsendssrequestcompletehandler.h --- a/satengine/SatServer/Commands/SendSSCmd/inc/csatsendssrequestcompletehandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Handler for the SS Request Complete notification. -* -*/ - - -#ifndef CSATSENDSSREQUESTCOMPLETEHANDLER_H -#define CSATSENDSSREQUESTCOMPLETEHANDLER_H - -#include -#include - -class CSendSSHandler; - -/** -* This is the handler for the SS Request Complete notification. -* This active objects is registered with Custom ETel Api to receive -* notifications about the SS Request Complete. -* -* @lib SendSsCmd -* @since S60 v3.1 -*/ - -class CSatSendSsRequestCompleteHandler : public CActive - { - -public: - - /** - * Two-phased constructor. - * @param aPhone A reference to the Custom ETel API. - * @param aDispatcher Pointer to Ss handler - * @return a pointer to the newly created active object. - */ - static CSatSendSsRequestCompleteHandler* NewL( RMmCustomAPI& aPhone, - CSendSSHandler* aDispatcher ); - - /** - * Destructor. - */ - virtual ~CSatSendSsRequestCompleteHandler(); - - /** - * Starts listening for the SS Request Complete notification. - */ - void Start(); - -protected: - - /** - * From CActive, handles the request completion. - */ - void RunL(); - - /** - * From CActive, implements the cancel protocol. - */ - void DoCancel(); - -private: - - /** - * C++ default constructor. - * @param aPriority An active object priority value. - * @param aPhone A reference to the Custom ETel API. - */ - CSatSendSsRequestCompleteHandler( TInt aPriority, RMmCustomAPI& aPhone, - CSendSSHandler* aDispatcher ); - -private: // Data - - /** - * Reference to the Custom API - */ - RMmCustomAPI& iPhone; - - /** - * Result of the Ss sending - */ - TInt iSsStatus; - - /** - * Pointer to SendSs command handler - */ - CSendSSHandler* iDispatcher; - }; - -#endif // CSATSENDSSREQUESTCOMPLETEHANDLER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/src/1000A884.rss --- a/satengine/SatServer/Commands/SendSSCmd/src/1000A884.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1000 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "SendSsCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// SendSSCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO SendSSCmdInfo - { - dll_uid = 0x1000a884; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x1000a885; - version_no = 1; - display_name = STRING_r_sendsscmd_display_name; - default_data = STRING_r_sendsscmd_default_data; - opaque_data = STRING_r_sendsscmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/src/CSendSsHandler.cpp --- a/satengine/SatServer/Commands/SendSSCmd/src/CSendSsHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1002 +0,0 @@ -/* -* Copyright (c) 2002-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: Handles SendSS command -* -*/ - - -#include -#include -#include -#include - -#include "MSatSystemState.h" -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CSendSsHandler.h" -#include "SatLog.h" -#include "csatsendssrequestcompletehandler.h" -#include "csatsendssadditionalinfohandler.h" -#include "csatsendsshandler.h" - -// CustomAPI returns KCustomApiSsGsmActive=0x01 -const TInt KSsGsmActiveSuccess = 0x01; -// CustomAPI returns KCustomApiSsGsmRegistered=0x02 -const TInt KSsGsmRegistered = 0x02; -// CustomAPI returns KCustomApiSsGsmProvisioned=0x04 -const TInt KSsGsmProvisioned = 0x04; -// CustomAPI returns KCustomApiSsGsmQuiescent=0x08 -const TInt KSsGsmQuiescent = 0x08; -// CustomAPI returns SsServiceFailedResp=0xFFFF -const TInt KSsServiceFailed = 0xFFFF; -// Error code for NetworkFailure = 0xFFFE -const TInt KSsNetworkError = 0xFFFE; -//interval wait for ussd send -const TInt KCallbackInterval = 1000000; -// Interval wait for additional info -const TInt KSSRequestCallbackInterval = 5000000; -// Ss OperationCode value. -const TInt KSsOperationShowFDNLIst = 0x05; -const TInt KSsOperationPasswordRegistration = 0x06; -// Ss error -const TInt KSsSimAtkCcRejected = 0x13; -const TInt KTwo = 2; - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSendSSHandler* CSendSSHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::NewL calling" ) - - CSendSSHandler* self = new( ELeave ) CSendSSHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SENDSS: CSendSSHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -// -CSendSSHandler::~CSendSSHandler() - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::~CSendSSHandler calling" ) - - Cancel(); - // Destroy all objects. - delete iAdditionalInfoHandler; - delete iRequestCompleteHandler; - delete iPhoneGsmHandlerBase; - delete iParser; - delete iResult; - delete iPhoneGsmOptionContainerBase; - if ( iTimer ) - { - iTimer->Cancel(); - delete iTimer; - iTimer = NULL; - } - - LOG( SIMPLE, "SENDSS: CSendSSHandler::~CSendSSHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// Processes the SS Request Complete. -// ----------------------------------------------------------------------------- -// -void CSendSSHandler::DispatchSsRequestComplete( TInt aErrCode ) - { - LOG2( SIMPLE, "SENDSS: CSendSSHandler::DispatchSsRequestComplete \ - called aErrCode: %i", aErrCode ) - - if ( ( KSsGsmActiveSuccess == aErrCode ) || - ( KSsGsmRegistered == aErrCode ) || - ( KSsGsmProvisioned == aErrCode ) || - ( KSsGsmQuiescent == aErrCode ) ) - { - iSsResult = KErrNone; - } - else - { - iSsResult = aErrCode; - } - - // Store result for later use - iSsResult = aErrCode; - iRequestCompleteArrived = ETrue; - - //is additional info received - if ( iAdditionalInfoArrived ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::DispatchSsRequestComplete \ - iAdditionalInfoArrived true" ) - HandleSendSsResult(); - } - else //if not 5 second timer to get additional info - { - if ( !iTimer ) - { - LOG( SIMPLE, - "CSendSSHandler::DispatchSsRequestComplete iTimer false" ) - TRAPD( err, iTimer = CPeriodic::NewL( CActive::EPriorityStandard ); ); - - LOG2( NORMAL, "SENDSS: CSendSSHandler::DispatchSsRequestComplete \ - CPeriodic::NewL err: %d ", err ) - if ( KErrNone == err ) - { - iTimer->Start( KSSRequestCallbackInterval, - KCallbackInterval, TCallBack( SSRequestCallback, this ) ); - } - } - } - - LOG( SIMPLE, "CSendSSHandler::DispatchSsRequestComplete exit" ) - } - -// ----------------------------------------------------------------------------- -// Processes the SS aditional info. -// ----------------------------------------------------------------------------- -// -void CSendSSHandler::DispatchSsAdditionalInfo( - const TDesC& aAdditionalInfo ) - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::DispatchSsAdditionalInfo called" ) - - iAdditionalInfoArrived = ETrue; - iAdditionalInfo.Copy( aAdditionalInfo ); - LOG2( SIMPLE, "SENDSS: CSendSSHandler::DispatchSsAdditionalInfo length of\ - aAdditionalInfo: %i", aAdditionalInfo.Length()) - - if ( aAdditionalInfo.Length() > 0 ) - { - // This is special case due tsy will not send request complete. - if ( ( ( KSsOperationPasswordRegistration == aAdditionalInfo[0] ) || - ( KSsOperationShowFDNLIst == aAdditionalInfo[0] ) ) && - ( !iRequestCompleteArrived ) ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::DispatchSsAdditionalInfo special case" ) - iSsResult = KErrNone; - iRequestCompleteArrived = ETrue; - } - } - - //is requestcompletenotification reveived - if ( iRequestCompleteArrived ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::DispatchSsAdditionalInfo \ - iRequestCompleteArrived true" ) - HandleSendSsResult(); - } - else //if not 5 second timer to get requestcompletenote - { - if ( !iTimer ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::DispatchSsAdditionalInfo iTimer false" ) - TRAPD( err, iTimer = CPeriodic::NewL( CActive::EPriorityStandard ); ); - - LOG2( NORMAL, "SENDSS: CSendSSHandler::DispatchSsAdditionalInfo \ - CPeriodic::NewL err: %d ", err ) - if ( KErrNone == err ) - { - iTimer->Start( KSSRequestCallbackInterval, - KCallbackInterval, TCallBack( SSRequestCallback, this ) ); - } - } - } - - LOG( SIMPLE, "SENDSS: CSendSSHandler::DispatchSsAdditionalInfo exit" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatCommand. -// Response from the client. -// ----------------------------------------------------------------------------- -// -void CSendSSHandler::ClientResponse() - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::ClientResponse calling" ) - - if ( iQueryRsp.iAccepted && !iNotificationSent ) - { - LOG( NORMAL, - "SENDSS: CSendSSHandler::ClientResponse Sending notification" ) - iNotificationSent = ETrue; - - // Register service request - TRAP_IGNORE( iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, - this ) ) - - // Send notification - iUtils->SatUiHandler().UiSession()->SendCommand( - &iNotificationDataPckg, - &iNotificationRspPckg, - ESatSProactiveNotification ); - } - else if ( iNotificationRsp.iAccepted && iNotificationSent ) - { - LOG( NORMAL, - "SENDSS: CSendSSHandler::ClientResponse Notification response" ) - } - else // User reject - { - iUserAccepted = EFalse; - // Cannot return KPCmdNotAcceptedByUser (ETSI 11.14 v8.3.0 p65) - iSendSsRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendSsRsp.iInfoType = RSat::KMeProblem; - iSendSsRsp.iAdditionalInfo.SetLength( 1 ); - iSendSsRsp.iAdditionalInfo[0] = RSat::KScreenBusy; - - if ( iQueryRsp.iSessionTerminatedByUser ) - { - LOG( NORMAL, "SENDSS: CSendSSHandler::ClientResponse \ - ESessionTerminatedByUser" ) - // Notify sim session end command that next sim session end - // should close the ui session. - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - - SendTerminalResponse(); - } - - // Release Wait - if ( iSendWait.IsStarted() ) - { - LOG( NORMAL, "SENDSS: CSendSSHandler::ClientResponse stop iSendWait" ) - iSendWait.AsyncStop(); - } - - LOG( SIMPLE, "SENDSS: CSendSSHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Waits for indication of user rejection -// ----------------------------------------------------------------------------- -// -void CSendSSHandler::Event( TInt aEvent ) - { - LOG2( SIMPLE, "SENDSS: CSendSSHandler::Event calling, aEvent:%d", aEvent ) - - switch ( aEvent ) - { - case MSatUtils::ECancelledUsingEndKey: - { - // Notify sim session end command that next sim session end - // should close the ui session. - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - // This event is handled as above, but notification must be done. - } - //lint -fallthrough intended here - - case MSatUtils::ECommandCancelled: - { - // Check is there a confirmation on screen - if ( !iQueryOn || iNotificationSent ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::Event iNotificationSent true" ) - // Cancel notification requests - iRequestCompleteHandler->Cancel(); - iAdditionalInfoHandler->Cancel(); - - iSendSsRsp.iGeneralResult = RSat::KUssdTransactionTerminatedByUser; - iSendSsRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendSsRsp.iAdditionalInfo.Zero(); - SendTerminalResponse(); - } - break; - } - - default: - { - // Move event to base class - CSatCommandHandler::Event( aEvent ); - } - } - - LOG( SIMPLE, "SENDSS: CSendSSHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CSendSSHandler::DoCancel() - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifySendSsCancel(); - - LOG( SIMPLE, "SENDSS: CSendSSHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Requests the command notification. -// ----------------------------------------------------------------------------- -// -void CSendSSHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iSendSsData) RSat::TSendSsV1(); - iQueryOn = EFalse; - iQueryRsp.iAccepted = EFalse; // default - iNotificationRsp.iAccepted = EFalse; - iSendSsRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; // default - iSendSsRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendSsRsp.iAdditionalInfo.Zero(); - - iUtils->USatAPI().NotifySendSs( aStatus, iSendSsPckg ); - - // Unregister from events - iUtils->UnregisterEvent( this, MSatUtils::ECommandCancelled ); - iUtils->UnregisterEvent( this, MSatUtils::ECancelledUsingEndKey ); - - LOG( SIMPLE, "SENDSS: CSendSSHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Precheck before executing the command. -// ----------------------------------------------------------------------------- -// -TBool CSendSSHandler::CommandAllowed() - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::CommandAllowed calling" ) - - // Allow this command to send terminal response - iTerminalRespSent = EFalse; - RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus( - iUtils->SystemState().GetNetworkRegistrationStatus() ); - - TBool commandAllowed( ETrue ); - - // icon without alpha id - if ( ( RSat::EAlphaIdProvided != iSendSsData.iAlphaId.iStatus ) && - ( RSat::ESelfExplanatory == iSendSsData.iIconId.iQualifier || - RSat::ENotSelfExplanatory == iSendSsData.iIconId.iQualifier ) ) - { - iSendSsRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iSendSsRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendSsRsp.iAdditionalInfo.Zero(); - commandAllowed = EFalse; - LOG( SIMPLE, - "SENDSS: CSendSSHandler::CommandAllowed icon without alpha id" ) - } - else if ( ( RMobilePhone::ERegisteredOnHomeNetwork != registrationStatus ) && - ( RMobilePhone::ERegisteredRoaming != registrationStatus ) ) - { - iSendSsRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendSsRsp.iInfoType = RSat::KMeProblem; - iSendSsRsp.iAdditionalInfo.SetLength( 1 ); - iSendSsRsp.iAdditionalInfo[0] = RSat::KNoService; - commandAllowed = EFalse; - LOG( SIMPLE, - "SENDSS: CSendSSHandler::CommandAllowed no service" ) - } - // Set icon command flag whether icon data was received and set qualifier - // to no icon id - // To be removed when icons are allowed in this command - else if ( ( RSat::ESelfExplanatory == - iSendSsData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iSendSsData.iIconId.iQualifier ) ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::CommandAllowed ENoIconId" ) - iIconCommand = ETrue; - iSendSsData.iIconId.iQualifier = RSat::ENoIconId; - } - else - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::CommandAllowed others" ) - iIconCommand = EFalse; - } - - if ( !commandAllowed ) - { - SendTerminalResponse(); - LOG( SIMPLE, "SENDSS: CSendSSHandler::CommandAllowed not allowed" ) - } - - LOG( SIMPLE, "SENDSS: CSendSSHandler::CommandAllowed exiting" ) - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Answers for need of UI session. -// ----------------------------------------------------------------------------- -// -TBool CSendSSHandler::NeedUiSession() - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::NeedUiSession calling" ) - - iNeedUiSession = !TransparentSsSending(); - - // Notify Cover UI if it's supported - if ( iNeedUiSession && iUtils->CoverUiSupported() ) - { - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::ESendSs; - medEventData.iAlphaId = iSendSsData.iAlphaId; - if ( iUtils->SystemState().IsConfirmSatOperationsOn() ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::NeedUiSession KSatLongDuration" ) - medEventData.iDuration.iNumOfUnits = KSatLongDuration; - } - else - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::NeedUiSession KSatDefaultDuration" ) - medEventData.iDuration.iNumOfUnits = KSatDefaultDuration; - } - medEventData.iDuration.iTimeUnit = RSat::ESeconds; - medEventData.iIconID = iSendSsData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - - LOG2( SIMPLE, "SENDSS: CSendSSHandler::NeedUiSession exiting,\ - iNeedUiSession: %d", iNeedUiSession ) - return iNeedUiSession; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when USAT API notifies that command. -// ----------------------------------------------------------------------------- -// -void CSendSSHandler::HandleCommand() - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::HandleCommand calling" ) - - iUtils->NotifyEvent( MSatUtils::ESendSsExecuting ); - - // This is true, by default - iUserAccepted = ETrue; - - if ( iNeedUiSession ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::HandleCommand iNeedUiSession true" ) - TRAP_IGNORE( - // Register to listen user cancel events: - // Cancel key event from dialog - iUtils->RegisterL( this, MSatUtils::ECommandCancelled ); - // End key from dialog - iUtils->RegisterL( this, MSatUtils::ECancelledUsingEndKey ) ) - - // Build Qyery and Notify packages - // Has to be casted to TInt before casting to TSatIconQualifier, because - // GCC warns about the direct cast. - const struct TSatIconId iconId = { iSendSsData.iIconId.iIdentifier, - static_cast( - static_cast( iSendSsData.iIconId.iQualifier ) ) }; - - if ( RSat::EAlphaIdNotPresent == iSendSsData.iAlphaId.iStatus ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::HandleCommand EAlphaIdNotPresent" ) - iQueryData.iAlphaIdStatus = ESatAlphaIdNotProvided; - iNotificationData.iAlphaIdStatus = ESatAlphaIdNotProvided; - } - else if ( RSat::EAlphaIdProvided == iSendSsData.iAlphaId.iStatus ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::HandleCommand EAlphaIdProvided" ) - iQueryData.iAlphaIdStatus = ESatAlphaIdNotNull; - iNotificationData.iAlphaIdStatus = ESatAlphaIdNotNull; - } - else - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::HandleCommand ESatAlphaIdNull" ) - iQueryData.iAlphaIdStatus = ESatAlphaIdNull; - iNotificationData.iAlphaIdStatus = ESatAlphaIdNull; - } - - iQueryData.iCommand = ESatSSendSsQuery; - iQueryData.iQueryText = iSendSsData.iAlphaId.iAlphaId; - iQueryData.iIconId = iconId; - - iNotificationSent = EFalse; - iNotificationData.iCommand = ESatSSendSsNotify; - iNotificationData.iText = iSendSsData.iAlphaId.iAlphaId; - iNotificationData.iIconId = iconId; - - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - - // Send either query or notification - if ( iQueryOn ) - { - LOG( NORMAL, - "SENDSS: CSendSSHandler::HandleCommand Sending Query" ) - iNotificationSent = EFalse; - // Register service request - TRAP_IGNORE( iUtils->RegisterServiceRequestL( - ESatSProactiveQuery, - ESatSProactiveQueryResponse, - this ) ) - - // Send query - uiSession->SendCommand( - &iQueryPckg, - &iQueryRspPckg, - ESatSProactiveQuery ); - } - else - { - LOG( NORMAL, - "SENDSS: CSendSSHandler::HandleCommand Sending notification" ) - iNotificationSent = ETrue; - - // Register service request - TRAP_IGNORE( iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, - this ) ) - - // Send notification - uiSession->SendCommand( - &iNotificationDataPckg, - &iNotificationRspPckg, - ESatSProactiveNotification ); - } - - if ( !iSendWait.IsStarted() ) - { - LOG( NORMAL, - "SENDSS: CSendSSHandler::HandleCommand start iSendWait" ) - // Start waiting response from the user - iSendWait.Start(); - } - } - - if ( iUserAccepted ) - { - LOG( NORMAL, - "SENDSS: CSendSSHandler::HandleCommand iUserAccepted true" ) - // Ready to send Ss string - TRAPD( err, SendSsStringL() ) - if ( KErrNone != err ) - { - LOG2( NORMAL, " Ss sending failed: %i", err ) - iSendSsRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendSsRsp.iInfoType = RSat::KMeProblem; - iSendSsRsp.iAdditionalInfo.SetLength( 1 ); - iSendSsRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - SendTerminalResponse(); - } - } - - LOG( SIMPLE, "SENDSS: CSendSSHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Indicates the failure of launching ui client -// ----------------------------------------------------------------------------- -// -void CSendSSHandler::UiLaunchFailed() - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::UiLaunchFailed calling" ) - - iSendSsRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendSsRsp.iInfoType = RSat::KMeProblem; - iSendSsRsp.iAdditionalInfo.SetLength( 1 ); - iSendSsRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - SendTerminalResponse(); - - LOG( SIMPLE, "SENDSS: CSendSSHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized. -CSendSSHandler::CSendSSHandler() : - CSatCommandHandler(), - iSendSsData(), - iSendSsPckg( iSendSsData ), - iSendSsRsp(), - iSendSsRspPckg( iSendSsRsp ), - iQueryData(), - iQueryPckg( iQueryData ), - iQueryRsp(), - iQueryRspPckg( iQueryRsp ), - iNotificationData(), - iNotificationDataPckg( iNotificationData ), - iNotificationRsp(), - iNotificationRspPckg( iNotificationRsp ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::CSendSSHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSendSSHandler::ConstructL() - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::ConstructL calling" ) - - // Create additional info and request complete handlers - iAdditionalInfoHandler = CSatSendSsAdditionalInfoHandler::NewL( - *iUtils->CustomApi(), this ); - iRequestCompleteHandler = CSatSendSsRequestCompleteHandler::NewL( - *iUtils->CustomApi(), this ); - iPhoneGsmHandlerBase = new ( ELeave ) CSatSendSsHandler(); - - LOG( SIMPLE, "SENDSS: CSendSSHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// Handles the Ss string sending. -// ----------------------------------------------------------------------------- -// -void CSendSSHandler::SendSsStringL() - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::SendSsString calling" ) - - // Set default values - iSsResult = KErrArgument; - iRequestCompleteArrived = EFalse; - iAdditionalInfoArrived = EFalse; - - //Parsing and interpreting - TBuf sendMessage; - sendMessage.Copy( iSendSsData.iSsString.iSsString ); - - // CPhoneGsmOptionContainerBase cannot be deleted before SendSsString - // complete, so the object is designed as a member in order that it can be - // deleted asychronously. - iParser = PhoneGsmParser::CreateParserL(); - iResult = PhoneGsmParser::CreateResultL(); - iPhoneGsmOptionContainerBase = PhoneGsmParser::CreateOptionContainerL(); - - //Update options - iPhoneGsmOptionContainerBase->SetOptionStatus( KPhoneOptionSend, ETrue ); - - //Parsing and interpreting - - //Parse string - if ( iParser->ParseL( sendMessage, *iResult, *iPhoneGsmOptionContainerBase ) ) - { - if ( PhoneGsmParser::DetermineContentType( *iResult ) == - PhoneGsmParser::EContentSupplementaryService ) - { - - if ( !iRequestCompleteHandler->IsActive() ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::SendSsString start \ - iRequestCompleteHandler" ) - iRequestCompleteHandler->Start(); - } - - if ( !iAdditionalInfoHandler->IsActive() ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::SendSsString start \ - iAdditionalInfoHandler" ) - iAdditionalInfoHandler->Start(); - } - - // Make a Default Additional Info here, in case additional - // info field won't be received - // the field is a dummy - iAdditionalInfo.SetLength( 1 ); - iAdditionalInfo[0] = 0x00; - - LOG( SIMPLE, - "SENDSS: CSendSSHandler::SendSsString Processing Ss" ) - - // CPhoneGsmHandlerBase lives in all lifetime of - // CSendSSHandler. So, it designed as a member. - iPhoneGsmHandlerBase->ProcessL( *iResult ); - } - else - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::SendSsString KCmdDataNotUnderstood" ) - iSendSsRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iSendSsRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendSsRsp.iAdditionalInfo.Zero(); - - // Send terminal response - SendTerminalResponse(); - } - } - - LOG( SIMPLE, "SENDSS: CSendSSHandler::SendSsString exiting" ) - } - -// ----------------------------------------------------------------------------- -// Handles the result of Ss sending. -// ----------------------------------------------------------------------------- -// -void CSendSSHandler::HandleSendSsResult() - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::HandleSendSsResult calling" ) - LOG2( SIMPLE, - "SENDSS: CSendSSHandler::HandleSendSsResult iSsResult: %i", iSsResult ) - // Remove progress bar from the screen - if ( KSsServiceFailed == iSsResult || KSsNetworkError == iSsResult ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::HandleSendSsResult Clearing Progress bar.." ) - iUtils->NotifyUiEvent( ESatSsEndEvent, ESatEventFailure, iSsResult ); - // Send Error notification, but only if Alpha ID was provided - if ( ESatAlphaIdNotNull == iNotificationData.iAlphaIdStatus ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::HandleSendSsResult Sending Ss note: \ - Not Done" ) - iUtils->NotifyUiEvent( ESatSsErrorEvent, ESatEventFailure, - iSsResult ); - } - } - else if ( iNotificationSent ) - { - // Remove the UI dialog - LOG( SIMPLE, - "SENDSS: CSendSSHandler::HandleSendSsResult iNotificationSent true" ) - iUtils->NotifyUiEvent( ESatSsEndEvent, ESatEventCompleteOk, iSsResult ); - } - - switch ( iSsResult ) - { - case KErrGeneral: // Command not processed - { - iSendSsRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendSsRsp.iInfoType = RSat::KMeProblem; - iSendSsRsp.iAdditionalInfo.SetLength( 1 ); - iSendSsRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - break; - } - - case KErrArgument: - { - iSendSsRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iSendSsRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendSsRsp.iAdditionalInfo.Zero(); - break; - } - - case KSsServiceFailed: - { - //This is a special case, TSY sends error value in additional info - //when SS is rejected by Call control - if ( KTwo <= iAdditionalInfo.Length() && - KSsSimAtkCcRejected == iAdditionalInfo[1] ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::HandleSendSsResult \ - KInteractionWithCCPermanentError" ) - iSendSsRsp.iGeneralResult = - RSat::KInteractionWithCCPermanentError; - iSendSsRsp.iAdditionalInfo.SetLength( 1 ); - iSendSsRsp.iAdditionalInfo[0] = RSat::KActionNotAllowed; - } - else - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::HandleSendSsResult KSsReturnError" ) - iSendSsRsp.iGeneralResult = RSat::KSsReturnError; - iSendSsRsp.iAdditionalInfo.Copy( iAdditionalInfo ); - } - iSendSsRsp.iInfoType = RSat::KMeProblem; - break; - } - - case KSsNetworkError: - { - iSendSsRsp.iGeneralResult = RSat::KNetworkUnableToProcessCmd; - iSendSsRsp.iInfoType = RSat::KSatNetworkErrorInfo; - iSendSsRsp.iAdditionalInfo.SetLength( 1 ); - if ( iAdditionalInfo.Length() > 1 ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::HandleSendSsResult \ - iAdditionalInfo.Length() > 1" ) - iSendSsRsp.iAdditionalInfo[0] = \ - ( iAdditionalInfo[1] == RSat::KNoSpecificMeProblem ) \ - ? iAdditionalInfo[1] : ( iAdditionalInfo[1] | 0x80 ); - } - else - { - iSendSsRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - } - break; - } - - default: - { - // Convert terminal rsp if icon used - iSendSsRsp.iGeneralResult = RSat::KSuccess; - - // If command had icon data and was done succesfully, - // report that icon was not shown. - // To be removed and correct handling (i.e. ClientResponse to - // notification is received) for general result - // KSuccessRequestedIconNotDisplayed must be added when icons are - // allowed in this command - if ( iIconCommand ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::HandleSendSsResult iIconCommand \ - true" ) - iSendSsRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - - if ( iAdditionalInfo.Length() ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::HandleSendSsResult \ - iAdditionalInfo.Length >0" ) - iSendSsRsp.iInfoType = RSat::KSendSsInfo; - iSendSsRsp.iAdditionalInfo.Copy( iAdditionalInfo ); - } - else - { - iSendSsRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendSsRsp.iAdditionalInfo.Zero(); - } - - break; - } - } - - delete iResult; - iResult = NULL; - - delete iParser; - iParser = NULL; - - delete iPhoneGsmOptionContainerBase; - iPhoneGsmOptionContainerBase = NULL; - - iRequestCompleteHandler->Cancel(); - iAdditionalInfoHandler->Cancel(); - - // Send terminal response - SendTerminalResponse(); - - LOG( SIMPLE, "SENDSS: CSendSSHandler::HandleSendSsResult exiting" ) - } - -// ----------------------------------------------------------------------------- -// SS sending should be transparent if alpha identifier is provided but it's -// length is 0. Also user query setting is not on. -// ----------------------------------------------------------------------------- -// -TBool CSendSSHandler::TransparentSsSending() - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::TransparentSsSending calling" ) - - TBool result( EFalse ); - const RSat::TAlphaId alphaId( iSendSsData.iAlphaId ); - - // Store to member variable for later use - iQueryOn = iUtils->SystemState().IsConfirmSatOperationsOn(); - - if ( ( alphaId.iStatus == RSat::EAlphaIdProvided && - alphaId.iAlphaId.Length() == 0 ) || - alphaId.iStatus == RSat::EAlphaIdNull ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::TransparentSsSending EAlphaIdNull" ) - if ( !iQueryOn ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::TransparentSsSending iQueryOn false" ) - result = ETrue; - } - } - - LOG2( SIMPLE, "SENDSS: CSendSSHandler::TransparentSsSending exiting: %i", - result ) - return result; - } - -// ----------------------------------------------------------------------------- -// Sends terminal response, if not yet sent -// ----------------------------------------------------------------------------- -// -void CSendSSHandler::SendTerminalResponse() - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::SendTerminalResponse calling" ) - - if ( !iTerminalRespSent ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::SendTerminalResponse iTerminalRespSent false" ) - iTerminalRespSent = ETrue; - iSendSsRsp.SetPCmdNumber( iSendSsData.PCmdNumber() ); - TerminalRsp( RSat::ESendSs, iSendSsRspPckg ); - } - - // Delete timer in case it is still active - if ( iTimer ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::SendTerminalResponse iTimer true" ) - iTimer->Cancel(); - delete iTimer; - iTimer = NULL; - } - - LOG( SIMPLE, "SENDSS: CSendSSHandler::SendTerminalResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// Callback for SendSS additionalinfo waiting timer. -// ----------------------------------------------------------------------------- -// -TInt CSendSSHandler::SSRequestCallback( TAny* aPtr ) - { - LOG( SIMPLE, "SENDSS: CSendSSHandler::SSRequestCallback calling" ) - - CSendSSHandler* handler = - static_cast( aPtr ); - - if ( handler ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::SSRequestCallback handler true" ) - handler->HandleSendSsResult(); - - if ( handler->iTimer ) - { - LOG( SIMPLE, - "SENDSS: CSendSSHandler::SSRequestCallback cancel iTimer" ) - handler->iTimer->Cancel(); - delete handler->iTimer; - handler->iTimer = NULL; - } - } - - LOG( SIMPLE, "SENDSS: CSendSSHandler::SSRequestCallback exiting" ) - return ( KErrNone ); - } - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/src/csatsendssadditionalinfohandler.cpp --- a/satengine/SatServer/Commands/SendSSCmd/src/csatsendssadditionalinfohandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,155 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handler for the SS Additional Info notification -* -*/ - - -#include "csatsendssadditionalinfohandler.h" -#include "CSendSsHandler.h" -#include "SatLog.h" - -// ================= MEMBER FUNCTIONS ========================================== - -// The class constructor. -CSatSendSsAdditionalInfoHandler::CSatSendSsAdditionalInfoHandler( - TInt aPriority, RMmCustomAPI& aPhone, - CSendSSHandler* aDispatcher ) - : CActive( aPriority ), iPhone( aPhone ), - iDispatcher( aDispatcher ) - { - LOG( SIMPLE, - "CSatSendSsAdditionalInfoHandler::CSatSendSsAdditionalInfoHandler \ - calling" ) - - // Add to active scheduler - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "CSatSendSsAdditionalInfoHandler::CSatSendSsAdditionalInfoHandler \ - exiting" ) - } - -// Destructor -CSatSendSsAdditionalInfoHandler::~CSatSendSsAdditionalInfoHandler() - { - LOG( SIMPLE, - "CSatSendSsAdditionalInfoHandler::~CSatSendSsAdditionalInfoHandler \ - calling" ) - - // Cancel any outstanding requests. - Cancel(); - - iDispatcher = NULL; - - LOG( SIMPLE, - "CSatSendSsAdditionalInfoHandler::~CSatSendSsAdditionalInfoHandler \ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsAdditionalInfoHandler::NewL -// ----------------------------------------------------------------------------- -// -CSatSendSsAdditionalInfoHandler* CSatSendSsAdditionalInfoHandler::NewL( - RMmCustomAPI& aPhone, CSendSSHandler* aDispatcher ) - { - LOG( SIMPLE, "CSatSendSsAdditionalInfoHandler::NewL calling" ) - - // Perform construction - CSatSendSsAdditionalInfoHandler* self = - new ( ELeave ) CSatSendSsAdditionalInfoHandler( - EPriorityStandard, aPhone, aDispatcher ); - - LOG( SIMPLE, "CSatSendSsAdditionalInfoHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatSendSsAdditionalInfoHandler::Start -// Starts the handler. -// ----------------------------------------------------------------------------- -// -void CSatSendSsAdditionalInfoHandler::Start() - { - LOG( SIMPLE, "CSatSendSsAdditionalInfoHandler::Start calling" ) - - // Clear the IPC package - RMmCustomAPI::TSsAdditionalInfo temp; - iSsAdditionalInfo = temp; - - if ( !IsActive() ) - { - LOG( SIMPLE, "CSatSendSsAdditionalInfoHandler::Start set active" ) - // Request the notification. - iPhone.SsAdditionalInfoNotification( iStatus, iSsAdditionalInfo ); - // Set to active so that requests can be received. - SetActive(); - } - - LOG( SIMPLE, "CSatSendSsAdditionalInfoHandler::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsAdditionalInfoHandler::RunL -// Handles the command. -// ----------------------------------------------------------------------------- -// -void CSatSendSsAdditionalInfoHandler::RunL() - { - LOG( SIMPLE, "CSatSendSsAdditionalInfoHandler::RunL calling" ) - - TBuf16 additionalInfo; - LOG2( SIMPLE, "CSatSendSsAdditionalInfoHandler::RunL iStatus: %d", - iStatus.Int() ) - // Check the status of the asnychronous operation - if ( iStatus == KErrNone ) - { - additionalInfo.Append( iSsAdditionalInfo.iOperationCode ); - TInt i = 0; - while ( i < iSsAdditionalInfo.iAdditionalInfo.Length() - && additionalInfo.Length() < RSat::KAdditionalInfoMaxSize ) - { - additionalInfo.Append( iSsAdditionalInfo.iAdditionalInfo[i++] ); - } - LOG2( SIMPLE, "CSatSendSsAdditionalInfoHandler::RunL i: %d", i ) - } - - iDispatcher->DispatchSsAdditionalInfo( additionalInfo ); - - if ( KErrNone == iStatus.Int() ) - { - // Renew the notification request. - Start(); - } - - LOG( SIMPLE, "CSatSendSsAdditionalInfoHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsAdditionalInfoHandler::DoCancel -// Cancels the pending request. -// ----------------------------------------------------------------------------- -// -void CSatSendSsAdditionalInfoHandler::DoCancel() - { - LOG( SIMPLE, "CSatSendSsAdditionalInfoHandler::DoCancel calling" ) - - // Cancel the outstanding request. - iPhone.CancelAsyncRequest( ECustomSsAdditionalInfoNotificationIPC ); - - LOG( SIMPLE, "CSatSendSsAdditionalInfoHandler::DoCancel exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/src/csatsendssbarringnouiobs.cpp --- a/satengine/SatServer/Commands/SendSSCmd/src/csatsendssbarringnouiobs.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,170 +0,0 @@ -/* -* Copyright (c) 2005-2007 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: Send Ss barrings observer -* -*/ - - -#include "csatsendssbarringnouiobs.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatSendSsBarringNoUiObs::CSatSendSsBarringNoUiObs -// C++ default constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -CSatSendSsBarringNoUiObs::CSatSendSsBarringNoUiObs() - { - LOG( SIMPLE, - "SENDSS: CSatSendSsBarringNoUiObs::CSatSendSsBarringNoUiObs \ - calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsBarringNoUiObs::~CSatSendSsBarringNoUiObs -// Destructor. -// ----------------------------------------------------------------------------- -// -CSatSendSsBarringNoUiObs::~CSatSendSsBarringNoUiObs() - { - LOG( SIMPLE, - "SENDSS: CSatSendSsBarringNoUiObs::~CSatSendSsBarringNoUiObs \ - calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsBarringNoUiObs::HandleBarringModeChangedL -// Notification of barring mode change -// ----------------------------------------------------------------------------- -// -void CSatSendSsBarringNoUiObs::HandleBarringModeChangedL( - TBarringProgram aType, - TBarringStatus aStatus, - TBool aPlural ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsBarringNoUiObs::HandleBarringModeChangedL calling" ) - - LOG2( DETAILED, " Barring program: %i", aType ) - LOG2( DETAILED, " Barring status: %i", aStatus ) - LOG2( DETAILED, " Plural: %i", aPlural) - - // Avoid warnigs about unused parameters. - aType = aType; - aStatus = aStatus; - aPlural = aPlural; - - LOG( SIMPLE, - "SENDSS: CSatSendSsBarringNoUiObs::HandleBarringModeChangedL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsBarringNoUiObs::HandleBarringModeStatusL -// Notification of barring mode status -// ----------------------------------------------------------------------------- -// -void CSatSendSsBarringNoUiObs::HandleBarringModeStatusL( - TUint8 aBsc[KPSetNumberOfBsc], - TBarringStatus aStatus ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsBarringNoUiObs::HandleBarringModeStatusL calling" ) - - LOG2( DETAILED, " Barring status: %i", aStatus ) - - // To avoid warnigs about unused parameters - aBsc = aBsc; - aStatus = aStatus; - - LOG( SIMPLE, - "SENDSS: CSatSendSsBarringNoUiObs::HandleBarringModeStatusL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsBarringNoUiObs::HandleBarringErrorL -// Notification of errors in call barring requests -// ----------------------------------------------------------------------------- -// -void CSatSendSsBarringNoUiObs::HandleBarringErrorL( - TInt aReason ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsBarringNoUiObs::HandleBarringErrorL calling" ) - - LOG2( DETAILED, " Barring error: %i", aReason ) - - // To avoid warnigs about unused parameters - aReason = aReason; - - LOG( SIMPLE, - "SENDSS: CSatSendSsBarringNoUiObs::HandleBarringErrorL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsBarringNoUiObs::HandleCBRequestingL -// Notification of requesting -// ----------------------------------------------------------------------------- -// -void CSatSendSsBarringNoUiObs::HandleCBRequestingL( - TBool aOngoing, TBool aInterrupted ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsBarringNoUiObs::HandleCBRequestingL calling" ) - - LOG2( DETAILED, " ongoing: %i", aOngoing ) - LOG2( DETAILED, " interrupted: %i", aInterrupted ) - - // To avoid warnigs about unused parameters - aOngoing = aOngoing; - aInterrupted = aInterrupted; - - LOG( SIMPLE, - "SENDSS: CSatSendSsBarringNoUiObs::HandleCBRequestingL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsBarringNoUiObs::CbPasswordChangedL -// Notification relating to cb password change requests. -// ----------------------------------------------------------------------------- -// -void CSatSendSsBarringNoUiObs::CbPasswordChangedL( - TBool aSuccess ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsBarringNoUiObs::CbPasswordChangedL calling" ) - - LOG2( DETAILED, " success: %i", aSuccess ) - - // To avoid warnigs about unused parameters - aSuccess = aSuccess; - - LOG( SIMPLE, - "SENDSS: CSatSendSsBarringNoUiObs::CbPasswordChangedL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsBarringNoUiObs::SetEngineContact -// Notification relating to cb password change requests. -// ----------------------------------------------------------------------------- -// - void CSatSendSsBarringNoUiObs::SetEngineContact( - MPsetCallBarring* /*aBarringEngine*/ ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsBarringNoUiObs::SetEngineContact calling-exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/src/csatsendsscallwaitingnouiobs.cpp --- a/satengine/SatServer/Commands/SendSSCmd/src/csatsendsscallwaitingnouiobs.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,148 +0,0 @@ -/* -* Copyright (c) 2005-2007 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: Send Ss call waiting observer -* -*/ - - -#include "csatsendsscallwaitingnouiobs.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatSendSsCallWaitingNoUiObs::CSatSendSsCallWaitingNoUiObs -// C++ default constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -CSatSendSsCallWaitingNoUiObs::CSatSendSsCallWaitingNoUiObs() - { - LOG( SIMPLE, - "SENDSS: CSatSendSsCallWaitingNoUiObs::CSatSendSsCallWaitingNoUiObs \ - calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsCallWaitingNoUiObs::~CSatSendSsCallWaitingNoUiObs -// Destructor. -// ----------------------------------------------------------------------------- -// -CSatSendSsCallWaitingNoUiObs::~CSatSendSsCallWaitingNoUiObs() - { - LOG( SIMPLE, - "SENDSS: CSatSendSsCallWaitingNoUiObs::~CSatSendSsCallWaitingNoUiObs \ - calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsCallWaitingNoUiObs::HandleCallWaitingGetStatusL -// Notification of call waiting mode change -// ----------------------------------------------------------------------------- -// -void CSatSendSsCallWaitingNoUiObs::HandleCallWaitingGetStatusL( - MPsetCallWaiting::TGetCallWaitingStatus aStatus, - TUint8 aBsc[KPSetNumberOfBsc] ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsCallWaitingNoUiObs::HandleCallWaitingGetStatusL \ - calling" ) - LOG2( DETAILED, " call waiting status: %i", aStatus ) - - // Avoid warnigs about unused parameters - aStatus = aStatus; - aBsc = aBsc; - - LOG( SIMPLE, - "SENDSS: CSatSendSsCallWaitingNoUiObs::HandleCallWaitingGetStatusL \ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsCallWaitingNoUiObs::HandleCallWaitingChangedL -// Notification of call waiting change -// ----------------------------------------------------------------------------- -// -void CSatSendSsCallWaitingNoUiObs::HandleCallWaitingChangedL( - MPsetCallWaiting::TSetCallWaiting aSetting, - TInt aResult ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsCallWaitingNoUiObs::HandleCallWaitingChangedL \ - calling" ) - - LOG2( DETAILED, " call waiting status: %i", aSetting ) - LOG2( DETAILED, " result: %i", aResult ) - - // Avoid warnigs about unused parameters - aSetting = aSetting; - aResult = aResult; - - LOG( SIMPLE, - "SENDSS: CSatSendSsCallWaitingNoUiObs::HandleCallWaitingChangedL \ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsCallWaitingNoUiObs::HandleCWErrorL -// Notification of errors in call waitings -// ----------------------------------------------------------------------------- -// -void CSatSendSsCallWaitingNoUiObs::HandleCWErrorL( TInt aReason ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsCallWaitingNoUiObs::HandleCWErrorL calling" ) - LOG2( DETAILED, " CallWaiting error: %i", aReason ) - - // Avoid warnigs about unused parameters - aReason = aReason; - - LOG( SIMPLE, - "SENDSS: CSatSendSsCallWaitingNoUiObs::HandleCWErrorL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsCallWaitingNoUiObs::HandleCWRequestingL -// Notification of requesting -// ----------------------------------------------------------------------------- -// -void CSatSendSsCallWaitingNoUiObs::HandleCWRequestingL( - TBool aOngoing, TBool aInterrupted ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsCallWaitingNoUiObs::HandleCWRequestingL calling" ) - LOG2( DETAILED, " ongoing: %i", aOngoing ) - LOG2( DETAILED, " interrupted: %i", aInterrupted ) - - // Avoid warnigs about unused parameters - aOngoing = aOngoing; - aOngoing = aInterrupted; - - LOG( SIMPLE, - "SENDSS: CSatSendSsCallWaitingNoUiObs::HandleCWRequestingL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsCallWaitingNoUiObs::SetEngineContact -// -// ----------------------------------------------------------------------------- -// -void CSatSendSsCallWaitingNoUiObs::SetEngineContact( - MPsetCallWaiting& /*aEngineContact*/ ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsCallWaitingNoUiObs::SetEngineContact \ - calling-exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/src/csatsendssclinouiobs.cpp --- a/satengine/SatServer/Commands/SendSSCmd/src/csatsendssclinouiobs.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,149 +0,0 @@ -/* -* Copyright (c) 2005-2007 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: Send Ss Cli observer -* -*/ - - -#include "csatsendssclinouiobs.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatSendSsCliNoUiObs::CSatSendSsCliNoUiObs -// C++ default constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -CSatSendSsCliNoUiObs::CSatSendSsCliNoUiObs() - { - LOG( SIMPLE, - "SENDSS: CSatSendSsCliNoUiObs::CSatSendSsCliNoUiObs calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsCliNoUiObs::~CSatSendSsCliNoUiObs -// Destructor. -// ----------------------------------------------------------------------------- -// -CSatSendSsCliNoUiObs::~CSatSendSsCliNoUiObs() - { - LOG( SIMPLE, - "SENDSS: CSatSendSsCliNoUiObs::~CSatSendSsCliNoUiObs calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsCliNoUiObs::CliInformationL -// Notification of Cli information -// ----------------------------------------------------------------------------- -// -void CSatSendSsCliNoUiObs::CliInformationL( TPsuiCli aType ) - { - LOG( SIMPLE, "SENDSS: CSatSendSsCliNoUiObs::CliInformationL calling" ) - - LOG2( DETAILED, " Type: %i", aType ) - - // Avoid warnigs about unused parameters - aType = aType; - - LOG( SIMPLE, "SENDSS: CSatSendSsCliNoUiObs::CliInformationL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsCliNoUiObs::HandleCliRequestingL -// Notification of requesting -// ----------------------------------------------------------------------------- -// -void CSatSendSsCliNoUiObs::HandleCliRequestingL( - TBool aOngoing, - TBool aInterrupted ) - { - LOG( SIMPLE, "SENDSS: CSatSendSsCliNoUiObs::HandleCliRequestingL calling" ) - - LOG2( DETAILED, " ongoing: %i", aOngoing ) - LOG2( DETAILED, " interrupted: %i", aInterrupted ) - - // Avoid warnigs about unused parameters - aOngoing = aOngoing; - aInterrupted = aInterrupted; - - LOG( SIMPLE, "SENDSS: CSatSendSsCliNoUiObs::HandleCliRequestingL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsCliNoUiObs::SetEngineContact -// -// ----------------------------------------------------------------------------- -// -void CSatSendSsCliNoUiObs::SetEngineContact( MPsetCli* /*aEngine*/ ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsCliNoUiObs::SetEngineContact calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsCliNoUiObs::HandleCliStatusL -// Notification of Cli status -// ----------------------------------------------------------------------------- -// -void CSatSendSsCliNoUiObs::HandleCliStatusL( - TUint8 aBsc[KPSetNumberOfBsc], - TPsuiCli aMode ) - { - LOG( SIMPLE, "SENDSS: CSatSendSsCliNoUiObs::HandleCliStatusL calling" ) - - LOG2( DETAILED, " Type: %i", aMode ) - - // Avoid warnigs about unused parameters - aBsc = aBsc; - aMode = aMode; - - LOG( SIMPLE, "SENDSS: CSatSendSsCliNoUiObs::HandleCliStatusL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsCliNoUiObs::HandleCnapStatusL -// Notification of the status of Cli if requested -// ----------------------------------------------------------------------------- -// -void CSatSendSsCliNoUiObs::HandleCnapStatusL( TInt aStatus ) - { - LOG( SIMPLE, "SENDSS: CSatSendSsCliNoUiObs::HandleCnapStatusL calling" ) - - LOG2( DETAILED, " status: %i", aStatus ) - - // Avoid warnigs about unused parameters - aStatus = aStatus; - - LOG( SIMPLE, "SENDSS: CSatSendSsCliNoUiObs::HandleCnapStatusL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsCliNoUiObs::HandleCliErrorL -// Notification of error in Cli handling -// ----------------------------------------------------------------------------- -// -void CSatSendSsCliNoUiObs::HandleCliErrorL( TInt aError ) - { - LOG( SIMPLE, "SENDSS: CSatSendSsCliNoUiObs::HandleCliErrorL calling" ) - - LOG2( DETAILED, " Cli error: %i", aError ) - - // Avoid warnigs about unused parameters - aError = aError; - - LOG( SIMPLE, "SENDSS: CSatSendSsCliNoUiObs::HandleCliErrorL exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/src/csatsendssdivertnouiobs.cpp --- a/satengine/SatServer/Commands/SendSSCmd/src/csatsendssdivertnouiobs.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,149 +0,0 @@ -/* -* Copyright (c) 2005-2007 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: Send Ss diverts observer -* -*/ - - -#include "csatsendssdivertnouiobs.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatSendSsDivertNoUiObs::CSatSendSsDivertNoUiObs -// C++ default constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -CSatSendSsDivertNoUiObs::CSatSendSsDivertNoUiObs() - { - LOG( SIMPLE, - "SENDSS: CSatSendSsDivertNoUiObs::CSatSendSsDivertNoUiObs \ - calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsDivertNoUiObs::~CSatSendSsDivertNoUiObs -// Destructor. -// ----------------------------------------------------------------------------- -// -CSatSendSsDivertNoUiObs::~CSatSendSsDivertNoUiObs() - { - LOG( SIMPLE, - "SENDSS: CSatSendSsDivertNoUiObs::~CSatSendSsDivertNoUiObs \ - calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsDivertNoUiObs::HandleDivertingChangedL -// Notification of diverting change -// ----------------------------------------------------------------------------- -// -void CSatSendSsDivertNoUiObs::HandleDivertingChangedL( - const TCallDivertSetting& aSetting, - TBool aPlural ) - { - LOG( SIMPLE, "SENDSS: CSatSendSsDivertNoUiObs::HandleDivertingChangedL \ - calling" ) - - LOG2( DETAILED, " CallDivert setting Condition: %i", - aSetting.iCondition ) - LOG2( DETAILED, " CallDivert setting Setting: %i", - aSetting.iSetting ) - LOG2( DETAILED, " CallDivert setting Status: %i", - aSetting.iStatus ) - LOG2( DETAILED, " CallDivert setting Service group: %i", - aSetting.iServiceGroup ) - LOG2( DETAILED, " CallDivert setting Tel Number: %S", - &aSetting.iNumber ) - LOG2( DETAILED, " Plural: %i", - aPlural ) - - // Avoid warnigs about unused parameters. - aPlural = aPlural; - aPlural = aSetting.iCondition; - - LOG( SIMPLE, "SENDSS: CSatSendSsDivertNoUiObs::HandleDivertingChangedL \ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsDivertNoUiObs::HandleDivertingStatusL -// Notification of diverting status change -// ----------------------------------------------------------------------------- -// -void CSatSendSsDivertNoUiObs::HandleDivertingStatusL( - CMobilePhoneCFList&, - TBool ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsDivertNoUiObs::HandleDivertingStatusL \ - calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsDivertNoUiObs::HandleDivertingErrorL -// Notification of errors in diverts -// ----------------------------------------------------------------------------- -// -void CSatSendSsDivertNoUiObs::HandleDivertingErrorL( TInt aReason ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsDivertNoUiObs::HandleDivertingErrorL calling" ) - - LOG2( DETAILED, " Diverting error: %i", aReason ) - - // Avoid warnigs about unused parameters. - aReason = aReason; - - LOG( SIMPLE, - "SENDSS: CSatSendSsDivertNoUiObs::HandleDivertingErrorL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsDivertNoUiObs::HandleCFRequestingL -// Notification of requesting -// ----------------------------------------------------------------------------- -// -void CSatSendSsDivertNoUiObs::HandleCFRequestingL( - TBool aOngoing, - TBool aInterrupted ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsDivertNoUiObs::HandleCFRequestingL calling" ) - - LOG2( DETAILED, " ongoing: %i", aOngoing ) - LOG2( DETAILED, " interrupted: %i", aInterrupted ) - - // Avoid warnigs about unused parameters. - aOngoing = aOngoing; - aInterrupted = aInterrupted; - - LOG( SIMPLE, - "SENDSS: CSatSendSsDivertNoUiObs::HandleCFRequestingL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsDivertNoUiObs::SetEngineContact -// -// ----------------------------------------------------------------------------- -// -void CSatSendSsDivertNoUiObs::SetEngineContact( - MPsetCallDiverting* /*aDivertEngine*/ ) - { - LOG( SIMPLE, - "SENDSS: CSatSendSsDivertNoUiObs::SetEngineContact calling-exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/src/csatsendsshandler.cpp --- a/satengine/SatServer/Commands/SendSSCmd/src/csatsendsshandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,573 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Process forwarding procedures. -* -*/ - -#include "csatsendsshandler.h" -#include -#include -#include -#include -#include - -#include "csatsendssbarringnouiobs.h" -#include "csatsendssdivertnouiobs.h" -#include "csatsendsscallwaitingnouiobs.h" -#include "csatsendssclinouiobs.h" - -#include "SatLog.h" - -// ================= MEMBER FUNCTIONS ========================================== - -// Destructor -CSatSendSsHandler::~CSatSendSsHandler() - { - delete iDivert; - delete iBarring; - delete iWaiting; - delete iCli; - delete iSettings; - delete iSatCwObserver; - delete iSatCbObserver; - delete iSatCliObserver; - delete iSatCfObserver; - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::ProcessForwardingL -// ----------------------------------------------------------------------------- -void CSatSendSsHandler::ProcessForwardingL( - TAction aAction, - TForwardingProcedure aForwarding, - const TDesC& aNumber, - const TDesC& aBasicCode, - const TDesC& aTimer ) - { - LOG( SIMPLE, "CSatSendSsHandler::ProcessForwardingL calling" ) - - TBasicServiceGroups bsc = ChangeToBsc( aBasicCode ); - ConnectToSsEngineL(); - - TCallDivertSetting setDivert; - setDivert.iNumber.Copy( aNumber ); - setDivert.iServiceGroup = EServiceGroupVoice; - setDivert.iStatus = EDivertingStatusUnknown; - setDivert.iNoReplyTimer = 0;// all unconditional - - LOG2( NORMAL, - "CSatSendSsHandler::ProcessForwardingL aForwarding: %d", aForwarding ) - switch ( aForwarding ) - { - case EForwardingNotReachable: - { - LOG( NORMAL, - "CSatSendSsHandler::ProcessForwardingL EForwardingNotReachable" ) - setDivert.iCondition = EDivertConditionNotReachable; - break; - } - - case EForwardingNoReply: - { - LOG( NORMAL, - "CSatSendSsHandler::ProcessForwardingL EForwardingNoReply" ) - if ( aTimer.Length() != 0 ) - { - TLex input( aTimer ); - User::LeaveIfError( input.Val( setDivert.iNoReplyTimer ) ); - } - else - { - LOG( NORMAL, - "CSatSendSsHandler::ProcessForwardingL iNoReplyTimer" ) - setDivert.iNoReplyTimer = iDivert->GetTimerValueL(); - } - setDivert.iCondition = EDivertConditionNoReply; - break; - } - - case EForwardingBusy: - { - LOG( NORMAL, - "CSatSendSsHandler::ProcessForwardingL EForwardingBusy" ) - setDivert.iCondition = EDivertConditionBusy; - break; - } - - case EForwardingUnconditional: - { - LOG( NORMAL, - "CSatSendSsHandler::ProcessForwardingL EForwardingUnconditional" ) - setDivert.iCondition = EDivertConditionUnconditional; - break; - } - - case EForwardingAll: - { - LOG( NORMAL, - "CSatSendSsHandler::ProcessForwardingL EForwardingAll" ) - setDivert.iCondition = EDivertConditionAllCalls; - break; - } - - case EForwardingAllConditional: - { - LOG( NORMAL, - "CSatSendSsHandler::ProcessForwardingL \ - EForwardingAllConditional" ) - setDivert.iCondition = EDivertConditionAllConditionalCases; - break; - } - - default: - { - LOG( NORMAL, - "CSatSendSsHandler::ProcessForwardingL Unknown forwarding" ) - break; - } - } - - switch ( aAction ) - { - case EActivate: - { - LOG( NORMAL, "CSatSendSsHandler::EActivate" ) - setDivert.iSetting = EActivateDiverting; - iDivert->SetDivertingL( setDivert, bsc ); - break; - } - - case EDeactivate: - { - LOG( NORMAL, "CSatSendSsHandler::EDeactivate" ) - setDivert.iSetting = ECancelDiverting; - iDivert->SetDivertingL( setDivert, bsc ); - break; - } - - case EInterrogate: - { - LOG( NORMAL, "CSatSendSsHandler::EInterrogate" ) - iDivert->GetDivertingStatusL( EServiceGroupVoice, - setDivert.iCondition, bsc ); - break; - } - - case ERegister: - { - LOG( NORMAL, "CSatSendSsHandler::ERegister" ) - setDivert.iSetting = ERegisterDiverting; - iDivert->SetDivertingL( setDivert, bsc ); - break; - } - - case EErase: - { - LOG( NORMAL, "CSatSendSsHandler::EErase" ) - setDivert.iSetting = EEraseDiverting; - iDivert->SetDivertingL( setDivert, bsc ); - break; - } - - default: - { - LOG( NORMAL, " Unknown action" ) - break; - } - } - - LOG( SIMPLE, "CSatSendSsHandler::ProcessForwardingL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::ProcessBarringL -// ----------------------------------------------------------------------------- -void CSatSendSsHandler::ProcessBarringL( - TAction aAction, - TBarringProcedure aBarring, - const TDesC& aPassword, - const TDesC& aBasicCode ) - { - LOG2( SIMPLE, "CSatSendSsHandler::ProcessBarringL calling, aBarring: %d", - aBarring ) - - TBasicServiceGroups bsc = ChangeToBsc( aBasicCode ); - ConnectToSsEngineL(); - TCallBarringSetting setBarring; - setBarring.iServiceGroup = EServiceGroupVoice; - - setBarring.iPassword = aPassword; - switch ( aBarring ) - { - case EBarringAllOutgoingCalls: - { - setBarring.iType = EBarringTypeAllOutgoing; - break; - } - - case EBarringAllOutgoingInternationalCalls: - { - setBarring.iType = EBarringTypeOutgoingInternational; - break; - } - - case EBarringAllOutgoingInternationalCallsExceptHome: - { - setBarring.iType = EBarringTypeOutgoingInternationalExceptToHomeCountry; - break; - } - - case EBarringAllIncomingCalls: - { - setBarring.iType = EBarringTypeAllIncoming; - break; - } - - case EBarringAllIncomingCallsWhenRoaming: - { - setBarring.iType = EBarringTypeIncomingWhenRoaming; - break; - } - - case EBarringAllServices: - { - setBarring.iType = EBarringTypeAllServices; - break; - } - - case EBarringAllOutgoingServices: - { - setBarring.iType = EBarringTypeAllOutgoingServices; - break; - } - - case EBarringAllIncomingServices: - { - setBarring.iType = EBarringTypeAllIncomingServices; - break; - } - - default: - { - break; - } - } - LOG2( SIMPLE, "CSatSendSsHandler::ProcessBarringL aAction: %d", aAction ) - switch ( aAction ) - { - case EActivate: - { - setBarring.iSetting = EActivateBarring; - iBarring->SetBarringL( setBarring, bsc ); - break; - } - - case EDeactivate: - { - setBarring.iSetting = ECancelBarring; - iBarring->SetBarringL( setBarring, bsc ); - break; - } - - case EInterrogate: - { - iBarring->GetBarringStatusL( EServiceGroupVoice, setBarring.iType ); - break; - } - - case ERegister: - case EErase: - default: - { - break; - } - } - - LOG( SIMPLE, "CSatSendSsHandler::ProcessBarringL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::ProcessPasswordChangeL -// ----------------------------------------------------------------------------- -void CSatSendSsHandler::ProcessPasswordChangeL( - TPasswordProcedure aPassword, - const TDesC& aOldPassword, - const TDesC& aNewPassword, - const TDesC& aVerifyNewPassword ) - { - LOG( SIMPLE, "CSatSendSsHandler::ProcessPasswordChangeL calling" ) - - ConnectToSsEngineL(); - - //check the validity of aNewPassword and aVerifyNewPassword - if ( aNewPassword.Compare( aVerifyNewPassword ) != 0 ) - { - LOG( SIMPLE, - "CSatSendSsHandler::ProcessPasswordChangeL password error" ) - // if not equal, show "PASSWORD ERROR" - iSatCbObserver->HandleBarringErrorL( 1 ); - } - else - { - RMobilePhone::TMobilePhonePasswordChangeV2 passWords; - passWords.iOldPassword = aOldPassword; - passWords.iNewPassword = aNewPassword; - passWords.iVerifiedPassword = aVerifyNewPassword; - // if equal send to cpsetcallbarring - if ( aPassword == EPasswordBarring ) - { - LOG( SIMPLE, - "CSatSendSsHandler::ProcessPasswordChangeL EPasswordBarring" ) - iBarring->ChangePasswordL( passWords, ETrue ); - } - else - { - LOG( SIMPLE, - "CSatSendSsHandler::ProcessPasswordChangeL others" ) - iBarring->ChangePasswordL( passWords, EFalse ); - } - } - - LOG( SIMPLE, "CSatSendSsHandler::ProcessPasswordChangeL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::ChangeToBsc -// ----------------------------------------------------------------------------- -TBasicServiceGroups CSatSendSsHandler::ChangeToBsc( - const TDesC& aBasicCode ) const - { - LOG( SIMPLE, "CSatSendSsHandler::ChangeToBsc calling" ) - - // Null values must be handled as well, length == 0 - if ( aBasicCode.Length() == 0 ) - { - LOG( SIMPLE, "CSatSendSsHandler::ChangeToBsc length is zero" ) - return EAllTeleAndBearer; - } - - TInt value = 0; - TLex input( aBasicCode ); - input.Val( value ); - - // Presumed that the values given in aBasicCode are not acting violently - TBasicServiceGroups returnValue = - static_cast( value ); - - LOG( SIMPLE, "CSatSendSsHandler::ChangeToBsc exiting" ) - return returnValue; - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::ConnectToSsEngine -// ----------------------------------------------------------------------------- -void CSatSendSsHandler::ConnectToSsEngineL() - { - LOG( SIMPLE, "CSatSendSsHandler::ConnectToSsEngineL calling" ) - - if ( !iSettings ) //create connection - { - LOG( SIMPLE, - "CSatSendSsHandler::ConnectToSsEngineL iSettings false" ) - //creates the containers - iSettings = CPsetContainer::NewL(); - - //call waiting engine - iSatCwObserver = new ( ELeave ) CSatSendSsCallWaitingNoUiObs(); - - iWaiting = iSettings->CreateCWObjectL( *iSatCwObserver ); - - //call barring engine - iSatCbObserver = new ( ELeave ) CSatSendSsBarringNoUiObs(); - - iBarring = iSettings->CreateCBObjectL( *iSatCbObserver ); - - iSatCliObserver = new ( ELeave ) CSatSendSsCliNoUiObs(); - - iCli = iSettings->CreateCliObjectL( *iSatCliObserver ); - - //call divert observer and engine - iSatCfObserver = new ( ELeave ) CSatSendSsDivertNoUiObs(); - - iDivert = iSettings->CreateCFObjectL( *iSatCfObserver ); - } - - LOG( SIMPLE, "CSatSendSsHandler::ConnectToSsEngineL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::Cancel -// ----------------------------------------------------------------------------- -// -void CSatSendSsHandler::Cancel() - { - LOG( SIMPLE, "CSatSendSsHandler::Cancel calling" ) - - if ( iWaiting ) - { - iWaiting->CancelProcess(); - } - - if ( iBarring ) - { - iBarring->CancelCurrentRequest(); - } - - if ( iCli ) - { - iCli->CancelAll(); - } - - if ( iDivert ) - { - iDivert->CancelCurrentRequest(); - } - - LOG( SIMPLE, "CSatSendSsHandler::Cancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::ProcessWaitingL -// ----------------------------------------------------------------------------- -void CSatSendSsHandler::ProcessWaitingL( - TAction aAction, - const TDesC& aBasicCode ) - { - LOG2( SIMPLE, "CSatSendSsHandler::ProcessWaitingL calling,aAction: %d", - aAction ) - - TBasicServiceGroups bsc = ChangeToBsc( aBasicCode ); - ConnectToSsEngineL(); - - switch ( aAction ) - { - case EActivate: - { - iWaiting->SetCallWaitingL( MPsetCallWaiting::EActivateCallWaiting, - bsc ); - break; - } - - case EDeactivate: - { - iWaiting->SetCallWaitingL( MPsetCallWaiting::EDeactivateCallWaiting, - bsc ); - break; - } - - case EInterrogate: - { - iWaiting->GetCallWaitingStatusL(); - break; - } - - case ERegister: - case EErase: - default: - { - break; - } - } - - LOG( SIMPLE, "CSatSendSsHandler::ProcessWaitingL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::ProcessClipStatusL -// ----------------------------------------------------------------------------- -void CSatSendSsHandler::ProcessClipStatusL() - { - LOG( SIMPLE, "CSatSendSsHandler::ProcessClipStatusL calling" ) - - ConnectToSsEngineL(); - iCli->GetClipModeL(); - - LOG( SIMPLE, "CSatSendSsHandler::ProcessClipStatusL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::ProcessClirStatusL -// ----------------------------------------------------------------------------- -void CSatSendSsHandler::ProcessClirStatusL() - { - LOG( SIMPLE, "CSatSendSsHandler::ProcessClirStatusL calling" ) - - ConnectToSsEngineL(); - iCli->GetClirModeL(); - - LOG( SIMPLE, "CSatSendSsHandler::ProcessClirStatusL calling" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::ProcessColpStatusL -// ----------------------------------------------------------------------------- -void CSatSendSsHandler::ProcessColpStatusL() - { - LOG( SIMPLE, "CSatSendSsHandler::ProcessColpStatusL calling" ) - - ConnectToSsEngineL(); - iCli->GetColpModeL(); - - LOG( SIMPLE, "CSatSendSsHandler::ProcessColpStatusL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::ProcessColrStatusL -// ----------------------------------------------------------------------------- -void CSatSendSsHandler::ProcessColrStatusL() - { - LOG( SIMPLE, "CSatSendSsHandler::ProcessColrStatusL calling" ) - - ConnectToSsEngineL(); - iCli->GetColrModeL(); - - LOG( SIMPLE, "CSatSendSsHandler::ProcessColrStatusL exiting " ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::ProcessCnapStatusL -// ----------------------------------------------------------------------------- -void CSatSendSsHandler::ProcessCnapStatusL() - { - LOG( SIMPLE, "CSatSendSsHandler::ProcessCnapStatusL calling" ) - - ConnectToSsEngineL(); - iCli->GetCnapL(); - - LOG( SIMPLE, "CSatSendSsHandler::ProcessCnapStatusL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::RequestComplete -// ----------------------------------------------------------------------------- -void CSatSendSsHandler::RequestComplete() - { - LOG( SIMPLE, "CSatSendSsHandler::RequestComplete calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsHandler::RequestStatusChanged -// ----------------------------------------------------------------------------- -void CSatSendSsHandler::RequestStatusChanged( TInt aNewStatus ) - { - LOG( SIMPLE, "CSatSendSsHandler::RequestStatusChanged calling" ) - - TInt status = aNewStatus; - status = status; - LOG2( SIMPLE, " RequestStatusChanged (%i)", status ) - - LOG( SIMPLE, "CSatSendSsHandler::RequestStatusChanged exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/src/csatsendssrequestcompletehandler.cpp --- a/satengine/SatServer/Commands/SendSSCmd/src/csatsendssrequestcompletehandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,137 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handler for the SS Request Complete notification -* -*/ - - -#include "CSendSsHandler.h" -#include "csatsendssrequestcompletehandler.h" -#include "SatLog.h" - -// ================= MEMBER FUNCTIONS ======================= - -// The class constructor. -CSatSendSsRequestCompleteHandler::CSatSendSsRequestCompleteHandler( - TInt aPriority, RMmCustomAPI& aPhone, - CSendSSHandler* aDispatcher ) - : CActive( aPriority ), iPhone( aPhone ), - iDispatcher( aDispatcher ) - { - LOG( SIMPLE, - "CSatSendSsRequestCompleteHandler::CSatSendSsRequestCompleteHandler \ - calling" ) - - // Add to active scheduler - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "CSatSendSsRequestCompleteHandler::CSatSendSsRequestCompleteHandler \ - exiting" ) - } - -// Two-phased constructor. -CSatSendSsRequestCompleteHandler* CSatSendSsRequestCompleteHandler::NewL( - RMmCustomAPI& aPhone, CSendSSHandler* aDispatcher ) - { - LOG( SIMPLE, "CSatSendSsRequestCompleteHandler::NewL calling" ) - - // Perform construction - CSatSendSsRequestCompleteHandler* self = - new ( ELeave ) CSatSendSsRequestCompleteHandler( - EPriorityLow, aPhone, aDispatcher ); - - LOG( SIMPLE, "CSatSendSsRequestCompleteHandler::NewL exiting" ) - return self; - } - -// Destructor -CSatSendSsRequestCompleteHandler::~CSatSendSsRequestCompleteHandler() - { - LOG( SIMPLE, - "CSatSendSsRequestCompleteHandler::~CSatSendSsRequestCompleteHandler \ - calling" ) - - // Cancel any outstanding requests. - Cancel(); - - LOG( SIMPLE, - "CSatSendSsRequestCompleteHandler::~CSatSendSsRequestCompleteHandler \ - exiting" ) - iDispatcher = NULL; - } - -// ----------------------------------------------------------------------------- -// CSatSendSsRequestCompleteHandler::Start -// Starts the handler. -// ----------------------------------------------------------------------------- -// -void CSatSendSsRequestCompleteHandler::Start() - { - LOG( SIMPLE, "CSatSendSsRequestCompleteHandler::Start calling" ) - - if ( !IsActive() ) - { - LOG( SIMPLE, "CSatSendSsRequestCompleteHandler::Start set active" ) - // Request the notification. - iPhone.SsRequestCompleteNotification( iStatus, iSsStatus ); - // Set to active so that requests can be received. - SetActive(); - } - - LOG( SIMPLE, "CSatSendSsRequestCompleteHandler::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsRequestCompleteHandler::RunL -// Handles the command. -// ----------------------------------------------------------------------------- -// -void CSatSendSsRequestCompleteHandler::RunL() - { - LOG( SIMPLE, "CSatSendSsRequestCompleteHandler::RunL calling" ) - - // Check the status of the asnychronous operation - if ( iStatus == KErrNone ) - { - LOG( NORMAL, " iStatus == KErrNone" ) - iDispatcher->DispatchSsRequestComplete( iSsStatus ); - // Renew the notification request. - Start(); - } - else - { - LOG2( NORMAL, " iStatus == %i", iStatus.Int() ) - iDispatcher->DispatchSsRequestComplete( KErrGeneral ); - } - - LOG( SIMPLE, "CSatSendSsRequestCompleteHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSendSsRequestCompleteHandler::DoCancel -// Cancels the pending request. -// ----------------------------------------------------------------------------- -// -void CSatSendSsRequestCompleteHandler::DoCancel() - { - LOG( SIMPLE, "CSatSendSsRequestCompleteHandler::DoCancel calling" ) - - // Cancel the outstanding request. - iPhone.CancelAsyncRequest( ECustomNotifySsRequestCompleteIPC ); - - LOG( SIMPLE, "CSatSendSsRequestCompleteHandler::DoCancel exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSSCmd/src/std.cpp --- a/satengine/SatServer/Commands/SendSSCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CSendSsHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x1000a885, CSendSSHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSmCmd/group/SendSmCmd.mmp --- a/satengine/SatServer/Commands/SendSmCmd/group/SendSmCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project SendSm plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET SendSmCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x1000F020 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CSendSmHandler.cpp -SOURCE CSatSSendMessageNoLoggingHandler.cpp - -START RESOURCE 1000f020.rss -TARGET SendSmCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSmCmd/group/bld.inf --- a/satengine/SatServer/Commands/SendSmCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project SendSm plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -SendSmCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSmCmd/inc/CSatSSendMessageNoLoggingHandler.h --- a/satengine/SatServer/Commands/SendSmCmd/inc/CSatSSendMessageNoLoggingHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: This is the handler for the SIM Application Toolkit -* Send Message No -* -*/ - - -#ifndef CSATSSENDMESSAGENOLOGGINGHANDLER_H -#define CSATSSENDMESSAGENOLOGGINGHANDLER_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class MSatApi; -class MSatSmsObserver; - - -// CLASS DECLARATION - -/** -* This is the handler for the Send Message No Logging. -* This active object is registered with ETel SAT Api to receive notifications -* about the completion of Send SMS message -* -* @lib SendSmCmd.lib -* @since Series 60 3.0 -*/ -class CSatSSendMessageNoLoggingHandler : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSatApi Reference to Sat api. - * @param aObserver Observer of the sms end event. - */ - static CSatSSendMessageNoLoggingHandler* NewL( - MSatApi& aSatApi, - MSatSmsObserver& aObserver ); - - /** - * Destructor. - */ - virtual ~CSatSSendMessageNoLoggingHandler(); - - public: // New functions - - /** - * Starts listening for the Sat command. - * @param aSendSmData Data of the proactive SendSm command. - */ - void Start( const RSat::TSendSmV1& aSendSmData ); - - protected: // Functions from base classes - - /** - * From CActive, handles the request completion. - */ - void RunL(); - - /** - * From CActive, implements the cancel protocol. - */ - void DoCancel(); - - private: // Constructors - - /** - * C++ default constructor. - * @param aSatApi Reference to Sat api. - * @param aObserver Observer of the sms end event. - */ - CSatSSendMessageNoLoggingHandler( - MSatApi& aSatApi, - MSatSmsObserver& aObserver ); - - private: // Data - - // The data structure for the command data. - RSat::TSatSmsV1 iSmsData; - - // The data package for IPC. - RSat::TSatSmsV1Pckg iSmsPckg; - - // Sat api. - MSatApi& iSatApi; - - // Observer of the sms sending - MSatSmsObserver& iObserver; - - // Reference to SMS message. - TUint16 iMessageRef; - }; - -#endif // CSATSSENDMESSAGENOLOGGINGHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSmCmd/inc/CSendSmHandler.h --- a/satengine/SatServer/Commands/SendSmCmd/inc/CSendSmHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,253 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: SendSm command handler -* -*/ - - -#ifndef CSENDSMHANDLER_H -#define CSENDSMHANDLER_H - -#include - -#include "CSatCommandHandler.h" -#include "SatSTypes.h" -#include "MSatSmsObserver.h" - -class MSatUtils; -class CSatSSendMessageNoLoggingHandler; - -/** -* Command handler for SendSm command. -* -* @lib SendSmCmd.lib -* @since S60 v3.0 -*/ -class CSendSmHandler : public CSatCommandHandler, - public MSatSmsObserver - { - -public: - - static CSendSmHandler* NewL( MSatUtils* aUtils ); - - virtual ~CSendSmHandler(); - -// from base class MSatCommand - - /** - * From MSatCommand. - * Query response. - * - */ - void ClientResponse(); - -// from base class MSatSmsObserver - - /** - * From MSatEventObserver. - * Event notification - * - * @param aEvent An event that is occured. - */ - void Event( TInt aEvent ); - - /** - * From MSatSmsObserver. - * Notification that sms was sent. - * - * @param aErrorCode Error code indicating a possible error. - */ - void SmsSent( TInt aErrorCode ); - - -protected: - - /** - * Sets the sca number to the iSendSmData. - * - * @param aScaNumber SCA number. - * @return Boolean indicating SCA number successfully set. - */ - TBool SetScaNumber( const RSat::TSatTelNumber& aScaNumber ); - -// from base class CActive - - /** - * From CActive - * Cancels the usat request. - * - */ - void DoCancel(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler - * Requests the command notification. - * - * @param aStatus Request status to active object notification - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler - * Precheck before executing the command. - * - * @return Boolean indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler - * Need for ui session. - * - * @return Boolean indicating does this command need UI session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler - * Called when USAT API notifies that command. - * - */ - void HandleCommand(); - - /** - * From CSatCommandHandler - * Called when UI launch fails - * - */ - void UiLaunchFailed(); - -private: - - CSendSmHandler(); - - void ConstructL(); - - /** - * Checks is the command transparent or not - * - */ - TBool TransparentSmsSending() const; - - /** - * Checks is the SCA available - * - */ - TBool IsSCAAvailable(); - -private: // data - - /** - * SendSm command data. - */ - RSat::TSendSmV1 iSendSmData; - - /** - * SendSm command package. - */ - RSat::TSendSmV1Pckg iSendSmPckg; - - /** - * SendSm response data - */ - RSat::TSendSmRspV1 iSendSmRsp; - - /** - * SendSm response package. - */ - RSat::TSendSmRspV1Pckg iSendSmRspPckg; - - /** - * Query command data. - */ - TSatQueryV1 iQueryData; - - /** - * Query package. - */ - TSatQueryV1Pckg iQueryPckg; - - /** - * Query response. - */ - TSatQueryRspV1 iQueryRsp; - - /** - * Query rsp package. - */ - TSatQueryRspV1Pckg iQueryRspPckg; - - /** - * SendSm notification send data - */ - TSatNotificationV1 iNotificationData; - - /** - * SendSm notification package - */ - TSatNotificationV1Pckg iNotificationDataPckg; - - /** - * SendSm notification Response data - */ - TSatNotificationRspV1 iNotificationRsp; - - /** - * SendSm notification Response package - */ - TSatNotificationRspV1Pckg iNotificationRspPckg; - - /** - * Is MoSmControl active. - */ - TBool iMoSmControlActive; - - /** - * Message sender. - */ - CSatSSendMessageNoLoggingHandler* iMsgSender; - - /** - * Indicates does this command need UI session ot not - */ - TBool iNeedUiSession; - - /** - * Indicates if KPartialComprehension is needed instead of KSuccess - */ - TBool iPartialComprehension; - - /** - * Indicates is SCA number available at all - */ - TBool iSCANumberAvailable; - - /** - * Indicates is notification already sent - */ - TBool iNotificationSent; - - /** - * Flag to signal that command has icon data - * To be removed when icons are allowed in this command - */ - TBool iIconCommand; - - }; - -#endif // CSENDSMHANDLER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSmCmd/inc/MSatSmsObserver.h --- a/satengine/SatServer/Commands/SendSmCmd/inc/MSatSmsObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Observer for the sms event -* -*/ - - - -#ifndef MSATSMSOBSERVER_H -#define MSATSMSOBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Observer for send sms event. -* -* @lib SendSmCmd.lib -* @since Series 60 3.0 -*/ -class MSatSmsObserver - { - protected: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatSmsObserver() {}; - - /** - * Destructor. - */ - virtual ~MSatSmsObserver() {}; - - public: // New functions - - /** - * Notification of sms sent event. - * @param aErrorCode Error code. - */ - virtual void SmsSent( TInt aErrorCode ) = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatSmsObserver( const MSatSmsObserver& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatSmsObserver& operator=( const MSatSmsObserver& ); - - }; - -#endif // MSATSMSOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSmCmd/inc/SendSmCmd.rls --- a/satengine/SatServer/Commands/SendSmCmd/inc/SendSmCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project SendSmCmd -* -*/ - - -#ifndef SENDSMCMD_RLS -#define SENDSMCMD_RLS - -rls_string STRING_r_sendsmcmd_display_name "SendSm command" -rls_string STRING_r_sendsmcmd_default_data "SendSmCmd" -rls_string STRING_r_sendsmcmd_opaque_data "" - -#endif // SENDSMCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSmCmd/src/1000f020.rss --- a/satengine/SatServer/Commands/SendSmCmd/src/1000f020.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1000 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "SendSmCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// SendSmCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO SendSmCmdInfo - { - dll_uid = 0x1000f020; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x1000f021; - version_no = 1; - display_name = STRING_r_sendsmcmd_display_name; - default_data = STRING_r_sendsmcmd_default_data; - opaque_data = STRING_r_sendsmcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSmCmd/src/CSatSSendMessageNoLoggingHandler.cpp --- a/satengine/SatServer/Commands/SendSmCmd/src/CSatSSendMessageNoLoggingHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* Send Message No logging. -* -*/ - - - -// INCLUDE FILES -#include -#include "MSatApi.h" -#include "CSatSSendMessageNoLoggingHandler.h" -#include "MSatSmsObserver.h" -#include "SatLog.h" - -// ================= MEMBER FUNCTIONS ========================================== - -// ----------------------------------------------------------------------------- -// CSatSSendMessageNoLoggingHandler::CSatSSendMessageNoLoggingHandler -// The class constructor. -// ----------------------------------------------------------------------------- -// -CSatSSendMessageNoLoggingHandler::CSatSSendMessageNoLoggingHandler( - MSatApi& aSatApi, - MSatSmsObserver& aObserver ) : - CActive( CActive::EPriorityStandard ), - iSmsData(), - iSmsPckg( iSmsData ), - iSatApi( aSatApi ), - iObserver( aObserver ) - { - LOG( SIMPLE, "SENDSM: CSatSSendMessageNoLoggingHandler::\ - CSatSSendMessageNoLoggingHandler calling" ) - - CActiveScheduler::Add( this ); - - LOG( SIMPLE, "SENDSM: CSatSSendMessageNoLoggingHandler::\ - CSatSSendMessageNoLoggingHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSendMessageNoLoggingHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatSSendMessageNoLoggingHandler* CSatSSendMessageNoLoggingHandler::NewL( - MSatApi& aSatApi, - MSatSmsObserver& aObserver ) - { - LOG( SIMPLE, "SENDSM: CSatSSendMessageNoLoggingHandler::NewL calling" ) - - CSatSSendMessageNoLoggingHandler* self = - new ( ELeave ) CSatSSendMessageNoLoggingHandler( aSatApi, aObserver ); - - LOG( SIMPLE, "SENDSM: CSatSSendMessageNoLoggingHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatSSendMessageNoLoggingHandler::~CSatSSendMessageNoLoggingHandler -// Destructor. -// ----------------------------------------------------------------------------- -// -CSatSSendMessageNoLoggingHandler::~CSatSSendMessageNoLoggingHandler() - { - LOG( SIMPLE, "SENDSM: CSatSSendMessageNoLoggingHandler::\ - ~CSatSSendMessageNoLoggingHandler calling" ) - - Cancel(); - - LOG( SIMPLE, "SENDSM: CSatSSendMessageNoLoggingHandler::\ - ~CSatSSendMessageNoLoggingHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSendMessageNoLoggingHandler::Start -// Starts the handler. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSSendMessageNoLoggingHandler::Start( - const RSat::TSendSmV1& aSendSmData ) - { - LOG( SIMPLE, "SENDSM: CSatSSendMessageNoLoggingHandler::Start calling" ) - - iSmsData.iServiceCenter = aSendSmData.iAddress; - iSmsData.iBuf = aSendSmData.iSmsTpdu; - - if ( !IsActive() ) - { - iSatApi.SendMessageNoLogging( iStatus, iSmsPckg, iMessageRef ); - SetActive(); - } - else - { - LOG( SIMPLE, " Sms sender already active!" ) - } - - LOG( SIMPLE, "SENDSM: CSatSSendMessageNoLoggingHandler::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSendMessageNoLoggingHandler::RunL -// Handles the command. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSSendMessageNoLoggingHandler::RunL() - { - LOG( SIMPLE, "SENDSM: CSatSSendMessageNoLoggingHandler::RunL calling" ) - - iObserver.SmsSent( iStatus.Int() ); - - LOG( SIMPLE, "SENDSM: CSatSSendMessageNoLoggingHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSendMessageNoLoggingHandler::DoCancel -// Cancels the pending request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSSendMessageNoLoggingHandler::DoCancel() - { - LOG( SIMPLE, "SENDSM: CSatSSendMessageNoLoggingHandler::DoCancel calling" ) - - // Cancel the outstanding request. - iSatApi.SendMessageNoLoggingCancel(); - - LOG( SIMPLE, "SENDSM: CSatSSendMessageNoLoggingHandler::DoCancel exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSmCmd/src/CSendSmHandler.cpp --- a/satengine/SatServer/Commands/SendSmCmd/src/CSendSmHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,812 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Handles SendSm command -* -*/ - - -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatSystemState.h" -#include "MSatUiSession.h" -#include "SatSTypes.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CSatSSendMessageNoLoggingHandler.h" -#include "CSendSmHandler.h" -#include "SatLog.h" -#include "gsmerror.h" -#include -#include "TSatExtErrorUtils.h" - -const TUint8 KPlus = 0x2b; // '+' character - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSendSmHandler* CSendSmHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::NewL calling" ) - - CSendSmHandler* self = new( ELeave ) CSendSmHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SENDSM: CSendSmHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -// -CSendSmHandler::~CSendSmHandler() - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::~CSendSmHandler calling" ) - - delete iMsgSender; - Cancel(); - - LOG( SIMPLE, "SENDSM: CSendSmHandler::~CSendSmHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatCommand. -// Query response. -// ----------------------------------------------------------------------------- -// -void CSendSmHandler::ClientResponse() - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::ClientResponse calling" ) - - // Query response from client. - if ( iQueryRsp.iAccepted && !iNotificationSent ) - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::ClientResponse Query response" ) - // Send notification to UI - // Register notification observer - TRAP_IGNORE( iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, - this ) ) - - // Get UISession. - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - - // Send command to SatClient. - uiSession->SendCommand( &iNotificationDataPckg, - &iNotificationRspPckg, ESatSProactiveNotification ); - - iNotificationSent = ETrue; - } - else if ( iNotificationRsp.iAccepted && iNotificationSent ) - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::ClientResponse get response" ) - // Then we can proceed with the msg sending - if ( !iMsgSender->IsActive() ) - { - LOG( SIMPLE, - "SENDSM: CSendSmHandler::ClientResponse start iMsgSender" ) - iMsgSender->Start( iSendSmData ); - } - } - else - { - if ( iQueryRsp.iSessionTerminatedByUser ) - { - LOG( SIMPLE, - "SENDSM: CSendSmHandler::ClientResponse close ui session" ) - // Next SimSession end will close the ui session - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - - iSendSmRsp.iGeneralResult = RSat::KPCmdNotAcceptedByUser; - iSendSmRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendSmRsp.iAdditionalInfo.Zero(); - iSendSmRsp.SetPCmdNumber( iSendSmData.PCmdNumber() ); - - TerminalRsp( RSat::ESendSm, iSendSmRspPckg ); - } - - LOG( SIMPLE, "SENDSM: CSendSmHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatEventObserver. -// Event notification. -// ----------------------------------------------------------------------------- -// -void CSendSmHandler::Event( TInt aEvent ) - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::Event calling" ) - LOG2( SIMPLE, "SENDSM: CSendSmHandler::Event iWaitingUiLaunch=%d", - iWaitingUiLaunch ) - LOG2( SIMPLE, "SENDSM: CSendSmHandler::Event IsActive=%d", IsActive() ) - if ( MSatUtils::EMoSmControlExecuting == aEvent ) - { - LOG( NORMAL, "SENDSM: Event EMoSmControlExecuting" ) - iMoSmControlActive = ETrue; - } - else if ( MSatUtils::EMoSmControlDone == aEvent ) - { - LOG( NORMAL, "SENDSM: Event EMoSmControlDone" ) - iMoSmControlActive = EFalse; - // Check if Sendsm is waiting. - // Completing call control should not trigger this command handler - // if it is still waiting for UI to be launched. - if ( !IsActive() && !iWaitingUiLaunch ) - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::Event sendsm" ) - // Do the Sendsm. - HandleCommand(); - } - } - - CSatCommandHandler::Event( aEvent ); - - LOG( SIMPLE, "SENDSM: CSendSmHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatEventObserver. -// Notification that sms was sent. -// ----------------------------------------------------------------------------- -// -void CSendSmHandler::SmsSent( TInt aErrorCode ) - { - LOG2( SIMPLE, "SENDSM: CSendSmHandler::SmsSent calling, &d", aErrorCode ) - - // Ui session is listening for sms sent event. - iUtils->NotifyUiEvent( ESatSSmEndEvent, ESatEventNone, aErrorCode ); - - iSendSmRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendSmRsp.iAdditionalInfo.Zero(); - iSendSmRsp.SetPCmdNumber( iSendSmData.PCmdNumber() ); - - if ( KErrSatMoSmControlModified == aErrorCode ) - { - LOG( SIMPLE, "SENDSM: KErrSatMoSmControlModified" ) - iSendSmRsp.iGeneralResult = RSat::KSuccess; - } - else if ( KErrSatMoSmControlBarred == aErrorCode ) - { - LOG( SIMPLE, "SENDSM: KErrSatMoSmControlBarred" ) - iSendSmRsp.iGeneralResult = RSat::KInteractionWithCCPermanentError; - - // Additional info field contains extra info. - iSendSmRsp.iInfoType = RSat::KControlInteraction; - - // Lower byte contains the SMS error cause. - iSendSmRsp.iAdditionalInfo.SetLength( 1 ); - iSendSmRsp.iAdditionalInfo[0] = - static_cast( RSat::KActionNotAllowed ); - } - else if ( TSatExtErrorUtils::IsExtendedError( aErrorCode ) ) - { - LOG( SIMPLE, "SENDSM: Error code < KErrGsmSmsBase" ) - - // Map error value - TUint8 addInfo( 0 ); - - if ( TSatExtErrorUtils::IsNetworkError( aErrorCode ) ) - { - LOG( SIMPLE, "SENDSM: NetworkError" ) - // Map extended error - addInfo = TSatExtErrorUtils::MapError( aErrorCode ); - - // Error utils found the correct response - iSendSmRsp.iGeneralResult = RSat::KNetworkUnableToProcessCmd; - // Additional info field contains extra info. - iSendSmRsp.iInfoType = RSat::KSatNetworkErrorInfo; - } - else - { - LOG( SIMPLE, "SENDSM: MeError" ) - // No need to modify mapped value - addInfo = TSatExtErrorUtils::MapError( aErrorCode, EFalse ); - - // Return GSM Error specific value. - iSendSmRsp.iGeneralResult = RSat::KSmsRpError; - // Additional info field contains extra info. - iSendSmRsp.iInfoType = RSat::KMeProblem; - } - - // Add additional info into terminal response - iSendSmRsp.iAdditionalInfo.SetLength( 1 ); - iSendSmRsp.iAdditionalInfo[0] = static_cast( addInfo ); - } - else if ( ( KErrGsmSMSNoNetworkService == aErrorCode ) || - ( KErrGsmSSNotAvailable == aErrorCode ) ) - { - LOG( SIMPLE, "SENDSM: UnableToProcessCmd" ) - iSendSmRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendSmRsp.iInfoType = RSat::KMeProblem; - iSendSmRsp.iAdditionalInfo.SetLength( 1 ); - iSendSmRsp.iAdditionalInfo[0] = RSat::KNoService; - } - else if ( KErrGeneral == aErrorCode ) - { - LOG( SIMPLE, "SENDSM: KErrGeneral" ) - iSendSmRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - } - else if ( KErrTimedOut == aErrorCode ) - { - LOG( SIMPLE, "SENDSM: KErrTimedOut" ) - iSendSmRsp.iGeneralResult = RSat::KNetworkUnableToProcessCmd; - } - else - { - if ( !iPartialComprehension ) - { - if ( !iNotificationRsp.iRequestedIconDisplayed && // No icon displayed - ( RSat::ESelfExplanatory == // Only icon - iSendSmData.iIconId.iQualifier || - RSat::ENotSelfExplanatory == // Icon and text - iSendSmData.iIconId.iQualifier ) ) - { - LOG( SIMPLE, "SENDSM: KSuccessRequestedIconNotDisplayed" ) - iSendSmRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - else - { - LOG( SIMPLE, "SENDSM: Succeed" ) - iSendSmRsp.iGeneralResult = RSat::KSuccess; - } - } - else - { - LOG( SIMPLE, "SENDSM: KPartialComprehension" ) - iPartialComprehension = EFalse; - iSendSmRsp.iGeneralResult = RSat::KPartialComprehension; - } - } - - // If command had icon data and was done succesfully, report that icon - // was not shown - // To be removed when icons are allowed in this command - if ( ( RSat::KSuccess == iSendSmRsp.iGeneralResult ) && - iIconCommand ) - { - LOG( SIMPLE, - "SENDSM: CSendSmHandler::SmsSent KSuccessRequestedIconNotDisplayed" ) - iSendSmRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - - TerminalRsp( RSat::ESendSm, iSendSmRspPckg ); - - LOG( SIMPLE, "SENDSM: CSendSmHandler::SmsSent exiting" ) - } - -// ----------------------------------------------------------------------------- -// Sets the sca number and also sets the numbering plan and the type of number. -// ----------------------------------------------------------------------------- -// -TBool CSendSmHandler::SetScaNumber( const RSat::TSatTelNumber& aScaNumber ) - { - LOG2( SIMPLE, - "SENDSM: CSendSmHandler::SetScaNumber calling, aScaNumber :%S", - &aScaNumber ) - - TBool scaAvailable ( EFalse ); - - iSendSmData.iAddress.iTelNumber = aScaNumber; - if ( aScaNumber.Length() > 0 ) - { - LOG2( SIMPLE, "SENDSM: aScaNumber.Length: %d", aScaNumber.Length() ) - const RSat::TAddress address = iSendSmData.iAddress; - - scaAvailable = ETrue; - - // Is the number in international format, ie first character is '+'. - if ( KPlus == address.iTelNumber[0] ) - { - const RSat::TTypeOfNumber ton = address.iTypeOfNumber; - - // Set the type of number, if it is not known. - if ( ( RSat::ETypeOfNumberNotSet == ton ) || - ( RSat::EUnknownNumber == ton ) ) - { - LOG( SIMPLE, "SENDSM: International Number" ) - iSendSmData.iAddress.iTypeOfNumber = - RSat::EInternationalNumber; - } - - const RSat::TNumberingPlan npi = address.iNumberPlan; - - // Set the numbering plan if it is not known. - if ( ( RSat::ENumberingPlanNotSet == npi ) || - ( RSat::EUnknownNumberingPlan == npi ) ) - { - LOG( SIMPLE, "SENDSM: Isdn Number Plan" ) - iSendSmData.iAddress.iNumberPlan = RSat::EIsdnNumberPlan; - } - } - } - - LOG2( SIMPLE, - "SENDSM: CSendSmHandler::SetScaNumber exiting, scaAvailable:%i", - scaAvailable ) - return scaAvailable; - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CSendSmHandler::DoCancel() - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifySendSmCancel(); - - LOG( SIMPLE, "SENDSM: CSendSmHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Requests the command notification. -// ----------------------------------------------------------------------------- -// -void CSendSmHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iSendSmData) RSat::TSendSmV1(); - iNeedUiSession = ETrue; - iQueryRsp.iAccepted = EFalse; // default - iNotificationRsp.iAccepted = EFalse; - - iUtils->USatAPI().NotifySendSm( aStatus, iSendSmPckg ); - - LOG( SIMPLE, "SENDSM: CSendSmHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// SendSm command is not allowed in following situations: -// - Phone is not registered to homenetwork and roaming. -// ----------------------------------------------------------------------------- -// -TBool CSendSmHandler::CommandAllowed() - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::CommandAllowed calling" ) - TBool commandAllowed( ETrue ); - - RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus( - iUtils->SystemState().GetNetworkRegistrationStatus() ); - - // Check the PC Suite backup / restore status. If it is ongoing, SendSm is - // not allowed. - const TBool backupOngoing( - iUtils->SystemState().IsBackupProcessOngoing() ); - - if ( ( RSat::EAlphaIdProvided != iSendSmData.iAlphaId.iStatus ) && - ( RSat::ESelfExplanatory == iSendSmData.iIconId.iQualifier || - RSat::ENotSelfExplanatory == iSendSmData.iIconId.iQualifier ) ) - { - commandAllowed = EFalse; - iSendSmRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iSendSmRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendSmRsp.iAdditionalInfo.Zero(); - LOG( SIMPLE, "SENDSM: Not allowed data not understood" ) - } - else if ( ( RMobilePhone::ERegisteredOnHomeNetwork != - registrationStatus ) && - ( RMobilePhone::ERegisteredRoaming != registrationStatus ) || - backupOngoing ) - { - commandAllowed = EFalse; - iSendSmRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendSmRsp.iInfoType = RSat::KMeProblem; - iSendSmRsp.iAdditionalInfo.SetLength( 1 ); - iSendSmRsp.iAdditionalInfo[0] = RSat::KNoService; - LOG( SIMPLE, "SENDSM: Not allowed Me unable to process" ) - } - else if ( !IsSCAAvailable() ) - { - LOG( SIMPLE, "SENDSM: Not allowed !IsSCAAvailable()" ) - commandAllowed = EFalse; - iSendSmRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendSmRsp.iInfoType = RSat::KMeProblem; - iSendSmRsp.iAdditionalInfo.SetLength( 1 ); - iSendSmRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - } - // Set icon command flag whether icon data was received and set qualifier - // to no icon id - // To be removed when icons are allowed in this command - else if ( ( RSat::ESelfExplanatory == - iSendSmData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iSendSmData.iIconId.iQualifier ) ) - { - LOG( SIMPLE, "SENDSM: ENoIconId" ) - iIconCommand = ETrue; - iSendSmData.iIconId.iQualifier = RSat::ENoIconId; - } - else - { - LOG( SIMPLE, "SENDSM: others" ) - iIconCommand = EFalse; - } - - //lint -e{961} else block not needed. - if ( !commandAllowed ) - { - iSendSmRsp.SetPCmdNumber( iSendSmData.PCmdNumber() ); - TerminalRsp( RSat::ESendSm, iSendSmRspPckg ); - } - - LOG2( SIMPLE, "SENDSM: CSendSmHandler::CommandAllowed exiting,\ - commandAllowed: %d", commandAllowed ) - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Need for ui session. -// ----------------------------------------------------------------------------- -// -TBool CSendSmHandler::NeedUiSession() - { - LOG( NORMAL, "SENDSM: CSendSmHandler::NeedUiSession calling" ) - // Check do we need UI - - // Store the result for later use - iNeedUiSession = !TransparentSmsSending(); - // Notify Cover UI if it's supported - if ( iNeedUiSession && iUtils->CoverUiSupported() ) - { - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::ESendSm; - medEventData.iAlphaId = iSendSmData.iAlphaId; - if ( iUtils->SystemState().IsConfirmSatOperationsOn() ) - { - LOG( NORMAL, - "SENDSM: CSendSmHandler::NeedUiSession KSatLongDuration" ) - medEventData.iDuration.iNumOfUnits = KSatLongDuration; - } - else - { - LOG( NORMAL, - "SENDSM: CSendSmHandler::NeedUiSession KSatDefaultDuration" ) - medEventData.iDuration.iNumOfUnits = KSatDefaultDuration; - } - - medEventData.iDuration.iTimeUnit = RSat::ESeconds; - medEventData.iIconID = iSendSmData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - - LOG2( NORMAL, "SENDSM: CSendSmHandler::NeedUiSession exiting, \ - iNeedUiSession: %d", iNeedUiSession ) - return iNeedUiSession; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when USAT API notifies that command. -// ----------------------------------------------------------------------------- -// -void CSendSmHandler::HandleCommand() - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::HandleCommand calling" ) - - // If mo sm control is active, command waits for the EMoSmControlDone event - // and sends the command then. - if ( !iMoSmControlActive ) - { - LOG2( SIMPLE, - "SENDSM: CSendSmHandler::HandleCommand: !iMoSmControlActive, \ - iNeedUiSession=%d", - iNeedUiSession ) - - iUtils->NotifyEvent( MSatUtils::ESendSmExecuting ); - - if ( !iNeedUiSession ) - { - LOG( SIMPLE, - "SENDSM: CSendSmHandler::HandleCommand not iNeedUiSession" ) - // Dont show any messages in ui client, ETSI dictates that - // if alpha is is provided and alpha id length is 0 then ui - // should not show anyting. - // This is OK also for icon support. - // Icon is successfully processed. But not shown in this case. - if ( !iMsgSender->IsActive() ) - { - LOG( SIMPLE, - "SENDSM: CSendSmHandler::HandleCommand start iMsgSender" ) - iMsgSender->Start( iSendSmData ); - } - } - else - { - iQueryData.iCommand = ESatSSendSmQuery; - iQueryData.iQueryText = iSendSmData.iAlphaId.iAlphaId; - iQueryData.iIconId.iIdentifier = iSendSmData.iIconId.iIdentifier; - - iNotificationSent = EFalse; - iNotificationData.iCommand = ESatSSendSmsNotify; - iNotificationData.iText = iSendSmData.iAlphaId.iAlphaId; - iNotificationData.iIconId.iIdentifier = - iSendSmData.iIconId.iIdentifier; - LOG2( NORMAL, "SENDSM: CSendSmHandler::HandleCommand \ - iSendSmData.iIconId.iQualifier: %d", - iSendSmData.iIconId.iQualifier ) - switch ( iSendSmData.iIconId.iQualifier ) - { - case RSat::ESelfExplanatory: - { - // Icon qualifier is self explanatory (to display instead - // of the alpha id or text string). - iQueryData.iIconId.iIconQualifier = ESatSelfExplanatory; - iNotificationData.iIconId.iIconQualifier = - ESatSelfExplanatory; - break; - } - - case RSat::ENotSelfExplanatory: - { - // Icon qualifier is not self explanatory. - iQueryData.iIconId.iIconQualifier = ESatNotSelfExplanatory; - iNotificationData.iIconId.iIconQualifier = - ESatNotSelfExplanatory; - break; - } - - default: - { - // Icon qualifier not present - iQueryData.iIconId.iIconQualifier = ESatENoIconId; - iNotificationData.iIconId.iIconQualifier = ESatENoIconId; - break; - } - - } - LOG2( NORMAL, "SENDSM: CSendSmHandler::HandleCommand \ - iSendSmData.iAlphaId.iStatus: %d", - iSendSmData.iAlphaId.iStatus ) - switch ( iSendSmData.iAlphaId.iStatus ) - { - case RSat::EAlphaIdNotPresent: - { - iQueryData.iAlphaIdStatus = ESatAlphaIdNotProvided; - iNotificationData.iAlphaIdStatus = ESatAlphaIdNotProvided; - break; - } - - case RSat::EAlphaIdProvided: - { - iQueryData.iAlphaIdStatus = ESatAlphaIdNotNull; - iNotificationData.iAlphaIdStatus = ESatAlphaIdNotNull; - break; - } - - default: - { - iQueryData.iAlphaIdStatus = ESatAlphaIdNull; - iNotificationData.iAlphaIdStatus = ESatAlphaIdNull; - break; - } - } - - // Check do we need to confirm operation from user - if ( !iUtils->SystemState().IsConfirmSatOperationsOn() ) - { - LOG( SIMPLE, - "SENDSM: CSendSmHandler::HandleCommand confirm operation" ) - // No need to confirm, show only notification - // Register notification observer - TRAP_IGNORE( iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, - this ) ) - - LOG( SIMPLE, - "SENDSM: CSendSmHandler::HandleCommand send ui notification" ) - iUtils->SatUiHandler().UiSession()->SendCommand( - &iNotificationDataPckg, - &iNotificationRspPckg, - ESatSProactiveNotification ); - - iNotificationSent = ETrue; - } - else - { - LOG( SIMPLE, - "SENDSM: CSendSmHandler::HandleCommand user confirmation needed" ) - // Register service request handler for SendSm command, - // If there is already service request for query, registering - // updates command handler, so client responses comes to this - // command handler - TRAP_IGNORE( iUtils->RegisterServiceRequestL( - ESatSProactiveQuery, - ESatSProactiveQueryResponse, - this ) ) - - iNotificationSent = EFalse; - - LOG( SIMPLE, - "SENDSM: CSendSmHandler::HandleCommand send user confirmation request" ) - - // Ask the user permission to send sms. Reply will come - // to ClientResponse method. - iUtils->SatUiHandler().UiSession()->SendCommand( - &iQueryPckg, - &iQueryRspPckg, - ESatSProactiveQuery ); - } - } - } - - LOG( SIMPLE, "SENDSM: CSendSmHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when UI launch fails -// ----------------------------------------------------------------------------- -// -void CSendSmHandler::UiLaunchFailed() - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::UiLaunchFailed calling" ) - - iSendSmRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendSmRsp.iInfoType = RSat::KMeProblem; - iSendSmRsp.iAdditionalInfo.SetLength( 1 ); - iSendSmRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - iSendSmRsp.SetPCmdNumber( iSendSmData.PCmdNumber() ); - - TerminalRsp( RSat::ESendSm, iSendSmRspPckg ); - - LOG( SIMPLE, "SENDSM: CSendSmHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized, harmless. -CSendSmHandler::CSendSmHandler() : - CSatCommandHandler(), - iSendSmData(), - iSendSmPckg( iSendSmData ), - iSendSmRsp(), - iSendSmRspPckg( iSendSmRsp ), - iQueryData(), - iQueryPckg( iQueryData ), - iQueryRsp(), - iQueryRspPckg( iQueryRsp ), - iNotificationData(), - iNotificationDataPckg( iNotificationData ), - iNotificationRsp(), - iNotificationRspPckg( iNotificationRsp ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( SIMPLE, - "SENDSM: CSendSmHandler::CSendSmHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSendSmHandler::ConstructL() - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::ConstructL calling" ) - - iMsgSender = CSatSSendMessageNoLoggingHandler::NewL( - iUtils->USatAPI(), - *this ); - - iUtils->RegisterL( this, MSatUtils::EMoSmControlExecuting ); - iUtils->RegisterL( this, MSatUtils::EMoSmControlDone ); - - // Create request handler. This is same that LaunchBrowser uses, so this - // is needed also in HandleCommand - function. - iUtils->RegisterServiceRequestL( - ESatSProactiveQuery, - ESatSProactiveQueryResponse, - this ); - - LOG( SIMPLE, "SENDSM: CSendSmHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// SMS sending should be transparent if alpha identifier is provided but it's -// length is 0. Also user query setting is not on. -// ----------------------------------------------------------------------------- -// -TBool CSendSmHandler::TransparentSmsSending() const - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::TransparentSmsSending calling" ) - - TBool result( EFalse ); - const RSat::TAlphaId alphaId( iSendSmData.iAlphaId ); - - if ( ( alphaId.iStatus == RSat::EAlphaIdProvided && - alphaId.iAlphaId.Length() == 0 ) || - alphaId.iStatus == RSat::EAlphaIdNull ) - { - LOG( SIMPLE, - "SENDSM: CSendSmHandler::TransparentSmsSending EAlphaIdProvided" ) - if ( !iUtils->SystemState().IsConfirmSatOperationsOn() ) - { - LOG( SIMPLE, - "SENDSM: CSendSmHandler::TransparentSmsSending confirm" ) - result = ETrue; - } - - } - - LOG2( SIMPLE, "SENDSM: CSendSmHandler::TransparentSmsSending exiting: %i", - result ) - return result; - } - -// ----------------------------------------------------------------------------- -// Chaeck SCA availability. -// ----------------------------------------------------------------------------- -// -TBool CSendSmHandler::IsSCAAvailable() - { - LOG( SIMPLE, "SENDSM: CSendSmHandler::IsSCAAvailable calling" ) - - TBool scaAvailable ( ETrue ); - - // If Service Center Address in not specified in proactive command, - // the SCA is taken from shared data. SMSUi sets the SCA in the - // shared data. If the SCA is not found from shared data, then - // sending is not allowed. - if ( 0 == iSendSmData.iAddress.iTelNumber.Length() ) - { - LOG( SIMPLE, "SENDSM: TelNumber is empty" ) - - // Address is not defined. - if ( RSat::ETypeOfNumberNotSet == iSendSmData.iAddress.iTypeOfNumber ) - { - iPartialComprehension = EFalse; - } - - // Address is set intentionally empty. - else - { - iPartialComprehension = ETrue; - LOG( SIMPLE, "SENDSM: The result is KPartialComprehension" ) - } - - scaAvailable = SetScaNumber( iUtils->SystemState().SCANumber() ); - } - else - { - LOG( SIMPLE, "SENDSM: TelNumber is not empty." ) - iPartialComprehension = EFalse; - } - - LOG2( SIMPLE, - "SENDSM: CSendSmHandler::IsSCAAvailable exiting: %i", scaAvailable ) - return scaAvailable; - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendSmCmd/src/std.cpp --- a/satengine/SatServer/Commands/SendSmCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CSendSmHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x1000f021, CSendSmHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendUSSDCmd/group/SendUssdCmd.mmp --- a/satengine/SatServer/Commands/SendUSSDCmd/group/SendUssdCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Project definition file for project SendUssd plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET SendUssdCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x10202983 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CSendUssdHandler.cpp - -START RESOURCE 10202983.rss -TARGET SendUssdCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib -LIBRARY phoneclient.lib // Ussd sender - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendUSSDCmd/group/bld.inf --- a/satengine/SatServer/Commands/SendUSSDCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project SendUssdCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -SendUssdCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendUSSDCmd/inc/CSendUssdHandler.h --- a/satengine/SatServer/Commands/SendUSSDCmd/inc/CSendUssdHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,288 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: SendUssd command handler -* -*/ - - -#ifndef CSENDUSSDHANDLER_H -#define CSENDUSSDHANDLER_H - -#include - -#include "CSatCommandHandler.h" -#include "SatSTypes.h" - -class MSatUtils; -class CPhCltUssdSatClient; - -/** -* Command handler for SendUssd command. -* -* @lib SendUssd.lib -* @since S60 v3.0 -*/ -class CSendUssdHandler : public CSatCommandHandler - { - -public: - - static CSendUssdHandler* NewL( MSatUtils* aUtils ); - - virtual ~CSendUssdHandler(); - -// from base class MSatCommand - - /** - * From MSatCommand. - * Response from the client - * - */ - void ClientResponse(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler - * Overrides the default implementation. - * - * @param aEvent Identifies the event. - */ - void Event( TInt aEvent ); - -protected: - -// from base class CActive - - /** - * From CActive - * Cancels the usat request. - * - */ - void DoCancel(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler - * Requests the command notification. - * - * @param aStatus Request status - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler - * Precheck before executing the command. - * - * @return TBool indicating command is currently allowed. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler - * Need for ui session. - * - * @return TBool indicating need of ui session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler - * Called when USAT API notifies that command. - * - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. - * Indicates the failure of launching ui client - * - */ - void UiLaunchFailed(); - -private: - - CSendUssdHandler(); - - /** - * Handles the Ussd string sending - * - */ - void SendUssdString(); - - /** - * Handles the Ussd string sending - * - * @param aSendMessage The USSD string to be sent - * @param aSendDcs Data coding scheme of the USSD string - * @param aReceiveMessage Response message from NW - * @param aSendCompletedFirst Indicates is this function completed - * before response - * @param aReceivedDcs Data coding scheme of the received USSD string - */ - void SendUssdStringL( - const TDesC& aSendMessage, - const TUint8 aSendDcs, - TDes& aReceiveMessage, - TBool& aSendCompletedFirst, - TUint8& aReceivedDcs ); - - /** - * Handles the result of Ussd sending - * - * @param aError Result of Ussd sending - */ - void HandleSendUssdResult( TInt aError ); - - /** - * Converts reveived Dcs to correct format - * - * @param aReceivedDcs Received Dcs to convert - */ - void ConvertReceivedDcs( TUint8& aReceivedDcs ) const; - - /** - * Sends terminal response. Makes sure that terminal response - * is not send more that once / command. - * - */ - void SendTerminalResponse(); - - /** - * Check validity of a given Data Coding Cheme (Dcs). - * - * @param aDcs Data Coding Cheme to be validated. - * @return TBool indicating Dcs validity. - */ - TBool DcsValid( const TUint8 aDcs ) const; - - /** - * Checks is the command transparent or not - * - */ - TBool TransparentUssdSending(); - -private: // data - - /** - * SendUssd command data. - */ - RSat::TSendUssdV1 iSendUssdData; - - /** - * SendUssd command package. - */ - RSat::TSendUssdV1Pckg iSendUssdPckg; - - /** - * Response from client - */ - RSat::TSendUssdRspV1 iSendUssdRsp; - - /** - * Response package. - */ - RSat::TSendUssdRspV1Pckg iSendUssdRspPckg; - - /** - * UI query and notification data: - */ - TBool iNeedUiSession; - - /** - * Indicates the query status - */ - TBool iQueryOn; - - /** - * Indicates is AlphaId present - */ - TBool iAlphaIdPresent; - - /** - * Query command data. - */ - TSatQueryV1 iQueryData; - - /** - * Query package. - */ - TSatQueryV1Pckg iQueryPckg; - - /** - * Query response. - */ - TSatQueryRspV1 iQueryRsp; - - /** - * Query rsp package. - */ - TSatQueryRspV1Pckg iQueryRspPckg; - - /** - * Notification send data - */ - TSatNotificationV1 iNotificationData; - - /** - * Notification package - */ - TSatNotificationV1Pckg iNotificationDataPckg; - - /** - * Notification Response data - */ - TSatNotificationRspV1 iNotificationRsp; - - /** - * Notification Response package - */ - TSatNotificationRspV1Pckg iNotificationRspPckg; - - /** - * Indicates is notification sent - */ - TBool iNotificationSent; - - /** - * Indicates is terminal response sent - */ - TBool iTerminalRespSent; - - /** - * Ussd sender - */ - CPhCltUssdSatClient* iUssdClient; - - /** - * Blocks the USSD send until user has respond - */ - CActiveSchedulerWait iWait; - - /** - * Indicates wether user accepted or rejected - */ - TBool iUserAccepted; - - /** - * Flag to signal that command has icon data - * To be removed when icons are allowed in this command - */ - TBool iIconCommand; - - }; - -#endif // CSENDUSSDHANDLER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendUSSDCmd/inc/SendUssdCmd.rls --- a/satengine/SatServer/Commands/SendUSSDCmd/inc/SendUssdCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project SendUssdCmd -* -*/ - - -#ifndef SENDUSSDCMD_RLS -#define SENDUSSDCMD_RLS - -rls_string STRING_r_sendussdcmd_display_name "SendUssd command" -rls_string STRING_r_sendussdcmd_default_data "SendUssdCmd" -rls_string STRING_r_sendussdcmd_opaque_data "" - -#endif // SENDUSSDCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendUSSDCmd/src/10202983.rss --- a/satengine/SatServer/Commands/SendUSSDCmd/src/10202983.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1020 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "SendUssdCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// SendUssdCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO SendUssdCmdInfo - { - dll_uid = 0x10202983; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x10202984; - version_no = 1; - display_name = STRING_r_sendussdcmd_display_name; - default_data = STRING_r_sendussdcmd_default_data; - opaque_data = STRING_r_sendussdcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp --- a/satengine/SatServer/Commands/SendUSSDCmd/src/CSendUssdHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1004 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Handles SendUssd command -* -*/ - - -#include -#include -#include - -#include "MSatSystemState.h" -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CSendUssdHandler.h" -#include "TSatExtErrorUtils.h" -#include "SatLog.h" - -const TUint8 KQuarterShift( 2 ); -const TUint8 KHighNibbleShift( 4 ); -const TUint8 KDcsCharacterSet7Bit( 0x00 ); -const TUint8 KDcsCharacterSet8Bit( 0x01 ); -const TUint8 KDcsCharacterSet16Bit( 0x02 ); -const TUint8 KDcsCharacterSet7Bit2( 0x00 ); -const TUint8 KDcsCharacterSet16Bit2( 0x01 ); -const TInt KSatMaxUSSDString( 182 ); - -// USSD DCS coding. -const TUint8 KSatDcs7Bit( 0x40 ); -const TUint8 KSatDcs8Bit( 0x44 ); -const TUint8 KSatDcsUCS2( 0x48 ); -const TUint8 KSatDcsUnknown( 0xFF ); - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSendUssdHandler* CSendUssdHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::NewL calling" ) - - CSendUssdHandler* self = new( ELeave ) CSendUssdHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -// -CSendUssdHandler::~CSendUssdHandler() - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::~CSendUssdHandler calling" ) - - Cancel(); - - if ( iUssdClient ) - { - delete iUssdClient; - iUssdClient = NULL; - } - - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::~CSendUssdHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatCommand. -// Response from the client -// ----------------------------------------------------------------------------- -// -void CSendUssdHandler::ClientResponse() - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::ClientResponse calling" ) - - if ( iQueryRsp.iAccepted && !iNotificationSent ) - { - LOG( NORMAL, - "SENDUSSD: CSendUssdHandler::ClientResponse Sending notification" ) - iNotificationSent = ETrue; - - // Register service request - TRAP_IGNORE( iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, - this ) ) - - // Send notification - iUtils->SatUiHandler().UiSession()->SendCommand( - &iNotificationDataPckg, - &iNotificationRspPckg, - ESatSProactiveNotification ); - } - - // Notification sent - else if ( iNotificationRsp.iAccepted && iNotificationSent ) - { - LOG( NORMAL, - "SENDUSSD: CSendUssdHandler::ClientResponse Notification response" ) - } - - // User reject - else - { - iUserAccepted = EFalse; - iSendUssdRsp.iInfoType = RSat::KMeProblem; - iSendUssdRsp.iAdditionalInfo.SetLength( 1 ); - iSendUssdRsp.iAdditionalInfo[0] = RSat::KScreenBusy; - // Cannot return KPCmdNotAcceptedByUser (ETSI 11.14 v8.3.0 p65) - iSendUssdRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - - if ( iQueryRsp.iSessionTerminatedByUser ) - { - LOG( NORMAL, - "SENDUSSD: CSendUssdHandler::ClientResponse \ - ESessionTerminatedByUser" ) - // Notify sim session end command that next sim session end - // should close the ui session. - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - - SendTerminalResponse(); - } - - // Release the wait - if ( iWait.IsStarted() ) - { - LOG( NORMAL, "SENDUSSD: CSendUssdHandler::ClientResponse stop iWait" ) - iWait.AsyncStop(); - } - - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Waits for indication of user rejection -// ----------------------------------------------------------------------------- -// -void CSendUssdHandler::Event( TInt aEvent ) - { - LOG2( SIMPLE, - "SENDUSSD: CSendUssdHandler::Event calling, aEvent:%d", aEvent ) - - switch ( aEvent ) - { - case MSatUtils::ECancelledUsingEndKey: - { - // Notify sim session end command that next sim session end - // should close the ui session. - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - // This event is handled as above, but notification must be done. - } - //lint -fallthrough intended here - case MSatUtils::ECommandCancelled: - { - // Cancel Ussd sending - if ( iUssdClient ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::Event iUssdClient true" ) - iUssdClient->SendSatMessageCancel(); - iSendUssdRsp.iGeneralResult = - RSat::KUssdTransactionTerminatedByUser; - iSendUssdRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendUssdRsp.iAdditionalInfo.Zero(); - SendTerminalResponse(); - } - break; - } - - default: - { - // Move event to base class - CSatCommandHandler::Event( aEvent ); - } - } - - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CSendUssdHandler::DoCancel() - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifySendUssdCancel(); - - if ( iUssdClient ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::DoCancel iUssdClient true" ) - delete iUssdClient; - iUssdClient = NULL; - } - - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Requests the command notification. -// ----------------------------------------------------------------------------- -// -void CSendUssdHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iSendUssdData) RSat::TSendUssdV1(); - iNeedUiSession = ETrue; - iQueryRsp.iAccepted = EFalse; // default - iNotificationRsp.iAccepted = EFalse; - iSendUssdRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; // default - - iUtils->USatAPI().NotifySendUssd( aStatus, iSendUssdPckg ); - - // Unregister from events - iUtils->UnregisterEvent( this, MSatUtils::ECommandCancelled ); - iUtils->UnregisterEvent( this, MSatUtils::ECancelledUsingEndKey ); - - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Precheck before executing the command. -// ----------------------------------------------------------------------------- -// -TBool CSendUssdHandler::CommandAllowed() - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::CommandAllowed calling" ) - - // Allow next terminal response to be sent - iTerminalRespSent = EFalse; - - iSendUssdRsp.iUssdString.iUssdString.FillZ(); - iSendUssdRsp.iUssdString.iDcs = 0; - - RMobilePhone::TMobilePhoneRegistrationStatus registrationStatus( - iUtils->SystemState().GetNetworkRegistrationStatus() ); - - TBool commandAllowed( ETrue ); - - // If icon data without alpha id - if ( ( RSat::EAlphaIdProvided != iSendUssdData.iAlphaId.iStatus ) && - ( ( RSat::ESelfExplanatory == iSendUssdData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == iSendUssdData.iIconId.iQualifier ) ) ) - { - commandAllowed = EFalse; - iSendUssdRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iSendUssdRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendUssdRsp.iAdditionalInfo.Zero(); - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::CommandAllowed Icon without alphaid \ - not allowed" ) - } - else if ( - ( RMobilePhone::ERegisteredOnHomeNetwork != registrationStatus ) && - ( RMobilePhone::ERegisteredRoaming != registrationStatus ) ) - { - commandAllowed = EFalse; - iSendUssdRsp.iInfoType = RSat::KMeProblem; - iSendUssdRsp.iAdditionalInfo.SetLength( 1 ); - iSendUssdRsp.iAdditionalInfo[0] = RSat::KNoService; - iSendUssdRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::CommandAllowed Not registered in legal \ - network" ) - } - // OK - else - { - // Check Ussd string validity - TInt dataLength( iSendUssdData.iUssdString.iUssdString.Length() ); - LOG2( SIMPLE, - "SENDUSSD: CSendUssdHandler::CommandAllowed Length of string: %d", - dataLength ) - - // Validate USSD string length. - TBool dataValid( - ( dataLength > 0 ) && ( dataLength <= KSatMaxUSSDString ) ); - - if ( dataValid ) - { - LOG( SIMPLE, "SENDUSSD: dataValid true" ) - // Validate Data Coding Scheme. - dataValid = DcsValid( iSendUssdData.iUssdString.iDcs ); - if ( !dataValid ) - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::CommandAllowed Dcs \ - not acceptable" ) - } - } - - // Second check in case DcsValid() returns EFalse - if ( !dataValid ) - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::CommandAllowed \ - dataValid false" ) - commandAllowed = EFalse; - iSendUssdRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iSendUssdRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendUssdRsp.iAdditionalInfo.Zero(); - } - } - - // Check is command allowd - if ( !commandAllowed ) - { - LOG( SIMPLE, "SENDUSSD: \ - CSendUssdHandler::CommandAllowed exiting - not allowed" ) - SendTerminalResponse(); - } - // Set icon command flag whether icon data was received and set qualifier - // to no icon id - // To be removed when icons are allowed in this command - else if ( ( RSat::ESelfExplanatory == - iSendUssdData.iIconId.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iSendUssdData.iIconId.iQualifier ) ) - { - LOG( SIMPLE, "SENDUSSD: \ - CSendUssdHandler::CommandAllowed ENoIconId" ) - iIconCommand = ETrue; - iSendUssdData.iIconId.iQualifier = RSat::ENoIconId; - } - else - { - iIconCommand = EFalse; - } - - LOG2( SIMPLE, "SENDUSSD: CSendUssdHandler::CommandAllowed exiting,\ - commandAllowed: %d", commandAllowed ) - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Answers for need of UI session. -// ----------------------------------------------------------------------------- -// -TBool CSendUssdHandler::NeedUiSession() - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::NeedUiSession calling" ) - - iNeedUiSession = !TransparentUssdSending(); - - // Notify Cover UI if it's supported - if ( iNeedUiSession && iUtils->CoverUiSupported() ) - { - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::ESendUssd; - medEventData.iAlphaId = iSendUssdData.iAlphaId; - if ( iUtils->SystemState().IsConfirmSatOperationsOn() ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::NeedUiSession KSatLongDuration" ) - medEventData.iDuration.iNumOfUnits = KSatLongDuration; - } - else - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::NeedUiSession KSatDefaultDuration" ) - medEventData.iDuration.iNumOfUnits = KSatDefaultDuration; - } - medEventData.iDuration.iTimeUnit = RSat::ESeconds; - medEventData.iIconID = iSendUssdData.iIconId; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - - LOG2( SIMPLE, - "SENDUSSD: CSendUssdHandler::NeedUiSession exiting,iNeedUiSession:%d", - iNeedUiSession ) - return iNeedUiSession; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when USAT API notifies that command. -// ----------------------------------------------------------------------------- -// -void CSendUssdHandler::HandleCommand() - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::HandleCommand calling" ) - - iUtils->NotifyEvent( MSatUtils::ESendUssdExecuting ); - - // This is ETrue, until user rejects - iUserAccepted = ETrue; - - if ( iNeedUiSession ) - { - - TRAP_IGNORE( - // Register to listen user cancel events: - // Cancel key event from dialog - iUtils->RegisterL( this, MSatUtils::ECommandCancelled ); - // End key from dialog - iUtils->RegisterL( this, MSatUtils::ECancelledUsingEndKey ) ) - - // Build Qyery and Notify packages - TSatAlphaIdStatus alphaIdStatus; - if ( RSat::EAlphaIdNotPresent == iSendUssdData.iAlphaId.iStatus ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleCommand EAlphaIdNotPresent" ) - alphaIdStatus = ESatAlphaIdNotProvided; - } - - else if ( RSat::EAlphaIdProvided == iSendUssdData.iAlphaId.iStatus ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleCommand EAlphaIdProvided" ) - alphaIdStatus = ESatAlphaIdNotNull; - } - - else - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleCommand others" ) - alphaIdStatus = ESatAlphaIdNull; - } - - // Has to be casted to TInt before casting to TSatIconQualifier, because - // GCC warns about the direct cast. - const struct TSatIconId iconId = { iSendUssdData.iIconId.iIdentifier, - static_cast( - static_cast( iSendUssdData.iIconId.iQualifier ) ) }; - - iQueryData.iCommand = ESatSSendUssdQuery; - iQueryData.iQueryText = iSendUssdData.iAlphaId.iAlphaId; - iQueryData.iIconId = iconId; - iQueryData.iAlphaIdStatus = alphaIdStatus; - - iNotificationSent = EFalse; - iNotificationData.iCommand = ESatSSendUssdNotify; - iNotificationData.iText = iSendUssdData.iAlphaId.iAlphaId; - iNotificationData.iIconId = iconId; - iNotificationData.iAlphaIdStatus = alphaIdStatus; - - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - - // Send either query or notification - if ( iQueryOn ) - { - LOG( NORMAL, - "SENDUSSD: CSendUssdHandler::HandleCommand Sending Query" ) - iNotificationSent = EFalse; - - // Register service request - TRAP_IGNORE( iUtils->RegisterServiceRequestL( - ESatSProactiveQuery, - ESatSProactiveQueryResponse, - this ) ) - - // Send query - uiSession->SendCommand( - &iQueryPckg, - &iQueryRspPckg, - ESatSProactiveQuery ); - } - else - { - LOG( NORMAL, - "SENDUSSD: CSendUssdHandler::HandleCommand Sending notification" ) - - iNotificationSent = ETrue; - - // Register service request - TRAP_IGNORE( iUtils->RegisterServiceRequestL( - ESatSProactiveNotification, - ESatSProactiveNotificationResponse, - this ) ) - - // Send notification - uiSession->SendCommand( - &iNotificationDataPckg, - &iNotificationRspPckg, - ESatSProactiveNotification ); - } - - if ( !iWait.IsStarted() ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleCommand start iWait" ) - // Notification / query sent to UI, wait for response - iWait.Start(); - } - } - - if ( iUserAccepted ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleCommand UserAccepted" ) - // No need to wait response, send Ussd string - SendUssdString(); - } - - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Indicates the failure of launching ui client -// ----------------------------------------------------------------------------- -// -void CSendUssdHandler::UiLaunchFailed() - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::UiLaunchFailed calling" ) - - iSendUssdRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendUssdRsp.iInfoType = RSat::KMeProblem; - iSendUssdRsp.iAdditionalInfo.SetLength( 1 ); - iSendUssdRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - SendTerminalResponse(); - - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized. -CSendUssdHandler::CSendUssdHandler() : - CSatCommandHandler(), - iSendUssdData(), - iSendUssdPckg( iSendUssdData ), - iSendUssdRsp(), - iSendUssdRspPckg( iSendUssdRsp ), - iQueryData(), - iQueryPckg( iQueryData ), - iQueryRsp(), - iQueryRspPckg( iQueryRsp ), - iNotificationData(), - iNotificationDataPckg( iNotificationData ), - iNotificationRsp(), - iNotificationRspPckg( iNotificationRsp ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::CSendUssdHandler calling - exiting" ) - } - - -// ----------------------------------------------------------------------------- -// Handles the Ussd string sending -// ----------------------------------------------------------------------------- -// -void CSendUssdHandler::SendUssdString() - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::SendUssdString calling" ) - - TBool sendCompletedFirst( EFalse ); // This is always false - - TBuf sendMessage; - sendMessage.Copy( iSendUssdData.iUssdString.iUssdString ); - - TBuf receiveMessage; - - TRAPD( error, SendUssdStringL( - sendMessage, - iSendUssdData.iUssdString.iDcs, - receiveMessage, - sendCompletedFirst, - iSendUssdRsp.iUssdString.iDcs ) ); - - iSendUssdRsp.iUssdString.iUssdString.Copy( receiveMessage ); - - HandleSendUssdResult( error ); - - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::SendUssdString exiting" ) - } - -// ----------------------------------------------------------------------------- -// Handles the Ussd string sending. -// ----------------------------------------------------------------------------- -// -void CSendUssdHandler::SendUssdStringL( - const TDesC& aSendMessage, - const TUint8 aSendDcs, - TDes& aReceiveMessage, - TBool& aSendCompletedFirst, - TUint8& aReceivedDcs ) - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::SendUssdStringL calling" ) - TInt error( KErrNone ); - - if ( iUssdClient ) - { - delete iUssdClient; - iUssdClient = NULL; - } - - // This needs to be EFalse, because otherwise KERN-EXEC:3 and SAT Server - // crashes. - iUssdClient = CPhCltUssdSatClient::NewL( EFalse ); - - LOG2( NORMAL, - "SENDUSSD: CSendUssdHandler::SendUssdStringL aSendDcs: %x", - aSendDcs ) - LOG2( NORMAL, - "SENDUSSD: CSendUssdHandler::SendUssdStringL Send length: %d", - aSendMessage.Length() ) - - #ifdef ENABLE_SAT_LOGGING - - const TInt count( aSendMessage.Length() ); - for ( TInt i = 0; i < count; i++ ) - { - LOG2( NORMAL, - "SENDUSSD: CSendUssdHandler::SendUssdStringL : 0x%X", - (char)aSendMessage[i] ) - } - - #endif - - error = iUssdClient->SendSatMessage( - aSendMessage, - aSendDcs, - aReceiveMessage, - aSendCompletedFirst, - aReceivedDcs ); - - LOG2( NORMAL, - "SENDUSSD: CSendUssdHandler::SendUssdStringL error: %d", error ) - LOG2( NORMAL, - "SENDUSSD: CSendUssdHandler::SendUssdStringL aReceivedDcs: %x", - aReceivedDcs ) - LOG2( NORMAL, - "SENDUSSD: CSendUssdHandler::SendUssdStringL Received length:%d", - aReceiveMessage.Length() ) - LOG2( NORMAL, - "SENDUSSD: CSendUssdHandler::SendUssdStringL Completed first:%i", - aSendCompletedFirst ) - - // Convert received Dcs - ConvertReceivedDcs( aReceivedDcs ); - - User::LeaveIfError( error ); - - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::SendUssdStringL exiting" ) - } - -// ----------------------------------------------------------------------------- -// Handles the result of Ussd sending. -// ----------------------------------------------------------------------------- -// -void CSendUssdHandler::HandleSendUssdResult( TInt aError ) - { - LOG2( SIMPLE, "SENDUSSD: CSendUssdHandler::HandleSendUssdResult calling: \ - %i", aError ) - - if ( iQueryRsp.iSessionTerminatedByUser || - iNotificationRsp.iSessionTerminatedByUser || - ( KErrCancel == aError ) ) // End key - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleSendUssdResult TerminatedByUser" ) - iSendUssdRsp.iGeneralResult = RSat::KUssdTransactionTerminatedByUser; - iSendUssdRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendUssdRsp.iAdditionalInfo.Zero(); - } - else if ( TSatExtErrorUtils::IsExtendedError( aError ) ) // extended error - { - TUint8 addInfo( 0 ); - if ( KErrGsmCCCallRejected == aError ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleSendUssdResult permanent error" ) - // ussd request is rejected by SIM - iSendUssdRsp.iGeneralResult = RSat::KInteractionWithCCPermanentError; - iSendUssdRsp.iInfoType = RSat::KMeProblem; - addInfo = RSat::KActionNotAllowed; - } - // Check and map network failure - else if ( TSatExtErrorUtils::IsNetworkError( aError ) ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleSendUssdResult NetworkError" ) - // Network error, map and modify - addInfo = TSatExtErrorUtils::MapError( aError ); - iSendUssdRsp.iGeneralResult = RSat::KNetworkUnableToProcessCmd; - iSendUssdRsp.iInfoType = RSat::KSatNetworkErrorInfo; - } - else - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleSendUssdResult MeProblem" ) - // Not a network error, don't modify - addInfo = TSatExtErrorUtils::MapError( aError, EFalse ); - iSendUssdRsp.iGeneralResult = RSat::KUssdReturnError; - iSendUssdRsp.iInfoType = RSat::KMeProblem; - } - // Add additional info to response - iSendUssdRsp.iAdditionalInfo.SetLength( 1 ); - iSendUssdRsp.iAdditionalInfo[0] = static_cast( addInfo ); - } - else if ( KErrInUse == aError ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleSendUssdResult KMeBusyOnUssd" ) - iSendUssdRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendUssdRsp.iInfoType = RSat::KMeProblem; - iSendUssdRsp.iAdditionalInfo.SetLength( 1 ); - iSendUssdRsp.iAdditionalInfo[0] = RSat::KMeBusyOnUssd; - } - else if ( KErrGeneral == aError ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleSendUssdResult KMeBusyOnSs" ) - iSendUssdRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSendUssdRsp.iInfoType = RSat::KMeProblem; - iSendUssdRsp.iAdditionalInfo.SetLength( 1 ); - iSendUssdRsp.iAdditionalInfo[0] = RSat::KMeBusyOnSs; - } - else if ( KErrNotFound == aError ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleSendUssdResult \ - KNoSpecificMeProblem" ) - iSendUssdRsp.iGeneralResult = RSat::KUssdReturnError; - iSendUssdRsp.iInfoType = RSat::KMeProblem; - iSendUssdRsp.iAdditionalInfo.SetLength( 1 ); - iSendUssdRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - } - else if ( KErrSatBusy == aError ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleSendUssdResult \ - KInteractionWithCCTemporaryError" ) - iSendUssdRsp.iGeneralResult = RSat::KInteractionWithCCTemporaryError; - iSendUssdRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendUssdRsp.iAdditionalInfo.SetLength( 0 ); - iSendUssdRsp.iAdditionalInfo.Zero(); - } - else if ( KErrSatControl == aError ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleSendUssdResult \ - KModifiedByCallControl" ) - iSendUssdRsp.iGeneralResult = RSat::KModifiedByCallControl; - iSendUssdRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendUssdRsp.iAdditionalInfo.SetLength( 0 ); - iSendUssdRsp.iAdditionalInfo.Zero(); - } - else if ( KErrNone == aError ) // Success case - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleSendUssdResult success" ) - // Convert terminal rsp if icon used - iSendUssdRsp.iGeneralResult = RSat::KSuccess; - - // If command had icon data and was done succesfully, - // report that icon was not shown. - // To be removed and correct handling (i.e. ClientResponse to - // notification is received) for general result - // KSuccessRequestedIconNotDisplayed must be added when icons - // are allowed in this command - if ( iIconCommand ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleSendUssdResult \ - IconNotDisplayed" ) - iSendUssdRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - - iSendUssdRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendUssdRsp.iAdditionalInfo.Zero(); - } - else // unknown error - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::HandleSendUssdResult unknown error" ) - iSendUssdRsp.iGeneralResult = RSat::KUssdReturnError; - iSendUssdRsp.iInfoType = RSat::KNoAdditionalInfo; - iSendUssdRsp.iAdditionalInfo.Zero(); - } - - SendTerminalResponse(); - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::HandleSendUssdResult exiting" ) - } - - -// ----------------------------------------------------------------------------- -// Converts reveived Dcs to correct format. -// ----------------------------------------------------------------------------- -// -void CSendUssdHandler::ConvertReceivedDcs( TUint8& aReceivedDcs ) const - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::ConvertReceivedDcs calling" ) - - switch ( aReceivedDcs ) - { - case KPhCltDcs7Bit: - { - LOG( NORMAL, - "SENDUSSD: CSendUssdHandler::ConvertReceivedDcs Dcs7Bit" ) - aReceivedDcs = KSatDcs7Bit; - } - break; - - case KPhCltDcs8Bit: - { - LOG( NORMAL, - "SENDUSSD: CSendUssdHandler::ConvertReceivedDcs Dcs8Bit" ) - aReceivedDcs = KSatDcs8Bit; - } - break; - - case KPhCltDcsUcs2: - { - LOG( NORMAL, - "SENDUSSD: CSendUssdHandler::ConvertReceivedDcs DcsUCS2" ) - aReceivedDcs = KSatDcsUCS2; - } - break; - - case KPhCltDcsUnknown: - { - LOG( NORMAL, - "SENDUSSD: CSendUssdHandler::ConvertReceivedDcs DcsUnknown" ) - aReceivedDcs = KSatDcsUnknown; - } - break; - - case KSatDcs7Bit: - case KSatDcs8Bit: - case KSatDcsUCS2: - case KSatDcsUnknown: - { - LOG( NORMAL, - "SENDUSSD: CSendUssdHandler::ConvertReceivedDcs Already valid" ) - } - break; - - default: - { - LOG( NORMAL, - "SENDUSSD: CSendUssdHandler::ConvertReceivedDcs Unknown" ) - aReceivedDcs = KSatDcsUnknown; - } - break; - } - - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::ConvertReceivedDcs exiting" ) - } - -// ----------------------------------------------------------------------------- -// Sends terminal response. Makes sure that terminal response -// is not send more that once / command. -// ----------------------------------------------------------------------------- -// -void CSendUssdHandler::SendTerminalResponse() - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::SendTerminalResponse calling" ) - - if ( !iTerminalRespSent ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::SendTerminalResponse iTerminalRespSent \ - false" ) - - LOG3(SIMPLE, "SENDUSSD: CSendUssdHandler::SendTerminalResponse \ - iDcs=%d,iUssdString=%s", iSendUssdRsp.iUssdString.iDcs, - &iSendUssdRsp.iUssdString.iUssdString); - - iTerminalRespSent = ETrue; - iSendUssdRsp.SetPCmdNumber( iSendUssdData.PCmdNumber() ); - TerminalRsp( RSat::ESendUssd, iSendUssdRspPckg ); - } - - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::SendTerminalResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// Check validity of a given Data Coding Cheme (Dcs). -// ----------------------------------------------------------------------------- -// -TBool CSendUssdHandler::DcsValid( const TUint8 aDcs ) const - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::DcsValid calling" ) - - TBool isDcsValid( EFalse ); - // 76543210 - TUint8 codingGroup = ( aDcs & 0xF0 ) >> KHighNibbleShift; // bits XXXX____ - TUint8 characterSet = ( aDcs & 0x0C ) >> KQuarterShift; // bits ____XX__ - TUint8 lowQuartet = ( aDcs & 0x0F ); // bits ____XXXX - LOG2( SIMPLE, - "SENDUSSD: CSendUssdHandler::DcsValid codingGroup: %x", codingGroup) - switch ( codingGroup ) - { - case 0x00: - case 0x02: - case 0x03: - case 0x0F: - { - isDcsValid = ETrue; - break; - } - - case 0x01: - { - if ( ( KDcsCharacterSet7Bit2 == lowQuartet ) || - ( KDcsCharacterSet16Bit2 == lowQuartet ) ) - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::DcsValid valid" ) - isDcsValid = ETrue; - } - break; - } - - case 0x04: - case 0x05: - case 0x06: - case 0x07: - case 0x09: - { - if ( ( KDcsCharacterSet7Bit == characterSet ) || - ( KDcsCharacterSet8Bit == characterSet ) || - ( KDcsCharacterSet16Bit == characterSet ) ) - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::DcsValid isDcsValid" ) - isDcsValid = ETrue; - } - break; - } - - default: - { - LOG2( SIMPLE, "SENDUSSD: Reserved Dcs found: %x", aDcs ) - } - } - - LOG2( - SIMPLE, - "SENDUSSD: CSendUssdHandler::DcsValid exiting, valid = %d", - isDcsValid ) - return isDcsValid; - } - -// ----------------------------------------------------------------------------- -// USSD sending should be transparent if alpha identifier is provided but it's -// length is 0. Also user query setting is not on. -// ----------------------------------------------------------------------------- -// -TBool CSendUssdHandler::TransparentUssdSending() - { - LOG( SIMPLE, "SENDUSSD: CSendUssdHandler::TransparentUssdSending calling" ) - TBool result( EFalse ); - const RSat::TAlphaId alphaId( iSendUssdData.iAlphaId ); - - // Store to member variable for later use - iQueryOn = iUtils->SystemState().IsConfirmSatOperationsOn(); - - if ( ( alphaId.iStatus == RSat::EAlphaIdProvided && - alphaId.iAlphaId.Length() == 0 ) || - alphaId.iStatus == RSat::EAlphaIdNull ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::TransparentUssdSending AlphaId" ) - if ( !iQueryOn ) - { - LOG( SIMPLE, - "SENDUSSD: CSendUssdHandler::TransparentUssdSending iQueryOn \ - false" ) - result = ETrue; - } - } - - LOG2( SIMPLE, - "SENDUSSD: CSendUssdHandler::TransparentUssdSending exiting: %i", result ) - return result; - } - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SendUSSDCmd/src/std.cpp --- a/satengine/SatServer/Commands/SendUSSDCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - -#include -#include -#include "CSendUssdHandler.h" - -const TImplementationProxy implementationTable[] = - { - //lint -e{611, 1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x10202984, CSendUssdHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpCallCmd/group/Create-UT_CSetUpCallHandler-Sis.bat --- a/satengine/SatServer/Commands/SetUpCallCmd/group/Create-UT_CSetUpCallHandler-Sis.bat Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: This BAT copies Test DLL to local folder and makes SIS file -rem - -@echo off -echo. -echo ==================================== -echo. -echo Digia EUnit - Test -echo. -echo This BAT copies Test DLL -echo to local folder and makes SIS file -echo. -echo ==================================== -echo. - -:CHECK_EPOCROOT -echo. -echo - verify epoc root -set EPOCROOT -if errorlevel == 1 goto END_ERROR - -:COPY_DLL -echo. -echo - copy test dll to current directory -copy %EPOCROOT%epoc32\release\thumb\urel\UT_CSetUpCallHandler.dll . -if errorlevel == 1 goto END_ERROR - -:CREATE_DIR -echo. -echo - create Sis folder (created only if needed) -mkdir ..\Sis - -:MAKESIS -echo. -echo - makesis UT_CSetUpCallHandler.pkg ..\sis\UT_CSetUpCallHandler.sis -call makesis UT_CSetUpCallHandler.pkg ..\sis\UT_CSetUpCallHandler.sis -if errorlevel == 1 goto END_ERROR - -:DELETE_DLL -echo. -echo - remove the copied dll from current folder -del UT_CSetUpCallHandler.dll -goto END - -:END_ERROR -echo. -echo Sis creation failed. -goto FINAL_END - -:END -echo. -echo Sis file created succesfully -echo ============================ - -:FINAL_END -echo. - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpCallCmd/group/SetUpCallCmd.mmp --- a/satengine/SatServer/Commands/SetUpCallCmd/group/SetUpCallCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Project definition file for project SetUpCall plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET SetUpCallCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x1000F005 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CSetUpCallHandler.cpp -SOURCE csetupcallrequesthandler.cpp -SOURCE csetupcalldtmfsender.cpp - -START RESOURCE 1000f005.rss -TARGET SetUpCallCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY etelmm.lib -LIBRARY etel.lib -LIBRARY satengine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpCallCmd/group/UT_CSetUpCallHandler.pkg --- a/satengine/SatServer/Commands/SetUpCallCmd/group/UT_CSetUpCallHandler.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +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: For packing UT_CSetUpCallHandler. -; - -/* -* ============================================================================== -* Name : UT_CSetUpCallHandler.pkg -* Part of : SatServer / SetUpCallCmd -* Description : Project package file for project SetUpCall plug-in -* Version : %version: e003sa17#6 % -* -* Copyright (C) 2002-2008 Nokia. All rights reserved. -* This material, including documentation and any related computer -* programs, is protected by copyright controlled by Nokia. All -* rights are reserved. Copying, including reproducing, storing, -* adapting or translating, any or all of this material requires the -* prior written consent of Nokia. This material also contains -* confidential information which may not be disclosed to others -* without the prior written consent of Nokia. -* ============================================================================ -* Template version: 4.0 -*/ -; Supported languages -&en - -; Package header (one name for each supported language) -#{"UT_CSetUpCallHandler"},(0x01700000),0,10,0 - -; Package signature - - -; Options line not supported currently - -; Conditions blocks not supported currently - -; Language independent files that are always installed -"UT_CSetUpCallHandler.dll"-"!:\DigiaEUnit\Tests\UT_CSetUpCallHandler.dll" - -; Language dependent files - - -; Requisites (of type: (UID),Major,Minor,Build-Number,{"Requisite Name1", "Requisite Name2"}) -(0x101F6F88), 0, 0, 0, {"Series60ProductID"} diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpCallCmd/group/bld.inf --- a/satengine/SatServer/Commands/SetUpCallCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project SetUpCall plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -SetUpCallCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpCallCmd/inc/CSetUpCallHandler.h --- a/satengine/SatServer/Commands/SetUpCallCmd/inc/CSetUpCallHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,257 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: SetUpCall command handler -* -*/ - - -#ifndef CSETUPCALLHANDLER_H -#define CSETUPCALLHANDLER_H - -#include - -#include "CSatCommandHandler.h" -#include "SatSTypes.h" - -class CSetupCallRequestHandler; - -/** -* Command handler for SetUpCall command. -* -* @lib SetUpCallCmd.lib -* @since S60 v3.0 -*/ -class CSetUpCallHandler : public CSatCommandHandler - { - -public: - - static CSetUpCallHandler* NewL( MSatUtils* aUtils ); - - virtual ~CSetUpCallHandler(); - -// from base class MSatEventObserver - - /** - * From MSatEventObserver.? - * Event notification. - * - * @param aEvent Identifies the event. - */ - void Event( TInt aEvent ); - -// from base class MSatCommand - - /** - * From MSatCommand. - * Response from the client - * - */ - void ClientResponse(); - - /** - * Handle the setup call Request Complete. - * - * @param aErrCode Result of ETelMM Api calling. - */ - void SetupCallRequestComplete( const TInt aErrCode ); - -protected: - -// from base class CActive - - /** - * From CActive - * Cancels the usat request. - * - */ - void DoCancel(); - -// from base class CSatCommandHandler - - /** - * From CSatCommandHandler - * Requests the command notification. - * - * @param aStatus Request status - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler - * Precheck before executing the command. - * - * @return TBool indicating command is currently allowed. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler - * Need for ui session. - * - * @return TBool indicating need of ui session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler - * Called when USAT API notifies that command. - * - */ - void HandleCommand(); - - /** - * From CSatCommandHandler - * Indication that UI launching failed. - * - */ - void UiLaunchFailed(); - -private: - - CSetUpCallHandler(); - - void ConstructL(); - - /** - * Performs the request to dial - * - * @since S60 3.2 - */ - void DoSetupCall( CSetupCallRequestHandler& aHandler ); - - /** - * Return terminal response filled according to dial result. - * - * @since S60 3.2 - * @param aStatus Dial status from phone. - */ - void CompleteSetupCallWithStatus( - const TInt32 aStatus ); - - /** - * Return terminal response filled according to result. - * - * @since S60 3.2 - * @param aGeneralResult Completion status. - */ - void CompleteSetupCall( - const RSat::TPCmdResult aGeneralResult ); - - /** - * Return terminal response filled according to result. - * - * @since S60 3.2 - * @param aGeneralResult Completion status. - * @param aAdditionalInfo Completion status additional info. - */ - void CompleteSetupCall( - const RSat::TPCmdResult aGeneralResult, - const TInt16 aAdditionalInfo ); - - /** - * Checks the dialling number string for extended BCD - * values. Changes them to correct characters - * see ETSI 11.11 10.5.1 - * - * @param aNumber dialling number string - */ - void CheckNumber( TDes& aNumber ) const; - - /** - * Create emergency call - */ - void CreateEmergencyCall( CSetupCallRequestHandler& aHandler ); - - /** - * Check the Param of the setup call - */ - TBool CheckSetupCallParam(); - -private: // data - - /** - * SetUpCall command data from SIM. - */ - RSat::TSetUpCallV1 iSetUpCallData; - - /** - * SetUpCall command package. - */ - RSat::TSetUpCallV1Pckg iSetUpCallPckg; - - /** - * SetUpCall response data from client. - */ - RSat::TSetUpCallRspV2 iSetUpCallRsp; - - /** - * SetUpCall response package - */ - RSat::TSetUpCallRspV2Pckg iSetUpCallRspPckg; - - /** - * Query command data. - */ - TSatQueryV1 iQueryData; - - /** - * Query package. - */ - TSatQueryV1Pckg iQueryPckg; - - /** - * Query response. - */ - TSatQueryRspV1 iQueryRsp; - - /** - * Query rsp package. - */ - TSatQueryRspV1Pckg iQueryRspPckg; - - /** - * Handing the asynchronous request - */ - CSetupCallRequestHandler* iRequestHandler; - - /** - * Current call is an emergency call. - */ - TBool iEmergencyCall; - - /** - * Indicates if call control is active - */ - TBool iCallControlActive; - - /** - * wait scheduler - */ - CActiveSchedulerWait iWait; - - /** - * Boolean indicating is command pending for CallControl completion - */ - TBool iPCmdPending; - - /** - * Flag to signal that command has icon data - * To be removed when icons are allowed in this command - */ - TBool iIconCommand; - - }; - -#endif // CSETUPCALLHANDLER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpCallCmd/inc/SetUpCallCmd.rls --- a/satengine/SatServer/Commands/SetUpCallCmd/inc/SetUpCallCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project SetUpCallCmd -* -*/ - - -#ifndef SETUPCALLCMD_RLS -#define SETUPCALLCMD_RLS - -rls_string STRING_r_setupcallcmd_display_name "SetUpCall command" -rls_string STRING_r_setupcallcmd_default_data "SetUpCallCmd" -rls_string STRING_r_setupcallcmd_opaque_data "" - -#endif // SETUPCALLCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpCallCmd/inc/csetupcallrequesthandler.h --- a/satengine/SatServer/Commands/SetUpCallCmd/inc/csetupcallrequesthandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,119 +0,0 @@ -/* -* Copyright (c) 2009-2010 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: Create the call and emergency call to ETelMM -* -*/ - - -#ifndef CSETUPCALLREQUESTHANDLER_H -#define CSETUPCALLREQUESTHANDLER_H - -#include -#include "msatmultimodeapi.h" - -class CSetUpCallHandler; -class MSatAsyncToSync; -class CSetupCallDtmfSender; - -/** -* This is the handler for the ETel MM api Request. -* This active objects is registered with ETelMM Api to send request and -* receive notifications about some Request Complete. -* -*/ - -NONSHARABLE_CLASS ( CSetupCallRequestHandler ) : public CActive - { -public: - - /** - * Two-phased constructor. - * @param aPhone A reference to the MSatMultiModeApi. - * @param aDispatcher Pointer to Ss handler - * @return a pointer to the newly created object. - */ - static CSetupCallRequestHandler* NewL( MSatMultiModeApi& aPhone, - CSetUpCallHandler* aDispatcher ); - - /** - * Destructor. - */ - virtual ~CSetupCallRequestHandler(); - - /** - * Access RMobileCall::DialNoFdnCheck by MSatMultiModeApi - * for the paramter information please see the etelmm.h - */ - void DialNumber( const TDesC8& aCallParams, TDes& aTelNumber, - TBool aTerminateOtherCall, MSatAsyncToSync* aAsyncToSync ); - - /** - * Access RMobileCall::DialEmergencyCall by MSatMultiModeApi - * for the paramter information please see the etelmm.h - */ - void DialEmergencyCall( const TDesC& aTelNumber ); - - /** - * Cancel the asynchronous operations that required to the ETel MM api - */ - void CancelOperation(); - - -protected: - - /** - * From CActive, handles the request completion. - */ - void RunL(); - - - /** - * From CActive, handle the request cancel - */ - void DoCancel(); - -private: - - /** - * C++ default constructor. - * @param aPriority An active object priority value. - * @param aPhone A reference to MSatMultiModeApi. - */ - CSetupCallRequestHandler( MSatMultiModeApi& aPhone, - CSetUpCallHandler* aDispatcher ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - -private: // Data - - /** - * Reference to the MSatMultiModeApi - */ - MSatMultiModeApi& iPhone; - - /** - * Pointer to SetupCall command handler - */ - CSetUpCallHandler* iDispatcher; - - /** - * Own. Dtmf sender - */ - CSetupCallDtmfSender* iDtmfSender; - }; - -#endif // CSETUPCALLREQUESTHANDLER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpCallCmd/src/1000f005.rss --- a/satengine/SatServer/Commands/SetUpCallCmd/src/1000f005.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1000 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "SetUpCallCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// SetUpCallCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO SetUpCallCmdInfo - { - dll_uid = 0x1000f005; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x1000f006; - version_no = 1; - display_name = STRING_r_setupcallcmd_display_name; - default_data = STRING_r_setupcallcmd_default_data; - opaque_data = STRING_r_setupcallcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpCallCmd/src/CSetUpCallHandler.cpp --- a/satengine/SatServer/Commands/SetUpCallCmd/src/CSetUpCallHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,997 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Handles SetUpCall command -* -*/ -#include -#include -#include - -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatSystemState.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "csetupcallrequesthandler.h" -#include "CSetUpCallHandler.h" -#include "TSatExtErrorUtils.h" -#include "SatLog.h" - -const TUint8 KBCDAsterisk( 0x0A ); -const TUint8 KBCDDash( 0x0B ); -const TUint8 KBCDDTMF( 0x0C ); -const TUint8 KBCDWild( 0x0D ); -const TUint8 KBCDExpansion( 0x0E ); - -const TUint8 KAsteriskChar( 0x2A ); -const TUint8 KDashChar( 0x23 ); -const TUint8 KDTMFChar( 0x70 ); -const TUint8 KWildChar( 0x77 ); -const TUint8 KExpansionChar( 0x2E ); - -/** Maximum name length. */ -const TInt KSatMaximumNameLength = 50; - -/** Maximum phone number length same as used by phone. */ -const TInt KSatMaximumPhoneNumberLength = 100; - -/** The subaddress length, see ITU-T I.330 and 3GPP TS 11.14. */ -const TInt KSatSubAddressLength = 21; - -/** The maximum bearer length. The bearer capabilities as -defined in GSM 04.08. */ -const TInt KSatBearerLength = 14; - - -_LIT( KFixedSimEmergencyNumber, "112" ); - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSetUpCallHandler* CSetUpCallHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::NewL calling" ) - - CSetUpCallHandler* self = new( ELeave ) CSetUpCallHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// Destructor. -// ----------------------------------------------------------------------------- -// -CSetUpCallHandler::~CSetUpCallHandler() - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::~CSetUpCallHandler calling" ) - - Cancel(); - - delete iRequestHandler; - iRequestHandler = NULL; - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::~CSetUpCallHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatEventObserver. -// Event notification. -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::Event( TInt aEvent ) - { - LOG2( SIMPLE, "SETUPCALL: CSetUpCallHandler::Event calling,aEvent: %i", - aEvent ) - - if ( MSatUtils::ECallControlExecuting == aEvent ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::Event: ECallControlExecuting" ) - iCallControlActive = ETrue; - } - else if ( MSatUtils::ECallControlDone == aEvent ) - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::Event: ECallControlDone" ) - iCallControlActive = EFalse; - - // Check if SetUpCall command has arrived from SIM during CC execution - // Emergency call is made immediate regardless of call control. - if ( !IsActive() && iPCmdPending && !iEmergencyCall ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::Event: setupcall" ) - iPCmdPending = EFalse; - // Execute the setupcall. - DoHandleCommand(); - } - } - - CSatCommandHandler::Event( aEvent ); - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class MSatCommand. -// Response from the client. -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::ClientResponse() - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::ClientResponse calling" ) - - if ( iQueryRsp.iAccepted ) - { - // User accepted the call, make the call - if( iRequestHandler ) - { - DoSetupCall( *iRequestHandler ); - } - else - { - CompleteSetupCall( - RSat::KMeUnableToProcessCmd, - RSat::KNoSpecificMeProblem ); - } - } - else - { - LOG( NORMAL, - "SETUPCALL: CSetUpCallHandler::ClientResponse User Cancel" ) - - if ( iQueryRsp.iSessionTerminatedByUser ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::ClientResponse TerminatedByUser" ) - // Notify sim session end command that next sim session end - // should close the ui session. - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - - // End key is pressed during confirmation or user denied call setup, - // KPCmdNotAcceptedByUser is an expected response, - CompleteSetupCall( RSat::KPCmdNotAcceptedByUser ); - } - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::ClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::DoCancel() - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifySetUpCallCancel(); - if( iRequestHandler ) - { - iRequestHandler->Cancel(); - } - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Requests the command notification. -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iSetUpCallData) RSat::TSetUpCallV1(); - iPCmdPending = EFalse; - iQueryRsp.iAccepted = EFalse; - - iUtils->USatAPI().NotifySetUpCall( aStatus, iSetUpCallPckg ); - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// SetUpCall command is not allowed in following situations: -// - Phone is not registered to homenetwork and roaming. -// - phone is ringing, alerting or call is on and SetUpCall command -// is "make call only if not busy", "make call only if not busy wiht -// redial" or "Call type not set". -// ----------------------------------------------------------------------------- -// -TBool CSetUpCallHandler::CommandAllowed() - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CommandAllowed calling" ) - TBool commandAllowed( ETrue ); - - // Emergency call can newer be denied. - // The usage of constant emergency number is according to ETSI TS 31.111. - iEmergencyCall = - ( 0 == iSetUpCallData.iAddress.iTelNumber.Compare( - KFixedSimEmergencyNumber ) ); - - if ( !iEmergencyCall ) - { - RMobilePhone::TMobilePhoneRegistrationStatus networkStatus( - iUtils->SystemState().GetNetworkRegistrationStatus() ); - - if ( ( ( RSat::EAlphaIdProvided != - iSetUpCallData.iAlphaIdConfirmationPhase.iStatus ) && - ( ( RSat::ESelfExplanatory == - iSetUpCallData.iIconIdConfirmationPhase.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iSetUpCallData.iIconIdConfirmationPhase.iQualifier ) ) ) - || - ( ( RSat::EAlphaIdProvided != - iSetUpCallData.iAlphaIdCallSetUpPhase.iStatus ) && - ( ( RSat::ESelfExplanatory == - iSetUpCallData.iIconIdCallSetUpPhase.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iSetUpCallData.iIconIdCallSetUpPhase.iQualifier ) ) ) ) - { - // Icon data is received without alpha id. - CompleteSetupCall( RSat::KCmdDataNotUnderstood ); - - commandAllowed = EFalse; - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CommandAllowed Icon received \ - without alpha id" ) - } - else if ( ( RMobilePhone::ERegisteredOnHomeNetwork != networkStatus ) && - ( RMobilePhone::ERegisteredRoaming != networkStatus ) ) - { - // Not registered to network. - CompleteSetupCall( RSat::KMeUnableToProcessCmd, RSat::KNoService ); - - commandAllowed = EFalse; - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CommandAllowed Registration not \ - valid" ) - } - else - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CommandAllowed others" ) - // Call type - const RSat::TSetUpCallType callType( iSetUpCallData.iType ); - - // Command does not allow to make a call if busy - const TBool dontMakeCallIfBusy( - ( RSat::EOnlyIfNotBusy == callType ) || - ( RSat::EOnlyIfNotBusyWithRedial == callType ) || - ( RSat::ESetUpCallTypeNotSet == callType ) ); - - if ( dontMakeCallIfBusy ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CommandAllowed \ - dontMakeCallIfBusy true" ) - // Is the call ongoing - const TBool callIsOngoing( - iUtils->SystemState().IsCallActive() ); - - // Is the call incoming - const TBool callIsIncoming( - iUtils->SystemState().IsCallIncoming() ); - - if ( callIsOngoing || callIsIncoming ) - { - // Set the terminal response info. - CompleteSetupCall( - RSat::KMeUnableToProcessCmd, - RSat::KMeBusyOnCall ); - - commandAllowed = EFalse; - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CommandAllowed Busy" ) - } - } - } - - if ( commandAllowed ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CommandAllowed Allowed to call" ) - - // Set icon command flag whether icon data was received and - // set qualifier to no icon id - // To be removed when icons are allowed in this command - if ( ( RSat::ESelfExplanatory == - iSetUpCallData.iIconIdConfirmationPhase.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iSetUpCallData.iIconIdConfirmationPhase.iQualifier ) || - ( RSat::ESelfExplanatory == - iSetUpCallData.iIconIdCallSetUpPhase.iQualifier ) || - ( RSat::ENotSelfExplanatory == - iSetUpCallData.iIconIdCallSetUpPhase.iQualifier ) ) - { - LOG( SIMPLE, "SETUPCALL: ENoIconId" ) - iIconCommand = ETrue; - iSetUpCallData.iIconIdConfirmationPhase.iQualifier = - RSat::ENoIconId; - iSetUpCallData.iIconIdCallSetUpPhase.iQualifier = - RSat::ENoIconId; - } - else - { - iIconCommand = EFalse; - } - } - } - else - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CommandAllowed Emergency call" ) - } - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CommandAllowed exiting" ) - - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Need for ui session. -// ----------------------------------------------------------------------------- -// -TBool CSetUpCallHandler::NeedUiSession() - { - LOG( NORMAL, "SETUPCALL: CSetUpCallHandler::NeedUiSession calling" ) - - // Notify Cover UI if it's supported - if ( iUtils->CoverUiSupported() ) - { - LOG( NORMAL, - "SETUPCALL: CSetUpCallHandler::NeedUiSession CoverUiSupported" ) - TSatCommandData medEventData; - medEventData.iPCmdNumber = RSat::ESetUpCall; - medEventData.iAlphaId = iSetUpCallData.iAlphaIdCallSetUpPhase; - medEventData.iDuration.iTimeUnit = RSat::ESeconds; - medEventData.iDuration.iNumOfUnits = KSatDefaultDuration; - medEventData.iIconID = iSetUpCallData.iIconIdCallSetUpPhase; - TSatCommandPckg tPckg( medEventData ); - iUtils->RaiseSatEvent( tPckg ); - } - - LOG( NORMAL, "SETUPCALL: CSetUpCallHandler::NeedUiSession exiting" ) - return ETrue; - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Called when USAT API notifies that command. -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::HandleCommand() - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::HandleCommand calling" ) - - if ( iEmergencyCall ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::HandleCommand iEmergencyCall true" ) - if ( iRequestHandler ) - { - CreateEmergencyCall( *iRequestHandler ); - } - else - { - iEmergencyCall = EFalse; - // Set the terminal response info. - CompleteSetupCall( - RSat::KMeUnableToProcessCmd, - RSat::KNoSpecificMeProblem ); - } - } - else - { - const RSat::TAlphaIdStatus alphaIdStatus( - iSetUpCallData.iAlphaIdCallSetUpPhase.iStatus ); - - // If the alpha id is null, then use SAT name as a alpha identifier. - if ( ( RSat::EAlphaIdNull == alphaIdStatus ) || - ( RSat::EAlphaIdNotPresent == alphaIdStatus ) ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::HandleCommand set AlphaId" ) - iSetUpCallData.iAlphaIdCallSetUpPhase.iAlphaId = - iUtils->SatAppName(); - iSetUpCallData.iAlphaIdCallSetUpPhase.iStatus = - RSat::EAlphaIdProvided; - } - - // Copy the data to package, which is sent to client. - iQueryData.iCommand = ESatSSetUpCallQuery; - iQueryData.iQueryText.Copy( - iSetUpCallData.iAlphaIdConfirmationPhase.iAlphaId ); - iQueryData.iSimApplicationName.Copy( iUtils->SatAppName() ); - iQueryData.iAlphaIdStatus = ESatAlphaIdNotNull; // Always - iQueryData.iIconId.iIdentifier = - iSetUpCallData.iIconIdConfirmationPhase.iIdentifier; - - LOG2( SIMPLE, - "SETUPCALL: iSetUpCallData.iIconIdConfirmationPhase.iQualifier: %d", - iSetUpCallData.iIconIdConfirmationPhase.iQualifier ) - switch ( iSetUpCallData.iIconIdConfirmationPhase.iQualifier ) - { - case RSat::ESelfExplanatory: - { - // Icon qualifier is self explanatory (to display instead - // of the alpha id or text string). - iQueryData.iIconId.iIconQualifier = ESatSelfExplanatory; - break; - } - - case RSat::ENotSelfExplanatory: - { - // Icon qualifier is not self explanatory. - iQueryData.iIconId.iIconQualifier = ESatNotSelfExplanatory; - break; - } - - default: - { - // Icon qualifier not present - iQueryData.iIconId.iIconQualifier = ESatENoIconId; - break; - } - } - - // If call control is active, set up call is made - // after the call control note is showed in ui ie - // ECallControlDone event is notified. - if ( !iCallControlActive ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::HandleCommand iCallControlActive \ - false" ) - iUtils->NotifyEvent( MSatUtils::ESetUpCallExecuting ); - - TRAPD( regErr, iUtils->RegisterServiceRequestL( - ESatSProactiveQuery, - ESatSProactiveQueryResponse, - this ) ); - LOG2( SIMPLE, - "SETUPCALL: CSetUpCallHandler::HandleCommand regErr: %d", regErr ) - if ( KErrNone != regErr ) - { - // Possible memory allocation error. Send error terminal - // response - UiLaunchFailed(); - } - else - { - // Send query to UI - iUtils->SatUiHandler().UiSession()->SendCommand( - &iQueryPckg, - &iQueryRspPckg, - ESatSProactiveQuery ); - } - } - else - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::HandleCommand iCallControlActive \ - true" ) - // Set pending flag on - iPCmdPending = ETrue; - } - } - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CSatCommandHandler. -// Indication that UI lanching failed. -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::UiLaunchFailed() - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::UiLaunchFailed calling" ) - - CompleteSetupCall( RSat::KMeUnableToProcessCmd, - RSat::KNoSpecificMeProblem ); - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::UiLaunchFailed exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpCallHandler::SetupCallRequestComplete -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::SetupCallRequestComplete( TInt aErrCode ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::SetupCallRequestComplete calling" ) - - LOG2( NORMAL, - "SETUPCALL: CSetUpCallHandler::SetupCallRequestComplete aErrCode %d", - aErrCode ) - - if( !iEmergencyCall ) - { - CompleteSetupCallWithStatus( aErrCode ); - } - else - { - iEmergencyCall = EFalse; - - if ( KErrNone == aErrCode ) - { - // Set result - CompleteSetupCall( RSat::KSuccess ); - } - else - { - // The emergency call implementation - // before S60 SAT migration from AIW to EtelMM - // According current information, no requirement for this. - // We don't return extended network error. - CompleteSetupCall( - RSat::KNetworkUnableToProcessCmd, - RSat::KNoSpecificMeProblem ); - - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::HandleEmergencyDialL Network unable \ - to process this" ) - } - } - LOG2( NORMAL, - "SETUPCALL: CSetUpCallHandler::SetupCallRequestComplete exiting %d", aErrCode ) - } - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized, harmless. -CSetUpCallHandler::CSetUpCallHandler() : - CSatCommandHandler(), - iSetUpCallData(), - iSetUpCallPckg( iSetUpCallData ), - iSetUpCallRsp(), - iSetUpCallRspPckg( iSetUpCallRsp ), - iQueryData(), - iQueryPckg( iQueryData ), - iQueryRsp(), - iQueryRspPckg( iQueryRsp ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CSetUpCallHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::ConstructL() - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::ConstructL calling" ) - - - iRequestHandler = CSetupCallRequestHandler::NewL( iUtils->MultiModeApi(), - this ); - // Create request handler. This is same that LaunchBrowser uses, so this - // is needed also in HandleCommand - function. - iUtils->RegisterServiceRequestL( - ESatSProactiveQuery, - ESatSProactiveQueryResponse, - this ); - - iUtils->RegisterL( this, MSatUtils::ECallControlExecuting ); - iUtils->RegisterL( this, MSatUtils::ECallControlDone ); - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// Performs the request to dial -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::DoSetupCall( CSetupCallRequestHandler& aHandler ) - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::DoSetupCallL calling" ) - - if( CheckSetupCallParam() ) - { - - RSat::TSetUpCallType callType( iSetUpCallData.iType ); - - TDes& telNumber( iSetUpCallData.iAddress.iTelNumber ); - CheckNumber( telNumber ); - - RMobileCall::TMobileCallParamsV7 dialParams; - RMobileCall::TMobileCallParamsV7Pckg package( dialParams ); - - //Redail has been removed from MCL, no redail support. - dialParams.iAutoRedial = EFalse; - dialParams.iBearerMode = RMobileCall::EMulticallNewBearer; - dialParams.iCallParamOrigin = RMobileCall::EOriginatorSIM; - dialParams.iSubAddress = iSetUpCallData.iSubAddress; - dialParams.iBearerCap1 = iSetUpCallData.iCapabilityConfigParams; - - dialParams.iBCRepeatIndicator = RMobileCall::EBCAlternateMode; - - dialParams.iIconId.iQualifier = RMobileCall::ENoIconId; - - - dialParams.iAlphaId = iSetUpCallData.iAlphaIdCallSetUpPhase.iAlphaId; - LOG2( NORMAL, - "SETUPCALL: CSetUpCallHandler::DoSetupCallL id:%S", - &dialParams.iAlphaId ) - - LOG2( NORMAL, - "SETUPCALL: CSetUpCallHandler::DoSetupCallL number:%S", - &iSetUpCallData.iAddress.iTelNumber ) - - TBool terminateOtherCall( EFalse ); - // check if we need to disconnect other calls - if ( ( RSat::EDisconnectOtherCalls == callType ) || - ( RSat::EDisconnectOtherCallsWithRedial == callType ) ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::DoSetupCallL end other call" ) - terminateOtherCall = ETrue ; - } - - aHandler.DialNumber( package, iSetUpCallData.iAddress.iTelNumber, - terminateOtherCall, iUtils->CreateAsyncToSyncHelper() ); - } - else - { - CompleteSetupCallWithStatus( KErrArgument ); - } - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::DoSetupCallL exiting" ) - } - -// ----------------------------------------------------------------------------- -// Return terminal response filled according to dial result. -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::CompleteSetupCallWithStatus( - const TInt32 aStatus ) - { - LOG2( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus calling: \ - %i", aStatus ) - - // Form Terminal Response - if ( KErrNone != aStatus ) - { - switch ( aStatus ) - { - case KErrGsmCCCallRejected: - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus Call \ - Control not allowed" ) - // If SetUpCall is not allowed by SIM in Call Control, then - // give a correct response. - CompleteSetupCall( - RSat::KInteractionWithCCPermanentError, - RSat::KActionNotAllowed ); - break; - } - - case KErrGsmCCBearerCapabilityNotAuthorised: - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus \ - Beyond ME Capabilities" ) - // If bearer capability is not authorized, return correct value - CompleteSetupCall( RSat::KCmdBeyondMeCapabilities ); - break; - } - - case KErrAbort: - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus User \ - abort" ) - if ( iQueryRsp.iSessionTerminatedByUser ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus \ - TerminatedByUser" ) - // Notify sim session end command that next sim session end - // should close the ui session. - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - - // User has ended redial mechanism. - CompleteSetupCall( RSat::KCallClearedBeforeConnectionOrReleased ); - break; - } - - case KErrGeneral: - case KErrArgument: - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus Data \ - not understood" ) - CompleteSetupCall( RSat::KCmdDataNotUnderstood ); - break; - } - - case KErrAccessDenied: - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus \ - Network unable to process this" ) - CompleteSetupCall( - RSat::KNetworkUnableToProcessCmd, - RSat::KNoSpecificMeProblem ); - break; - } - - case KErrSatControl: - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus \ - Call Command performed, but modified by Call Control" ) - // Call control modified the type of request indicated in - // the proactive command, and the action requested by - // call control was performed successfully. - CompleteSetupCall( RSat::KModifiedByCallControl ); - break; - } - - default: - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus \ - Network unable to process with error info" ) - - iSetUpCallRsp.iGeneralResult = RSat::KNetworkUnableToProcessCmd; - iSetUpCallRsp.iInfoType = RSat::KSatNetworkErrorInfo; - - // Lower byte contains the error cause. - iSetUpCallRsp.iAdditionalInfo.SetLength( 1 ); - - // Get mapped additional info - TUint8 addInfo( TSatExtErrorUtils::MapError( aStatus ) ); - iSetUpCallRsp.iAdditionalInfo[0] = - static_cast( addInfo ); - - // Send terminal response - TerminalRsp( RSat::ESetUpCall, iSetUpCallRspPckg ); - break; - } - } - } - else - { - // Convert terminal rsp if icon used - RSat::TIconQualifier qualifier1( - iSetUpCallData.iIconIdConfirmationPhase.iQualifier ); - RSat::TIconQualifier qualifier2( - iSetUpCallData.iIconIdCallSetUpPhase.iQualifier ); - - RSat::TPCmdResult result( RSat::KSuccess ); - - // Icon support for call confirmtion phase not done. - if ( !iQueryRsp.iRequestedIconDisplayed && - ( ( RSat::ESelfExplanatory == qualifier1 ) || - ( RSat::ENotSelfExplanatory == qualifier1 ) ) ) - { - result = RSat::KSuccessRequestedIconNotDisplayed; - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus \ - Confirmation icon not shown" ) - } - // Icon support for call setup phase not done. - else if ( ( RSat::ESelfExplanatory == qualifier2 ) || - ( RSat::ENotSelfExplanatory == qualifier2 ) ) - { - // Until 2009-10 the phone and NTSY not support the icon. - // to be updated after the updating of the phone and NTSY - result = RSat::KSuccessRequestedIconNotDisplayed; - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus Icon \ - not shown" ) - } - // If command had icon data and was done succesfully, report that icon - // was not shown. - // To be removed when icons are allowed in this command. - else - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus \ - others" ) - if ( iIconCommand ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus \ - iIconCommand true" ) - result = RSat::KSuccessRequestedIconNotDisplayed; - } - } - // Set result - CompleteSetupCall( result ); - } - - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus exiting" ) - } - -// ----------------------------------------------------------------------------- -// Return terminal response filled according to result. -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::CompleteSetupCall( - const RSat::TPCmdResult aGeneralResult ) - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CompleteSetupCall calling" ) - - // Fill Terminal Response. - iSetUpCallRsp.iGeneralResult = aGeneralResult; - iSetUpCallRsp.iInfoType = RSat::KNoAdditionalInfo; - iSetUpCallRsp.iAdditionalInfo.Zero(); - iSetUpCallRsp.SetPCmdNumber( iSetUpCallData.PCmdNumber() ); - - // Send terminal response. - TerminalRsp( RSat::ESetUpCall, iSetUpCallRspPckg ); - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CompleteSetupCall exiting" ) - } - -// ----------------------------------------------------------------------------- -// Return terminal response filled according to result. -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::CompleteSetupCall( - const RSat::TPCmdResult aGeneralResult, - const TInt16 aAdditionalInfo ) - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CompleteSetupCall calling" ) - - // Fill Terminal Response. - iSetUpCallRsp.iGeneralResult = aGeneralResult; - iSetUpCallRsp.iInfoType = RSat::KMeProblem; - iSetUpCallRsp.iAdditionalInfo.SetLength( 1 ); - iSetUpCallRsp.iAdditionalInfo[0] = aAdditionalInfo; - iSetUpCallRsp.SetPCmdNumber( iSetUpCallData.PCmdNumber() ); - - // Send terminal response. - TerminalRsp( RSat::ESetUpCall, iSetUpCallRspPckg ); - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CompleteSetupCall exiting" ) - } - -// ----------------------------------------------------------------------------- -// Checks the dialling number string for extended BCD -// values. Changes them to correct characters -// see ETSI 11.11 10.5.1 -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::CheckNumber( TDes& aNumber ) const - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CheckNumber calling" ) - - for ( TInt i = 0; i < aNumber.Length(); i++ ) - { - // check values - if ( KBCDAsterisk == aNumber[i] ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CheckNumber KAsteriskChar" ) - aNumber[i] = KAsteriskChar; - } - - if ( KBCDDash == aNumber[i] ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CheckNumber KDashChar" ) - aNumber[i] = KDashChar; - } - - if ( KBCDDTMF == aNumber[i] ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CheckNumber KDTMFChar" ) - aNumber[i] = KDTMFChar; - } - - if ( KBCDWild == aNumber[i] ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CheckNumber KWildChar" ) - aNumber[i] = KWildChar; - } - - if ( KBCDExpansion == aNumber[i] ) - { - LOG( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CheckNumber KExpansionChar" ) - aNumber[i] = KExpansionChar; - } - } - - LOG2( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CheckNumber length of aNumber: %d", - aNumber.Length() ) - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CheckNumber exiting" ) - } - -// ----------------------------------------------------------------------------- -// Create emergency call -// ----------------------------------------------------------------------------- -// -void CSetUpCallHandler::CreateEmergencyCall( - CSetupCallRequestHandler& aHandler ) - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CreateEmergencyCall calling" ) - - aHandler.DialEmergencyCall( iSetUpCallData.iAddress.iTelNumber ); - - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CreateEmergencyCall exiting" ) - } - -// ----------------------------------------------------------------------------- -// check setup call param. -// ----------------------------------------------------------------------------- -// -TBool CSetUpCallHandler::CheckSetupCallParam() - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CheckSetupCallParam calling" ) - - TBool valid( ETrue ); - if ( iSetUpCallData.iAddress.iTelNumber.Length() - > KSatMaximumPhoneNumberLength ) - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CheckSetupCallParam num" ) - valid = EFalse; - } - else if ( iSetUpCallData.iAlphaIdCallSetUpPhase.iAlphaId.Length() - > KSatMaximumNameLength ) - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CheckSetupCallParam name" ) - valid = EFalse; - } - else if ( iSetUpCallData.iSubAddress.Length() > KSatSubAddressLength ) - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CheckSetupCallParam sub" ) - valid = EFalse; - } - else if ( iSetUpCallData.iCapabilityConfigParams.Length() - > KSatBearerLength ) - { - LOG( SIMPLE, "SETUPCALL: CSetUpCallHandler::CheckSetupCallParam bear" ) - valid = EFalse; - } - LOG2( SIMPLE, - "SETUPCALL: CSetUpCallHandler::CheckSetupCallParam exiting %d", valid ) - - return valid; - } -// End Of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpCallCmd/src/csetupcallrequesthandler.cpp --- a/satengine/SatServer/Commands/SetUpCallCmd/src/csetupcallrequesthandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,219 +0,0 @@ -/* -* Copyright (c) 2009-2010 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: Create the call and emergency call to ETelMM -* -*/ - - -#include -#include - -#include "csetupcallrequesthandler.h" -#include "CSetUpCallHandler.h" -#include "csetupcalldtmfsender.h" -#include "msatasynctosync.h" -#include "SatLog.h" - -// ================= MEMBER FUNCTIONS ======================= - -// ----------------------------------------------------------------------------- -// CSetupCallRequestHandler::CSetupCallRequestHandler -// The class constructor. -// ----------------------------------------------------------------------------- -// -CSetupCallRequestHandler::CSetupCallRequestHandler( - MSatMultiModeApi& aPhone, CSetUpCallHandler* aDispatcher ) - : CActive( EPriorityStandard ), iPhone( aPhone ), - iDispatcher( aDispatcher ) - { - LOG( SIMPLE, - "SETUPCALL: CSetupCallRequestHandler::CSetupCallRequestHandler \ - calling" ) - - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "SETUPCALL: CSetupCallRequestHandler::CSetupCallRequestHandler \ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetupCallRequestHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSetupCallRequestHandler* CSetupCallRequestHandler::NewL( - MSatMultiModeApi& aPhone, CSetUpCallHandler* aDispatcher ) - { - LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::NewL calling" ) - - CSetupCallRequestHandler* self = - new ( ELeave ) CSetupCallRequestHandler( aPhone, aDispatcher ); - - self->ConstructL(); - - LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSetupCallRequestHandler::~CSetupCallRequestHandler -// Destructor -// ----------------------------------------------------------------------------- -// -CSetupCallRequestHandler::~CSetupCallRequestHandler() - { - LOG( SIMPLE, "SETUPCALL: \ - CSetupCallRequestHandler::~CSetupCallRequestHandler calling" ) - Cancel(); - iDispatcher = NULL; - - delete iDtmfSender; - iDtmfSender = NULL; - - LOG( SIMPLE, "SETUPCALL: \ - CSetupCallRequestHandler::~CSetupCallRequestHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetupCallRequestHandler::ConstructL -// ----------------------------------------------------------------------------- -// -void CSetupCallRequestHandler::ConstructL() -{ - LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::ConstructL calling" ) - iDtmfSender = CSetupCallDtmfSender::NewL( iPhone ); - LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::ConstructL exiting" ) -} - -// ----------------------------------------------------------------------------- -// CSetupCallRequestHandler::DialNumber -// ----------------------------------------------------------------------------- -// -void CSetupCallRequestHandler::DialNumber( const TDesC8& aCallParams, - TDes& aTelNumber, TBool aTerminateOtherCall, - MSatAsyncToSync* aAsyncToSync ) - { - LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DialNumber calling" ) - - TInt terminateRes ( KErrNone ); - - if( aTerminateOtherCall ) - { - if( aAsyncToSync ) - { - iPhone.TerminateActiveCalls( aAsyncToSync->RequestStatus() ); - terminateRes = aAsyncToSync->SetActiveAndWait(); - } - else - { - LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DialNumber \ - bad MSatAsyncToSync pointer" ) - terminateRes = KErrGeneral; - } - } - - if( !IsActive() ) - { - if( KErrNone == terminateRes ) - { - // Separate dtmf string from whole number and store in iDtmfString - // the dtmf string will be removed from aTelNumber - iDtmfSender->SeparateDtmfFromTelNumber(aTelNumber); - // Dial the pure tel number - iPhone.DialNoFdnCheck( iStatus, aCallParams, aTelNumber ); - SetActive(); - } - else - { - iDispatcher->SetupCallRequestComplete( terminateRes ); - } - } - else - { - iDispatcher->SetupCallRequestComplete( KErrInUse ); - } - - LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DialNumber exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetupCallRequestHandler::DialEmergencyCall -// ----------------------------------------------------------------------------- -// -void CSetupCallRequestHandler::DialEmergencyCall( const TDesC& aTelNumber ) - { - LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DialNumber calling" ) - - if( !IsActive() ) - { - iPhone.DialEmergencyCall( iStatus, aTelNumber ); - SetActive(); - } - else - { - iDispatcher->SetupCallRequestComplete( KErrInUse ); - } - - LOG( SIMPLE, - "SETUPCALL: CSetupCallRequestHandler::DialEmergencyCall exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetupCallRequestHandler::RunL -// Handles the command. -// ----------------------------------------------------------------------------- -// -void CSetupCallRequestHandler::RunL() - { - LOG2( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::RunL calling\ - iStatus=%i", iStatus.Int() ) - - iDispatcher->SetupCallRequestComplete( iStatus.Int() ); - - if ( KErrNone == iStatus.Int() ) - { - iDtmfSender->SendDtmfString(); - } - - LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetupCallRequestHandler::CancelOperation -// ----------------------------------------------------------------------------- -// -void CSetupCallRequestHandler::CancelOperation() - { - LOG( SIMPLE, "SETUPCALL: \ - CSetupCallRequestHandler::CancelOperation calling" ) - iPhone.DialCancel(); - iDtmfSender->Cancel(); - LOG( SIMPLE, - "SETUPCALL: CSetupCallRequestHandler::CancelOperation exiting" ) - } - -// ----------------------------------------------------------------------------- -// From class CActive. -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CSetupCallRequestHandler::DoCancel() - { - LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DoCancel calling" ) - CancelOperation(); - LOG( SIMPLE, "SETUPCALL: CSetupCallRequestHandler::DoCancel exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpCallCmd/src/std.cpp --- a/satengine/SatServer/Commands/SetUpCallCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CSetUpCallHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x1000f006, CSetUpCallHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpEventListCmd/group/SetUpEventListCmd.mmp --- a/satengine/SatServer/Commands/SetUpEventListCmd/group/SetUpEventListCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project SetUpEventList -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET SetUpEventListCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x10202992 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CSetUpEventListHandler.cpp - -START RESOURCE 10202992.rss -TARGET SetUpEventListCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpEventListCmd/group/bld.inf --- a/satengine/SatServer/Commands/SetUpEventListCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project SetUpEventListCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -SetUpEventListCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpEventListCmd/inc/CSetUpEventListHandler.h --- a/satengine/SatServer/Commands/SetUpEventListCmd/inc/CSetUpEventListHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: SetUpEventList command handler -* -*/ - - - -#ifndef CSETUPEVENTLISTHANDLER_H -#define CSETUPEVENTLISTHANDLER_H - -// INCLUDES -#include -#include "CSatCommandHandler.h" - -// FORWARD DECLARATION -class MSatUtils; - -// CLASS DECLARATION - -/** -* Command handler for SetUpEventList command. -* -* @lib SetUpEventListCmd.lib -* @since Series 60 3.0 -*/ -class CSetUpEventListHandler : public CSatCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils SAT Utils interface - */ - static CSetUpEventListHandler* NewL( MSatUtils* aUtils ); - - /** - * Destructor. - */ - virtual ~CSetUpEventListHandler(); - - public: // Functions from base classes - - /** - * From MSatEventObserver. Notification of Refresh actions. - * @param aEvent Identifies the event. - */ - void Event( TInt aEvent ); - - protected: // Functions from base classes - - /** - * From CActive Cancels the usat request. - */ - void DoCancel(); - - /** - * From CSatCommandHandler Requests the command notification. - * @param aStatus Request status - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler Precheck before executing the command. - * @return TBool indicating command is currently allowed. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler Need for ui session. - * @return TBool indicating need of ui session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler Called when USAT API notifies that command. - */ - void HandleCommand(); - - /** - * From CSatCommandHandler Never called since this command doesn't need UI - */ - void UiLaunchFailed(); - - private: - - /** - * C++ default constructor. - */ - CSetUpEventListHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // SetUpEventList command data. - RSat::TSetUpEventListV1 iSetUpEventListData; - - // SetUpEventList command package. - RSat::TSetUpEventListV1Pckg iSetUpEventListPckg; - - // Response from client - RSat::TSetUpEventListRspV1 iSetUpEventListRsp; - - // Response package. - RSat::TSetUpEventListRspV1Pckg iSetUpEventListRspPckg; - - }; - -#endif // CSETUPEVENTLISTHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpEventListCmd/inc/SetUpEventListCmd.rls --- a/satengine/SatServer/Commands/SetUpEventListCmd/inc/SetUpEventListCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project SetUpEventListCmd -* -*/ - - -#ifndef SETUPEVENTLISTCMD_RLS -#define SETUPEVENTLISTCMD_RLS - -rls_string STRING_r_setupeventlistcmd_display_name "SetUpEventList command" -rls_string STRING_r_setupeventlistcmd_default_data "SetUpEventListCmd" -rls_string STRING_r_setupeventlistcmd_opaque_data "" - -#endif // SETUPEVENTLISTCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpEventListCmd/src/10202992.rss --- a/satengine/SatServer/Commands/SetUpEventListCmd/src/10202992.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1020 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "SetUpEventListCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// SetUpEventListCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO SetUpEventListCmdInfo - { - dll_uid = 0x10202992; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x10202993; - version_no = 1; - display_name = STRING_r_setupeventlistcmd_display_name; - default_data = STRING_r_setupeventlistcmd_default_data; - opaque_data = STRING_r_setupeventlistcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpEventListCmd/src/CSetUpEventListHandler.cpp --- a/satengine/SatServer/Commands/SetUpEventListCmd/src/CSetUpEventListHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,266 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles SetUpEventList command -* -*/ - - -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "MSatEventMonitorContainer.h" -#include "CSetUpEventListHandler.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSetUpEventListHandler::CSetUpEventListHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSetUpEventListHandler::CSetUpEventListHandler() : - CSatCommandHandler(), - iSetUpEventListData(), - iSetUpEventListPckg( iSetUpEventListData ), - iSetUpEventListRsp(), - iSetUpEventListRspPckg( iSetUpEventListRsp ) - { - LOG( SIMPLE, "SETUPEVENTLIST: \ - CSetUpEventListHandler::CSetUpEventListHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpEventListHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSetUpEventListHandler::ConstructL() - { - LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::ConstructL calling" ) - - // Register to listen ESimReset execution. - iUtils->RegisterL( this, MSatUtils::ESimResetCalled ); - - LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpEventListHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSetUpEventListHandler* CSetUpEventListHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::NewL calling" ) - - CSetUpEventListHandler* self = new( ELeave ) CSetUpEventListHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSetUpEventListHandler::~CSetUpEventListHandler -// Destructor. -// ----------------------------------------------------------------------------- -// -CSetUpEventListHandler::~CSetUpEventListHandler() - { - LOG( SIMPLE, "SETUPEVENTLIST: \ - CSetUpEventListHandler::~CSetUpEventListHandler calling" ) - - Cancel(); - - LOG( SIMPLE, "SETUPEVENTLIST: \ - CSetUpEventListHandler::~CSetUpEventListHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpEventListHandler::Event -// ----------------------------------------------------------------------------- -// -void CSetUpEventListHandler::Event( TInt aEvent ) - { - LOG2( SIMPLE, - "SETUPEVENTLIST: CSetUpEventListHandler::Event calling,aEvent: %d", - aEvent ) - - // Check the response - switch ( aEvent ) - { - case MSatUtils::ESimResetCalled: - { - LOG( NORMAL, - "SETUPEVENTLIST: CSetUpEventListHandler ESimResetCalled" ) - - // Cancel all event monitors. - iUtils->EventMonitors()->CancelAllMonitors(); - break; - } - - default: - { - CSatCommandHandler::Event( aEvent ); - break; - } - } - - LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpEventListHandler::DoCancel -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CSetUpEventListHandler::DoCancel() - { - LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifySetUpEventListCancel(); - - LOG( SIMPLE, "SETUPEVENTLIST: CSetUpEventListHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpEventListHandler::IssueUSATRequest -// ----------------------------------------------------------------------------- -// -void CSetUpEventListHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, - "SETUPEVENTLIST: CSetUpEventListHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iSetUpEventListData) RSat::TSetUpEventListV1(); - - iUtils->USatAPI().NotifySetUpEventList( aStatus, iSetUpEventListPckg ); - - LOG( SIMPLE, - "SETUPEVENTLIST: CSetUpEventListHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpEventListHandler::CommandAllowed -// ----------------------------------------------------------------------------- -// -TBool CSetUpEventListHandler::CommandAllowed() - { - LOG( SIMPLE, "SETUPEVENTLIST: \ - CSetUpEventListHandler::CommandAllowed calling - exiting" ) - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CSetUpEventListHandler::NeedUiSession -// ----------------------------------------------------------------------------- -// -TBool CSetUpEventListHandler::NeedUiSession() - { - LOG( SIMPLE, "SETUPEVENTLIST: \ - CSetUpEventListHandler::NeedUiSession calling - exiting" ) - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CSetUpEventListHandler::HandleCommand -// ----------------------------------------------------------------------------- -// -void CSetUpEventListHandler::HandleCommand() - { - LOG( SIMPLE, - "SETUPEVENTLIST: CSetUpEventListHandler::HandleCommand calling" ) - - iUtils->NotifyEvent( MSatUtils::ESetUpEventListExecuting ); - - // Response - RSat::TSetUpEventListRspV1 setUpEventListRsp; - RSat::TSetUpEventListRspV1Pckg setUpEventListRspPckg( setUpEventListRsp ); - - // Update / cancel event monitors - TInt errorCode( KErrNone ); - - // Check the event list request type - if ( RSat::EUpdateEventList == iSetUpEventListData.iType ) - { - LOG( NORMAL, - "SETUPEVENTLIST: CSetUpEventListHandler::HandleCommand UpdEvList" ) - // Update event monitor list - errorCode = iUtils->EventMonitors()-> - SetUpEventMonitors( iSetUpEventListData.iEvents ); - - if ( KErrNone != errorCode ) - { - LOG2( NORMAL, - "SETUPEVENTLIST: CSetUpEventListHandler::HandleCommand errCode %d", - errorCode ) - // If any error, cancel all monitors - iUtils->EventMonitors()->CancelAllMonitors(); - } - } - else if ( RSat::ERemoveExistingEventList == iSetUpEventListData.iType ) - { - LOG( NORMAL, - "SETUPEVENTLIST: CSetUpEventListHandler::HandleCommand RemExistEvList" ) - // Cancel all monitors - errorCode = iUtils->EventMonitors()->CancelAllMonitors(); - } - else - { - errorCode = KErrNotSupported; - } - - // Resolve general result - if ( KErrNone == errorCode ) - { - LOG( NORMAL, - "SETUPEVENTLIST: CSetUpEventListHandler::HandleCommand KSuccess" ) - setUpEventListRsp.iGeneralResult = RSat::KSuccess; - } - else - { - setUpEventListRsp.iGeneralResult = RSat::KCmdBeyondMeCapabilities; - } - - // Build the rest of the response - setUpEventListRsp.iInfoType = RSat::KNoAdditionalInfo; - setUpEventListRsp.iAdditionalInfo.Zero(); - setUpEventListRsp.SetPCmdNumber( iSetUpEventListData.PCmdNumber() ); - - // Send terminal response - TerminalRsp( RSat::ESetUpEventList, setUpEventListRspPckg ); - - LOG( SIMPLE, - "SETUPEVENTLIST: CSetUpEventListHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpEventListHandler::UiLaunchFailed -// ----------------------------------------------------------------------------- -// -void CSetUpEventListHandler::UiLaunchFailed() - { - LOG( SIMPLE, - "SETUPEVENTLIST: CSetUpEventListHandler::UiLaunchFailed calling" ) - // This command does not launch ui client. - LOG( SIMPLE, - "SETUPEVENTLIST: CSetUpEventListHandler::UiLaunchFailed exiting" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpEventListCmd/src/std.cpp --- a/satengine/SatServer/Commands/SetUpEventListCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CSetUpEventListHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x10202993, CSetUpEventListHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpIdleModeTextCmd/group/SetUpIdleModeTextCmd.mmp --- a/satengine/SatServer/Commands/SetUpIdleModeTextCmd/group/SetUpIdleModeTextCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,54 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project SetUpIdleModeText plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET SetUpIdleModeTextCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x1000A88A - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CSetUpIdleModeTextHandler.cpp - -START RESOURCE 1000A88A.rss -TARGET SetUpIdleModeTextCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -// Application layer system include path needed due networkhandling's P&S keys -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib -LIBRARY centralrepository.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpIdleModeTextCmd/group/bld.inf --- a/satengine/SatServer/Commands/SetUpIdleModeTextCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project SetUpIdleModeTextCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -SetUpIdleModeTextCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpIdleModeTextCmd/inc/CSetUpIdleModeTextHandler.h --- a/satengine/SatServer/Commands/SetUpIdleModeTextCmd/inc/CSetUpIdleModeTextHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,134 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: SetUpIdleModeText command handler -* -*/ - - - -#ifndef CSETUPIDLEMODETEXTHANDLER_H -#define CSETUPIDLEMODETEXTHANDLER_H - -// INCLUDES -#include -#include "CSatCommandHandler.h" - -// FORWARD DECLARATION -class MSatUtils; - -// CLASS DECLARATION - -/** -* Command handler for SetUpIdleModeText command. -* -* @lib SetUpIdleModeTextCmd.lib -* @since Series 60 3.0 -*/ -class CSetUpIdleModeTextHandler : public CSatCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils Utils inteface - */ - static CSetUpIdleModeTextHandler* NewL( MSatUtils* aUtils ); - - /** - * Destructor. - */ - virtual ~CSetUpIdleModeTextHandler(); - - public: // Functions from base classes - - /** - * From MSatEventObserver. Notification of Idle Mode responses. - * @param aEvent Identifies the event. - */ - void Event( TInt aEvent ); - - protected: // Functions from base classes - - /** - * From CActive Cancels the usat request. - */ - void DoCancel(); - - /** - * From CCommandHandler Requests the command notification. - * @param aStatus Request status to active object notification - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CCommandHandler Precheck before executing the command. - * @return Boolean indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CCommandHandler Need for ui session. - * @return Boolean indicating does this command need UI session. - */ - TBool NeedUiSession(); - - /** - * From CCommandHandler Called when USAT API notifies that command. - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. Indicates the failure of launching ui client. - */ - void UiLaunchFailed(); - - private: - - /** - * C++ default constructor. - */ - CSetUpIdleModeTextHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // SetUpIdleModeText command data. - RSat::TSetUpIdleModeTextV1 iSetUpIdleModeTextData; - - // SetUpIdleModeText command package. - RSat::TSetUpIdleModeTextV1Pckg iSetUpIdleModeTextPckg; - - // Response from client. - RSat::TSetUpIdleModeTextRspV1 iSetUpIdleModeTextRsp; - - // Response package. - RSat::TSetUpIdleModeTextRspV1Pckg iSetUpIdleModeTextRspPckg; - - // Store for restoring last valid idle mode text. - TBool iSimResetExecuting; - RSat::TIdleModeText iLastValidText; - TInt iLastValidIconId; - RSat::TIconQualifier iLastValidIconQualifier; - - // Indicates whether the homezone indicator is supported. - TInt iHasHomezoneIndicator; - }; - -#endif // CSETUPIDLEMODETEXTHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpIdleModeTextCmd/inc/SetUpIdleModeTextCmd.rls --- a/satengine/SatServer/Commands/SetUpIdleModeTextCmd/inc/SetUpIdleModeTextCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project SetUpIdleModeTextCmd -* -*/ - - -#ifndef SETUPIDLEMODETEXTCMD_RLS -#define SETUPIDLEMODETEXTCMD_RLS - -rls_string STRING_r_setupidlemodetextcmd_display_name "SetUpIdleModeText command" -rls_string STRING_r_setupidlemodetextcmd_default_data "SetUpIdleModeTextCmd" -rls_string STRING_r_setupidlemodetextcmd_opaque_data "" - -#endif // SETUPIDLEMODETEXTCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpIdleModeTextCmd/src/1000A88A.rss --- a/satengine/SatServer/Commands/SetUpIdleModeTextCmd/src/1000A88A.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1000 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "SetUpIdleModeTextCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// SetUpIdleModeTextCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO SetUpIdleModeTextCmdInfo - { - dll_uid = 0x1000A88A; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x10202988; - version_no = 1; - display_name = STRING_r_setupidlemodetextcmd_display_name; - default_data = STRING_r_setupidlemodetextcmd_default_data; - opaque_data = STRING_r_setupidlemodetextcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpIdleModeTextCmd/src/CSetUpIdleModeTextHandler.cpp --- a/satengine/SatServer/Commands/SetUpIdleModeTextCmd/src/CSetUpIdleModeTextHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,391 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Handles SetUpIdleModeText command -* -*/ - - -#include -#include -#include -#include "SATPrivateCRKeys.h" -#include "MSatApi.h" -#include "MSatUtils.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "MSatSystemState.h" -#include "CSetUpIdleModeTextHandler.h" -#include "SatLog.h" - -// This was agreed with Idle. -const TInt KNoIcon = -1; - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSetUpIdleModeTextHandler::CSetUpIdleModeTextHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSetUpIdleModeTextHandler::CSetUpIdleModeTextHandler() : - CSatCommandHandler(), - iSetUpIdleModeTextData(), - iSetUpIdleModeTextPckg( iSetUpIdleModeTextData ), - iSetUpIdleModeTextRsp(), - iSetUpIdleModeTextRspPckg( iSetUpIdleModeTextRsp ), - iSimResetExecuting( EFalse ), - iLastValidText( KNullDesC ), - iLastValidIconId( KNoIcon ), - iLastValidIconQualifier( RSat::EIconQualifierNotSet ), - iHasHomezoneIndicator( 0 ) - { - LOG( SIMPLE, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::\ - CSetUpIdleModeTextHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpIdleModeTextHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSetUpIdleModeTextHandler::ConstructL() - { - LOG( SIMPLE, "SETUPIDLEMODETEXT: \ - CSetUpIdleModeTextHandler::ConstructL calling" ) - - // Register to listen ESimReset execution. - iUtils->RegisterL( this, MSatUtils::ESimResetCalled ); - iUtils->RegisterL( this, MSatUtils::ESimResetCancelled ); - iUtils->RegisterL( this, MSatUtils::ESimInitDone ); - // Get the homezone indicator flag from the Central Repository. - CRepository* repo = CRepository::NewLC( KCRUidSatServer ); - TInt errorCode = repo->Get( KSatHomeZoneIconVisible, iHasHomezoneIndicator ); - LOG2( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::ConstructL \ - get homezone indicator flag and return: %d", errorCode ) - CleanupStack::PopAndDestroy( repo ); - - LOG( SIMPLE, "SETUPIDLEMODETEXT: \ - CSetUpIdleModeTextHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpIdleModeTextHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSetUpIdleModeTextHandler* CSetUpIdleModeTextHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, - "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::NewL calling" ) - - CSetUpIdleModeTextHandler* self = new( ELeave ) CSetUpIdleModeTextHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, - "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSetUpIdleModeTextHandler::~CSetUpIdleModeTextHandler -// Destructor. -// ----------------------------------------------------------------------------- -// -CSetUpIdleModeTextHandler::~CSetUpIdleModeTextHandler() - { - LOG( SIMPLE, "SETUPIDLEMODETEXT: \ - CSetUpIdleModeTextHandler::~CSetUpIdleModeTextHandler calling" ) - - Cancel(); - - LOG( SIMPLE, "SETUPIDLEMODETEXT: \ - CSetUpIdleModeTextHandler::~CSetUpIdleModeTextHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpIdleModeTextHandler::Event -// ----------------------------------------------------------------------------- -// -void CSetUpIdleModeTextHandler::Event( TInt aEvent ) - { - LOG( SIMPLE, - "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::Event calling" ) - // Check the response - switch ( aEvent ) - { - case MSatUtils::ESimResetCalled: - { - LOG( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ - ESimResetCalled") - iSimResetExecuting = ETrue; - } - //lint -fallthrough intended here - - case MSatUtils::ESimInitDone: - { - LOG( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ - remove idle mode text") - - // Remove the idle mode text and icon. - // Note no response now, responseOk remains EFalse. - iUtils->SystemState().WriteSetIdleModeText( - KNullDesC, KNoIcon, RSat::ENoIconId ); - // Remove the homezone indicator. - if ( iHasHomezoneIndicator && iLastValidText.Length() ) - { - TInt errorCode = RProperty::Set( - KPSUidNetworkInfo, - KNWHomeZoneStatus, - ENWNone ); - LOG2( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ - remove the homezone indicator and return %d", errorCode ) - } - break; - } - - case MSatUtils::ESimResetCancelled: - { - LOG( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ - ESimResetCancelled") - - // Restore the idle mode text and icon. - // Note no response now, responseOk remains EFalse. - if ( iSimResetExecuting ) - { - LOG( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ - iSimResetExecuting true") - iUtils->SystemState().WriteSetIdleModeText( - iLastValidText, iLastValidIconId, iLastValidIconQualifier ); - // Restore the homezone indicator as SIM reset was cancelled. - if ( iHasHomezoneIndicator && iLastValidText.Length() ) - { - TInt errorCode = RProperty::Set( - KPSUidNetworkInfo, - KNWHomeZoneStatus, - ENWHomeZone ); - LOG2( NORMAL, "SETUPIDLEMODETEXT: \ - CSetUpIdleModeTextHandler restore the homezone indicator \ - and return %d", errorCode ) - } - iSimResetExecuting = EFalse; - } - break; - } - - default: - { - CSatCommandHandler::Event( aEvent ); - break; - } - } - LOG( SIMPLE, - "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpIdleModeTextHandler::DoCancel -// Cancels the sat request. -// ----------------------------------------------------------------------------- -// -void CSetUpIdleModeTextHandler::DoCancel() - { - LOG( SIMPLE, - "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifySetUpIdleModeTextCancel(); - - LOG( SIMPLE, - "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpIdleModeTextHandler::IssueUSATRequest -// ----------------------------------------------------------------------------- -// -void CSetUpIdleModeTextHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "SETUPIDLEMODETEXT: \ - CSetUpIdleModeTextHandler::IssueUSATRequest calling" ) - - // Clear the IPC package. - new (&iSetUpIdleModeTextData) RSat::TSetUpIdleModeTextV1(); - - iUtils->USatAPI().NotifySetUpIdleModeText( - aStatus, iSetUpIdleModeTextPckg ); - - LOG( SIMPLE, "SETUPIDLEMODETEXT: \ - CSetUpIdleModeTextHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpIdleModeTextHandler::CommandAllowed -// ----------------------------------------------------------------------------- -// -TBool CSetUpIdleModeTextHandler::CommandAllowed() - { - LOG( SIMPLE, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::\ - CommandAllowed calling" ) - TBool commandAllowed( ETrue ); - - if ( ( 0 == iSetUpIdleModeTextData.iText.Length() ) && - ( RSat::ENotSelfExplanatory == - iSetUpIdleModeTextData.iIconId.iQualifier || - RSat::ESelfExplanatory == - iSetUpIdleModeTextData.iIconId.iQualifier ) ) - { - iSetUpIdleModeTextRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iSetUpIdleModeTextRsp.iInfoType = RSat::KNoAdditionalInfo; - iSetUpIdleModeTextRsp.iAdditionalInfo.Zero(); - iSetUpIdleModeTextRsp.SetPCmdNumber( - iSetUpIdleModeTextData.PCmdNumber() ); - TerminalRsp( RSat::ESetUpIdleModeText, iSetUpIdleModeTextRspPckg ); - commandAllowed = EFalse; - LOG( NORMAL, - "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ - CommandAllowed icon received without alpha id" ) - } - - LOG2( SIMPLE, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::\ - CommandAllowed exiting,commandAllowed: %d", commandAllowed ) - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// CSetUpIdleModeTextHandler::NeedUiSession -// ----------------------------------------------------------------------------- -// -TBool CSetUpIdleModeTextHandler::NeedUiSession() - { - LOG( SIMPLE, "SETUPIDLEMODETEXT: \ - CSetUpIdleModeTextHandler::NeedUiSession calling - exiting" ) - return EFalse; // No need for UI Session. - } - -// ----------------------------------------------------------------------------- -// CSetUpIdleModeTextHandler::HandleCommand -// ----------------------------------------------------------------------------- -// -void CSetUpIdleModeTextHandler::HandleCommand() - { - LOG( SIMPLE, - "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::HandleCommand calling" ) - - iUtils->NotifyEvent( MSatUtils::ESetUpIdleModeTextExecuting ); - - // The idle mode text is not written to shared data if - // Sim indicates the removal of idle mode text. - TPtrC idleModeText( iSetUpIdleModeTextData.iText ); - TInt iconId( iSetUpIdleModeTextData.iIconId.iIdentifier ); - - // Get the icon description. - const RSat::TIconQualifier qualifier - ( iSetUpIdleModeTextData.iIconId.iQualifier ); - - if ( RSat::ERemoveExistingIdleModeText == iSetUpIdleModeTextData.iType ) - { - LOG( SIMPLE, - "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::HandleCommand \ - ERemoveExistingIdleModeText" ) - idleModeText.Set( KNullDesC ); - iconId = KErrNotFound; - } - else - { - if ( ( RSat::ENoIconId == qualifier ) || - ( RSat::EIconQualifierNotSet == qualifier ) ) - { - LOG( SIMPLE, - "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::HandleCommand \ - KErrNotFound" ) - // Icon information not provided in command. - iconId = KErrNotFound; - } - } - - // Write text and icon id to P&S. - const TInt err( - iUtils->SystemState().WriteSetIdleModeText( - idleModeText, iconId, qualifier ) ); - - iSetUpIdleModeTextRsp.iInfoType = RSat::KNoAdditionalInfo; - iSetUpIdleModeTextRsp.iAdditionalInfo.Zero(); - iSetUpIdleModeTextRsp.SetPCmdNumber( - iSetUpIdleModeTextData.PCmdNumber() ); - - // Send the terminal response now, if there was an error. - if ( KErrNone != err ) - { - LOG( NORMAL, - "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::HandleCommand \ - Error, Sending Terminal Response" ) - iSetUpIdleModeTextRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - - // Send the response. - TerminalRsp( RSat::ESetUpIdleModeText, iSetUpIdleModeTextRspPckg ); - } - else - { - // Save data for restore. - iSimResetExecuting = EFalse; - iLastValidText = idleModeText; - iLastValidIconId = iconId; - iLastValidIconQualifier = qualifier; - // Show or remove the homezone indicator. - if ( iHasHomezoneIndicator ) - { - if ( iLastValidText.Length() ) - { - TInt errorCode = RProperty::Set( - KPSUidNetworkInfo, - KNWHomeZoneStatus, - ENWHomeZone ); - LOG2( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ - show the homezone indicator and return %d", errorCode ) - } - else - { - TInt errorCode = RProperty::Set( - KPSUidNetworkInfo, - KNWHomeZoneStatus, - ENWNone ); - LOG2( NORMAL, "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler \ - remove the homezone indicator and return %d", errorCode ) - } - } - - iSetUpIdleModeTextRsp.iGeneralResult = RSat::KSuccess; - TerminalRsp( RSat::ESetUpIdleModeText, iSetUpIdleModeTextRspPckg ); - } - - LOG( SIMPLE, - "SETUPIDLEMODETEXT: CSetUpIdleModeTextHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpIdleModeTextHandler::UiLaunchFailed -// ----------------------------------------------------------------------------- -// -void CSetUpIdleModeTextHandler::UiLaunchFailed() - { - LOG( SIMPLE, "SETUPIDLEMODETEXT: \ - CSetUpIdleModeTextHandler::UiLaunchFailed calling - exiting" ) - // We don't need UI. This is derived function from CSatSCommandHandler, - // so this function must exist, even if it is never called. - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpIdleModeTextCmd/src/std.cpp --- a/satengine/SatServer/Commands/SetUpIdleModeTextCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CSetUpIdleModeTextHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x10202988, CSetUpIdleModeTextHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpMenuCmd/group/Create-UT_CSetUpMenuHandler-Sis.bat --- a/satengine/SatServer/Commands/SetUpMenuCmd/group/Create-UT_CSetUpMenuHandler-Sis.bat Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: SIS file for UT_CSetUpMenuHandler. -rem - -@echo off -echo. -echo ==================================== -echo. -echo Digia EUnit - Test -echo. -echo This BAT copies Test DLL -echo to local folder and makes SIS file -echo. -echo ==================================== -echo. - -:CHECK_EPOCROOT -echo. -echo - verify epoc root -set EPOCROOT -if errorlevel == 1 goto END_ERROR - -:COPY_DLL -echo. -echo - copy test dll to current directory -copy %EPOCROOT%epoc32\release\thumb\urel\UT_CSetUpMenuHandler.dll . -if errorlevel == 1 goto END_ERROR - -:CREATE_DIR -echo. -echo - create Sis folder (created only if needed) -mkdir ..\Sis - -:MAKESIS -echo. -echo - makesis UT_CSetUpMenuHandler.pkg ..\sis\UT_CSetUpMenuHandler.sis -call makesis UT_CSetUpMenuHandler.pkg ..\sis\UT_CSetUpMenuHandler.sis -if errorlevel == 1 goto END_ERROR - -:DELETE_DLL -echo. -echo - remove the copied dll from current folder -del UT_CSetUpMenuHandler.dll -goto END - -:END_ERROR -echo. -echo Sis creation failed. -goto FINAL_END - -:END -echo. -echo Sis file created succesfully -echo ============================ - -:FINAL_END -echo. - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpMenuCmd/group/SetUpMenuCmd.mmp --- a/satengine/SatServer/Commands/SetUpMenuCmd/group/SetUpMenuCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,52 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project SetUpMenu plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET SetUpMenuCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x1000F000 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CSetUpMenuHandler.cpp - -START RESOURCE 1000f000.rss -TARGET SetUpMenuCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpMenuCmd/group/UT_CSetUpMenuHandler.pkg --- a/satengine/SatServer/Commands/SetUpMenuCmd/group/UT_CSetUpMenuHandler.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +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: For packing UT_CSetUpMenuHandler. -; - -/* -* ============================================================================== -* Name : UT_CSetUpMenuHandler.mmp -* Part of : SatServer / SetUpMenuCmd -* Description : Project package file for project SetUpMenu plug-in -* Version : %version: e003sa17#6 % -* -* Copyright (c)2002-2008 Nokia. All rights reserved. -* This material, including documentation and any related computer -* programs, is protected by copyright controlled by Nokia. All -* rights are reserved. Copying, including reproducing, storing, -* adapting or translating, any or all of this material requires the -* prior written consent of Nokia. This material also contains -* confidential information which may not be disclosed to others -* without the prior written consent of Nokia. -* ============================================================================ -* Template version: 4.0 -*/ - -; Supported languages -&en - -; Package header (one name for each supported language) -#{"UT_CSetUpMenuHandler"},(0x01700000),0,10,0 - -; Package signature - - -; Options line not supported currently - -; Conditions blocks not supported currently - -; Language independent files that are always installed -"UT_CSetUpMenuHandler.dll"-"!:\DigiaEUnit\Tests\UT_CSetUpMenuHandler.dll" - -; Language dependent files - - -; Requisites (of type: (UID),Major,Minor,Build-Number,{"Requisite Name1", "Requisite Name2"}) -(0x101F6F88), 0, 0, 0, {"Series60ProductID"} diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpMenuCmd/group/bld.inf --- a/satengine/SatServer/Commands/SetUpMenuCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project SetUpMenu plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -SetUpMenuCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpMenuCmd/inc/CSetUpMenuHandler.h --- a/satengine/SatServer/Commands/SetUpMenuCmd/inc/CSetUpMenuHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Handles the SetUpMenu proactive command. -* -*/ - - - -#ifndef CSETUPMENUHANDLER_H -#define CSETUPMENUHANDLER_H - -// INCLUDES -#include -#include "CSatCommandHandler.h" - -// CLASS DECLARATION - -/** -* Handles the SetUpMenu proactive command. -* -* @lib CSetUpMenuCmd.dll -* @since Series 60 3.0 -*/ -class CSetUpMenuHandler : public CSatCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils Utils inteface. - */ - static CSetUpMenuHandler* NewL( MSatUtils* aUtils ); - - /** - * Destructor. - */ - virtual ~CSetUpMenuHandler(); - - public: // Functions from base classes - - /** - * From MSatCommand. - */ - void ClientResponse(); - - /** - * From CSatCommandHandler Overrides the default implementation. - * @param aEvent An event that is occured. - */ - void Event( TInt aEvent ); - - protected: // Functions from base classes - - /** - * From CActive Cancels the SAT request. - */ - void DoCancel(); - - private: // New functions - - /** - * Adds icon to shell. - * @param aAlphaId Alpha id. - * @param aIconId Icon id. - */ - void AddIconToShellL( - const TDesC& aAlphaId, - const RSat::TIconId& aIconId ); - - /** - * Removes icon from shell. - */ - void RemoveIconFromShellL(); - - /** - * Sends setup menu data to client. - */ - void SendSetUpMenuToClient(); - - /** - * Update setup menu data to client. - */ - void UpdateSetUpMenuToClientL(); - - /** - * Sends empty setup menu data to client to indicate SIM services is NA. - */ - void SendEmptySetupMenuToClient(); - - private: // Functions from base classes - - /** - * From CSatCommandHandler Requests the command notification. - * @param aStatus Request status to active object notification - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler Precheck before executing the command. - * @return Boolean indicating is this command allowed to execute. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler Need for ui session. - * @return Boolean indicating does this command need UI session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler Handles the notification of SetUpMenu command. - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. Ui launch failed. - */ - void UiLaunchFailed(); - - private: - - /** - * C++ default constructor. - */ - CSetUpMenuHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // Set up menu command data. - RSat::TSetUpMenuV2 iSetUpMenuData; - - // Package for setupmenu command. - RSat::TSetUpMenuV2Pckg iSetUpMenuPckg; - - // Set up menu arrived data. Needs to be different than - // the one used in request( iSetUpMenuData ), because - // SetUpMenu makes the new request before ui has handled - // the command. - RSat::TSetUpMenuV2 iArrivedSetUpMenuData; - - // Package of arrived set up menu data. - RSat::TSetUpMenuV2Pckg iArrivedSetUpMenuPckg; - - // Indication that command has arrived from SIM. - TBool iSetUpMenuArrived; - - // Name should be changed when SetUp menu is launched. - TBool iSatAppNameUpdated; - - // Information about SAT service availability - TBool iSatServiceAvailable; - - // Flag to signal that command has icon data - // To be removed when icons are allowed in this command - TBool iIconCommand; - - }; - -#endif // CSETUPMENUHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpMenuCmd/inc/SetUpMenuCmd.rls --- a/satengine/SatServer/Commands/SetUpMenuCmd/inc/SetUpMenuCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project SetUpMenuCmd -* -*/ - - -#ifndef SETUPMENUCMD_RLS -#define SETUPMENUCMD_RLS - -rls_string STRING_r_setupmenucmd_display_name "SetUpMenu command" -rls_string STRING_r_setupmenucmd_default_data "SetUpMenuCmd" -rls_string STRING_r_setupmenucmd_opaque_data "" - -#endif // SETUPMENUCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpMenuCmd/src/1000f000.rss --- a/satengine/SatServer/Commands/SetUpMenuCmd/src/1000f000.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1000 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "SetUpMenuCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// SetUpMenuCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO SetUpMenuCmdInfo - { - dll_uid = 0x1000f000; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x1000f002; - version_no = 1; - display_name = STRING_r_setupmenucmd_display_name; - default_data = STRING_r_setupmenucmd_default_data; - opaque_data = STRING_r_setupmenucmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpMenuCmd/src/CSetUpMenuHandler.cpp --- a/satengine/SatServer/Commands/SetUpMenuCmd/src/CSetUpMenuHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,699 +0,0 @@ -/* -* Copyright (c) 2002-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: Handles the SetUpMenu command from SIM. -* -*/ - - -#include -#include "MSatApi.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "MSatSUiClientHandler.h" -#include "CSetUpMenuHandler.h" -#include "SATPrivateCRKeys.h" -#include "SatLog.h" - -const TInt KMaxSatAppName = 30; - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::CSetUpMenuHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSetUpMenuHandler::CSetUpMenuHandler() : - CSatCommandHandler(), - iSetUpMenuData(), - iSetUpMenuPckg( iSetUpMenuData ), - iArrivedSetUpMenuData(), - iArrivedSetUpMenuPckg( iArrivedSetUpMenuData ), - iSatAppNameUpdated( EFalse ), - iSatServiceAvailable( EFalse ), - // To be removed when icons are allowed in this command - iIconCommand( EFalse ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::CSetUpMenuHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSetUpMenuHandler::ConstructL() - { - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::ConstructL calling" ) - - // Register Service request handler for this command handler. - iUtils->RegisterServiceRequestL( - ESatSProactiveSetUpMenu, - ESatSNone, - this ); - - // Remove the sat ui client icon from the shell, otherwise - // sat icon remains in shell once set in shell. - iUtils->SatUiHandler().ShellController().RemoveSatUiL(); - - // When sim session arrives, setupmenu may need to be displayed. - iUtils->RegisterL( this, MSatUtils::ESimSessionEndExecuting ); - iUtils->RegisterL( this, MSatUtils::ESatUiLaunched ); - iUtils->RegisterL( this, MSatUtils::ESetUpMenuNeeded ); - iUtils->RegisterL( this, MSatUtils::EApplNameUpdated ); - iUtils->RegisterL( this, MSatUtils::ESimResetCalled ); - iUtils->RegisterL( this, MSatUtils::ERemoveSatUiCalled ); - iUtils->RegisterL( this, MSatUtils::EAddSatUiCalled ); - iUtils->RegisterL( this, MSatUtils::ECallControlDone ); - - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSetUpMenuHandler* CSetUpMenuHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::NewL calling" ) - - CSetUpMenuHandler* self = new( ELeave ) CSetUpMenuHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); // Need to be called before ConstructL - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::NewL exiting" ) - return self; - } - - -// Destructor -CSetUpMenuHandler::~CSetUpMenuHandler() - { - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::~CSetUpMenuHandler calling" ) - - Cancel(); - - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::~CSetUpMenuHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::ClientResponse -// ----------------------------------------------------------------------------- -// -void CSetUpMenuHandler::ClientResponse() - { - // This is needed to prevent Panic when UI is closed right after start - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::Event -// Event notification -// ----------------------------------------------------------------------------- -// -void CSetUpMenuHandler::Event( TInt aEvent ) - { - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::Event calling" ) - - switch ( aEvent ) - { - // Sim session has arrived from SIM or ui launched - case MSatUtils::ESatUiLaunched: - { - LOG( NORMAL, "SETUPMENU: Event: ESatUiLaunched" ) - // Send SetUpMenu to ui client if ui client is running, - // ui client is launced by user and the set up menu data - // has arrived from SIM. - if ( iSetUpMenuArrived ) - { - LOG( NORMAL, "SETUPMENU: Event: iSetUpMenuArrived true" ) - SendSetUpMenuToClient(); - } - else - { - SendEmptySetupMenuToClient(); - } - - break; - } - - case MSatUtils::ESetUpMenuNeeded: - { - LOG( NORMAL, "SETUPMENU: Event: ESetUpMenuNeeded" ) - // Some command has finished executing and needs SetUpMenu. - SendSetUpMenuToClient(); - break; - } - - case MSatUtils::EApplNameUpdated: - { - LOG( NORMAL, "SETUPMENU: Event: EApplNameUpdated" ) - // Update SetUpMenu to ui client if ui client is running, - // ui client is launced by user and the set up menu data - // has arrived from SIM. - TRAPD( err, UpdateSetUpMenuToClientL() ); - if ( KErrNone != err ) - { - LOG2( SIMPLE, "SETUPMENU: Error: %i", err ) - } - break; - } - - case MSatUtils::ESimSessionEndExecuting: - { - LOG( NORMAL, "SETUPMENU: Event: ESimSessionEndExecuting" ) - // If the sim session end is only command active currently - // then send the setupmenu to client. - if ( 1 == iUtils->NumberOfExecutingCommandHandlers() ) - { - LOG( NORMAL, "SETUPMENU: Event: setupmenu" ) - SendSetUpMenuToClient(); - } - break; - } - - case MSatUtils::ESimResetCalled: - { - LOG( NORMAL, "SETUPMENU: Event: ESimResetCalled" ) - // Close SatUi and remove Sat icon from application shell - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - if ( uiSession ) - { - LOG( NORMAL, "SETUPMENU: Event: CloseUiSession" ) - uiSession->CloseUiSession(); - } - TRAP_IGNORE( RemoveIconFromShellL() ) - break; - } - - case MSatUtils::EAddSatUiCalled: - { - LOG( NORMAL, "SETUPMENU: Event: EAddSatUiCalled" ) - iSatServiceAvailable = ETrue; - if ( iSetUpMenuArrived ) - { - LOG( NORMAL, "SETUPMENU: Event: iSetUpMenuArrived true" ) - TRAP_IGNORE( AddIconToShellL( - iArrivedSetUpMenuData.iAlphaId.iAlphaId, - iArrivedSetUpMenuData.iIconId ) ) - } - break; - } - - case MSatUtils::ERemoveSatUiCalled: - { - iSatServiceAvailable = EFalse; - LOG( NORMAL, "SETUPMENU: Event: ERemoveSatUiCalled" ) - // Close SAT UI and remove SAT icon from Application Shell. - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - if ( uiSession ) - { - LOG( NORMAL, "SETUPMENU: Event: CloseUiSession" ) - uiSession->CloseUiSession(); - } - TRAP_IGNORE( RemoveIconFromShellL() ) - break; - } - - case MSatUtils::ECallControlDone: - { - // If all commands end up, send the setupmenu to client. - if ( 0 == iUtils->NumberOfExecutingCommandHandlers() ) - { - LOG( NORMAL, "SETUPMENU: Event: setupmenu" ) - SendSetUpMenuToClient(); - } - break; - } - - default: - { - LOG2( NORMAL, "SETUPMENU: Unexpected event: %i", aEvent ) - CSatCommandHandler::Event( aEvent ); - } - } - - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::DoCancel -// Cancels the SetUpMenu notification from SIM. -// ----------------------------------------------------------------------------- -// -void CSetUpMenuHandler::DoCancel() - { - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifySetUpMenuCancel(); - - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::AddIconToShellL -// ----------------------------------------------------------------------------- -// -void CSetUpMenuHandler::AddIconToShellL( - const TDesC& aAlphaId, // Alpha id of SetUpMenu command - const RSat::TIconId& aIconId ) // Icon id of SetUpMenu command - { - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::AddIconToShellL calling" ) - TPtrC name( aAlphaId ); - - if ( 0 != aAlphaId.Length() ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::AddIconToShellL aAlphaId not null" ) - // Set new sat app name. - iUtils->SetSatAppNameL( aAlphaId ); - } - else - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::AddIconToShellL aAlphaId null" ) - iUtils->RestoreSatAppNameL(); - name.Set( iUtils->SatAppName() ); - } - - // Menu application needs only a short name. - if ( iUtils->SatAppName().Length() > KMaxSatAppName ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::AddIconToShellL AppName too long" ) - name.Set( iUtils->SatAppName().Left( KMaxSatAppName ) ); - } - else - { - name.Set( iUtils->SatAppName() ); - } - - // Check if there is icon available. - MSatShellController& controller = iUtils->SatUiHandler().ShellController(); - if ( ( RSat::ENoIconId == aIconId.iQualifier ) || - ( RSat::EIconQualifierNotSet == aIconId.iQualifier ) ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::AddIconToShellL no icon" ) - controller.AddSatUiL( name ); - } - else - { - controller.AddSatUiL( name, aIconId.iIdentifier ); - } - - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::AddIconToShellL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::RemoveIconFromShellL -// ----------------------------------------------------------------------------- -// -void CSetUpMenuHandler::RemoveIconFromShellL() - { - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::RemoveIconFromShellL calling" ) - - iUtils->SatUiHandler().ShellController().RemoveSatUiL(); - - // Restore the original name of SAT application. - iUtils->RestoreSatAppNameL(); - - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::RemoveIconFromShellL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::SendSetUpMenuToClient -// ----------------------------------------------------------------------------- -// -void CSetUpMenuHandler::SendSetUpMenuToClient() - { - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::SendSetUpMenuToClient calling" ) - - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - if ( uiSession && - iUtils->SatUiHandler().UiLaunchedByUser() && - iSetUpMenuArrived ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::SendSetUpMenuToClient setupmenu" ) - - // Does not update SIM application name when it is restored and service - // is not available. - if ( iSatServiceAvailable ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::SendSetUpMenuToClient \ - iSatServiceAvailable true" ) - // When ME is launched with special SIM and SetUpMenu made with - // different name. Then also SetUpMenu data update is needed - // when Menu name was already OK. - iArrivedSetUpMenuData.iAlphaId.iAlphaId.Zero(); - iArrivedSetUpMenuData.iAlphaId.iAlphaId.Copy( - iUtils->SatAppName() ); - } - - // Client does not respond to setupmenu cmd, therefore NULL. - uiSession->SendCommand( - &iArrivedSetUpMenuPckg, - NULL, - ESatSProactiveSetUpMenu ); - } - - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::SendSetUpMenuToClient exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::SendEmptySetupMenuToClient -// ----------------------------------------------------------------------------- -// -void CSetUpMenuHandler::SendEmptySetupMenuToClient() - { - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::SendEmptySetupMenuToClient\ - calling" ) - - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - if ( uiSession && - iUtils->SatUiHandler().UiLaunchedByUser() ) - { - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::SendEmptySetupMenuToClient\ - send setupmenu" ) - // Client does not respond to setupmenu cmd, therefore NULL. - uiSession->SendCommand( - &iSetUpMenuPckg, - NULL, - ESatSProactiveSetUpMenu ); - } - - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::SendEmptySetupMenuToClient\ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::UpdateSetUpMenuToClientL -// ----------------------------------------------------------------------------- -// -void CSetUpMenuHandler::UpdateSetUpMenuToClientL() - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::UpdateSetUpMenuToClientL calling" ) - - iSatAppNameUpdated = ETrue; - if ( iSetUpMenuArrived ) - { - // SetUpMenu application name update is needed. - iArrivedSetUpMenuData.iAlphaId.iAlphaId.Zero(); - iArrivedSetUpMenuData.iAlphaId.iAlphaId.Append( iUtils->SatAppName() ); - LOG( NORMAL, "SETUPMENU: Name updated" ) - - // Restore icon after update. - AddIconToShellL( - iArrivedSetUpMenuData.iAlphaId.iAlphaId, - iArrivedSetUpMenuData.iIconId ); - - // Update display, when ui is launched. - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - if ( uiSession && iUtils->SatUiHandler().UiLaunchedByUser() ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::UpdateSetUpMenuToClientL \ - UiLaunchedByUser" ) - // Update it only when it is not empty. - if ( 0 != iArrivedSetUpMenuData.NumberOfItems() ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::UpdateSetUpMenuToClientL \ - item not empty" ) - // Send update to ui. - // Client does not respond to setupmenu cmd, therefore NULL. - uiSession->SendCommand( - &iArrivedSetUpMenuPckg, - NULL, - ESatSProactiveSetUpMenu ); - } - } - } - - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::UpdateSetUpMenuToClientL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::IssueUSATRequest -// Makes the request of SetUpMenu from SIM -// ----------------------------------------------------------------------------- -// -void CSetUpMenuHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::IssueUSATRequest calling" ) - - // Without reset, old menu items stay in the list. - iSetUpMenuData.Reset(); - -#ifdef __WINS__ - // Empty the IPC data - RSat::TSetUpMenuV2 temp; - iSetUpMenuData = temp; -#endif - - iUtils->USatAPI().NotifySetUpMenu( aStatus, iSetUpMenuPckg ); - - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::IssueUSATRequestx exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::CommandAllowed -// SetUpMenu is allowed always. -// ----------------------------------------------------------------------------- -// -TBool CSetUpMenuHandler::CommandAllowed() - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::CommandAllowed calling" ) - - TBool commandAllowed( ETrue ); - TBool nullText( EFalse ); - TInt err ( KErrNone ); - RSat::TItem item; - TUint numberOfItems( iSetUpMenuData.NumberOfItems() ); - TBool titleIcon( - ( RSat::ENotSelfExplanatory == iSetUpMenuData.iIconId.iQualifier ) || - ( RSat::ESelfExplanatory == iSetUpMenuData.iIconId.iQualifier ) ); - TBool itemIcons( - ( RSat::ENotSelfExplanatory == iSetUpMenuData.iIconListQualifier ) || - ( RSat::ESelfExplanatory == iSetUpMenuData.iIconListQualifier ) ); - RSat::TSetUpMenuRspV1 setUpMenuRsp; - RSat::TSetUpMenuRspV1Pckg setUpMenuRspPckg( setUpMenuRsp ); - - // Check if some item does not have text - for ( TUint count = 1; ( count <= numberOfItems ) && !nullText && - ( KErrNone == err ); count++ ) - { - err = iSetUpMenuData.GetItem( count, item ); - - if ( ( KErrNone == err ) && ( 0 == item.iItemString.Length() ) ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::CommandAllowed item null" ) - nullText = ETrue; - } - } - LOG2( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::CommandAllowed numberOfItems:%d", - numberOfItems ) - // If icon is provided without any text - if ( ( ( RSat::EAlphaIdProvided != iSetUpMenuData.iAlphaId.iStatus ) && - titleIcon ) || ( nullText && itemIcons ) ) - { - setUpMenuRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - setUpMenuRsp.iInfoType = RSat::KNoAdditionalInfo; - setUpMenuRsp.iAdditionalInfo.Zero(); - setUpMenuRsp.SetPCmdNumber( setUpMenuRsp.PCmdNumber() ); - TerminalRsp( RSat::ESetUpMenu, setUpMenuRspPckg ); - commandAllowed = EFalse; - LOG( NORMAL, "SETUPMENU: CSetUpMenuHandler::\ - CommandAllowed icon received without alpha id" ) - } - // Set icon command flag whether icon data was received and set qualifier - // to no icon id - // To be removed when icons are allowed in this command - else if ( !titleIcon && !itemIcons ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::CommandAllowed no icon" ) - iIconCommand = EFalse; - } - else - { - iIconCommand = ETrue; - - if ( titleIcon ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::CommandAllowed titleIcon true" ) - iSetUpMenuData.iIconId.iQualifier = RSat::ENoIconId; - } - - if ( itemIcons ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::CommandAllowed itemIcons true" ) - iSetUpMenuData.iIconListQualifier = RSat::ENoIconId; - } - } - - LOG2( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::CommandAllowed exiting,commandAllowed: %d", - commandAllowed ) - return commandAllowed; - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::NeedUiSession -// SetUpMenu command itself does not need ui session. -// ----------------------------------------------------------------------------- -// -TBool CSetUpMenuHandler::NeedUiSession() - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::NeedUiSession calling - exiting" ) - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::HandleCommand -// Handles the SetUpMenu proactive command. -// ----------------------------------------------------------------------------- -// -void CSetUpMenuHandler::HandleCommand() - { - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::HandleCommand calling" ) - - // This could be moved to base class. - iUtils->NotifyEvent( MSatUtils::ESetUpMenuExecuting ); - - iArrivedSetUpMenuData = iSetUpMenuData; - - TInt err( KErrNone ); - - if ( iSetUpMenuData.IsRemoveMenu() || - ( 0 == iSetUpMenuData.NumberOfItems() ) ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::HandleCommand remove icon" ) - TRAP( err, RemoveIconFromShellL() ); - } - else - { - // If name has been changed prior launch of SetUpMenu, update name. - if ( iSatAppNameUpdated ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::HandleCommand iSatAppNameUpdated" ) - iArrivedSetUpMenuData.iAlphaId.iAlphaId.Zero(); - } - - // Set SAT name to alpha id if alpha ID is zero. - if ( 0 == iArrivedSetUpMenuData.iAlphaId.iAlphaId.Length() ) - { - TRAP( err, iUtils->RestoreSatAppNameL() ); - iArrivedSetUpMenuData.iAlphaId.iAlphaId.Append( - iUtils->SatAppName() ); - LOG( NORMAL, - "SETUPMENU: CSetUpMenuHandler::HandleCommand Name updated" ) - } - //Rentain the title of "SIM card application" for special card - else - { - // Set new sat app name. - TRAP( err, iUtils->SetSatAppNameL( - iArrivedSetUpMenuData.iAlphaId.iAlphaId ) ); - iArrivedSetUpMenuData.iAlphaId.iAlphaId.Zero(); - iArrivedSetUpMenuData.iAlphaId.iAlphaId.Copy( - iUtils->SatAppName() ); - } - - MSatUiSession* session = iUtils->SatUiHandler().UiSession(); - if ( session ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::HandleCommand session true" ) - // Send the setupmenu to ui client. - session->SendCommand( - &iArrivedSetUpMenuPckg, - NULL, - ESatSProactiveSetUpMenu ); - } - - if ( KErrNone == err ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::HandleCommand AddIconToShellL" ) - TRAP( err, AddIconToShellL( - iArrivedSetUpMenuData.iAlphaId.iAlphaId, - iArrivedSetUpMenuData.iIconId ) ); - } - - } - - RSat::TSetUpMenuRspV1 setUpMenuRsp; - RSat::TSetUpMenuRspV1Pckg setUpMenuRspPckg( setUpMenuRsp ); - setUpMenuRsp.iInfoType = RSat::KNoAdditionalInfo; - setUpMenuRsp.iAdditionalInfo.Zero(); - setUpMenuRsp.SetPCmdNumber( iArrivedSetUpMenuData.PCmdNumber() ); - - if ( KErrNone == err ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::HandleCommand no error" ) - iSetUpMenuArrived = ETrue; - setUpMenuRsp.iGeneralResult = RSat::KSuccess; - // If command had icon data and was done succesfully, report that icon - // was not shown - // To be removed when icons are allowed in this command - // Result of icon showing must be received - if ( iIconCommand ) - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::HandleCommand iIconCommand true" ) - setUpMenuRsp.iGeneralResult = - RSat::KSuccessRequestedIconNotDisplayed; - } - } - else - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::HandleCommand error" ) - setUpMenuRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - } - - CSatCommandHandler::TerminalRsp( RSat::ESetUpMenu, setUpMenuRspPckg ); - - LOG( SIMPLE, "SETUPMENU: CSetUpMenuHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSetUpMenuHandler::UiLaunchFailed -// ----------------------------------------------------------------------------- -// -void CSetUpMenuHandler::UiLaunchFailed() - { - LOG( SIMPLE, - "SETUPMENU: CSetUpMenuHandler::UiLaunchFailed calling - exiting" ) - // SetUpMenu command does not launch UI. - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SetUpMenuCmd/src/std.cpp --- a/satengine/SatServer/Commands/SetUpMenuCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CSetUpMenuHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x1000f002, CSetUpMenuHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SimSessionEndCmd/group/SimSessionEndCmd.mmp --- a/satengine/SatServer/Commands/SimSessionEndCmd/group/SimSessionEndCmd.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,51 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project SimSessionEnd plug-in -* -*/ - - -#include -#include -#include "../../../inc/SatMacroes.h" - -TARGET SimSessionEndCmd.dll -TARGETTYPE PLUGIN -UID 0x10009D8D 0x1000F010 - -CAPABILITY CAP_ECOM_PLUGIN -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CSimSessionEndHandler.cpp - -START RESOURCE 1000f010.rss -TARGET SimSessionEndCmd.rsc -END - -USERINCLUDE ../../../inc -USERINCLUDE ../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SimSessionEndCmd/group/bld.inf --- a/satengine/SatServer/Commands/SimSessionEndCmd/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project SimSessionEndCmd plug-in -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -SimSessionEndCmd.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SimSessionEndCmd/inc/CSimSessionEndHandler.h --- a/satengine/SatServer/Commands/SimSessionEndCmd/inc/CSimSessionEndHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: SimSessionEnd command handler -* -*/ - - - -#ifndef CSIMSESSIONENDHANDLER_H -#define CSIMSESSIONENDHANDLER_H - -// INCLUDES -#include -#include "CSatCommandHandler.h" -#include "MSatEventObserver.h" - -// CLASS DECLARATION - -/** -* Command handler for SimSessionEnd command. -* -* @lib SimSessionEndCmd.lib -* @since Series 60 3.0 -*/ -class CSimSessionEndHandler : public CSatCommandHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils SAT Utils interface - */ - static CSimSessionEndHandler* NewL( MSatUtils* aUtils ); - - /** - * Destructor. - */ - virtual ~CSimSessionEndHandler(); - - private: // New function - - /** - * Timer call back for sim session end generation - */ - static TInt TimerCallback( TAny* aSimSessionEndHandler ); - - public: // Functions from base classes - - /** - * From CSatCommandHandler Overrides the default implementation. - * @param aEvent Identifies the event. - */ - void Event( TInt aEvent ); - - protected: // Functions from base classes - - /** - * From CActive Cancels the usat request. - */ - void DoCancel(); - - /** - * From CSatCommandHandler Requests the command notification. - * @param aStatus Request status - */ - void IssueUSATRequest( TRequestStatus& aStatus ); - - /** - * From CSatCommandHandler Precheck before executing the command. - * @return TBool indicating command is currently allowed. - */ - TBool CommandAllowed(); - - /** - * From CSatCommandHandler Need for ui session. - * @return TBool indicating need of ui session. - */ - TBool NeedUiSession(); - - /** - * From CSatCommandHandler Called when USAT API notifies that command. - */ - void HandleCommand(); - - /** - * From CSatCommandHandler. Ui launch failed. - */ - void UiLaunchFailed(); - - private: - - /** - * C++ default constructor. - */ - CSimSessionEndHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // Indication of user terminated the SIM session. - TBool iSimSessionTerminatedByUser; - - // Timer for launcing simsession end. - CPeriodic* iTimer; - - // Sustained display text on screen - TBool iSustainedTextActive; - - // Sim session end pending because sustained text - TBool iSimSessionEndPending; - - }; - -#endif // CSIMSESSIONENDHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SimSessionEndCmd/inc/SimSessionEndCmd.rls --- a/satengine/SatServer/Commands/SimSessionEndCmd/inc/SimSessionEndCmd.rls Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -/* -* Copyright (c) 2006 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: Resource headers for project SimSessionEndCmd -* -*/ - - -#ifndef SIMSESSIONENDCMD_RLS -#define SIMSESSIONENDCMD_RLS - -rls_string STRING_r_simsessionendcmd_display_name "SimSessionEnd command" -rls_string STRING_r_simsessionendcmd_default_data "SimSessionEndCmd" -rls_string STRING_r_simsessionendcmd_opaque_data "" - -#endif // SIMSESSIONENDCMD_RLS diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SimSessionEndCmd/src/1000f010.rss --- a/satengine/SatServer/Commands/SimSessionEndCmd/src/1000f010.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,55 +0,0 @@ -/* -* Copyright (c) 1000 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: Registry information for ECOM -* -*/ - - - -// INCLUDES -#include -#include "SimSessionEndCmd.rls" - -// RESOURCE DEFINITIONS -// ----------------------------------------------------------------------------- -// -// SimSessionEndCmdInfo -// Registeration information for ECOM -// -// ----------------------------------------------------------------------------- -// -RESOURCE REGISTRY_INFO SimSessionEndCmdInfo - { - dll_uid = 0x1000f010; - interfaces = - { - INTERFACE_INFO - { - interface_uid = 0x1000f001; - implementations = - { - IMPLEMENTATION_INFO - { - implementation_uid = 0x1000f011; - version_no = 1; - display_name = STRING_r_simsessionendcmd_display_name; - default_data = STRING_r_simsessionendcmd_default_data; - opaque_data = STRING_r_simsessionendcmd_opaque_data; - } - }; - } - }; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SimSessionEndCmd/src/CSimSessionEndHandler.cpp --- a/satengine/SatServer/Commands/SimSessionEndCmd/src/CSimSessionEndHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,375 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles SimSessionEnd command -* -*/ - - - -// INCLUDE FILES -#include "MSatApi.h" -#include "MSatUiSession.h" -#include "MSatSUiClientHandler.h" -#include "CSimSessionEndHandler.h" -#include "SatLog.h" - -// CONSTANTS -const TInt KSimSessionEndDelay = 60000000; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSimSessionEndHandler::CSimSessionEndHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSimSessionEndHandler::CSimSessionEndHandler() : - CSatCommandHandler() - { - LOG( SIMPLE, "SIMSESSIONEND: \ - CSimSessionEndHandler::CSimSessionEndHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSimSessionEndHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSimSessionEndHandler::ConstructL() - { - LOG( SIMPLE, "SIMSESSIONEND: CSimSessionEndHandler::ConstructL calling" ) - - iTimer = CPeriodic::NewL( EPriorityStandard ); - - iUtils->RegisterL( this, MSatUtils::EDelaySimSessionEnd ); - iUtils->RegisterL( this, MSatUtils::EDestroySimSessionEndTimer ); - iUtils->RegisterL( this, MSatUtils::ESessionTerminatedByUser ); - iUtils->RegisterL( this, MSatUtils::ESimSessionEndCallBack ); - iUtils->RegisterL( this, MSatUtils::ESustainedTextInDisplay ); - iUtils->RegisterL( this, MSatUtils::ESustainedTextRemoved ); - iUtils->RegisterL( this, MSatUtils::ESatUiLaunched ); - - LOG( SIMPLE, "SIMSESSIONEND: CSimSessionEndHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSimSessionEndHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSimSessionEndHandler* CSimSessionEndHandler::NewL( MSatUtils* aUtils ) - { - LOG( SIMPLE, "SIMSESSIONEND: CSimSessionEndHandler::NewL calling" ) - - CSimSessionEndHandler* self = new( ELeave ) CSimSessionEndHandler; - - CleanupStack::PushL( self ); - self->BaseConstructL( aUtils ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SIMSESSIONEND: CSimSessionEndHandler::NewL exiting" ) - return self; - } - - -// Destructor -CSimSessionEndHandler::~CSimSessionEndHandler() - { - LOG( SIMPLE, - "SIMSESSIONEND: CSimSessionEndHandler::~CSimSessionEndHandler calling" ) - - Cancel(); - - if ( iTimer ) - { - iTimer->Cancel(); - } - delete iTimer; - - LOG( SIMPLE, - "SIMSESSIONEND: CSimSessionEndHandler::~CSimSessionEndHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSimSessionEndHandler::TimerCallback -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CSimSessionEndHandler::TimerCallback( TAny* aSimSessionEndHandler ) - { - LOG( SIMPLE, "SIMSESSIONEND: CSimSessionEndHandler::TimerCallback calling" ) - - CSimSessionEndHandler* handler = - static_cast( aSimSessionEndHandler ); - - if ( handler ) - { - LOG( SIMPLE, - "SIMSESSIONEND: CSimSessionEndHandler::TimerCallback handler true" ) - handler->iTimer->Cancel(); - handler->HandleCommand(); - } - - LOG( SIMPLE, "SIMSESSIONEND: CSimSessionEndHandler::TimerCallback exiting" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSimSessionEndHandler::Event -// Waits for indication of user wanting to close the sim session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSimSessionEndHandler::Event( TInt aEvent ) - { - LOG( SIMPLE, "SIMSESSIONEND: CSimSessionEndHandler::Event calling" ) - - switch ( aEvent ) - { - case MSatUtils::ESatUiLaunched: - { - LOG( NORMAL, - "SIMSESSIONEND: CSimSessionEndHandler::Event UI is launched" ) - // New UI session, reset flag - iSimSessionTerminatedByUser = EFalse; - break; - } - - case MSatUtils::ESessionTerminatedByUser: - { - LOG( NORMAL, - "SIMSESSIONEND: CSimSessionEndHandler::Event \ - ESessionTerminatedByUser" ) - // Next SimSessionEnd will close the ui session. - iSimSessionTerminatedByUser = ETrue; - break; - } - - case MSatUtils::EDelaySimSessionEnd: - { - LOG( NORMAL, - "SIMSESSIONEND: CSimSessionEndHandler::Event \ - EDelaySimSessionEnd" ) - iTimer->Cancel(); - TCallBack callback( TimerCallback, this ); - iTimer->Start( KSimSessionEndDelay, KSimSessionEndDelay, callback ); - break; - } - - case MSatUtils::EDestroySimSessionEndTimer: - { - LOG( NORMAL, - "SIMSESSIONEND: CSimSessionEndHandler::Event \ - EDestroySimSessionEndTimer" ) - iTimer->Cancel(); - break; - } - - case MSatUtils::ESimSessionEndCallBack: - { - LOG( NORMAL, - "SIMSESSIONEND: CSimSessionEndHandler::Event \ - ESimSessionEndCallBack" ) - // Forced Sim session end. - iTimer->Cancel(); - HandleCommand(); - break; - } - - case MSatUtils::ESustainedTextInDisplay: - { - LOG( NORMAL, "SIMSESSIONEND: CSimSessionEndHandler::Event \ - ESustainedTextInDisplay" ) - // Indication of sustained text - iSustainedTextActive = ETrue; - break; - } - - case MSatUtils::ESustainedTextRemoved: - { - LOG( NORMAL, "SIMSESSIONEND: CSimSessionEndHandler::Event \ - ESustainedTextRemoved" ) - // Indication of sustained text cleared - iSustainedTextActive = EFalse; - // If last sim session end is pending because of sustained text, - // execute it now - if ( iSimSessionEndPending ) - { - LOG( NORMAL, - "SIMSESSIONEND: CSimSessionEndHandler::Event \ - iSimSessionEndPending" ) - HandleCommand(); - } - - break; - } - - default: - { - LOG2( NORMAL, - "SIMSESSIONEND: CSimSessionEndHandler::Event \ - Unexpected event: %i", aEvent ) - CSatCommandHandler::Event( aEvent ); - break; - } - } - - LOG( SIMPLE, "SIMSESSIONEND: CSimSessionEndHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSimSessionEndHandler::DoCancel -// Cancels the sat request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSimSessionEndHandler::DoCancel() - { - LOG( SIMPLE, "SIMSESSIONEND: CSimSessionEndHandler::DoCancel calling" ) - - iUtils->USatAPI().NotifySimSessionEndCancel(); - - LOG( SIMPLE, "SIMSESSIONEND: CSimSessionEndHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSimSessionEndHandler::IssueUSATRequest -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSimSessionEndHandler::IssueUSATRequest( TRequestStatus& aStatus ) - { - LOG( SIMPLE, - "SIMSESSIONEND: CSimSessionEndHandler::IssueUSATRequest calling" ) - - iUtils->USatAPI().NotifySimSessionEnd( aStatus ); - - LOG( SIMPLE, - "SIMSESSIONEND: CSimSessionEndHandler::IssueUSATRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSimSessionEndHandler::CommandAllowed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CSimSessionEndHandler::CommandAllowed() - { - LOG( SIMPLE, "SIMSESSIONEND: \ - CSimSessionEndHandler::CommandAllowed calling - exiting" ) - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CSimSessionEndHandler::NeedUiSession -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CSimSessionEndHandler::NeedUiSession() - { - LOG( SIMPLE, "SIMSESSIONEND: \ - CSimSessionEndHandler::NeedUiSession calling - exiting" ) - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CSimSessionEndHandler::HandleCommand -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSimSessionEndHandler::HandleCommand() - { - LOG( SIMPLE, "SIMSESSIONEND: CSimSessionEndHandler::HandleCommand calling" ) - - // Note that the framework has destroyed the simsession - // end timer, when HandleCommand is called. - if ( !iSimSessionTerminatedByUser && !iSustainedTextActive ) - { - LOG( SIMPLE, - "SIMSESSIONEND: CSimSessionEndHandler::HandleCommand \ - ESimSessionEndExecuting" ) - iUtils->NotifyEvent( MSatUtils::ESimSessionEndExecuting ); - } - - MSatUiSession* uiSession = iUtils->SatUiHandler().UiSession(); - if ( uiSession ) - { - // If sustained Display text is on screen, cannot close UI - if ( !iSustainedTextActive && ( iSimSessionTerminatedByUser || - !iUtils->SatUiHandler().UiLaunchedByUser() ) ) - { - iSimSessionTerminatedByUser = EFalse; - iSimSessionEndPending = EFalse; - // Number of executing command handlers should be 0. - TInt expectedCommCount = 0; - - // If SimSessionEnd is executing ie. not active, it has to take - // into account when checking executing command handlers. - if ( !IsActive() ) - { - LOG( SIMPLE, - "SIMSESSIONEND: CSimSessionEndHandler::HandleCommand \ - isn't Active" ) - expectedCommCount = 1; - } - - LOG2( NORMAL, "SIMSESSIONEND: Expected commands: %i", - expectedCommCount ) - // SimSession end is currently executing, therefore there is one - // executing command. - if ( expectedCommCount == - iUtils->NumberOfExecutingCommandHandlers() ) - { - LOG( SIMPLE, - "SIMSESSIONEND: CSimSessionEndHandler::HandleCommand \ - expectedCommCount==iUtils->NumberOfExecutingCommandHandlers()" ) - // Close the ui session only if there are no - // executing commands. - uiSession->CloseUiSession(); - } - } - else - { - if ( iSustainedTextActive ) - { - LOG( SIMPLE, - "SIMSESSIONEND: CSimSessionEndHandler::HandleCommand \ - iSustainedTextActive true" ) - iSimSessionEndPending = ETrue; - } - } - } - - // Renew the request, because the sim session end does not send - // terminal response, which would renew the request automatically. - Start(); - - LOG( SIMPLE, "SIMSESSIONEND: CSimSessionEndHandler::HandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSimSessionEndHandler::UiLaunchFailed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSimSessionEndHandler::UiLaunchFailed() - { - // This command does not launch ui client. - LOG( SIMPLE, - "SIMSESSIONEND: CSimSessionEndHandler::UiLaunchFailed calling-exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Commands/SimSessionEndCmd/src/std.cpp --- a/satengine/SatServer/Commands/SimSessionEndCmd/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "CSimSessionEndHandler.h" - -// CONSTANTS - -const TImplementationProxy implementationTable[] = - { - //lint -e{611,1924} Warning "Suspicious cast" can not be avoided. - IMPLEMENTATION_PROXY_ENTRY( 0x1000f011, CSimSessionEndHandler::NewL ) - }; - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// ImplementationGroupProxy ECOM framework factory function -// Calculates the number of implementations. -// Returns: Implementation proxy. -// ----------------------------------------------------------------------------- -// -EXPORT_C const TImplementationProxy* ImplementationGroupProxy( - TInt& aTableCount ) // Number of implementations - { - aTableCount = - sizeof( implementationTable ) / - sizeof( TImplementationProxy ); - return implementationTable; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/BWINS/SATENGINEU.DEF --- a/satengine/SatServer/Engine/BWINS/SATENGINEU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,20 +0,0 @@ -EXPORTS - ??0CSatCommandHandler@@IAE@XZ @ 1 NONAME ; CSatCommandHandler::CSatCommandHandler(void) - ??0CSatSScheduler@@QAE@XZ @ 2 NONAME ; CSatSScheduler::CSatSScheduler(void) - ??1CSatCommandHandler@@UAE@XZ @ 3 NONAME ; CSatCommandHandler::~CSatCommandHandler(void) - ?BaseConstructL@CSatCommandHandler@@IAEXPAVMSatUtils@@@Z @ 4 NONAME ; void CSatCommandHandler::BaseConstructL(class MSatUtils *) - ?ClientResponse@CSatCommandHandler@@UAEXXZ @ 5 NONAME ; void CSatCommandHandler::ClientResponse(void) - ?CreateSatServerL@@YAPAVCSatSServer@@XZ @ 6 NONAME ; class CSatSServer * CreateSatServerL(void) - ?DoHandleCommand@CSatCommandHandler@@MAEXXZ @ 7 NONAME ; void CSatCommandHandler::DoHandleCommand(void) - ?Event@CSatCommandHandler@@UAEXH@Z @ 8 NONAME ; void CSatCommandHandler::Event(int) - ?IsCommandExecuting@CSatCommandHandler@@QBEHXZ @ 9 NONAME ; int CSatCommandHandler::IsCommandExecuting(void) const - ?IsExtendedError@TSatExtErrorUtils@@SAHH@Z @ 10 NONAME ; int TSatExtErrorUtils::IsExtendedError(int) - ?IsNetworkError@TSatExtErrorUtils@@SAHH@Z @ 11 NONAME ; int TSatExtErrorUtils::IsNetworkError(int) - ?IsPhoneInIdleState@CSatCommandHandler@@IAEHXZ @ 12 NONAME ; int CSatCommandHandler::IsPhoneInIdleState(void) - ?MapError@TSatExtErrorUtils@@SAEHH@Z @ 13 NONAME ; unsigned char TSatExtErrorUtils::MapError(int, int) - ?Panic@CSatCommandHandler@@QBEXABVTDesC16@@H@Z @ 14 NONAME ; void CSatCommandHandler::Panic(class TDesC16 const &, int) const - ?RunL@CSatCommandHandler@@MAEXXZ @ 15 NONAME ; void CSatCommandHandler::RunL(void) - ?SetServer@CSatSScheduler@@QAEXPAVCSatSServer@@@Z @ 16 NONAME ; void CSatSScheduler::SetServer(class CSatSServer *) - ?Start@CSatCommandHandler@@QAEXXZ @ 17 NONAME ; void CSatCommandHandler::Start(void) - ?TerminalRsp@CSatCommandHandler@@IAEXW4TPCmd@RSat@@ABVTDesC8@@@Z @ 18 NONAME ; void CSatCommandHandler::TerminalRsp(enum RSat::TPCmd, class TDesC8 const &) - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/EABI/SatEngineU.DEF --- a/satengine/SatServer/Engine/EABI/SatEngineU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -EXPORTS - _Z16CreateSatServerLv @ 1 NONAME - _ZN14CSatSScheduler9SetServerEP11CSatSServer @ 2 NONAME - _ZN14CSatSSchedulerC1Ev @ 3 NONAME - _ZN14CSatSSchedulerC2Ev @ 4 NONAME - _ZN17TSatExtErrorUtils14IsNetworkErrorEi @ 5 NONAME - _ZN17TSatExtErrorUtils15IsExtendedErrorEi @ 6 NONAME - _ZN17TSatExtErrorUtils8MapErrorEii @ 7 NONAME - _ZN18CSatCommandHandler11TerminalRspEN4RSat5TPCmdERK6TDesC8 @ 8 NONAME - _ZN18CSatCommandHandler14BaseConstructLEP9MSatUtils @ 9 NONAME - _ZN18CSatCommandHandler14ClientResponseEv @ 10 NONAME - _ZN18CSatCommandHandler15DoHandleCommandEv @ 11 NONAME - _ZN18CSatCommandHandler18IsPhoneInIdleStateEv @ 12 NONAME - _ZN18CSatCommandHandler4RunLEv @ 13 NONAME - _ZN18CSatCommandHandler5EventEi @ 14 NONAME - _ZN18CSatCommandHandler5StartEv @ 15 NONAME - _ZN18CSatCommandHandlerC2Ev @ 16 NONAME - _ZN18CSatCommandHandlerD0Ev @ 17 NONAME - _ZN18CSatCommandHandlerD1Ev @ 18 NONAME - _ZN18CSatCommandHandlerD2Ev @ 19 NONAME - _ZNK18CSatCommandHandler18IsCommandExecutingEv @ 20 NONAME - _ZNK18CSatCommandHandler5PanicERK7TDesC16i @ 21 NONAME - _ZTI11CSatSServer @ 22 NONAME ; ## - _ZTI12CSatBIPUtils @ 23 NONAME ; ## - _ZTI12CSatSSession @ 24 NONAME ; ## - _ZTI14CSatApnHandler @ 25 NONAME ; ## - _ZTI14CSatSScheduler @ 26 NONAME ; ## - _ZTI15CSatIconHandler @ 27 NONAME ; ## - _ZTI15CSatSSubSession @ 28 NONAME ; ## - _ZTI17CSatBIPDataSender @ 29 NONAME ; ## - _ZTI17CSatSUiSubSession @ 30 NONAME ; ## - _ZTI18CSatCommandHandler @ 31 NONAME ; ## - _ZTI18TSatEventsObserver @ 32 NONAME ; ## - _ZTI19CSatBIPDataReceiver @ 33 NONAME ; ## - _ZTI19CSatSIconSubSession @ 34 NONAME ; ## - _ZTI20CSatClientServiceReq @ 35 NONAME ; ## - _ZTI20CSatCommandContainer @ 36 NONAME ; ## - _ZTI20CSatSSimSubscriberId @ 37 NONAME ; ## - _ZTI20CSatSUiClientHandler @ 38 NONAME ; ## - _ZTI21CSatSAPChangeObserver @ 39 NONAME ; ## - _ZTI22CSatBIPGPRSDataChannel @ 40 NONAME ; ## - _ZTI22CSatSRefreshSubSession @ 41 NONAME ; ## - _ZTI22CSatThreadDeathMonitor @ 42 NONAME ; ## - _ZTI23CSatSBasicIconConverter @ 43 NONAME ; ## - _ZTI23CSatSColorIconConverter @ 44 NONAME ; ## - _ZTI25CSatEventMonitorContainer @ 45 NONAME ; ## - _ZTI25CSatMediatorEventProvider @ 46 NONAME ; ## - _ZTI8TUSatAPI @ 47 NONAME ; ## - _ZTV11CSatSServer @ 48 NONAME ; ## - _ZTV12CSatBIPUtils @ 49 NONAME ; ## - _ZTV12CSatSSession @ 50 NONAME ; ## - _ZTV14CSatApnHandler @ 51 NONAME ; ## - _ZTV14CSatSScheduler @ 52 NONAME ; ## - _ZTV15CSatIconHandler @ 53 NONAME ; ## - _ZTV15CSatSSubSession @ 54 NONAME ; ## - _ZTV17CSatBIPDataSender @ 55 NONAME ; ## - _ZTV17CSatSUiSubSession @ 56 NONAME ; ## - _ZTV18CSatCommandHandler @ 57 NONAME ; ## - _ZTV18TSatEventsObserver @ 58 NONAME ; ## - _ZTV19CSatBIPDataReceiver @ 59 NONAME ; ## - _ZTV19CSatSIconSubSession @ 60 NONAME ; ## - _ZTV20CSatClientServiceReq @ 61 NONAME ; ## - _ZTV20CSatCommandContainer @ 62 NONAME ; ## - _ZTV20CSatSSimSubscriberId @ 63 NONAME ; ## - _ZTV20CSatSUiClientHandler @ 64 NONAME ; ## - _ZTV21CSatSAPChangeObserver @ 65 NONAME ; ## - _ZTV22CSatBIPGPRSDataChannel @ 66 NONAME ; ## - _ZTV22CSatSRefreshSubSession @ 67 NONAME ; ## - _ZTV22CSatThreadDeathMonitor @ 68 NONAME ; ## - _ZTV23CSatSBasicIconConverter @ 69 NONAME ; ## - _ZTV23CSatSColorIconConverter @ 70 NONAME ; ## - _ZTV25CSatEventMonitorContainer @ 71 NONAME ; ## - _ZTV25CSatMediatorEventProvider @ 72 NONAME ; ## - _ZTV8TUSatAPI @ 73 NONAME ; ## - _ZThn28_N18CSatCommandHandler5EventEi @ 74 NONAME ; ## - _ZThn28_N18CSatCommandHandlerD0Ev @ 75 NONAME ; ## - _ZThn28_N18CSatCommandHandlerD1Ev @ 76 NONAME ; ## - _ZThn32_N18CSatCommandHandler14ClientResponseEv @ 77 NONAME ; ## - _ZThn32_N18CSatCommandHandlerD0Ev @ 78 NONAME ; ## - _ZThn32_N18CSatCommandHandlerD1Ev @ 79 NONAME ; ## - _ZTI18CSatSActiveWrapper @ 80 NONAME ; ## - _ZTV18CSatSActiveWrapper @ 81 NONAME ; ## - _ZTI25CSatProfileChangeObserver @ 82 NONAME ; ## - _ZTV25CSatProfileChangeObserver @ 83 NONAME ; ## - _ZTI25CSatBIPConnectionObserver @ 84 NONAME ; ## - _ZTV25CSatBIPConnectionObserver @ 85 NONAME ; ## - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/group/Create-UT_CCommandHandler-Sis.bat --- a/satengine/SatServer/Engine/group/Create-UT_CCommandHandler-Sis.bat Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: This BAT copies Test DLL to local folder and makes SIS file -rem - -@echo off -echo. -echo ==================================== -echo. -echo Digia EUnit - Test -echo. -echo This BAT copies Test DLL -echo to local folder and makes SIS file -echo. -echo ==================================== -echo. - -:CHECK_EPOCROOT -echo. -echo - verify epoc root -set EPOCROOT -if errorlevel == 1 goto END_ERROR - -:COPY_DLL -echo. -echo - copy test dll to current directory -copy %EPOCROOT%epoc32\release\thumb\urel\UT_CCommandHandler.dll . -if errorlevel == 1 goto END_ERROR - -:CREATE_DIR -echo. -echo - create Sis folder (created only if needed) -mkdir ..\Sis - -:MAKESIS -echo. -echo - makesis UT_CCommandHandler.pkg ..\sis\UT_CCommandHandler.sis -call makesis UT_CCommandHandler.pkg ..\sis\UT_CCommandHandler.sis -if errorlevel == 1 goto END_ERROR - -:DELETE_DLL -echo. -echo - remove the copied dll from current folder -del UT_CCommandHandler.dll -goto END - -:END_ERROR -echo. -echo Sis creation failed. -goto FINAL_END - -:END -echo. -echo Sis file created succesfully -echo ============================ - -:FINAL_END -echo. - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/group/Create-UT_TSatEventMediator-Sis.bat --- a/satengine/SatServer/Engine/group/Create-UT_TSatEventMediator-Sis.bat Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: This BAT copies Test DLL to local folder and makes SIS file -rem - -@echo off -echo. -echo ==================================== -echo. -echo Digia EUnit - Test -echo. -echo This BAT copies Test DLL -echo to local folder and makes SIS file -echo. -echo ==================================== -echo. - -:CHECK_EPOCROOT -echo. -echo - verify epoc root -set EPOCROOT -if errorlevel == 1 goto END_ERROR - -:COPY_DLL -echo. -echo - copy test dll to current directory -copy %EPOCROOT%epoc32\release\thumb\urel\UT_TSatEventMediator.dll . -if errorlevel == 1 goto END_ERROR - -:CREATE_DIR -echo. -echo - create Sis folder (created only if needed) -mkdir ..\Sis - -:MAKESIS -echo. -echo - makesis UT_TSatEventMediator.pkg ..\sis\UT_TSatEventMediator.sis -call makesis UT_TSatEventMediator.pkg ..\sis\UT_TSatEventMediator.sis -if errorlevel == 1 goto END_ERROR - -:DELETE_DLL -echo. -echo - remove the copied dll from current folder -del UT_TSatEventMediator.dll -goto END - -:END_ERROR -echo. -echo Sis creation failed. -goto FINAL_END - -:END -echo. -echo Sis file created succesfully -echo ============================ - -:FINAL_END -echo. - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/group/Create-UT_TSatEventsObserver-Sis.bat --- a/satengine/SatServer/Engine/group/Create-UT_TSatEventsObserver-Sis.bat Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,70 +0,0 @@ -rem -rem Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). -rem All rights reserved. -rem This component and the accompanying materials are made available -rem under the terms of "Eclipse Public License v1.0" -rem which accompanies this distribution, and is available -rem at the URL "http://www.eclipse.org/legal/epl-v10.html". -rem -rem Initial Contributors: -rem Nokia Corporation - initial contribution. -rem -rem Contributors: -rem -rem Description: This BAT copies Test DLL to local folder and makes SIS file -rem - -@echo off -echo. -echo ==================================== -echo. -echo Digia EUnit - Test -echo. -echo This BAT copies Test DLL -echo to local folder and makes SIS file -echo. -echo ==================================== -echo. - -:CHECK_EPOCROOT -echo. -echo - verify epoc root -set EPOCROOT -if errorlevel == 1 goto END_ERROR - -:COPY_DLL -echo. -echo - copy test dll to current directory -copy %EPOCROOT%epoc32\release\thumb\urel\UT_TSatEventsObserver.dll . -if errorlevel == 1 goto END_ERROR - -:CREATE_DIR -echo. -echo - create Sis folder (created only if needed) -mkdir ..\Sis - -:MAKESIS -echo. -echo - makesis UT_TSatEventsObserver.pkg ..\sis\UT_TSatEventsObserver.sis -call makesis UT_TSatEventsObserver.pkg ..\sis\UT_TSatEventsObserver.sis -if errorlevel == 1 goto END_ERROR - -:DELETE_DLL -echo. -echo - remove the copied dll from current folder -del UT_TSatEventsObserver.dll -goto END - -:END_ERROR -echo. -echo Sis creation failed. -goto FINAL_END - -:END -echo. -echo Sis file created succesfully -echo ============================ - -:FINAL_END -echo. - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/group/SatEngine.mmp --- a/satengine/SatServer/Engine/group/SatEngine.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project SatEngine -* -*/ - - -#include -#include -#include "../../inc/SatMacroes.h" - -TARGET satengine.dll -TARGETTYPE dll -UID 0x1000008d 0x1000f100 - -CAPABILITY CAP_GENERAL_DLL NetworkControl ReadDeviceData WriteDeviceData AllFiles -VENDORID VID_DEFAULT - -// Library is created by SatEngineLib.mmp -NOEXPORTLIBRARY - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CSatSServer.cpp -SOURCE CSatSSession.cpp -SOURCE CSatSSubSession.cpp -SOURCE CSatSUiSubSession.cpp -SOURCE CSatSIconSubSession.cpp -SOURCE CSatSIconConverter.cpp -SOURCE CSatSBasicIconConverter.cpp -SOURCE CSatSColorIconConverter.cpp -SOURCE CSatIconHandler.cpp -SOURCE TSatBitOP.cpp -SOURCE CSatClientServiceReq.cpp -SOURCE CSatSScheduler.cpp -SOURCE CSatCommandHandler.cpp -SOURCE CSatCommandContainer.cpp -SOURCE TSatEventMediator.cpp -SOURCE TSatEventsObserver.cpp -SOURCE TUSatAPI.cpp -SOURCE Panic.cpp -SOURCE CSatSRefreshSubSession.cpp -SOURCE CSatSSimSubscriberId.cpp -SOURCE CSatThreadDeathMonitor.cpp -SOURCE CSatSUiClientHandler.cpp -SOURCE CSatEventMonitorContainer.cpp -SOURCE CSatSAPChangeObserver.cpp -SOURCE CSatBIPGPRSDataChannel.cpp -SOURCE CSatBIPUtils.cpp -SOURCE CSatBIPDataSender.cpp -SOURCE CSatBIPDataReceiver.cpp -SOURCE CSatApnHandler.cpp -SOURCE TSatChannelIDInfo.cpp -SOURCE TSatQoSParser.cpp -SOURCE TSatExtErrorUtils.cpp -SOURCE csatmediatoreventprovider.cpp -SOURCE csatsactivewrapper.cpp -SOURCE csatprofilechangeobserver.cpp -SOURCE csatbipconnectionobserver.cpp -SOURCE csatbipsubconneventobserver.cpp -SOURCE csatmultimodeapi.cpp - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../inc // Domain telephonyservices -SYSTEMINCLUDE ../../../inc // Subsystem satengine - -START RESOURCE ../src/SatServer.rss -HEADER -TARGETPATH RESOURCE_FILES_DIR -LANGUAGE_IDS -END // RESOURCE - -USERINCLUDE ../inc -USERINCLUDE ../../inc - -LIBRARY euser.lib -LIBRARY etel.lib -LIBRARY etelsat.lib -LIBRARY etelmm.lib -LIBRARY ecom.lib -LIBRARY bafl.lib -LIBRARY efsrv.lib -LIBRARY syslangutil.lib -LIBRARY satsystemstate.lib -LIBRARY sateventmonitors.lib -LIBRARY fbscli.lib -LIBRARY esock.lib -LIBRARY insock.lib -LIBRARY qoslib.lib -LIBRARY etelpckt.lib -LIBRARY commdb.lib -LIBRARY customapi.lib -LIBRARY featmgr.lib -LIBRARY centralrepository.lib -LIBRARY mediatorclient.lib -LIBRARY netmeta.lib -LIBRARY cmmanager.lib -LIBRARY extendedconnpref.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/group/SatEngineLib.mmp --- a/satengine/SatServer/Engine/group/SatEngineLib.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Generate lib file -* -*/ - - -TARGET satengine.dll -TARGETTYPE IMPLIB -UID 0x1000008d 0x1000f100 -VENDORID VID_DEFAULT - -CAPABILITY CAP_GENERAL_DLL NetworkControl ReadDeviceData WriteDeviceData AllFiles - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/group/UT_CCommandHandler.pkg --- a/satengine/SatServer/Engine/group/UT_CCommandHandler.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +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: For packing UT_CCommandhandler. -; - -; Supported languages -&en - -; Package header (one name for each supported language) -#{"UT_CCommandHandler"},(0x01700000),0,10,0 - -; Package signature - - -; Options line not supported currently - -; Conditions blocks not supported currently - -; Language independent files that are always installed -"UT_CCommandHandler.dll"-"!:\DigiaEUnit\Tests\UT_CCommandHandler.dll" - -; Language dependent files - - -; Requisites (of type: (UID),Major,Minor,Build-Number,{"Requisite Name1", "Requisite Name2"}) -(0x101F6F88), 0, 0, 0, {"Series60ProductID"} diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/group/UT_TSatEventMediator.pkg --- a/satengine/SatServer/Engine/group/UT_TSatEventMediator.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +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: For packing UT_TSatEventMediator. -; - -; Supported languages -&en - -; Package header (one name for each supported language) -#{"UT_TSatEventMediator"},(0x01700000),0,10,0 - -; Package signature - - -; Options line not supported currently - -; Conditions blocks not supported currently - -; Language independent files that are always installed -"UT_TSatEventMediator.dll"-"!:\DigiaEUnit\Tests\UT_TSatEventMediator.dll" - -; Language dependent files - - -; Requisites (of type: (UID),Major,Minor,Build-Number,{"Requisite Name1", "Requisite Name2"}) -(0x101F6F88), 0, 0, 0, {"Series60ProductID"} diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/group/UT_TSatEventsObserver.pkg --- a/satengine/SatServer/Engine/group/UT_TSatEventsObserver.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +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: For packing UT_TSatEventObserver. -; -; Supported languages -&en - -; Package header (one name for each supported language) -#{"UT_TSatEventsObserver"},(0x01700000),0,10,0 - -; Package signature - - -; Options line not supported currently - -; Conditions blocks not supported currently - -; Language independent files that are always installed -"UT_TSatEventsObserver.dll"-"!:\DigiaEUnit\Tests\UT_TSatEventsObserver.dll" - -; Language dependent files - - -; Requisites (of type: (UID),Major,Minor,Build-Number,{"Requisite Name1", "Requisite Name2"}) -(0x101F6F88), 0, 0, 0, {"Series60ProductID"} diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/group/bld.inf --- a/satengine/SatServer/Engine/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -/* -* Copyright (c) 2003-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: Build information file for project SatEngine -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -../inc/MSatShellController.h |../../../../inc/MSatShellController.h -../../CenRep/SATInternalPSKeys.h |../../../../inc/SATInternalPSKeys.h -../../loc/SatServer.loc MW_LAYER_LOC_EXPORT_PATH( satserver.loc ) - -PRJ_MMPFILES -SatEngine.mmp -SatEngineLib.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatApnHandler.h --- a/satengine/SatServer/Engine/inc/CSatApnHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,135 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Handles APN operations -* -*/ - - - -#ifndef CSATAPNHANDLER_H -#define CSATAPNHANDLER_H - -// INCLUDES -#include -#include "MSatApnHandler.h" - -class MSatUtils; - -/** -* Handles the Access point operations with CMManager. Searches, inserts and -* deletes APNs, if neccessary -* -* @lib SatEngine -* @since S60 3.0 -*/ -class CSatApnHandler : public CBase, - public MSatApnHandler - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils Reference to SAT Utils - */ - static CSatApnHandler* NewL( MSatUtils& aUtils ); - - /** - * Destructor. - */ - virtual ~CSatApnHandler(); - - public: // Functions from MSatApnHandler - - /** - * Locates APN from CMManager, creates new APN if not found, and - * returns IAP id and Network ID in referenced parameters - * @param aName Accesspoint to locate / create - * @param aUserLogin, User name in case new APN is needed - * @param aUserPwd, Password in case, new APN is needed - * @param aIapId, after completion, holds the IAP id of the APN - * @param aNwId, after completion, holds the Network id of the APN - * @param aApnCreated indicates is new APN created - * @param aPdpType, indicates whether the address type is IPv4 or IPv6 - * @param aLocalAddress, represents the Local Address provided by NAA - */ - void GetApnInfoL( - const RSat::TAccessName& aName, - const RSat::TTextString& aUserLogin, - const RSat::TTextString& aUserPwd, - TUint32& aIapId, - TUint32& aNwId, - TBool& aApnCreated, - const RPacketContext::TProtocolType& aPdpType, - const TDesC8& aLocalAddress ); - - /** - * Deletes the connection method with given APN ID. Note that aApnId is - * the same id that GetApnInfoL returns in aNwId. - * @param aApnId APN to delete - */ - void DeleteApnL( TUint32 aApnId ); - - /** - * Find the default APN Id - * @param aPdpType, indicates the address type is IPv4 or IPv6 - * @return a default iap id - */ - TUint32 FindDefaultApL( - const RPacketContext::TProtocolType& aPdpType ); - private: - - /** - * C++ default constructor. - * @param aUtils Reference to SAT Utils - */ - CSatApnHandler( MSatUtils& aUtils ); - - /** - * create a new connection method in case, access point does not exist - * @param aReqApn Formatted required access point name. - * @param aUserLogin User name - * @param aUserPwd Password - * @param aIapId, after completion, holds the IAP id of the new APN - * @param aNwId, after completion, holds the Network id of the new APN - * @param aPdpType, indicates whether the address type is IPv4 or IPv6 - * @param aLocalAddress, represents the Local Address provided by NAA - */ - void InsertRecordL( - const TDesC& aReqApn, - const RSat::TTextString& aUserLogin, - const RSat::TTextString& aUserPwd, - TUint32& aIapId, - TUint32& aNwId, - const RPacketContext::TProtocolType aPdpType, - const TDesC8& aLocalAddress ); - - /** - * Formats the APN from SIM into correct format. - * @param aReqApn Accesspoint to format - * @return Returns formatted APN in an HBufC - * Invoker is responsible to release - * the memory! - */ - HBufC* FormatAPN( const RSat::TAccessName& aReqApn ) const; - - private: // Data - - // Reference to command container - MSatUtils& iUtils; - - }; - -#endif // CSATAPNHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatBIPDataReceiver.h --- a/satengine/SatServer/Engine/inc/CSatBIPDataReceiver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: CSatBIPDataReceiver is responsible of Receive operations -* -*/ - - - -#ifndef CSATBIPDATARECEIVER_H -#define CSATBIPDATARECEIVER_H - -// INCLUDES -#include -#include -#include "MSatBIPUtils.h" - -// FORWARD DECLARATIONS -class CSatBIPGPRSDataChannel; - -// CLASS DECLARATION - -/** -* CSatBIPDataReceiver is responsible for receiving data using deifned protocol -* and to notify CSatBIPGPRSDataChannel when data has been sent. -* -* @lib SatEngine.lib -* @since Series 60 3.0 -*/ -class CSatBIPDataReceiver : public CActive - { - public: // Constructors and destructor - - /** - * Default constructor. - * @param aObserver GPRS data channel to whom the received data is passed - * @param aSocket Socket where the data is received - * @param aIsTcpSocket Indicates whether to use TCP or UDP - */ - CSatBIPDataReceiver( CSatBIPGPRSDataChannel& aObserver, - RSocket& aSocket, - TBool aIsTcpSocket ); - - /** - * Destructor. - */ - virtual ~CSatBIPDataReceiver(); - - public: // Functions from base classes - - /** - * From CActive. Informs observer that data has been received. - */ - void RunL(); - - /** - * From CActive. Cancels any outgoing requests - */ - void DoCancel(); - - public: // New functions - - /** - * This notification is called when SIM has received all the data - * from ReceiveStore in case of UDP. If there are any pending datagrams, - * it is stored and receive is available again. - */ - void ReceiveStoreEmptyNotificationL(); - - /** - * Starts receiving data using predefined protocol. - * @param aAddr Source address where the data is received. - */ - void StartReceive( TInetAddr& aAddr ); - - private: // Data - - // Observer the data sent event. - CSatBIPGPRSDataChannel& iObserver; - - // Socket - RSocket& iSocket; - - // Defines wether to use UDP or TCP sockets - TBool iIsTcpSocket; - - // Receive buffer where the data is received - TBuf8 iRecvBuffer; - - // Contains the number of bytes received - TInt iReceiveDataLen; - - // Wrapper for bytes received indication - TSockXfrLength iRecvPckg; - }; - -#endif // CSATBIPDATARECEIVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatBIPDataSender.h --- a/satengine/SatServer/Engine/inc/CSatBIPDataSender.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: CSatBIPDataSender is responsible of Send operations -* -*/ - - - -#ifndef CSATBIPDATASENDER_H -#define CSATBIPDATASENDER_H - -// INCLUDES -#include -#include -#include "MSatBIPUtils.h" - -// FORWARD DECLARATIONS -class MSatSendDataObserver; - -// CLASS DECLARATION - -/** -* CSatBIPDataSender is responsible for sending data using deifned protocol and -* to notify MSatSendDataObserver when data has been sent. -* -* @lib SatEngine.lib -* @since Series 60 3.0 -*/ -class CSatBIPDataSender : public CActive - { - public: // Constructors and destructor - - /** - * Default constructor. - * @param aObserver Observer of successfull send data - * @param aSocket Socket where the data is sent - * @param aIsTcpSocket Indicates wheter to use TCP or UDP - * @param aBufferSize Size of Tx buffer. Sent back to aObserver - */ - CSatBIPDataSender( MSatSendDataObserver& aObserver, - RSocket& aSocket, - TBool aIsTcpSocket, - TInt aBufferSize ); - - /** - * Destructor. - */ - virtual ~CSatBIPDataSender(); - - public: // Functions from base classes - - /** - * From CActive. Informs observer that data has been sent. - */ - void RunL(); - - /** - * From CActive. Cancels any outgoing requests - */ - void DoCancel(); - - public: // New functions - - /** - * Sends data using predefined protocol. - * @param aData Data to send. - * @param aDest Destination address where the data is sent. Used only - * with UDP sockets. - */ - void SendData( const TDesC8& aData, TInetAddr& aDest ); - - private: // Data - - // Observer the data sent event. - MSatSendDataObserver& iObserver; - - // Socket - RSocket& iSocket; - - // Defines wether to use UDP or TCP sockets - TBool iIsTcpSocket; - - // Holds the amount of data sent with same connection - TUint iUplinkData; - - // Sender buffer - TBuf8 iSendPtr; - - // Buffer size. Returned to observer when data is sent - TInt iBufferSize; - - }; - -#endif // CSATBIPDATASENDER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatBIPGPRSDataChannel.h --- a/satengine/SatServer/Engine/inc/CSatBIPGPRSDataChannel.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,428 +0,0 @@ -/* -* Copyright (c) 2002-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: GPRS Data channel -* -*/ - - - -#ifndef CSATBIPGPRSDATACHANNEL_H -#define CSATBIPGPRSDATACHANNEL_H - -#include -#include // TConnectionInfo -#include -#include - -#include "MSatBIPDataChannel.h" -#include "MSatBIPUtils.h" -#include "TSatQoSParser.h" - -class CSatBIPUtils; -class MSatSendDataObserver; -class CSatBIPDataSender; -class CSatBIPDataReceiver; -class MSatConnectionObserver; -class TSatChannelIdInfo; -class TNotificationEventBuf; -class CSubConQosR5ParamSet; -class CSubConExtensionParameterSet; -class CSatSActiveWrapper; -class CSatBIPSubConnEventObserver; - -/** Maximum Address Length */ -const TInt KMaxAddressLength = 50; - -/** Enum for connection stage */ -enum TSatBIPConnectionStage - { - ESatBIPClosed, - ESatBIPConnect, - ESatBIPConnected, - ESatBIPCancelled - }; - -/** - * GPRS Data channel for Bearer Independent Protocol. - * - * @lib SatServer - * @since Series 60 3.0 - */ -class CSatBIPGPRSDataChannel : public CActive, - public MSatBIPDataChannel - { -public: - -// Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils Interface for EventDownload commands - * @param aSocketServer Reference to Socket server. - * @param aChannelId ID for this data channel - * @param aConnection Reference to Connection - * @param aSubConnection ID Reference to SubConnection - */ - static CSatBIPGPRSDataChannel* NewL( CSatBIPUtils& aUtils, - RSocketServ& aSocketServer, - TSatChannelIdInfo& aChannelId, - RConnection& aConnection, - RSubConnection& aSubConnection - ); - - /** - * Two-phased constructor. - * @param aUtils Interface for EventDownload commands - * @param aSocketServer Reference to Socket server. - * @param aChannelId ID for this data channel needs to add to comments - * @param aConnection Reference to Connection - * @param aSubConnection ID Reference to SubConnection - */ - static CSatBIPGPRSDataChannel* NewLC( CSatBIPUtils& aUtils, - RSocketServ& aSocketServer, - TSatChannelIdInfo& aChannelId, - RConnection& aConnection, - RSubConnection& aSubConnection ); - - /** - * Destructor. - */ - virtual ~CSatBIPGPRSDataChannel(); - -// New functions - - /** - * Notification that data has been received. - * @param aData Holds received data. - */ - void DataReceivedNotificationL( const TDesC8& aData ); - - /** - * Error notification while receiving - * @param aError The error code - */ - void DataReceiveError( const TInt aError ); - - /** - * Granted parameters event is received correctly. - * @param aEventBuffer Holds the negotiated QoS parameters. - */ - void GrantedEventReceivedL( const TNotificationEventBuf& aEventBuffer ); - - /** - * Return the subconnection. - * @return Reference to SubConnection - */ - RSubConnection& SubConnection() const; - -// From base class MSatBIPDataChannel - - /** - * From MSatBIPDataChannel Sets up connection. Does not activate it yet. - * @param aConnParams includes all needed information to open the connection. - */ - void SetupConnectionL( const TSatBipConnectionInfo& aConnParams ); - - /** - * Notification that data has been received. - * @param aData Holds received data. - */ - void ActivateConnectionL( MSatConnectionObserver* aObserver ); - - /** - * From MSatBIPDataChannel Returns Negotiated bearer parameters - * @param aResult Output Negotiated bearer parameters - */ - void GetNegotiatedQoSParams( RSat::TBearerParams& aResult ) const; - - /** - * From MSatBIPDataChannel Sends the data or stores it into a - * buffer for later send. - * @param aData Data to be send. - * @param aSendImmedeately Indicates whether to send immediately or - * store data to buffer for later send. - * @param aFreeBufferSize The number of bytes of empty size in the buffer - * @param aObserver Observer of the SendData procedure. When data is sent, - * observer gets notification. If data is stored for later send, - * observer is not notified. - * @return Error code indicating the status of the command execution. - */ - TInt SendDataL( const TDes8& aData, - const TBool aSendImmediately, - TInt& aFreeBufferSize, - MSatSendDataObserver* aObserver ); - - /** - * From MSatBIPDataChannel Receives the data from the buffer. - * @param aData Data to receive. - * @param aBytesToRead The number of requested bytes to return - * @param aAvailableBytes Number of unread bytes left in the buffer. - * @return Error code indicating the status of the command execution. - */ - TInt ReceiveDataL( TDes8& aData, const TInt aBytesToRead, - TInt& aAvailableBytes ); - - /** - * From MSatBIPDataChannel Returns the ID of this data channel. - * @return ID of this channel. - */ - TInt ChannelId() const; - - /** - * From MSatBIPDataChannel Returns the ID of this data channel to - * ChannelStatus. - * @return ID that can be placed to ChannelStatus - */ - TUint8 ChannelStatusChannelId() const; - - /** - * From MSatBIPDataChannel Returns the status of this channel. - * @return Status of this data channel - */ - TInt Status() const; - - /** - * From MSatBIPDataChannel Closes the connection and empties the buffers. - */ - void CloseChannel(); - - /** - * From MSatBIPDataChannel Cancels all activities. - */ - void CancelAll(); - - /** - * From MSatBIPDataChannel Indicates whether PDP contex is active or not. - * @return TBool indicating context activation. - */ - TBool IsContextActive() const; - - /** - * From MSatBIPDataChannel Returns connection information - * @return Connection information - */ - const MSatBIPDataChannel::TSatBipConnectionInfo& ConnInfo() const; - - /** - * From MSatBIPDataChannel Close socket if type is udp. - */ - void StopUdpSocket(); - - - // From base class CActive - - /** - * From CActive - */ - void RunL(); - - /** - * From CActive - */ - void DoCancel(); - - /** - * From CActive - */ - TInt RunError( TInt aError ); - - - -private: - - /** - * C++ default constructor. - * @param aUtils Interface for EventDownload commands - * @param aSocketServer Reference to Socket server. - * @param aChannelId ID for this data channel - * @param aConnection Reference to RConnection - * @param aSubConnection Reference to RSubConnection - */ - CSatBIPGPRSDataChannel( CSatBIPUtils& aUtils, - RSocketServ& aSocketServer, - TSatChannelIdInfo& aChannelId, - RConnection& aConnection, - RSubConnection& aSubConnection ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Opens and connects / binds socket - * @param aAddrFamily Address family to use. - */ - void OpenSocketL(); - - /** - * Opens sub-connection and attaches socket into it - */ - void OpenSubConnection(); - - /** - * Sets QoS parameters to connection - */ - void SetSubConQoSParamsL(); - - /** - * Starts to receive data from socket - */ - void StartReceiveL(); - - /** - * Defines the IP address. - * @param aAddr An 8-bit descriptor containing the IP address - * @return IP address in TBuf descriptor, which may be 8- or 16-bit. - */ - TInetAddr DestAddress( const TPtrC8& aAddr ); - - /** - * Write QoS Values used for requesting Primary PDP context to RCmManager - */ - void WritePrimaryPDPContextQoSParamsL(); - - /** - * Write Default QoS values to RCmManager - */ - void WriteDefaultQoSParamsL(); - - /** - * Sets up QoS parameters for connection or subconnection - */ - void SetConnQoSParamsL(); - - /** - * Get the negotiated QoS parameters from granted event - * @param aEvent SubConNotificationEvent - * @param aNegQoSRel5 hold the negotiated QoS in Rel5 got from event - * @return errCode if it fails to get the parameters from event. - */ - TInt GetSubConQoSR5ParamsFromEvent( - CSubConNotificationEvent& aEvent, - TSatQoSParser::TQoSRel5& aNegQoSRel5 ); - -private: // Data - - /** - * Receive Buffer - */ - TBuf8 iRcvBuffer; - - /** - * Status of this channel - */ - TInt iChannelStatus; - - /** - * Socket to send / receive data - */ - RSocket iSocket; - - /** - * Connection information - */ - MSatBIPDataChannel::TSatBipConnectionInfo iConnInfo; - - /** - * Destination address - */ - TInetAddr iDestAddr; - - /** - * Sourceaddress - */ - TInetAddr iSourceAddr; - - /** - * Reference to BIP Utils. - * Not own. - */ - CSatBIPUtils& iUtils; - - /** - * Connection stage - */ - TSatBIPConnectionStage iConnStage; - - /** - * Indicates the protocol - */ - TBool iUseTcpProtocol; - - /** - * Reference to a socket server - * Not own. - */ - RSocketServ& iSocketServ; - - /** - * Identifier for this channel - * Not own. - */ - TSatChannelIdInfo& iChannelId; - - /** - * Connection information - * Not own - */ - RConnection& iConnection; - - /** - * Subconnection, represents a data channel - * Not own - */ - RSubConnection& iSubConnection; - - /** - * SendBuffer - * Own. - */ - HBufC8* iSendStore; - - /** - * SendData observer - * Own. - */ - MSatSendDataObserver* iSendDataObserver; - - /** - * Sender object - * Own. - */ - CSatBIPDataSender* iSender; - - /** - * Receiver object - * Own. - */ - CSatBIPDataReceiver* iReceiver; - - /** - * Connection observer - * Own. - */ - MSatConnectionObserver* iConnectionObserver; - - /** - * Observer for SubConnection parameters event; - * Own. - */ - CSatBIPSubConnEventObserver* iSubConnEventObserver; - - }; - -#endif // CSATBIPGPRSDATACHANNEL_H - - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatBIPUtils.h --- a/satengine/SatServer/Engine/inc/CSatBIPUtils.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,427 +0,0 @@ -/* -* Copyright (c) 2002-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: CSatBIPUtils is responsible for handling Bearer Independent - Protocol data channels. -* -*/ - - -#ifndef CSATBIPUTILS_H -#define CSATBIPUTILS_H - -#include -#include -#include -#include -#include -#include "MSatBIPUtils.h" -#include "MSatBIPEventNotifier.h" -#include "MSatEventObserver.h" -#include "MSatBIPDataChannel.h" - -class MSatBIPChannelStatusObserver; -class MSatBIPDataAvailableObserver; -class TSatChannelIdInfo; -class MSatUtils; -class CSatApnHandler; -class CSatSActiveWrapper; -class CSatBIPConnectionObserver; - -/** - * CSatBIPUtils is responsible for handling data channels used by - * - * Bearer Independent Protocol (BIP) - * - * @lib SatEngine.lib - * @since S60 3.0 - */ -class CSatBIPUtils : public CBase, - public MSatBIPUtils, - public MSatBIPEventNotifier, - public MSatEventObserver - { -public: -// Constructors and destructor - /** - * Two-phased constructor. - * @param aUtils Reference to common Utils class - */ - static CSatBIPUtils* NewL( MSatUtils& aUtils ); - - /** - * Destructor. - */ - virtual ~CSatBIPUtils(); - -// from base class MSatEventObserver - /** - * From MSatEventObserver - * Handles event - * - * @since S60 3.0 - * @param aEvent Event that has occured - */ - void Event( TInt aEvent ); - -// from base class MSatBIPUtils - /** - * From MSatBIPUtils - * Creates new data channel and returns reference to it - * - * @since S60 3.0 - * @param TSatBIPError code indicating the execution status. - * @return Pointer to created data channel - */ - MSatBIPDataChannel* CreateChannelL( - const TSatBearerType aBearerType, - TInt& aErrCode ); - - /** - * From MSatBIPUtils - * Request to close specified data channel. - * - * @since S60 3.0 - * @param aChannelId Identifies the channel to be closed. - * @return TSatBIPError code indicating the execution status. - */ - TInt CloseChannel( const TInt aChannelId ); - - /** - * From MSatBIPUtils - * Request to open new data channel - * - * @since S60 3.0 - * @param aChannelId Identifies the channel. - * @param aErrCode TSatBIPError code indicating the execution status. - * @return Pointer to requested data channel - */ - MSatBIPDataChannel* DataChannel( - const TInt aChannelId, - TInt& aErrCode ); - - /** - * From MSatBIPUtils - * Generates channel status object from given - * parameters to be used in terminal responses. - * - * @since S60 3.0 - * @param aChannelId Data channel identifier. - * @param aStatus Data channel's status. - * @return channel status object that can be put into terminal responses. - */ - RSat::TChannelStatus GenerateChannelStatusL( - const TInt aChannelId, - TInt aStatus ); - - /** - * From MSatBIPUtils - * Reference to APN handler - * - * @since S60 3.0 - * @return Interface reference to CSatApnHandler - */ - MSatApnHandler& ApnHandler(); - - /** - * From MSatBIPUtils - * Status of the PDP Context - * - * @since S60 3.0 - * @return ETrue, if there is active PDP Context - */ - TBool IsContextActive(); - - /** - * From MSatBIPUtils - * Request to close specified data channel. - * - * @since S60 3.0 - * @return Array containing all available data channels. - */ - CArrayPtrFlat* DataChannels(); - -// from base class MSatBIPUtils - - /** - * From MSatBIPEventNotifier - * Notification request for DataAvailable event. - * - * @since S60 3.0 - * @param aObserver An observer of the event. - */ - void NotifyDataAvailable( - MSatBIPDataAvailableObserver* aObserver ); - - /** - * From MSatBIPEventNotifier - * Notification request for ChannelStatus event. - * - * @since S60 3.0 - * @param aObserver An observer of the event. - */ - void NotifyChannelStatus( - MSatBIPChannelStatusObserver* aObserver ); - - /** - * From MSatBIPEventNotifier - * Cancels DataAvailable event notification request. - * - * @since S60 3.0 - */ - void CancelDataAvailable(); - - /** - * From MSatBIPEventNotifier - * Cancels ChannelStatus event notification request. - * - * @since S60 3.0 - */ - void CancelChannelStatus(); - -// New Member Function - /** - * DataAvailable event from data channel. - * - * @since S60 S60 3.0 - * @param aChannelId ID of the channel that called this function. - * @param aLength Number of bytes available. - */ - void DataAvailable( const TInt aChannelId, const TInt aLength ); - - /** - * ChannelStatus event from data channel. - * - * @since S60 S60 3.0 - * @param aChannelId ID of the channel that called this function. - * @param aStatus Status that caused this event. - */ - void ChannelStatus( - const TInt aChannelId, - const TInt aStatus ); - - - /** - * Closes all active data channels. This function is called - * when SAP is enabled or SAT Server closes - * @since S60 S60 3.0 - */ - void CloseAllChannels(); - - /** - * Proposes QoS parameters for the last created primary or secondary context - * and returns negotioated QoS parameters as a result. - * - * @since S60 S60 3.0 - * @param aQoSParams Requested QoS parameters to propose for the context - * @return Negotioated QoS parameters, which may differ from requested - * parameters. - */ - RPacketQoS::TQoSGPRSNegotiated ProposeQoSParametersL( - const RPacketQoS::TQoSGPRSRequested& aQoSParams ); - - /** - * Gives reference to RPacketService - * - * @since S60 S60 3.0 - */ - RPacketService& PacketService(); - - - /** - * Current status of the GPRS service - * - * @since S60 S60 3.0 - * @return Current status of the GPRS service - */ - RPacketService::TStatus ConnectionStatus() const; - - /** - * Stop all udp connection. - * - * @since S60 S60 3.2 - */ - void StopUdpLink(); - - /** - * Set the state for subconnection - * - * @since S60 S60 3.2 - * @param aSet State to be set - */ - void SetConnectionActivated( TBool aSet ); - - /** - * Get the state of connection - * - * @since S60 S60 3.2 - * @param aSet State to be set - */ - TBool IsConnectionActivated(); - - /** - * Set the state for subconnection - * - * @since S60 S60 3.2 - * @param aSet State to be set - */ - void SetSubConnectionActivated( TBool aSet ); - - /** - * Get the state of subconnection - * - * @since S60 S60 3.2 - * @param aSet State to be set - */ - TBool IsSubConnectionActivated(); - -private: - - /** - * C++ default constructor. - * @param aUtils Reference to common utils class - */ - CSatBIPUtils( MSatUtils& aUtils ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Defines next available channel ID - * @return Pointer to next available channel id - */ - TSatChannelIdInfo* AvailableChannelID(); - - /** - * Reference to RPacketContex handle - * @return Error code indicating the success of function completion - */ - TInt GprsService(); - - /** - * Number of contexts currently in Gprs service - * - * @since S60 S60 3.0 - * @return Number of active PDP contexts - */ - TInt ContextCount(); - -private: // Data - - /** - * Array containing all data channels - * Own - */ - CArrayPtrFlat* iDataChannels; - - /** - * DataAvailable event observer - * Own - */ - MSatBIPDataAvailableObserver* iDataAvailableObserver; - - /** - * ChannelStatus event observer - * Own - */ - MSatBIPChannelStatusObserver* iChannelStatusObserver; - - /** - * Main session to Socket Server - * - */ - RSocketServ iSocketServer; - - /** - * Indicates is there channel active or not - * - */ - TBool iDataChannelActivated; - - /** - * Array containing datachannel IDs - * Own - */ - CArrayPtrFlat* iChannelIds; - - /** - * Temporary Channel ID pointer, used for ~CSatBIPUtils to - * cleanup when AppendL leave. Look into ConstructL and - * ~CSatBIPUtils to see how it be used. - * Not Own - */ - TSatChannelIdInfo* iChannelId; - - /** - * Utils class - * Not Own - */ - MSatUtils& iUtils; - - /** - * Blocker for synchronous requests - * Own - */ - CSatSActiveWrapper* iWrapper; - - /** - * Classes for GPRS context activation - * - */ - RPacketService iPacketService; - - /** - * Indicates is the Session to PacketService active - * - */ - TBool iPacketServiceActive; - - /** - * Pointer to APN handler - * Own - */ - MSatApnHandler* iApnHandler; - - /** - * Pointer to connection status observer - * Own - */ - CSatBIPConnectionObserver* iConnObserver; - - /** - * Represent the primary PDP context - * Own - */ - RConnection iConnection; - - /** - * Represent the secondary PDP context - * Own - */ - RSubConnection iSubConnection; - - /** - * iSubConnectionActivated - */ - TBool iSubConnectionActivated; - - /** - * iConnectionActivated - */ - TBool iConnectionActivated; - }; - -#endif // CSATBIPUTILS_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatClientServiceReq.h --- a/satengine/SatServer/Engine/inc/CSatClientServiceReq.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,159 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Handles client requests. -* -*/ - - - -#ifndef CSATCLIENTSERVICEREQ_H -#define CSATCLIENTSERVICEREQ_H - -// INCLUDES -#include -#include "MSatCommand.h" -#include "SatSOpcodes.h" - -// FORWARD DECLARATION -class MSatUtils; - -// CLASS DECLARATION - -/** -* Handles the buffering of command and client request. -* Buffering is needed because client can make request without command and -* viceversa. -* -* @lib SatEngine -* @since Series 60 3.0 -*/ -class CSatClientServiceReq : public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aRequest Handled service request - * @param aResponse Handled response request. - * @param aCommand Command hander for request - * @param aUtils Reference to SAT Utilities - */ - static CSatClientServiceReq* NewL( - TSatServerRequest aRequest, - TSatServerRequest aResponse, - MSatCommand* aCommand, - MSatUtils& aUtils ); - - /** - * Destructor. - */ - virtual ~CSatClientServiceReq(); - - public: // New functions - - /** - * Handles the command from SIM. - * @param aCmdData Data to be sent to client. - * @param aCmdRsp Clients response is written to this descriptor. - * @param aRequest Request which the data is sent. - * @return ETrue if command was recognised to be handled in this class ie aRequest is the same that - * set in constructor. - */ - virtual TBool HandleCommand( - TDesC8* aCmdData, - TDes8* aCmdRsp, - TSatServerRequest aRequest ); - - /** - * Handles the request from client. - * @param aRequest Service request from client. - * @return ETrue if request was recognised to be handled in this class. - */ - virtual TBool HandleRequest( const RMessage2& aRequest ); - - /** - * Checks is this service request handling this request - * @param aRequest Checks own request to this request - * @return TBool indicating is param aRequest this service - * requests request - */ - virtual TBool IsMyRequest( const TSatServerRequest aRequest ); - - /** - * Sets command handler for this service request handler - * @param aCommand Command handler for this service request - */ - virtual void SetCommandHandler( MSatCommand* aCommand ); - - /** - * Resets containing data. - */ - virtual void Reset(); - - protected: // New functions - - /** - * Writes the data to client address space and - * completes the iRequest. - */ - virtual void SendDataToClient(); - - protected: - - /** - * C++ default constructor. - * @param aRequest Handled service request - * @param aResponse Handled response request. - * @param aCommand Command hander for request - * @param aUtils Reference to SAT Utilities - */ - CSatClientServiceReq( - TSatServerRequest aRequest, - TSatServerRequest aResponse, - MSatCommand* aCommand, - MSatUtils& aUtils ); - - private: // Data - - // Identifies the client request, which is handled in HandleRequest - const TSatServerRequest iHandledRequest; - - // Identifies the client response, which is handled in HandleRequest - const TSatServerRequest iHandledResponse; - - // Command from SIM - MSatCommand* iResponseObserver; - - // Indicates if the command from SIM is not yet sent to client - TBool iCmdPending; - - // Service request from client - RMessage2 iRequest; - - // Indicates that request is waiting command from SIM. - TBool iRequestPending; - - // Data from SIM. - TDesC8* iCmdData; - - // Response from client.. - TDes8* iCmdRsp; - - // Utilities class - MSatUtils& iUtils; - }; - -#endif // CSATCLIENTSERVICEREQ_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatCommandContainer.h --- a/satengine/SatServer/Engine/inc/CSatCommandContainer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,520 +0,0 @@ -/* -* Copyright (c) 2005-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: Contains SAT commands -* -*/ - - - -#ifndef C_CSATCOMMANDCONTAINER_H -#define C_CSATCOMMANDCONTAINER_H - - -#include -#include "MSatUtils.h" -#include "TSatEventMediator.h" -#include "MSatEventObserver.h" -#include "MSatSystemStateObserver.h" -#include "CSatCommandHandler.h" - - -class TUSatAPI; -class MSatSSessions; -class MSatShellController; -class MSatSystemState; -class MSatSUiClientHandler; -class CSatEventMonitorContainer; -class MSatSSimSubscriberId; -class CSatSAPChangeObserver; -class CSatBIPUtils; -class CSatMediatorEventProvider; -class CSatProfileChangeObserver; -class CSatMultiModeApi; -class MSatSystemStateChangeNotifier; - -const TInt KSatMaxBipApnName = 50; - - -/** -* Contains SAT commands and offers accessor API for -* command handlers. -* -* @lib SatEngine.lib -* @since Series 60 3.0 -*/ -class CSatCommandContainer : public CBase, - public MSatUtils, - public MSatEventObserver, - public MSatSystemStateObserver - { -public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSessions Accessor for sessions - * @param aEventMediator Event handler class - * @param aSatUiHandler UI Client handler class - */ - static CSatCommandContainer* NewL( - MSatSSessions& aSessions, - TSatEventMediator& aEventMediator, - MSatSUiClientHandler& aSatUiHandler ); - - virtual ~CSatCommandContainer(); - - /** - * Starts command handlers. - * - * @since S60 v3.0 - */ - void StartCommandHandlersL(); - - /** - * Stops command handlers. - * - * @since S60 v3.0 - */ - void StopCommandHandlers(); - -// from MSatEventObserver - - /** - * From MSatEventObserver. - * Event notification. - * - * @since S60 v3.0 - * @param aEvent An event that has been notified by TSatEventMediator - */ - void Event( TInt aEvent ); - - /** - * From MSatEventObserver. - * Sends UI Event Notification if UI session has found - * - * @since S60 v3.1 - * @param aEvenId, identifies the event - * @param aEventStatus, status of the event - * @param aEventError, possible error value - */ - void NotifyUiEvent( - TInt aEventId, - TInt aEventStatus, - TInt aEventError ); - -// from MSatUtils - /** - * From MSatUtils. - * Gives USAT API wrapper. - * - * @since S60 v3.0 - * @return USAT API wrapper reference - */ - MSatApi& USatAPI(); - - /** - * From MSatUtils. - * Gives reference to system state. - * - * @since S60 v3.0 - * @return SAT System state API reference - */ - MSatSystemState& SystemState(); - - /** - * From MSatUtils. - * Gives pointer to MSatSUiClientHandler - * - * @since S60 v3.0 - * @return SAT UI handler API reference - */ - MSatSUiClientHandler& SatUiHandler(); - - /** - * From MSatUtils. - * Registers observer for event. Same observer will not - * be added more than once for one event. - * - * @since S60 v3.0 - * @param aObserver Pointer of observer instance. Panic will occur if - * aObserver is NULL. - * @param aEvent Event, which will cause the notification of observer. - */ - void RegisterL( - MSatEventObserver* aObserver, - TSatEvent aEvent ); - - /** - * From MSatUtils. - * Notifies all the listeners who are listening for aEvent. - * - * @since S60 v3.0 - * @param aEvent Event to be notified. - */ - void NotifyEvent( TSatEvent aEvent ); - - /** - * From MSatUtils. - * Unregisteres the event notification. - * - * @since S60 v3.0 - * @param aObserver An event observer that is unregistering event - * @param aEvent An event that is unregistered from aObserver parameter - */ - void UnregisterEvent( - MSatEventObserver* aObserver, - TSatEvent aEvent ); - - /** - * From MSatUtils. - * Removes observer from event observers - * - * @since S60 v3.0 - * @param aObserver Observer to removed - */ - void UnregisterEventObserver( MSatEventObserver* aObserver ); - - /** - * From MSatUtils. - * Number of executing commands. - * - * @since S60 v3.0 - * @return Number of currently executing command handlers - */ - TInt NumberOfExecutingCommandHandlers(); - - /** - * From MSatUtils. - * Gets the sim application name. - * - * @since S60 v3.0 - * @return SAT Application name - */ - const TDesC& SatAppName() const; - - /** - * From MSatUtils. - * Gets the name for the APN. - * - * @since S60 v3.0 - * @return BIP Apn name - */ - const TDesC& BipApnName() const; - - /** - * From MSatUtils. - * Restores default SIM Application name. - * - * @since S60 v3.1 - */ - void RestoreSatAppNameL(); - - /** - * From MSatUtils. - * Sets the sim application name. - * - * @since S60 v3.0 - * @param aName New name of Sat application - */ - void SetSatAppNameL( const TDesC& aName ); - - /** - * From MSatUtils - * Gets an array of refresh subsessions - * - * @since S60 v3.0 - * @return Pointer array containing refresh subsessions - */ - const RPointerArray& RefreshSubSessions(); - - /** - * From MSatUtils. - * Registers new service request handler - * - * @since S60 v3.0 - * @param aRequest A Request this service request listens - * @param aResponse A Response for this service request - * @param aCommand A Command handler for request - */ - void RegisterServiceRequestL( - TSatServerRequest aRequest, - TSatServerRequest aResponse, - MSatCommand* aCommand ); - - /** - * From MSatUtils Gets all registered service requests - * - * @since S60 v3.0 - * @return Pointer array of registered Client Service requests - */ - CArrayPtrFlat* ServiceRequests(); - - /** - * From MSatUtils. - * Gives pointer to event monitor container - * - * @since S60 v3.0 - * @return Pointer to MSatEventMonitorContainer API - */ - MSatEventMonitorContainer* EventMonitors(); - - /** - * From MSatUtils. - * Gives reference to subscriber id. - * - * @since S60 v3.0 - * @return SIM subscriber id API reference. - */ - MSatSSimSubscriberId& SimSubscriberId(); - - /** - * From MSatUtils. - * Gives reference to BIP Utils interface. - * - * @since S60 v3.0 - * @return Reference to BIP Utils interface. - */ - MSatBIPUtils& BipUtils(); - - /** - * From MSatUtils. - * Gives reference to BIP Event notifier interface. - * - * @since S60 v3.0 - * @return Reference to BIP Event notifier interface. - */ - MSatBIPEventNotifier& BipEventNotifier(); - - /** - * Gives reference to MSatMultiModeApi - * - * @since S60 v5.0 - * @return Reference to MSatMultiModeApi - */ - MSatMultiModeApi& MultiModeApi() ; - - /** - * From MSatUtils. - * Gives reference to active RMmCustomApi session - * - * @since S60 v3.1 - * @return Reference to active RMmCustomApi server session - */ - RMmCustomAPI* CustomApi(); - - /** - * From MSatUtils. - * Raises SAT Mediator event - * - * @since S60 v3.1 - * @param aData event data to Mediator Event consumer. - * @return KErrNone or error code. - */ - TInt RaiseSatEvent( const TDesC8& aData ); - - /** - * From MSatUtils. - * Checks if Cover UI is supported by SAT - * - * @since S60 v3.1 - * @return ETrue if Cover UI is supported. - */ - TBool CoverUiSupported(); - - /** - * From MSatUtils. - * Gives pointer to MSatAsyncToSync interface. - * - * @since S60 v5.0.1 - * @return a MSatAsyncToSync Pointer to CreateAsyncToSyncHelper object. - */ - MSatAsyncToSync* CreateAsyncToSyncHelper(); - -// from MSatSystemStateObserver - - /** - * Notifies that system state changed. - * @param aValue The new value that has changed. - * - * @since S60 v3.1 - */ - void StateChanged( const TInt aValue ); - -private: - - /** - * Private Constructor - * - * @since S60 v3.0 - * @param aSessions Accessor for sessions - * @param aEventMediator Event handler class - * @param aSatUiHandler UI Client handler class - */ - CSatCommandContainer( MSatSSessions& aSessions, - TSatEventMediator& aEventMediator, - MSatSUiClientHandler& aSatUiHandler ); - - void ConstructL(); - - /** - * Reads sat application name from the resource. - * - * @since S60 v3.0 - * @param aResourceId Selects name of the item to be read. - */ - void CreateSatAppNameL( const TInt aResourceId ); - - /** - * Gives pointer to BIP Utils class. - * - * @since S60 v3.0 - * @return Pointer to BIP Utils class. - */ - CSatBIPUtils* CreateAndGetBIPUtils(); - - /** - * Gives pointer to SatMediatorEventProvider class. - * - * @since S60 v3.1 - * @return Pointer to SatMediatorEventProvider class. - */ - CSatMediatorEventProvider* CreateAndGetSatMediatorEventProvider(); - - /** - * Starts command handlers. - * - * @since S60 v3.1 - */ - void StartImportantCommandHandlersL(); - - /** - * Checks current startup state and starts rest of command handlers. - * @param aValue Current startup state to check. - * - * @since S60 v3.1 - */ - void CheckStartupState( const TInt aValue ); - -private: // Data - - /** - * Default name of the SAT Application, used when creating new APN - */ - TBuf iSatBipName; - - /** - * Indicates special SIM to be currently used, - */ - TBool iIsCmccSim; - - - /** - * Access the encapsuled ETel MM api by CSatMultiModeApi - * Own - */ - CSatMultiModeApi* iMultiModeApi; - - /** - * Accessor for sessions. - */ - MSatSSessions& iSessions; - - /** - * Event mediator. - */ - TSatEventMediator& iEventMediator; - - /** - * UI Client handler API reference. - */ - MSatSUiClientHandler& iSatUiHandler; - - /** - * USat api. - * Own. - */ - TUSatAPI* iUSatAPI; - - /** - * Command handlers. - * Own. - */ - CArrayPtrFlat* iCmdHandlers; - - /** - * Registered Client request handlers. - * Own. - */ - CArrayPtrFlat* iServiceReqs; - - /** - * Name of the Sat application. - * Own. - */ - HBufC* iSatAppName; - - /** - * System state interface. - * Own. - */ - MSatSystemState* iSystemState; - - /** - * Event monitor container interface - * Own. - */ - CSatEventMonitorContainer* iEventMonitors; - - /** - * SAP change observer / notifier - * Own. - */ - CSatSAPChangeObserver* iSapObserver; - - /** - * Subscriber id interface. - * Own. - */ - MSatSSimSubscriberId* iSimSubscriberId; - - /** - * BIP Utils class - * Own. - */ - CSatBIPUtils* iBipUtils; - - /** - * pointer to SAT Mediator event provider - * Own. - */ - CSatMediatorEventProvider* iSatMediatorEvent; - - /** - * Pointer to Profile state observer - * Own. - */ - CSatProfileChangeObserver* iProfileObserver; - - /** - * Boolean indicating is Startup ongoing - */ - TBool iStartupPhase; - - /** - * Pointer to startup change observer - */ - MSatSystemStateChangeNotifier* iStartupChangeObserver; - - }; - -#endif // C_CSATCOMMANDCONTAINER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatEventMonitorContainer.h --- a/satengine/SatServer/Engine/inc/CSatEventMonitorContainer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,227 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Container of event monitors -* -*/ - - - -#ifndef CSATEVENTMONITORCONTAINER_H -#define CSATEVENTMONITORCONTAINER_H - -// INCLUDES -#include -#include -#include "MSatEventMonitorUtils.h" -#include "MSatEventMonitorContainer.h" -#include "MSatEventObserver.h" - - -// FORWARD DECLARATIONS -class MSatEventMonitor; -class TUSatAPI; -class MSatUtils; -class MSatBIPEventNotifier; - -/** -* Base class for SAT commands. -* -* @lib SatServer -* @since Series 60 3.0 -*/ -class CSatEventMonitorContainer : public MSatEventMonitorContainer, - public MSatEventMonitorUtils, - public MSatEventObserver, - public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUsatAPI Interface for EventDownload commands - * @param aSatUtils Interface for SAT Utils class. - */ - static CSatEventMonitorContainer* NewL( - TUSatAPI& aUsatAPI, - MSatUtils& aSatUtils ); - - /** - * Destructor. - */ - virtual ~CSatEventMonitorContainer(); - - public: // Functions from parent class - - /** - * From MSatEventObserver - */ - void Event( TInt aEvent ); - - /** - * From MSatEventMonitorContainer Updates monitors state. - * @param aEvents Events that should be monitored. - * @return KErrNone if all goes OK - */ - TInt SetUpEventMonitors( TUint aEvents ); - - /** - * From MSatEventMonitorContainer Cancels all monitors - * @return KErrNone if all monitros were cancelled - */ - TInt CancelAllMonitors(); - - /** - * From MSatEventMonitorContainer Solves language code. - * @param aLanguageId Resolved language ID - */ - void LanguageSettingL( TInt& aLanguageId ); - - /** - * From MSatEventMonitorUtils Sends notify to SIM about some event - * using EventDownload command. - * @param aSingleEvent Single event reported to SIM. - * @param aFirstArg First argument interpreted according to type of event - * @param aSecArg Second argument interpreted according to type of event - */ - void EventDownload( RSat::TEventList aSingleEvent, - TInt aFirstArg, - TInt aSecArg ); - - /** - * From MSatEventMonitorUtils Returns reference to - * BIP Event notifier class. - * @return Interface for BIP Utils class. - */ - MSatBIPEventNotifier& BipNotifier(); - - /** - * From MSatEventMonitorContainer Called when SIM is removed. - * This causes all monitors to be cancelled. - */ - void SimRemoved(); - - /** - * From MSatEventMonitorContainer Gets the ISO639 language code. - * @param aId Language ID - * @param aText Language code can be read from this after function call. - */ - void GetLanguageString( const TInt aId, TDes& aText ); - - /** - * From CActive Checks that EventDownload were succesful - */ - void RunL(); - - /** - * From CActive Cancels EventDownload - */ - void DoCancel(); - - /** - * From MSatEventMonitorUtils - * Writes time between language selection and reboot. - * @param aTime Time before reboot. - * @return KErrNone if language selection time is set. - */ - TInt WriteLanguageSelectionTime( TInt aTime ); - - private: - - /** - * C++ default constructor. - * @param aUsatAPI Interface for EventDownload commands - * @param aSatUtils Interface for SAT Utils class. - */ - CSatEventMonitorContainer( TUSatAPI& aUsatAPI, MSatUtils& aSatUtils ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: - - /** - * Handles Language Selection event and sends event download - * @param aLanguageId ID read from the P&S. Comes from monitor. - */ - void LanguageSelectionEvent( TInt aLanguageId ); - - /** - * Handles the browser termination event and sends event download. - * @param aCause The cause of the browser termination - */ - void BrowserTerminationEvent( TInt aCause ); - - /** - * Handles Data avaliable event and sends event download - * @param aChannelId Data channel identifier. Comes from monitor. - */ - void DataAvailableEvent( const TInt aChannelId, const TInt aLength ); - - /** - * Handles Channel status event and sends event download - * @param aChannelId Data channel identifier. Comes from monitor. - * @param aStatus Status of the data channel. - */ - void ChannelStatusEvent( const TInt aChannelId, const TInt aStatus ); - - /** - * Checks if aEvents contains only events that - * are supported. - * @param aEvents Events from SIM. - * @return ETrue if aEvents are supported. - */ - TBool EventsSupported( TUint aEvents ) const; - - /** - * Removes single event from event list - * @param aSingleEvent Event to remove - */ - void RemoveSingleEvent( RSat::TEventList aSingleEvent ); - - private: // Data - - // Ponter array containing event monitors - CArrayPtrFlat* iEventMonitors; - - // Interface to EventDownload command sending - TUSatAPI& iSat; - - // Indecates is there event pending - TBool iEventPending; - - // Pending event - RSat::TEventList iPendingEvent; - - // Pending first argument - TInt iPendingFirstArg; - - // Pending second argument - TInt iPendingSecondArg; - - // Utils class for BIP event monitors - MSatUtils& iSatUtils; - - // Indicates whether there is BIP command executing or not - TBool iBipExecuting; - - // Removable event after event download - TInt iRemovableSingleEvent; - - }; - -#endif // CSATEVENTMONITORCONTAINER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatIconHandler.h --- a/satengine/SatServer/Engine/inc/CSatIconHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ -/* -* Copyright (c) 2004-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: Interface for accesing icon data in SIM. -* -*/ - - -#ifndef CSATICONHANDLER_H -#define CSATICONHANDLER_H - -#include -#include -#include "MSatSIconAPI.h" - -class MSatIconObserver; - -/** -* Interface for accesing icon data in SIM. -* -* @lib SatEngine.lib -* @since 3.0 -*/ -class CSatIconHandler : public CActive, - public MSatSIconAPI - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - CSatIconHandler( MSatApi& aSatApi ); - - /** - * Destructor. - */ - virtual ~CSatIconHandler(); - - public: // Functions from base classes - - /** - * From MSatIconAPI. Gets the icon info from SIM. - * @param aRecordNumber Specifies the EF_IMG in SIM. - * @param aIconEf Contains the icon informations from SIM in returning - * of the method. - * @param aObserver Observer for icon info get completion. - */ - void GetIconInfo( - TUint8 aRecordNumber, - RSat::TIcon& aIconEf, - MSatIconObserver& aObserver ); - - /** - * From MSatIconAPI. Gets the icon image. - * @param aInstanceInfo Informatio of the icon, which data is - * fetched from SIM. - * @param aInstance Contains the icon data from SIM in returning of the - * method. - * @param aObserver Observer for icon image get completion. - */ - void GetIconInstance( - const RSat::TInstanceInfoV3& aInstanceInfo, - TDes8& aInstance, - MSatIconObserver& aObserver ); - - /** - * From MSatIconAPI. Gets color lookup table of the icon. - * @param aInstanceNumber Image instance number. - * @param aOffset Offset of the clut. - * @param aClut Contains the Clut of the icon in returning of the - * method. - * @param aObserver Observer for clut get completion. - */ - void GetClut( - TUint aInstanceNumber, - TUint aOffset, - TDes8& aClut, - MSatIconObserver& aObserver ); - /* - * Set a mode to determine whether to fetch icons from NAA syncronously - * or asynchronously. - * - * @param aMode Synchronous or asynchronous mode. Icons would be - * fetched from NAA in sychronous mode if SAT UI was closed by - * using the End Key. Otherwise, in asynchronous mode. - * @return None - */ - void SetIconFetchingMode( TBool aMode ); - - protected: // Functions from base classes - - /** - * From CActive - */ - void DoCancel(); - - /** - * From CActive - */ - void RunL(); - - /** - * From CActive - * @param aError Received error code - * @return Result error code - */ - TInt RunError( TInt aError ); - - private: // Data - - // Sat api - MSatApi& iSatApi; - - // Indicates GetIconInfo is active. - TBool iGetIconInfoActive; - - // Indicates GetIconInstance is active. - TBool iGetIconInstanceActive; - - // Indicates GetClut is active. - TBool iGetClutActive; - - // Observer for icon actions. - MSatIconObserver* iObserver; - - // Indicates whether to fetch icons from NAA syncronously or - // asynchronously. - TBool iSyncIconFetching; - }; - -#endif // CSATICONHANDLER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatSAPChangeObserver.h --- a/satengine/SatServer/Engine/inc/CSatSAPChangeObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,89 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Observes SIM Access Profile status changes. -* -*/ - - - -#ifndef CSATSAPCHANGEOBSERVER_H -#define CSATSAPCHANGEOBSERVER_H - -// INCLUDES -#include -#include "MSatSystemStateObserver.h" - -// FORWARD DECLARATION -class CSatCommandContainer; -class MSatSystemStateChangeNotifier; - -// CLASS DECLARATION - -/** -* Observes SIM Access Profile status change and informs CSatCommandContriner -* of a possible change. -* -* @lib SatEngine -* @since Series 60 3.0 -*/ -class CSatSAPChangeObserver : public CBase, - public MSatSystemStateObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aContainer Container of command handlers. - */ - static CSatSAPChangeObserver* NewL( CSatCommandContainer& aContainer ); - - /** - * Destructor. - */ - virtual ~CSatSAPChangeObserver(); - - public: // From base classes - - /** - * From MSatSystemStateObserver Notifies that system state changed. - * @param aValue The new value that has changed. - */ - void StateChanged( const TInt aValue ); - - private: - - /** - * C++ default constructor. - * @param aContainer Container of command handlers. - */ - CSatSAPChangeObserver( CSatCommandContainer& aContainer ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // Command container. - CSatCommandContainer& iContainer; - - // System state notifier. - MSatSystemStateChangeNotifier* iStateNotifier; - - }; - -#endif // CSATSAPCHANGEOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatSBasicIconConverter.h --- a/satengine/SatServer/Engine/inc/CSatSBasicIconConverter.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,74 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Converts basic icon to CFbsBitmap. -* -*/ - - - -#ifndef CSATSBASICICONCONVERTER_H -#define CSATSBASICICONCONVERTER_H - -// INCLUDES -#include "CSatSIconConverter.h" - -// CLASS DECLARATION - -/** -* Converts the basic icon to CFbsBitmap -* -* @lib SatEngine.lib -* @since 2.6 -*/ -class CSatSBasicIconConverter : public CSatSIconConverter - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - CSatSBasicIconConverter(); - - /** - * Destructor. - */ - virtual ~CSatSBasicIconConverter() {}; - - public: // Functions from base classes - - /** - * From CSatSIconConverter - * @param aData Icon basic data. - * @param aClut Color lookup table. Not used in basic icon - * conversion. - * @return Bitmap. - */ - CFbsBitmap* ConvertL( - const TDesC8& aData, - const TDesC8& aClut ) const; - - private: // New functions - - /** - * Checks that the icon data has valid length. - * @param aData Image data. - */ - void CheckDataValidityL( - const TDesC8& aData ) const; - - }; - -#endif // CSATSBASICICONCONVERTER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatSColorIconConverter.h --- a/satengine/SatServer/Engine/inc/CSatSColorIconConverter.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,82 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Converts color icon to CFbsBitmap -* -*/ - - - -#ifndef CSATSCOLORICONCONVERTER_H -#define CSATSCOLORICONCONVERTER_H - -// INCLUDES -#include "CSatSIconConverter.h" - -// CLASS DECLARATION - -/** -* Converts color icon to CFbsBitmap -* -* @lib SatEngine.lib -* @since 2.6 -*/ -class CSatSColorIconConverter : public CSatSIconConverter - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - CSatSColorIconConverter(); - - /** - * Destructor. - */ - virtual ~CSatSColorIconConverter() {}; - - private: // New functions - - /** - * Checks that image data and clut from SIM is valid. - * @param aData Image data from SIM. - */ - void CheckDataValidityL( - const TDesC8& aData ) const; - - /** - * Checks that clut is valid. - * @param aData Image data. - * @param aClut Clut. - */ - void CheckClutValidityL( - const TDesC8& aData, - const TDesC8& aClut ) const; - - public: // Functions from base classes - - /** - * From CSatSIconConverter - * @param aData Image data. - * @param aClut Clut. - * @return Bitmap. - */ - CFbsBitmap* ConvertL( - const TDesC8& aData, - const TDesC8& aClut ) const; - - }; - -#endif // CSATSCOLORICONCONVERTER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatSIconConverter.h --- a/satengine/SatServer/Engine/inc/CSatSIconConverter.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Converts icon to bitmap. -* -*/ - - - -#ifndef CSATSICONCONVERTER_H -#define CSATSICONCONVERTER_H - -// INCLUDES -#include -#include -#include - -// FORWARD DECLARATION -class CFbsBitmap; - -// CLASS DECLARATION - -/** -* Converts icon data to CFbsBitmap. -* -* @lib SatEngine.lib -* @since 2.6 -*/ -class CSatSIconConverter : public CBase - { - public: // Constructors and destructor - - /** - * Factory method to create converter. - * @param aCoding Coding scheme of the icon. - * @return New converter instance. - */ - static CSatSIconConverter* CreateConverterL( - const RSat::TImageCoding& aCoding ); - - /** - * Destructor. - */ - virtual ~CSatSIconConverter() {}; - - public: // New functions - - /** - * Converts the icon data to CFbsBitmap. - * @param aData Icon instance data. - * @param aClut Color look-up table. In basic icon clut is not provided. - * @return Bitmap. - */ - virtual CFbsBitmap* ConvertL( - const TDesC8& aData, - const TDesC8& aClut ) const = 0; - - protected: - - /** - * Creates bitmap. - * @param aWidth Width of the bitmap. - * @param aHeight Height of the bitmap. - * @param aDisplayMode Display mode. - * @return New bitmap instance. - */ - CFbsBitmap* CreateBitmapL( - TUint8 aWidth, - TUint8 aHeight, - TDisplayMode aDisplayMode ) const; - - protected: - - /** - * C++ default constructor. - */ - CSatSIconConverter(); - - }; - -#endif // CSATSICONCONVERTER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatSIconSubSession.h --- a/satengine/SatServer/Engine/inc/CSatSIconSubSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,187 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles the icon sub-session IPC. -* -*/ - - -#ifndef CSATSICONSUBSESSION_H -#define CSATSICONSUBSESSION_H - -#include - -#include "CSatSSubSession.h" -#include "MSatIconObserver.h" - -class MSatSIconAPI; -class CSatSSession; -class CFbsBitmap; -class TSatEventMediator; - -/** -* Handles the icon commands. -* -* @lib SatEngine.lib -* @since 3.0 -*/ -class CSatSIconSubSession : public MSatIconObserver, - public CSatSSubSession - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSession Parent session. - * @param aEventMediator Passes SetUpIdleMode response event. - */ - static CSatSIconSubSession* NewL( - CSatSSession& aSession, - TSatEventMediator& aEventMediator ); - - /** - * Destructor. - */ - virtual ~CSatSIconSubSession(); - - private: // New functions - - /** - * Gets the icon info from SIM. - */ - void GetIconInfo(); - - /** - * Gets the icon from SIM. - */ - void GetIconInstanceL(); - - /** - * Writes to client address space. Panics the client - * if writing fails. - * @param aMessage Message, which to write. - * @param aParam Parameter number - * @param aDes Descriptor to be written. - */ - void Write( - const RMessage2& aMessage, - TInt aParam, - const TDesC8& aDes ) const; - - public: // Functions from base classes - - /** - * From CSatSSubSession - * @param aFunction Function. - * @param aMessage IPC message. - */ - void HandleCommandL( const RMessage2& aMessage ); - - /** - * From MSatIconObserver. - * Notification of getting icon info from SIM. - */ - void NotifyGetIconInfo(); - - /** - * From MSatIconObserver. - * Notification of getting icon image. - */ - void NotifyGetIconInstanceL(); - - /** - * From MSatIconObserver. - * Notification of getting icon color lookup table. - */ - void NotifyGetClutL(); - - /** - * From MSatIconObserver. - * Notification of operation failure - * @param aErrorCode Reason of failure. - */ - void NotifyFailure( TInt aErrorCode ); - - /** - * From MSatIconObserver. - * Error completion for handler - * @param aError Received error code - * @return Result of completion - */ - TInt CompleteError( TInt aError ) const; - - /** - * Get icon fetching mode which is in synchronous or asynchronous mode. - * @return Icon fetching mode. - */ - TBool IconFetchingMode(); - - /** - * Notify CSatIconHandler to fetch icons from NAA synchronously or - * asynchrounously. - * @param aMode Icon fetching is in synchronously or asynchronously - * @return None - */ - void NotifyIconFetchingMode( TBool aMode ); - - private: - - /** - * ConstrucL - */ - void ConstructL(); - - /** - * C++ default constructor. - * @param aSession Parent session. - * @param aEventMediator Passes SetUpIdleMode response event. - */ - CSatSIconSubSession( - CSatSSession& aSession, - TSatEventMediator& aEventMediator ); - - /** - * Delivers SetUpIdleModeText response to corresponding command handler. - * @param aResponse Idle mode response. - */ - void SendSetUpIdleModeResponse( TInt aResponse ) const; - - private: // Data - - // Interface for accessing icons in SIM. - MSatSIconAPI* iIconAPI; - - // Bitmap instance. - CFbsBitmap* iBitmap; - - // Message just being executed. - RMessage2 iMessage; - - // Icon info got from SIM. - RSat::TIcon iIconEf; - - // Icon info from client. - RSat::TInstanceInfoV3 iInfo; - - // Icon data. - HBufC8* iIconData; - - // Icon color lookup table. - HBufC8* iClut; - - // Event mediator to send SetUpIdleMode response - TSatEventMediator& iEventMediator; - - }; - -#endif // CSATSICONSUBSESSION_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatSRefreshSubSession.h --- a/satengine/SatServer/Engine/inc/CSatSRefreshSubSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,198 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Handles the refresh sub-session commands. -* -*/ - - -#ifndef CSATSREFRESHSUBSESSION_H -#define CSATSREFRESHSUBSESSION_H - -#include "CSatSSubSession.h" -#include "MSatRefreshSubSession.h" -#include "TSatEventMediator.h" - -class CSatSSession; -class MSatCommand; - -/** -* Handles the refresh commands. -* -* @lib SatServer -* @since 2.6 -*/ -class CSatSRefreshSubSession : public CSatSSubSession, - public MSatRefreshSubSession - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSession Session - * @param aEventMediator Event handler - */ - static CSatSRefreshSubSession* NewL( - CSatSSession& aSession, - TSatEventMediator& aEventMediator ); - - /** - * Destructor. - */ - virtual ~CSatSRefreshSubSession(); - - public: // Functions from base classes - - /** - * From CSatSSubSession - * @param aMessage Message from the client. - */ - void HandleCommandL( const RMessage2& aMessage ); - - /** - * From MSatRefreshSubSession. - * @param aRefresh Refresh data. - */ - void QueryClient( const RSat::TRefreshV2& aRefresh ); - - /** - * From MSatRefreshSubSession. - * @param aRefresh Refresh data. - */ - void NotifyClient( const RSat::TRefreshV2& aRefresh ); - - /** - * From MSatRefreshSubSession. - */ - void NotifyClientCancel(); - - private: // New functions - - /** - * Handles the NotifyRefresh command from SatClient. - * @param aMessage Message from the client. - */ - void NotifyRefreshAllowed( const RMessage2& aMessage ); - - /** - * Cancels the allow refresh. - * @param aMessage Message from the client. - */ - void CancelNotifyAllowRefresh( const RMessage2& aMessage ); - - /** - * Handles the RefreshAllowed command from SatClient. - * @param aMessage Message from the client. - */ - void RefreshAllowed( const RMessage2& aMessage ); - - /** - * Handles the refresh notification. - * @param aMessage Message from the client. - */ - void NotifyRefresh( const RMessage2& aMessage ); - - /** - * Cancels the notify refresh. - * @param aMessage Message from the client. - */ - void CancelNotifyRefresh( const RMessage2& aMessage ); - - /** - * Sends the client's completion to SatServer. - * @param aMessage Message from the client. - */ - void CompleteRefresh( const RMessage2& aMessage ); - - /** - * Checks whether current client is interested about this refresh. - * @param aRefresh Refresh data. - */ - TBool VerifyObservedFiles( const RSat::TRefreshV2& aRefresh ) const; - - /** - * Timer call back for clients refresh query response timeout. - * @param aRefreshSubSession Reference to this class. - */ - static TInt TimerQueryCallback( TAny* aRefreshSubSession ); - - /** - * Timeout handler for the client's response of refresh query. - */ - void QueryTimeout(); - - /** - * Timer call back for clients refresh notify response timeout. - * @param aRefreshSubSession Reference to this class. - */ - static TInt TimerNotifyCallback( TAny* aRefreshSubSession ); - - /** - * Timeout handler for the client's response of refresh notify. - */ - void NotifyTimeout(); - - private: - - /** - * C++ default constructor. - * @param aSession - * @param aEventMediator Event handler - */ - CSatSRefreshSubSession( - CSatSSession& aSession, - TSatEventMediator& aEventMediator ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // Message for allow refresh. - RMessage2 iRefreshAllowMessage; - - // Indicates if allow refresh has not been complited. - TBool iRefreshAllowPending; - - // Messge for refresh. - RMessage2 iNotifyRefreshMessage; - - // Indicates if refresh has not been completed. - TBool iNotifyRefreshPending; - - // Event mediator. - TSatEventMediator& iEventMediator; - - // Timer for securing user query. - CPeriodic* iQueryTimer; - - // Timer for securing refresh complete. - CPeriodic* iNotifyTimer; - - // A client has been queried to allow refresh and we are waiting - // for response. Enables discarding of timed out responses. - TBool iClientQueryPending; - - // A client has been notified about refresh and we are waiting - // for response. Enables discarding of timed out responses. - TBool iClientNotifyPending; - - // A client has allowed refresh and is waiting for Refesh notification. - // Flag is used when notificating Refresh cancel for clients waiting. - TBool iClientWaitingRefresh; - - }; - -#endif // CSATSREFRESHSUBSESSION_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatSServer.h --- a/satengine/SatServer/Engine/inc/CSatSServer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,290 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Server class -* -*/ - - -#ifndef CSATSSERVER_H -#define CSATSSERVER_H - -#include -#include "TSatEventMediator.h" -#include "MSatSSessions.h" - -class CSatCommandContainer; -class CSatSUiClientHandler; -class MSatUtils; - -// ---------------------------------------------------------------------------------------- -// Server's policy here -// ---------------------------------------------------------------------------------------- - -//Total number of ranges -const TUint KSatServerCount = 14; // 13 + 0 - -//Definition of the ranges of IPC numbers -const TInt satServerRanges[KSatServerCount] = - { - // Illegal service request. - 0, //ESatSNone, //Range 0 - - /*// Server test commands - ESatSDisplayText, - ESatSNotifyTest, - ESatSNotifyTestCancel, - ESatSShutdown,*/ - 1, // Range 1. - - /*These proactive commands need no capability checling - Proactive commands (asynchronous) - ESatSProactiveDisplayText, - ESatSProactiveGetInkey, - ESatSProactiveGetInput, - ESatSProactiveSetUpMenu, - ESatSProactiveSelectItem, - ESatSProactivePlayTone, - ESatSProactiveRefresh,*/ - 5, // Range 2. - - /* This range needs capability checking, NetworkServices. - //ESatSProactiveSendSs, - ESatSProactiveSendUssd, - ESatSProactiveSendDtmf, - ESatSProactiveQuery, // for Send SM and Set Up Call - ESatSProactiveEvent, // for server event notification - ESatSProactiveSetUpCall,*/ - 12, // Range 3. - - // Envelope commands (synchronous) - // ESatSActiveMenuSelection, - 18, // Range 4 - - // CallControl command - //ESatSCallControl, - 19, // Range 5 - - - // MoSmControl command - // ESatSMoSmControl, - 20, // Range 6 - - /* Command responses (synchronous) - ESatSProactiveDisplayTextResponse, - ESatSProactiveGetInkeyResponse, - ESatSProactiveGetInputResponse, - ESatSProactiveSetUpMenuResponse, - ESatSProactiveSelectItemResponse, - ESatSProactivePlayToneResponse, - ESatSProactiveSendSsResponse, - ESatSProactiveSendUssdResponse, - ESatSProactiveSendDtmfResponse, - ESatSProactiveQueryResponse, - ESatSProactiveEventResponse, - ESatSProactiveSetUpCallResponse,*/ - 21, // Range 7 - - // SAT UI related call control response - //ESatSCallControlUIResponse, - 33, // Range 8 - - // ESatSProactiveRefreshResponse, - 34, // Range 9 - - // SAT UI related response - // ESatSMoSmControlUIResponse, - 35, // Range 10 - - /* Session indicators (for internal use) - ESatSOpenUiSubSession, - ESatSGetSIMAppStatus, - ESatSCloseUiSubSession,*/ - - 36, // Range 11 - - /* Refresh handling - ESatSOpenRefreshSubSession, - ESatSCloseRefreshSubSession, - ESatSRefreshAllowed, - ESatSNotifyAllowRefresh, - ESatSNotityAllowRefreshCancel, - ESatSNotifyRefresh, - ESatSCancelNotifyRefresh,*/ - - 39, // Range 12 - - /* Icon handling - ESatSOpenIconSubSession, - ESatSCloseIconSubSession, - ESatSGetIconInfo, - ESatSGetIconInstance, - ESatSIconInstanceGot*/ - - 46, // Range 13 - - }; - -//Policy to implement for each of the above ranges -const TUint8 satServerElementsIndex[KSatServerCount] = - { - CPolicyServer::EAlwaysPass, // 0 - CPolicyServer::EAlwaysPass, // 1 - CPolicyServer::EAlwaysPass, // 2 - 0, // Check Network Capabilites for this range - CPolicyServer::EAlwaysPass, // 4 - CPolicyServer::EAlwaysPass, // 5 - CPolicyServer::EAlwaysPass, // 6 - CPolicyServer::EAlwaysPass, // 7 - CPolicyServer::EAlwaysPass, // 8 - CPolicyServer::EAlwaysPass, // 9 - CPolicyServer::EAlwaysPass, // 10 - CPolicyServer::EAlwaysPass, // 11 - CPolicyServer::EAlwaysPass, // 12 - CPolicyServer::EAlwaysPass // 13 - }; - -//Specific capability checks -const CPolicyServer::TPolicyElement satServerElements[] = - { - // policy "0"; fail call if NetworkServices not present. - //lint -e{778,1924} Macro can not be affected. - { - _INIT_SECURITY_POLICY_C1( ECapabilityNetworkServices ), - CPolicyServer::EFailClient - }, - }; - -//Package all the above together into a policy -const CPolicyServer::TPolicy satServerPolicy = - { - CPolicyServer::EAlwaysPass, //specifies all connect attempts should pass - KSatServerCount, //number of ranges - satServerRanges, //ranges array - satServerElementsIndex, //elements<->ranges index - satServerElements, //array of elements - }; - -// End Server's Policy - -/** -* Manages sessions -* -* @lib SatServer.exe -* @since Series 60 3.0 -*/ -class CSatSServer : public CPolicyServer, - public MSatSSessions - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CSatSServer* NewL(); - - /** - * Destructor. - */ - virtual ~CSatSServer(); - - public: // New functions - - /** - * Completes current message from client. - * @param aError Standard Symbian error code. - */ - void CompleteMessage( TInt aError ) const; - - /** - * Creates new container for sessions. - * @return New container. - */ - CObjectCon* CreateNewContainerL(); - - /** - * Gets MSatUtils interface - * @return MSatUtils interface - */ - MSatUtils* SatUtils(); - - /** - * Adds refresh subsession. - * @param aSubSession refresh subsession. - */ - void AddL( const MSatRefreshSubSession* aSubSession ); - - /** - * Removes refresh subsession. - * @param aSubSession Sub session to be removed. - */ - void Remove( const MSatRefreshSubSession* aSubSession ); - - public: // Functions from base classes - - /** - * From MSatSSessions Gives ui session interface. - * @return Interface for ui session - */ - MSatUiSession* UiSession(); - - /** - * From MSatSSessions Gives refresh subsessions. - * @return Pointer array containing refresh subsessions - */ - const RPointerArray& RefreshSubSessions(); - - private: // Functions from base classes - - /** - * From CServer2, creates a new server session. - * @param aVersion Client interface version. - * @param aMessage 'connect' message from the client. - * @return Pointer to the created server session. - */ - CSession2* NewSessionL( - const TVersion& aVersion, - const RMessage2& aMessage ) const; - - private: - - /** - * C++ default constructor. - */ - CSatSServer(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // SAT Command handler container - CSatCommandContainer* iCmdContainer; - - // SAT Ui client handler - CSatSUiClientHandler* iUiHandler; - - // Event mediator - TSatEventMediator iEventMediator; - - // CObjectCon factory. - CObjectConIx* iObjectConIx; - - // Refresh subsessions - RPointerArray iRefreshSubSessions; - - }; - -#endif // CSATSSERVER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatSSession.h --- a/satengine/SatServer/Engine/inc/CSatSSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ -/* -* Copyright (c) 2002-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: The Sat Server session manages a connection to a client and -* handles client requests. -* -*/ - -#ifndef CSATSSESSION_H -#define CSATSSESSION_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class TSatEventMediator; -class CSatSServer; -class CSatSSubSession; -class MSatUiSession; -class CSatSServer; -class MSatApi; -class MThreadDeathNotifier; -class CSatIconHandler; -class MSatSIconAPI; -// CLASS DECLARATION - -/** -* CSatSSession represents the server-side session object. -* -* @lib SatEngine.lib -* @since Series 60 3.0 -*/ -class CSatSSession : public CSession2 - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aServer SatServer class - * @param aEventMediator Event mediator class - * @param aUsatApi An USat API interface - * @param aThreadDeathNotifier ThreadDeath notifier interface - */ - static CSatSSession* NewL( CSatSServer* aServer, - TSatEventMediator& aEventMediator, - MSatApi& aUsatApi, - MThreadDeathNotifier& aThreadDeathNotifier ); - - /** - * Destructor. - */ - virtual ~CSatSSession(); - - public: // Functions from base classes - - /** - * From CSession2 Handles an incoming message. - * @param aMessage Handle to the client message. - */ - void ServiceL( const RMessage2 &aMessage ); - - public: // New functions - - /** - * Gives pointer of ui sub session interface. May be null. - * @return Pointer of ui subsession interface. - */ - MSatUiSession* UiSubSession(); - - /** - * Closes icon sub-session. - * @param aMessage Handle to the client message. - * @return TRUE if subsession exists. Otherwise return FALSE. - */ - TBool CloseSubSession( const RMessage2& aMessage ); - - /** - * Gets the sub-session using handle. - * @param aHandle Sub-session handle. - * @return Sub-session. NULL if not found. - */ - CSatSSubSession* GetSubSessionFromHandle( TInt aHandle ) const; - - /** - * Panic the client. - * @param aMessage The panic message - * @param aPanic The panic code. - */ - void PanicClient( const RMessage2& aMessage, TInt aPanic ) const; - - /** - * Notifies Thread death monitor for thread is dying - */ - void NotifyThreadDeathMonitor(); - - /** - * Gets pointer to SatServer - * @param Pointer to SatServer - */ - CSatSServer* SatServer(); - - /** - * Tells that UI Sub session is closed. - */ - void UiSessionClosed(); - - /** - * Creates icon handler and returns it to icon sub session - * return Pointer to created icon handler - */ - MSatSIconAPI* CreateIconHandlerL(); - - private: // New functions - - /** - * Adds sub session to container. Sub session is deleted - * if leave occurs. - * @param aSubSession A Session that is needed to be added - * @param aMessage An instance of RMessage2 - */ - void AddSubSessionL( CSatSSubSession* aSubSession, - const RMessage2& aMessage ); - - private: // Constructors - - /** - * ConstrucL - */ - void ConstructL(); - - /** - * C++ default constructor. - * @param aServer SatServer class - * @param aEventMediator Event mediator class - * @param aUsatApi An USat API interface - * @param aThreadDeathNotifier ThreadDeath notifier interface - */ - CSatSSession( CSatSServer* aServer, - TSatEventMediator& aEventMediator, - MSatApi& aSatApi, - MThreadDeathNotifier& aThreadDeathNotifier ); - - private: // Data - - // A reference to the server. - CSatSServer* iSatServer; - - // Event mediator reference - TSatEventMediator& iEventMediator; - - // Sat api - MSatApi& iSatApi; - - // Generates a unique handle for subsession. - CObjectIx* iSubSessionIx; - - // Container for sub-sessions. - CObjectCon* iSubSessionCon; - - // Interface for ui sub session - MSatUiSession* iUiSubSession; - - // Thread death monitor notifier - MThreadDeathNotifier& iThreadDeathNotifier; - - // Indicates is SatUiSubSession closed - TBool iSatUiSubSessionClosed; - - }; - -#endif // CSATSSESSION_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatSSimSubscriberId.h --- a/satengine/SatServer/Engine/inc/CSatSSimSubscriberId.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,127 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* to dedect the SIM card subscriber id. -* -*/ - - -#ifndef CSATSSIMSUBSCRIBERID_H -#define CSATSSIMSUBSCRIBERID_H - -#include -#include "CSatSServer.h" -#include "MSatSSimSubscriberId.h" - -class TSatEventMediator; -class CSatSActiveWrapper; -class MSatMultiModeApi; - -/** -* This is the handler for the SIM card status. -* This active objects is registered to listen SIM card status, -* especially SIM card removed status. -*/ - -class CSatSSimSubscriberId : public CActive, - public MSatSSimSubscriberId - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aPhone a reference to MSatMultiModeApi - * @param aEventMediator Event handler class - * @return a pointer to the newly created active object. - */ - static CSatSSimSubscriberId* NewL( - MSatMultiModeApi& aPhone, - TSatEventMediator& aEventMediator ); - - /** - * Destructor. - */ - virtual ~CSatSSimSubscriberId(); - - public: // New functions - - /** - * Starts the handler. - */ - void Start(); - - protected: // Functions from base classes - - /** - * From CActive, handles the request completion. - */ - void RunL(); - - /** - * From CActive, implements the cancel protocol. - */ - void DoCancel(); - - private: // Constructors - - /** - * C++ default constructor. - * @param aPhone a reference to MSatMultiModeApi. - * @param aEventMediator Event handler class. - */ - CSatSSimSubscriberId( - MSatMultiModeApi& aPhone, - TSatEventMediator& aEventMediator ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // New functions - - /** - * Starts listening for the SIM card subscriber id. - */ - void DoStart(); - - /** - * Checks whether special SIM is being used. - * @return TBool indicating special SIM. - */ - TBool IsCmccSIM() const; - - private: // Data - - // MSatMultiModeApi instance. - MSatMultiModeApi& iPhone; - - // Event mediator. - TSatEventMediator& iEventMediator; - - // Indicates whether subscriber id below is successfully read. - TBool iSubscriberIdValid; - - // Subscriber ID data. - RMobilePhone::TMobilePhoneSubscriberId iSubscriberId; - - // Provides asynchronous timer for thread suspension. - CSatSActiveWrapper* iWrapper; - - // Counter to limít subscriber id read retries. - TInt iRetryCounter; - - }; - -#endif // CSATSSIMSUBSCRIBERID_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatSSubSession.h --- a/satengine/SatServer/Engine/inc/CSatSSubSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,71 +0,0 @@ -/* -* Copyright (c) 2004-2005 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: Base class for sub-sessions -* -*/ - - - -#ifndef CSATSSUBSESSION_H -#define CSATSSUBSESSION_H - -// INCLUDES -#include - -// FORWARD DECLARAITION -class CSatSSession; -class CSatSServer; -// CLASS DECLARATION - -/** -* Base class for sub-sessions. -* -* @lib SatEngine.lib -* @since 2.6 -*/ -class CSatSSubSession : public CObject - { - public: // Constructors and destructor - - /** - * Destructor. - */ - virtual ~CSatSSubSession(); - - public: // New functions - - /** - * Handles the subsession functions. The opening and closing of - * sub-session is handled by CSatSSession, so this method is not - * called in opening or in closing of sub-session. - * @param aMessage IPC message from client. - */ - virtual void HandleCommandL( const RMessage2& aMessage ) = 0; - - protected: - - /** - * C++ default constructor. - */ - CSatSSubSession( CSatSSession& aSession ); - - protected: // Data - // Session class - CSatSSession& iSession; - - }; - -#endif // CSATSSUBSESSION_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatSUiClientHandler.h --- a/satengine/SatServer/Engine/inc/CSatSUiClientHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,197 +0,0 @@ -/* -* Copyright (c) 2002-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: CSatSUiClientHandler is responsible for handling activity -* with SAT Ui. For example launch UI, observe ui thread deaths -* -*/ - - - -#ifndef CSATSUICLIENTHANDLER_H -#define CSATSUICLIENTHANDLER_H - -// INCLUDES -#include - -#include "MThreadDeathObserver.h" -#include "MSatSUiClientHandler.h" -#include "MSatEventObserver.h" -#include "MThreadDeathNotifier.h" - -// FORWARD DECLARATIONS -class CSatThreadDeathMonitor; -class TSatEventMediator; -class MSatSSessions; -class MSatShellController; -class MSatUtils; - -// CLASS DECLARATION - -/** -* Class is responsible for some activity conserning to client. -* -* @lib SatEngine.lib -* @since Series 60 3.0 -*/ -class CSatSUiClientHandler : public CBase, - public MThreadDeathNotifier, - public MThreadDeathObserver, - public MSatSUiClientHandler, - public MSatEventObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSessions Accessor for sessions - * @param aEventMediator Event handler class - */ - static CSatSUiClientHandler* NewL( - MSatSSessions& aSessions, - TSatEventMediator& aEventMediator ); - - /** - * Destructor. - */ - virtual ~CSatSUiClientHandler(); - - public: // New functions - - /** - * Sets Utils interface - * @param aUtils Utils interface - */ - void SetUtils( MSatUtils* aUtils ); - - public: // Functions from base classes - - /** - * From MThreadDeathNotifier Sets thread that is observered. - * @param aThreadId Thread Id which death should be observered - */ - void SetObserveredThread( TThreadId& aThreadId ); - - /** - * From MThreadDeathNotifier Notifies Thread death monitor. - */ - void NotifyThreadDeath(); - - /** - * From MThreadDeathNotifier Start monitoring thread's death - */ - void StartObservingThread(); - - /** - * From MThreadDeathObserver. - * Notification of observed thread death. - */ - void ThreadDiedL(); - - /** - * From MThreadDeathObserver. - * Notification of observed thread paniced. - */ - void ThreadPanicedL(); - - /** - * From MSatEventObserver. Event notification. - * @param aEvent An event that has been notified by TSatEventMediator - */ - void Event( TInt aEvent ); - - /** - * Gives pointer to ui session interface. If pointer is NULL, then - * ui session is not available. - * @return Pointer to ui session interface. - */ - MSatUiSession* UiSession(); - - /** - * Launches the SAT UI Client. - */ - void LaunchSatUiL(); - - /** - * Tells if user has started the ui client. - * @return ETrue if user has launched the ui client. - */ - TBool UiLaunchedByUser(); - - /** - * Gives pointer to MSatShellController - * @return Pointer to sat shell controller. - */ - MSatShellController& ShellController(); - - /** - * Tells is UI closing - * @return Boolean value indicating is UI closing - */ - TBool IsUiClosing() const; - - private: - - /** - * C++ default constructor. - * @param aSessions Accessor for sessions - * @param aEventMediator Event handler class - */ - CSatSUiClientHandler( - MSatSSessions& aSessions, - TSatEventMediator& aEventMediator ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // Accessor for sessions - MSatSSessions& iSessions; - - // Thread death monitor - CSatThreadDeathMonitor* iThreadDeathMonitor; - - // Handle to SatShellController library - RLibrary iSatShellCntrlLibrary; - - // Interface for SatShellController. - MSatShellController* iSatShellCntrl; - - // Event mediator - TSatEventMediator& iEventMediator; - - // Utils interface - MSatUtils* iUtils; - - // Is user launced the ui. - TBool iUiLaunchedByUser; - - // Is Sat ui closing - TBool iSatUiClosing; - - // Do we have to launch SAT Ui after it is closed - TBool iLaunchSatUiAfterClose; - - // Thread that is closing - TThreadId iThread; - - // Indicates if SAT UI is paniced - TBool iSatUiPanicked; - }; - -#endif // CSATSUICLIENTHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatSUiSubSession.h --- a/satengine/SatServer/Engine/inc/CSatSUiSubSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,204 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles ui subsession -* -*/ - - - -#ifndef CSATSUISUBSESSION_H -#define CSATSUISUBSESSION_H - -// INCLUDES -#include "CSatSSubSession.h" -#include "MSatUiSession.h" -#include "SatSOpcodes.h" -#include "SatSTypes.h" -#include "MSatCommand.h" -#include "CSatClientServiceReq.h" -#include "MSatEventObserver.h" -#include "TSatEventMediator.h" - -// FORWARD DECLARATIONS -class CSatSSession; -class MSatApi; - - -// CLASS DECLARATION - -/** -* Handles ui subsession. -* -* @lib SatEngine.lib -* @since Series 60 3.0 -*/ -class CSatSUiSubSession : public CSatSSubSession, - public MSatUiSession, - public MSatEventObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSession Parent session - * @param aSatApi SAT API Interface - * @param aEventMediator Event handler - */ - static CSatSUiSubSession* NewL( CSatSSession& aSession, - MSatApi& aSatApi, - TSatEventMediator& aEventMediator ); - - /** - * Destructor. - */ - virtual ~CSatSUiSubSession(); - - public: // Functions from base classes - - /** - * From CSatSSubSession Handler for IPC messages. - * @param aMessage IPC message from client. - */ - void HandleCommandL( const RMessage2& aMessage ); - - /** - * From MSatUiSession Closes the ui sub session. - */ - void CloseUiSession(); - - /** - * From MSatUiSession Clears the screen. - */ - void ClearScreen(); - - /** - * From MSatUiSession. Notification that command data is available. - * @param aCmdData Data to be sent to client. - * @param aCmdRsp Client response - * @param aRequest Request, where the data is sent. - */ - void SendCommand( - TDesC8* aCmdData, - TDes8* aCmdRsp, - TSatServerRequest aRequest ); - - /** - * From MSatUiSession.Ui Event. - */ - void UiEventNotification( - TInt aEventId, - TInt aEventStatus, - TInt aEventError ); - - /** - * From MSatUiSession Queries the user. - * @param aCommand Command handler interface - */ - void QueryUser( MSatCommand* aCommand ); - - /** - * From MSatEventObserver. - * @param aEvent An event that is notified - */ - void Event( TInt aEvent ); - - protected: // New functions - - /** - * Sends the command data to client if the request is available. - * @param aRequestAvailable Indication if request is available. If - * data is sent aRequestAvailable will be set to EFalse. - * @param aData Data to be sent to client. - * @param aMessage Clients request message. - * @return Boolean value indicating was the command sent to client or not - */ - TBool SendCommandDataToClient( - TBool& aRequestAvailable, - const TDesC8& aData, - const RMessage2& aMessage ) const; - - /** - * Sends ESatSSmEndEvent event to UI Client - */ - void SendSmsSentEventToClient(); - - /** - * Handles UI Event notification - */ - void HandleUiEventNotification(); - /** - * Publish the P&S key KSatAppClosedUsingEndKey to indicate the occurred - * End Key action - */ - void PublishSatAppClosedUsingEndKey(); - - private: - - /** - * C++ default constructor. - * @param aSession Parent session - * @param aSatApi SAT API Interface - * @param aEventMediator Event handler - */ - CSatSUiSubSession( CSatSSession& aSession, - MSatApi& aSatApi, - TSatEventMediator& aEventMediator ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // Request / Response handlers array - CArrayPtrFlat* iServiceRequest; - - // Indicates that event request is availabe - TBool iEventRequestAvailable; - - // Indicates that some command has issued close ui session - TBool iCloseUiRequested; - - // Indicates that DisplayText has requested screen to be cleared - TBool iClearScreenRequested; - - // Indicates that sms has been sent by CSendSmCmd - TBool iSmsSent; - - // Indicates is there event pending - TBool iUiEventRequested; - - // Event message - RMessage2 iEventRequest; - - // Event data - TSatEventV1 iEventData; - - // Event data package - TSatEventV1Pckg iEventDataPckg; - - // Sat api - MSatApi& iSatApi; - - // Query request - RMessage2 iQueryRequest; - - // Event mediator - TSatEventMediator& iEventMediator; - }; - -#endif // CSATSUISUBSESSION_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/CSatThreadDeathMonitor.h --- a/satengine/SatServer/Engine/inc/CSatThreadDeathMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Monitors threads death and notifies an event, when thread dies -* -*/ - - - -#ifndef CSATTHREADDEATHMONITOR_H -#define CSATTHREADDEATHMONITOR_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class MThreadDeathObserver; - -// CLASS DECLARATION -/** -* Monitors thread deaths and notifies an event, when one dies -* -* @lib SatEngine.lib -* @since Series 60 2.6 -*/ -class CSatThreadDeathMonitor : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aUtils Utils API for event notify - */ - static CSatThreadDeathMonitor* NewL(); - - /** - * Destructor. - */ - virtual ~CSatThreadDeathMonitor(); - - public: // New functions - - /** - * Notfifies the observer, when thread dies. Cancels outstanding - * thread death notification, if one exists. - * @param aThreadId Id of thread. - * @param aObserver Observer of the thread death - */ - void NotifyThreadDeathL( - const TThreadId& aThreadId, - MThreadDeathObserver& aObserver ); - - protected: // New functions - - /** - * Issues the request of thread death. - */ - void StartObservingThreadDeath(); - - protected: // Functions from base classes - - /** - * From CActive - */ - void DoCancel(); - - /** - * From CActive - */ - void RunL(); - - private: - - /** - * C++ default constructor. - */ - CSatThreadDeathMonitor(); - - private: // Data - - // Thread that is monitored - RThread iThread; - - // Observer for thread death. - MThreadDeathObserver* iObserver; - - }; - -#endif // CSATTHREADDEATHMONITOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/EnginePanic.h --- a/satengine/SatServer/Engine/inc/EnginePanic.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,44 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declares panic function and panic codes for SatEngine -* -*/ - - - -#ifndef ENGINEPANIC_H -#define ENGINEPANIC_H - -// DATA TYPES -enum TPanicCode - { - ESatSBadRequest, - ESatEngineNullPointer, - ESatSBadDescriptor, - ESatSStartServer, - ESatUnexpectedHandleUiResponseCall, - ESatUnexpectedRspPckgCall, - ESatUnexpectedDataPckgCall, - ESatUserQueryAlreadyActive, - // Paniced in case where BIP Data channels are used in such cases where - // the usage should be impossible - ESatBIPAccessViolation - }; - -// FUNCTION PROTOTYPES -void PanicSatEngine( TPanicCode aPanicCode ); - -#endif // ENGINEPANIC_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/MSatIconObserver.h --- a/satengine/SatServer/Engine/inc/MSatIconObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Observer for CSatIconHandler -* -*/ - - - -#ifndef MSATICONOBSERVER_H -#define MSATICONOBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Observer for CSatIconHandler -* -* @lib SatEngine.lib -* @since Series 60 3.0 -*/ -class MSatIconObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - MSatIconObserver() {}; - - /** - * Destructor. - */ - virtual ~MSatIconObserver() {}; - - public: // New functions - - /** - * Notification of getting icon info from SIM. - */ - virtual void NotifyGetIconInfo() = 0; - - /** - * Notification of getting icon image. - */ - virtual void NotifyGetIconInstanceL() = 0; - - /** - * Notification of getting icon color lookup table. - */ - virtual void NotifyGetClutL() = 0; - - /** - * Notification of operation failure. - * @param aErrorCode Reason of failure. - */ - virtual void NotifyFailure( TInt aErrorCode ) = 0; - - /** - * Error completion for handler - * @param aError Received error code - * @return Result of completion - */ - virtual TInt CompleteError( TInt aError ) const = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatIconObserver( const MSatIconObserver& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatIconObserver& operator=( const MSatIconObserver& ); - - }; - -#endif // MSATICONOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/MSatSIconAPI.h --- a/satengine/SatServer/Engine/inc/MSatSIconAPI.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -/* -* Copyright (c) 2004-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: Interface for accesing icon data in SIM. -* -*/ - - - -#ifndef MSATSICONAPI_H -#define MSATSICONAPI_H - -// INCLUDES -#include -#include -#include "MSatIconObserver.h" - -// CLASS DECLARATION - -/** -* Interface for accessing icon data in SIM. -* -* @lib SatEngine.lib -* @since 2.6 -*/ -class MSatSIconAPI - { - public: // Constructors and destructor - - /** - * Destructor. - */ - virtual ~MSatSIconAPI() {}; - - public: // New functions - - /** - * Gets the icon info from SIM. - * @param aRecordNumber Specifies the EF_IMG in SIM. - * @param aIconEf Contains the icon informations from SIM in returning - * of the method. - * @param aObserver Observer for icon info get completion. - */ - virtual void GetIconInfo( - TUint8 aRecordNumber, - RSat::TIcon& aIconEf, - MSatIconObserver& aObserver ) = 0; - - /** - * Gets the icon image. - * @param aInstance Informatio of the icon, which data is - * fetched from SIM. - * @param aInstance Contains the icon data from SIM in returning of the - * method. - * @param aObserver Observer for icon image get completion. - */ - virtual void GetIconInstance( - const RSat::TInstanceInfoV3& aInstanceInfo, - TDes8& aInstance, - MSatIconObserver& aObserver ) = 0; - - /** - * Gets color lookup table of the icon. - * @param aInstanceNumber Image instance number. - * @param aOffset Offset of the clut. - * @param aClut Contains the Clut of the icon in returning of the - * method. - * @param aObserver Observer for clut get completion. - */ - virtual void GetClut( - TUint aInstanceNumber, - TUint aOffset, - TDes8& aClut, - MSatIconObserver& aObserver ) = 0; - /* - * Set a mode to determine whether to fetch icons from NAA syncronously - * or asynchronously. - * - * @param aMode Synchronous or asynchronous mode. Icons would be - * fetched from NAA in sychronous mode if SAT UI was closed by - * using the End Key. Otherwise, in asynchronous mode. - * @return None - */ - virtual void SetIconFetchingMode( TBool aMode ) = 0; - - protected: - - // Constructor - MSatSIconAPI() {}; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatSIconAPI( const MSatSIconAPI& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatSIconAPI& operator=( const MSatSIconAPI& ); - - }; - -#endif // MSATSICONAPI_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/MSatSSessions.h --- a/satengine/SatServer/Engine/inc/MSatSSessions.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,79 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Accessors for different kind of sessions in SatServer -* -*/ - - - -#ifndef MSATSSESSIONS_H -#define MSATSSESSIONS_H - -// INCLUDES -#include -#include "MSatRefreshSubSession.h" - -// FORWARD DECLARATION -class MSatUiSession; - -// CLASS DECLARATION - -/** -* Accessors for SatServer sessions. -* -* @lib SatServer -* @since Series 60 3.0 -*/ -class MSatSSessions - { - protected: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatSSessions() {}; - - /** - * Destructor. - */ - virtual ~MSatSSessions() {}; - - public: // New functions - - /** - * Gives ui session interface. May be NULL. - * @return Interface for ui session - */ - virtual MSatUiSession* UiSession() = 0; - - /** - * Gives all refresh sub sessions. - * @return Pointer array of MSatRefreshSubSessions - */ - virtual const RPointerArray& - RefreshSubSessions() = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatSSessions( const MSatSSessions& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatSSessions& operator=( const MSatSSessions& ); - - }; - -#endif // MSATSSESSIONS_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/MSatShellController.h --- a/satengine/SatServer/Engine/inc/MSatShellController.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,106 +0,0 @@ -/* -* Copyright (c) 2002-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: This file contains the SAT Shell Controller Interface that is -* responsible for the actual implementation of the following -* functionality: -* - add SAT UI application to Desk (or similar) -* - remove SAT UI application from Desk (or similar) -* - bring SAT UI application to foregroud if it already is up -* and running -* - launching the SAT UI application -* - launching the Browser application -* - resolving default access point -* -*/ - - -#ifndef MSATSHELLCONTROLLER_H -#define MSATSHELLCONTROLLER_H - -#include - -/** -* This class is used to control adding, removing and launching of -* the SAT UI Client application. It connects to appropriate module -* and is used by the SAT Server. -* -* @lib SatEngine.lib -* @since Series 60 2.0 -* -*/ - -class MSatShellController - { - public: // Constructors and destructor - - /** - * Destructor. - */ - virtual ~MSatShellController() {}; - - public: // New functions - - /** - * Adds SAT UI Client to the Application Shell (or similar). - * @param aName Name of the entry - */ - virtual void AddSatUiL( TDesC& aName ) = 0; - - /** - * Adds SAT UI Client to the Application Shell (or similar). - * @param aName Name of the entry - * @param aIconId Id of the icon. - */ - virtual void AddSatUiL( TDesC& aName, TUint8 aIconId ) = 0; - - /** - * Removes SAT UI Client from the Application Shell (or similar). - */ - virtual void RemoveSatUiL() = 0; - - /** - * Launches the SAT UI Client. - */ - virtual void LaunchSatUiL() = 0; - - /** - * Bring Browser to foreground after period of time. - */ - virtual void BringBrowserToForegroundAfterPeriod() = 0; - - /** - * Bring the SAT UI Application to foreground. - */ - virtual void BringSatUiToForeground() = 0; - - /** - * Sets SAT UI Application to background if needed. - */ - virtual void SetSatUiToBackground() const = 0; - - /** - * Launch Browser - * @since Series 60 2.6 - * @param aUrl URL to be opened when launching browser. - * @param aAccessPointUid ID number of access point in CommDb. - * @return The result of the operation. - */ - virtual TInt LaunchBrowserL( - const TDesC& aUrl, - TUid aAccessPointUid ) = 0; - }; - -#endif // MSATSHELLCONTROLLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/MThreadDeathNotifier.h --- a/satengine/SatServer/Engine/inc/MThreadDeathNotifier.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* -* Copyright (c) 2002-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: ThreadDeath notifier for CSatSession -* -*/ - - - -#ifndef MTHREADDEATHNOTIFIER_H -#define MTHREADDEATHNOTIFIER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Notifies CSatThreadDeathMonitor to start monitor new thread death -* -* @lib SatServer -* @since Series 60 3.0 -*/ -class MThreadDeathNotifier - { - protected: // Constructors and destructor - - /** - * C++ default constructor. - */ - MThreadDeathNotifier() {}; - - /** - * Destructor. - */ - virtual ~MThreadDeathNotifier() {}; - - public: // New functions - - /** - * Notifies Thread death monitor that thread is closing - */ - virtual void NotifyThreadDeath() = 0; - - /** - * Start monitoring thread's death - */ - virtual void StartObservingThread() = 0; - - /** - * Sets thread that is observered. - * @param aThreadId Thread which death should be observered - */ - virtual void SetObserveredThread( TThreadId& aThread ) = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MThreadDeathNotifier( const MThreadDeathNotifier& ); - - // Prohibit assigment operator if not deriving from CBase. - MThreadDeathNotifier& operator=( const MThreadDeathNotifier& ); - - }; - -#endif // MTHREADDEATHNOTIFIER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/MThreadDeathObserver.h --- a/satengine/SatServer/Engine/inc/MThreadDeathObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,72 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Observer for CSatSThreadDeathMonitor -* -*/ - - - -#ifndef MTHREADDEATHOBSERVER_H -#define MTHREADDEATHOBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Observer for CSatSThreadDeathObserver -* -* @lib SatServer -* @since Series 60 2.6 -*/ -class MThreadDeathObserver - { - protected: // Constructors and destructor - - /** - * C++ default constructor. - */ - MThreadDeathObserver() {}; - - /** - * Destructor. - */ - virtual ~MThreadDeathObserver() {}; - - public: // New functions - - /** - * Notification of observed thread death. - */ - virtual void ThreadDiedL() = 0; - - /** - * Notification of observed thread panic. - */ - virtual void ThreadPanicedL() = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MThreadDeathObserver( const MThreadDeathObserver& ); - - // Prohibit assigment operator if not deriving from CBase. - MThreadDeathObserver& operator=( const MThreadDeathObserver& ); - - }; - -#endif // MTHREADDEATHOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/TSatBitOP.h --- a/satengine/SatServer/Engine/inc/TSatBitOP.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,81 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Extracts a bits from byte row. -* -*/ - - - -#ifndef TSATBITOP_H -#define TSATBITOP_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Bit manipulations -* -* @lib SatEngine.lib -* @since 2.6 -*/ -class TSatBitOP - { - public: // New functions - - /** - * Extracts bits from byte row. - * Following assumptions is made about parameters: - * aBitCount is 1 to 8. - * @param aBitIndex Index to bit, where extraction starts. Index of - * MSB from aBytes[0] is 0. - * @param aBitCount Number of extracted bits. - * @param aBytes Array of bytes where bits are extracted. - * @return Value of extracted bits. - */ - static TUint8 ExtractBits( - TInt aBitIndex, - TUint8 aBitCount, - const TDesC8& aBytes ); - - /** - * Creates a mask of ones, starting from aBitIndex - * to aBitIndex + aCount. - * if aMSB is 5 and aCount is 2 then the mask would be - * 0011 0000. - * @param aBitIndex. 0 means MSB and 7 is LSB. - * @param aCount 1 to 8. - * @return Mask. - */ - static TUint8 CreateMask8Bit( - TUint8 aBitIndex, - TUint8 aCount ); - - /** - * Creates a mask of ones, starting from aBitIndex to aBitIndex + - * aCount. - * @param aBitIndex 0 means MSB and 15 means LSB. - * @param aCount 1 to 16. - * @return Mask of ones. - */ - static TUint16 CreateMask16Bit( - TUint8 aBitIndex, - TUint8 aCount ); - - }; - -#endif // TSATBITOP_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/TSatChannelIDInfo.h --- a/satengine/SatServer/Engine/inc/TSatChannelIDInfo.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Information class for Channel IDs. -* -*/ - - -#ifndef TSATCHANNELIDINFO_H -#define TSATCHANNELIDINFO_H - -// INCLUDES -#include -#include - -// CLASS DECLARATION - -/** -* Container of Channel ID information -* -* @lib SatEngine.lib -* @since Series 60 3.0 -*/ -class TSatChannelIdInfo - { - public: - - /** - * Constructor. - * @param aChannelId Long version of channel ID - * @param aShort Short version of channel ID - */ - TSatChannelIdInfo( TInt aChannelId, TUint8 aShort ); - - /** - * Returns long channel ID - * @return Long channel ID, range RSat::KChannel1-RSat::KChannel7 - */ - TInt ChannelId() const; - - /** - * Returns short channel ID - * @return Short channel id, range 1-7 - */ - TUint8 ShortChannelId() const; - - /** - * Indicates is this channel ID in use - * @return TBool indicating the availability of this channel ID - */ - TBool IsReserved() const; - - /** - * Reserves channel ID - */ - void ReserveChannel(); - - /** - * Releases channel ID - */ - void ReleaseChannel(); - - private: - - // Long channel ID, range RSat::KChannel1 - RSat::KChannel7 - TInt iChannelId; - - // Short channel ID, range 1 - 7 - TUint8 iShortChannelId; - - // Indicates is this channel in use of free - TBool iActive; - - }; - -#endif // TSATCHANNELIDINFO_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/TSatEventMediator.h --- a/satengine/SatServer/Engine/inc/TSatEventMediator.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Provides way to notify events and register observers -* for events -* -*/ - - - -#ifndef TSATEVENTMEDIATOR_H -#define TSATEVENTMEDIATOR_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class MSatEventObserver; -class TSatEventsObserver; - -// CLASS DECLARATION - -/** -* Provides way to notify events and register observers for events. -* Observers are not owned by this class and therefore observers are -* not deleted when TSatEventMediator instance is destroyed. -* -* @lib SatEngine.dll -* @since Series 60 3.0 -*/ -class TSatEventMediator - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - TSatEventMediator(); - - public: // New functions - - /** - * Notifies possible observers who are observing the event. - * @param aEvent Integer identifying the event. - * @return None - */ - void Notify( TInt aEvent ); - - /** - * Registers observer for event. Same observer will not be added - * more than once for one event. - * @param aObserver Pointer of observer instance. Panic will occur if - * aObserver is NULL. - * @param aEvent Event, which will cause the notification of observer. - * @return None - */ - void RegisterL( MSatEventObserver* aObserver, TInt aEvent ); - - /** - * Unregisters the notification of single event. - * @param aObserver Observer, whom event registeration will be - * unregistered. - * @param aEvent Event, which will be unregistered. - * @return None - */ - void Unregister( const MSatEventObserver* aObserver, TInt aEvent ); - - /** - * Unregisters the event observer. - * @param aObserver Observer, whom event registeration will be - * unregistered. - */ - void Unregister( const MSatEventObserver* aObserver ); - - /** - * Resets the list of event observers. Used instead of destructor - */ - void Reset(); - - private: // New functions - - /** - * Checks if aObserver is already in the list of observers. - * @param aObserver Observer that is checked from the list. - * @return Pointer of the observer, where aObserver is registered. - * Contains NULL pointer if aObserver is not already registered. - */ - TSatEventsObserver* HasObserverInstance( - const MSatEventObserver* aObserver ) const; - - /** - * Deletes all observers marked as deleted during notify loop - */ - void DeleteMarkedObservers(); - - private: - - // Prohibit copy constructor if not deriving from CBase. - TSatEventMediator( const TSatEventMediator& ); - - // Prohibit assigment operator if not deriving from CBase. - TSatEventMediator& operator=( const TSatEventMediator& ); - - private: // Data - - // event observers. - RPointerArray iEventsObservers; - - // Indicates are we notifying observers. If this flag is on, - // observers cannot be removed from iEventsObservers. After - // notify loop is done, observers can be replaced again - TBool iIsNotifying; - - // Indicates are there any observers marked as deleted during - // Notify loop - TBool iDeletionsMarked; - }; - -#endif // TSATEVENTMEDIATOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/TSatEventsObserver.h --- a/satengine/SatServer/Engine/inc/TSatEventsObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,125 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Capsulates observer and its events -* -*/ - - - -#ifndef TSATEVENTSOBSERVER_H -#define TSATEVENTSOBSERVER_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class MSatEventObserver; - -// CLASS DECLARATION - -/** -* Capsulates observer and its events. -* -* @lib SatEngine.dll -* @since Series 60 3.0 -*/ -class TSatEventsObserver - { - public: // Constructors and destructor - - /** - * C++ default constructor. - * @param aObserver Observer of events. Panic will occur if aObserver is - * NULL. - */ - TSatEventsObserver( MSatEventObserver* aObserver ); - - /** - * Destructor. - */ - virtual ~TSatEventsObserver(); - - public: // New functions - - /** - * Adds event to be notified for the iObserver. Same event will - * added more than once. - * @param aEvent Source of notification for observer. - */ - void AddEventL( TInt aEvent ); - - /** - * Removes the event from the observable events. If aEvent is not - * observable event, nothing is done. - * @param aEvent Source of notification for observer. - */ - void RemoveEvent( TInt aEvent ); - - /** - * Checks if aEvent is already in the list of events. - * @param aEvent Event to be checked. - * @return ETrue if aEvent is in the list. Othervise EFalse. - */ - TBool ObservingEvent( TInt aEvent ) const; - - /** - * Gives the observer of the iEvents. - * @return Observer of the iEvents - */ - MSatEventObserver* Observer(); - - /** - * Gives the number of events that has been added. - * @return Number of events. - */ - TInt EventCount() const; - - /** - * Marks this observer for delete - */ - void MarkForDelete(); - - /** - * Indicates is this observer marked for delete - * @return True if marked for delete. - */ - TBool IsMarkedForDelete() const; - - private: - - // Prohibit copy constructor if not deriving from CBase. - TSatEventsObserver( const TSatEventsObserver& ); - - // Prohibit assigment operator if not deriving from CBase. - TSatEventsObserver& operator=( const TSatEventsObserver& ); - - private: // Data - - // Events that iObserver is observing. - RArray iEvents; - - // Observer of events. - MSatEventObserver* iObserver; - - // Indicates is this observer marked to be deleted. - // If observer is requested to delete while looping - // in Notify events, observer cannot be deleted, but when Notify - // loop is over, all observers marked as delete are deleted - TBool iMarkedForDelete; - - }; - -#endif // TSATEVENTSOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/TSatQoSParser.h --- a/satengine/SatServer/Engine/inc/TSatQoSParser.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,134 +0,0 @@ -/* -* Copyright (c) 2002-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: Maps QoS classes to correxponding Hex values -* -*/ - - -#ifndef TSATQOSPARSER_H -#define TSATQOSPARSER_H - -#include -#include -#include - -/** - * Parses QoS Classes coming from SIM in open channel to corresponding - * values to use with RPacketQoS and vice versa. - * - * Bearer params are in order: - * 0 = Precedence class - * 1 = Delay class - * 2 = Reliability class - * 3 = Peak throughput - * 4 = Mean throughput - * (5 = protocol) - * - * - * @lib SatEngine.lib - * @since 3.0 - */ -class TSatQoSParser - { - -public: - - /** Enum for Maximum bit rate */ - enum TSatMaxBitRate - { - ESatMaxBitRateUnspecified = 0, - ESatMaxBitRate1 = 8, - ESatMaxBitRate2 = 16, - ESatMaxBitRate3 = 32, - ESatMaxBitRate4 = 64, - ESatMaxBitRate5 = 128, - ESatMaxBitRate6 = 256, - ESatMaxBitRate7 = 512, - ESatMaxBitRate8 = 1024, - ESatMaxBitRate9 = 2048, - }; - - /** Struct for converting QoS params */ - struct TQoSRel5 - { - TInt iTrafficClass; // Traffic Class - TInt iTrafficHandlingPriority; // Traffic handling priority - TInt iSduErrorRatio; // SDU error ratio - TInt iResidualBer; // Residual bit error ratio - TInt iDeliveryErroneousSdu; // Delivery of Erroneous SDUs - TInt iMaxBitRate; // Maximum bitrate - TInt iMaximumSDUSize; // Maximum SDU size - TInt iDeliveryOrder; // Delivery Order - }; - -// New functions - - /** - * Converts requested QoS classes to corresponding Hex values used - * by ETel Packet when requesting QoS parameters - * - * @param aParams Requested QoS classes coming from SIM - * @param aResult Output QoS values in RPacketQoS::TQoSGPRSRequested - */ - static void GetRequestedQoSValues( - RSat::TBearerParams& aParams, - RPacketQoS::TQoSGPRSRequested& aResult); - - /** - * Converts negotiated QoS values to corresponding QoS class values used - * in OpenChannel terminal response. - * - * @param aNegParams Negotiated QoS parameters - * @param aResult Output QoS class values in RSat::TBearerParams - */ - static void GetNegotiatedQoSValues( - const RPacketQoS::TQoSGPRSNegotiated& aNegParams, - RSat::TBearerParams& aResult ); - - /** - * Convert QoS parameters from Rel97/98 format to Rel5 format - * - * @param aReqParams: Requested QoS parameters in Rel97/98 format - * @return QoS paramters in Rel5 format - */ - static TQoSRel5 ConvertQoS( - const RPacketQoS::TQoSGPRSRequested& aReqParams ); - - /** - * Convert QoS parameters from Rel5 format to Rel97/98 format - * - * @param aNegQoSRel5: Negotiated QoS parameters in Rel5 format - * @return Negotiated QoS paramters in Rel97/98 format - */ - static RPacketQoS::TQoSGPRSNegotiated ConvertNegotiatedQoS( - const TQoSRel5& aNegQoSRel5 ); - -private: - -// New functions - - /** - * Checks is requested index bigger than maximum lenght to prevent - * array overflows - * - * @param aReqIndex Requested index - * @param aMaxIndex Last index, Requested cannot be bigger than this - * @param Retuns aReqIndex, if it's not bigger that aMaxIndex, else 0 - */ - static TInt CheckIndex( TInt aReqIndex, TInt aMaxIndex ); - }; - -#endif // TSATQOSPARSER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/TUSatAPI.h --- a/satengine/SatServer/Engine/inc/TUSatAPI.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,555 +0,0 @@ -/* -* Copyright (c) 2002-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: Wrapper for USAT api. -* -*/ - - - -#ifndef TUSATAPI_H -#define TUSATAPI_H - -// INCLUDES -#include -#include "MSatApi.h" - -// FORWARD DECLARATION -class MSatMultiModeApi; -class CSatSActiveWrapper; - -// CLASS DECLARATION - -/** -* Wrapper for USAT API. -* -* @lib SatEngine.lib -* @since Series 60 3.0 -*/ -class TUSatAPI : public MSatApi - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - TUSatAPI(); - - public: // New functions - - /** - * Connects to USat API. - * @param aPhone Reference to MSatMultiModeApi - * @return Error code indicating connection status - */ - TInt Connect( MSatMultiModeApi& aPhone ); - - /** - * Closes the connection to USAT API. - */ - void Close(); - - public: // From base classes - - /** - * From MSatApi Issues notification for SetUpMenu command from USAT api. - * @param aStatus Request status - * @param aPCmd Command identifier - */ - void NotifySetUpMenu( - TRequestStatus& aStatus, - TDes8& aPCmd ); - - /** - * From MSatApi Cancels SetUpMenu notification. - */ - void NotifySetUpMenuCancel(); - - /** - * From MSatApi Issues notification for LanguageNotification command from USAT api. - * @param aStatus Request status - * @param aPCmd Command identifier - */ - void NotifyLanguageNotification( - TRequestStatus& aStatus, - TDes8& aPCmd ); - - /** - * From MSatApi Cancels LanguageNotification notification. - */ - void NotifyLanguageNotificationCancel(); - - /** - * From MSatApi Issues SetUpCall request - * @param aStatus Request status - * @param aPCmd Command identifier - */ - void NotifySetUpCall( - TRequestStatus& aStatus, - TDes8& aPCmd ); - - /** - * From MSatApi Cancels the SetUpCall request - */ - void NotifySetUpCallCancel(); - - /** - * From MSatApi Issues the SelectItem request. - * @param aStatus Request status - * @param aPCmd Command identifier - */ - void NotifySelectItem( - TRequestStatus& aStatus, - TDes8& aPCmd ); - - /** - * From MSatApi Cancels the SelectItem request - */ - void NotifySelectItemCancel(); - - /** - * From MSatApi. - * @param aStatus Request status - * @param aPCmd Command identifier - */ - void NotifySendSm( - TRequestStatus& aStatus, - TDes8& aPCmd ); - - /** - * From MSatApi. - */ - void NotifySendSmCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Data to be sent - * @param aMsgReference Reference to message - */ - void SendMessageNoLogging( - TRequestStatus& aStatus, - TDes8& aData, - TUint16& aMsgReference ) ; - - /** - * From MSatApi - */ - void SendMessageNoLoggingCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifyLaunchBrowser( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifyLaunchBrowserCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifyDisplayText( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifyDisplayTextCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifyGetInput( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifyGetInputCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifyGetInkey( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifyGetInkeyCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifyCallControl( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifyCallControlCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifyMoSmControl( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifyMoSmControlCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifySetUpEventList( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifySetUpEventListCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifySetUpIdleModeText( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifySetUpIdleModeTextCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifySendDtmf( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifySendDtmfCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifySendSs( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifySendSsCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifySendUssd( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifySendUssdCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifyPlayTone( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifyPlayToneCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifyRefreshRequired( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifyRefreshRequiredCancel(); - - /** - * From MSatApi - * @param aPCkg Refresh required response package - */ - void RefreshAllowed( const TDesC8& aPCkg ); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifyRefresh( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifyRefreshCancel(); - - /** - * From MSatApi Issues the SimSessionEnd request - * @param aStatus Request status - */ - void NotifySimSessionEnd( TRequestStatus& aStatus ); - - /** - * From MSatApi Cancels the SimSessionEnd request - */ - void NotifySimSessionEndCancel(); - - /** - * From MSatApi - * @param aStatus Request status - * @param aData Command identifier - */ - void NotifyLocalInfo( - TRequestStatus& aStatus, - TDes8& aData ); - - /** - * From MSatApi - */ - void NotifyLocalInfoCancel(); - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - void NotifyOpenChannel( - TRequestStatus& aStatus, - TDes8& aPCmd ); - - /** - * Cancels the request - */ - void NotifyOpenChannelCancel(); - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - void NotifyCloseChannel( - TRequestStatus& aStatus, - TDes8& aPCmd ); - - /** - * Cancels the request - */ - void NotifyCloseChannelCancel(); - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - void NotifyGetChannelStatus( - TRequestStatus& aStatus, - TDes8& aPCmd ); - - /** - * Cancels the request - */ - void NotifyGetChannelStatusCancel(); - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - void NotifySendData( - TRequestStatus& aStatus, - TDes8& aPCmd ); - - /** - * Cancels the request - */ - void NotifySendDataCancel(); - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - void NotifyReceiveData( - TRequestStatus& aStatus, - TDes8& aPCmd ); - - /** - * Cancels the request - */ - void NotifyReceiveDataCancel(); - - /** - * From MSatApi Sends menu selection to SIM. - * @param aMenuSelection Selected menu item - */ - void SendMenuSelection( const TDes8& aMenuSelection ); - - /** - * From MSatApi Sends terminal rsp to SIM. - * @param aPCmd Command identifier - * @param aPCkg Terminal response package - */ - void TerminalRsp( - RSat::TPCmd aPCmd, - const TDesC8& aPCkg ); - - /** - * From MSatApi. Gets the icon info from SIM. - * @param aReqStatus Request status. - * @param aRecordNumber Specifies the EF_IMG in SIM. - * @param aIconEf Contains the icon informations from SIM in returning - * of the method. - */ - void GetIcon( - TRequestStatus& aReqStatus, - TUint8 aRecordNumber, - RSat::TIcon& aIconEf ); - - /** - * From MSatApi. Gets the icon image. - * @param aReqStatus Request status. - * @param aInstanceInfo Informatio of the icon, which data is - * fetched from SIM. - * @param aInstance Contains the icon data from SIM in returning of the - * method. - */ - void GetImageInstance( - TRequestStatus& aReqStatus, - const TDesC8& aInstanceInfo, - TDes8& aInstance ); - - /** - * From MSatApi. Gets color lookup table of the icon. - * @param aReqStatus Request status. - * @param aInstanceNumber Image instance number. - * @param aOffset Offset of the clut. - * @param aClut Contains the Clut of the icon in returning of the - * method. - */ - void GetClut( - TRequestStatus& aReqStatus, - TUint aInstanceNumber, - TUint aOffset, - TDes8& aClut ); - - /** - * From MSatApi Sends notify to SIM about some event using EventDownload. - * @param aReqStatus Request status. - * @param aSingleEvent Single event reported to SIM. - * @param aEventInfo Contains information of an event. - */ - void EventDownload( - TRequestStatus& aReqStatus, - RSat::TEventList aSingleEvent, - const TDesC8& aEventInfo ); - - /** - * From MSatApi Indicates is RSat connected - * @return ETrue if RSat is connected - */ - TBool IsRSatConnected() const; - - /** - * From MSatApi Called when all supported notifies are sent - * @return error code from RSat::UsatClientReadyIndication() - */ - TInt UsatClientReadyIndication(); - - /** - * From CActive - */ - void RunL(); - - /** - * From CActive - */ - void DoCancel(); - - private: - - // Prohibit copy constructor if not deriving from CBase. - TUSatAPI( const TUSatAPI& ); - - // Prohibit assigment operator if not deriving from CBase. - TUSatAPI& operator=( const TUSatAPI& ); - - private: // Data - - // (U)SAT interface handler - RSat iSat; - // Indicates is RSat connected or not - TBool iRSatConnected; - // Active object wrapper for wait loops and asynhcronous function calls - CSatSActiveWrapper* iWrapper; - - }; - -#endif // TUSATAPI_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/csatbipconnectionobserver.h --- a/satengine/SatServer/Engine/inc/csatbipconnectionobserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,87 +0,0 @@ -/* -* Copyright (c) 2007 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: Observes the status of the GPRS connection -* -*/ - - - -#ifndef CSATBIPCONNECTIONOBSERVER_H -#define CSATBIPCONNECTIONOBSERVER_H - - -#include "CSatBIPUtils.h" - - -/** - * Observes the GPRS network status and stores current value. - * - * @lib SatEngine.lib - * @since Series 60 3.0 - */ -class CSatBIPConnectionObserver : public CActive - { -public: - - /** - * Default constructor. - * @param aBipUtils Reference to BIP utils class. - */ - CSatBIPConnectionObserver( CSatBIPUtils& aBipUtils ); - - /** - * Destructor. - */ - virtual ~CSatBIPConnectionObserver(); - - /** - * From CActive. Connection status changed - */ - void RunL(); - - /** - * From CActive. Cancels any outgoing requests - */ - void DoCancel(); - - /** - * Starts observing the connection status - */ - void StartObserver(); - - /** - * Current status of the GPRS sefvice - * @return Current status of the GPRS service - */ - RPacketService::TStatus Status() const; - -private: - - /** - * Reference to CSatBIPUtils class. - */ - CSatBIPUtils& iBipUtils; - - /** - * Current status of the GPRS network - */ - RPacketService::TStatus iConnectionStatus; - - /** - * Last status of the GPRS network - */ - RPacketService::TStatus iPrevConnectionStatus; - }; - -#endif // CSATBIPCONNECTIONOBSERVER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/csatbipsubconneventobserver.h --- a/satengine/SatServer/Engine/inc/csatbipsubconneventobserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,102 +0,0 @@ -/* -* Copyright (c) 2007 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: Observer of Subconnection parameters granted event -* -*/ - - -#ifndef CSATBIPSUBCONNEVENTOBSERVER_H -#define CSATBIPSUBCONNEVENTOBSERVER_H - -// INCLUDES -#include -#include - -class CSatBIPGPRSDataChannel; - -// CLASS DECLARATION - -/** - * CSatBIPSubConnEventObserver - * - * Observe the SubConnection parameters granted event - * - * @lib SatEngine.lib - * @since Series 60 3.2 - */ -NONSHARABLE_CLASS( CSatBIPSubConnEventObserver ): public CActive - { -public: -// Constructor and destructor - - /** - * Default constructor. - * - * @since S60 3.2 - * @param aObserver GPRS data channel, which responsible for fetch negQoS - * from SubConnection parameters granted event - */ - CSatBIPSubConnEventObserver( CSatBIPGPRSDataChannel& aObserver ); - - /** - * Destructor - * - * @since S60 3.2 - */ - virtual ~CSatBIPSubConnEventObserver(); - -// New functions - - /** - * Starts observing granted event - */ - void StartObservSubConnEvent(); - -// From base class CActive - - /** - * From CActive. Informs observer that granted event has been received. - * - * @since S60 3.2 - */ - void RunL(); - - /** - * From CActive. Cancels any outgoing requests - * - * @since S60 3.2 - */ - void DoCancel(); - -private: // Data - - /** - * EventFilter for subconnection - */ - RSubConnection::TEventFilter iEventFilter; - - /** - * Buffer for Sub-connection event notiifcation - */ - TNotificationEventBuf iEventBuffer; - - /** - * Reference to class CSatBIPGPRSDataChannel. - * Not own. - */ - CSatBIPGPRSDataChannel& iDataChannel; - }; - -#endif // CSATBIPSUBCONNEVENTOBSERVER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/csatmediatoreventprovider.h --- a/satengine/SatServer/Engine/inc/csatmediatoreventprovider.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,100 +0,0 @@ -/* -* Copyright (c) 2005-2007 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: Provides events to mediator event consumer. -* -*/ - - - -#ifndef C_CSATMEDIATOREVENTPROVIDER_H -#define C_CSATMEDIATOREVENTPROVIDER_H - - -#include - -#include "msatmediatoreventprovider.h" - -class CMediatorEventProvider; - -/** - * Mediator event provider - * - * Provides SAT mediator events to mediator event consumer ( CoverUi ) - * - * @lib SatEngine - * @since S60 v3.1 - */ -class CSatMediatorEventProvider : public CBase, - public MSatMediatorEventProvider - { -public: - - static CSatMediatorEventProvider* NewL(); - - virtual ~CSatMediatorEventProvider(); - -// from base class MSatMediatorEventProvider - - /** - * From MSatMediatorEventProvider. - * Raises SAT mediator event - * - * @since S60 v3.1 - * @param const TDesC8& ontains packaged data to mediator event consumer - */ - TInt RaiseSatEvent( const TDesC8& aData ); - - /** - * From MSatMediatorEventProvider. - * Checks if Cover UI is supported by SAT - * - * @since S60 v3.1 - * @return ETrue if Cover UI is supported - */ - TBool CoverUiSupported(); - -private: - - CSatMediatorEventProvider(); - - void ConstructL(); - - /** - * Internal check for Cover Ui support - * Checks if Cover UI is supported by SAT and stores the result - * - * @since S60 v3.1 - */ - void CUiSupportedL(); - -private: // data - - /** - * are mediator events registered - */ - TBool iRegistered; - - /** - * is cover UI supported - */ - TBool iCoverUiSupported; - - /** - * pointer to Mediator client - * Own. - */ - CMediatorEventProvider* iEventProvider; - - }; -#endif // C_CSATMEDIATOREVENTPROVIDER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/csatmultimodeapi.h --- a/satengine/SatServer/Engine/inc/csatmultimodeapi.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,296 +0,0 @@ -/* -* Copyright (c) 2010 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: Encapsule the access to ETel MM API in sat -* -*/ - - -#ifndef CSATMULTIMODEAPI_H -#define CSATMULTIMODEAPI_H - -#include -#include "msatmultimodeapi.h" - -class CSatSActiveWrapper; - -/** - * Encapsule the access to ETel MM API in sat - * - * This class is an active object. It will submit - * Etel asynchronous request and wait for response. - * Clients for this class will implement the interface - * in MSatETelClient which is the callback function - * when CSatMultiModeApi get the ETel request response. - * - * @lib satengine.lib - * @since S60 v5.0 - */ -class CSatMultiModeApi : public CBase, - public MSatMultiModeApi - { - -public: - /** - * Two-phased constructor. - */ - static CSatMultiModeApi* NewL(); - - /** - * Destructor - */ - virtual ~CSatMultiModeApi(); - -// from base class MSatMultiModeApi - - /** - * Gives pointer to active RMobilePhone session - * - * @return pointer to active RMobilePhone server session - */ - RMobilePhone* Phone(); - - /** - * Gives reference to active Dummy RMobilePhone session - * - * @return Reference to active Dummy RMobilePhone server session - */ - RMobilePhone* DummyPhone(); - - /** - * Gives pointer to active RMmCustomApi session - * - * @return pointer to active RMmCustomApi server session - */ - RMmCustomAPI* CustomApi(); - - /** - * Lowers error granularity to basic errors - */ - void LowerErrorGranularity(); - - /** - * Raises error granularity to extended errors - */ - void RaiseErrorGranularity(); - - /** - * Access RMobilePhone::GetNetworkRegistrationStatus - * for the paramter information please see the etelmm.h - */ - void GetNetworkRegistrationStatus( TRequestStatus& aReqStatus, - RMobilePhone::TMobilePhoneRegistrationStatus& aStatus ); - - /** - * Access RMobilePhone::NotifyNetworkRegistrationStatusChange - * for the paramter information please see the etelmm.h - */ - void NotifyNetworkRegistrationStatusChange( TRequestStatus& aReqStatus, - RMobilePhone::TMobilePhoneRegistrationStatus& aStatus ); - - /** - * Access RMobilePhone::NotifyNetworkRegistrationStatusChange - * for the paramter information please see the etelmm.h - */ - void GetSubscriberId( TRequestStatus& aReqStatus, - RMobilePhone::TMobilePhoneSubscriberId& aId ); - - /** - * Access RMobilePhone::SendDTMFTones - * for the paramter information please see the etelmm.h - */ - void SendDTMFTones( TRequestStatus& aReqStatus, const TDesC& aTones); - - /** - * Access RMobilePhone::ContinueDTMFStringSending - * for the paramter information please see the etelmm.h - */ - TInt ContinueDTMFStringSending( TBool aContinue ); - - /** - * Access RMobilePhone::CancelAsyncRequest - * for the paramter information please see the etelmm.h - */ - void CancelAsyncRequest(TInt aReqToCancel); - - /** - * Access RMobilePhone::SendNetworkServiceRequestNoFdnCheck - * for the paramter information please see the etelmm.h - */ - void SendNetworkServiceRequestNoFdnCheck( TRequestStatus& aReqStatus, - const TDesC& aServiceString); - - /** - * Access RMobileCall::DialNoFdnCheck - * for the paramter information please see the etelmm.h - */ - void DialNoFdnCheck( TRequestStatus& aStatus, - const TDesC8& aCallParams,const TDesC& aTelNumber ); - - /** - * Access RMobileUssdMessaging::SendMessageNoFdnCheck - * for the paramter information please see the etelmm.h - */ - void SendMessageNoFdnCheck( TRequestStatus& aReqStatus, - const TDesC8& aMsgData, const TDesC8& aMsgAttributes ); - /** - * Access RMobileCall::DialCancel - */ - void DialCancel(); - - /** - * Access RMobilePhone::GetCurrentActiveUSimApplication - */ - void GetCurrentActiveUSimApplication( TRequestStatus& aReqStatus, - RMobilePhone::TAID& aAID ); - - /** - * Check if there is an incoming call - * @return ETrue if there is an incoming call - */ - TBool IsCallIncoming(); - - /** - * Access RMobileCall::NotifyMobileCallStatusChange - */ - void NotifyMobileCallStatusChange( TRequestStatus& aReqStatus, - RMobileCall::TMobileCallStatus& aStatus) ; - - /** - * Access RMobileCall::NotifyStatusChangeCancel - */ - void NotifyCallStatusChangeCancel(); - /** - * Access RMobilePhone::TerminateActiveCalls NotifyMobileCallStatusChange - */ - void TerminateActiveCalls(TRequestStatus& aReqStatus); - - - /** - * Access RMboileCall::GetMobileCallInfo - */ - TInt GetMobileCallInfo(TDes8& aCallInfo); - - /** - * Access RMboileCall::DialEmergencyCall - */ - virtual void DialEmergencyCall(TRequestStatus& aReqStatus, - const TDesC& aNumber); - -private: - - /** - * Default C++ constructor - */ - CSatMultiModeApi(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - -// New functions - /** - * Makes the connections to ETel Server - */ - void ConnectETelServerL(); - - /** - * Loads and opens phone module - * - * @param aPhone reference to phone that is loaded - * @param aModuleName Name of the phone module - * @param aPhoneName Name of the phone - */ - void LoadPhoneModuleL( RMobilePhone& aPhone, const TDesC& aModuleName, - const TDesC& aPhoneName ); - - /** - * Open the RMobileUssdMessaging - */ - void LoadUssdMessagingL(); - - /** - * Open the RMobileCall - */ - TInt LoadMobileCall(); - - -private: // data - - /** - * The Etel server. - * Own - */ - RTelServer iTelServer; - - /** - * Used to access phone based functionality - * Own - */ - RMobilePhone iPhone; - - /** - * Phone module for Dummy TSY - * Own - */ - RMobilePhone iDummyPhone; - - /** - * RMmCustomAPI - * Own - */ - RMmCustomAPI iCustomPhone; - - /** - * Line needed by iCall - * own - */ - RMobileLine iLine; - - /** - * Access call based functionality - * own - */ - RMobileCall iCall; - - /** - * Access USSD Messaging - * own - */ - RMobileUssdMessaging iUssd; - - /** - * Pointer to Active Wrapper. Used in startup - * Own. - */ - CSatSActiveWrapper* iWrapper; - - /** - * Indicate if the iLine has been openned - */ - TBool iLineOpened; - - /** - * Indicate if the iCall has been openned - */ - TBool iCallOpened; - - /** - * Indicate if the iUssd has been openned - */ - TBool iUssdOpened; - - }; - -#endif // CSATMULTIMODEAPI_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/inc/csatprofilechangeobserver.h --- a/satengine/SatServer/Engine/inc/csatprofilechangeobserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,94 +0,0 @@ -/* -* Copyright (c) 2006 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: Observes Profile state changes. -* -*/ - - - -#ifndef CSATPROFILECHANGEOBSERVER_H -#define CSATPROFILECHANGEOBSERVER_H - -#include -#include "MSatSystemStateObserver.h" - -class MSatSystemStateChangeNotifier; -class MSatUtils; - - -/** - * Observes Profile status change and informs CSatCommandContainer - * of a possible change. - * - * @lib SatEngine - * @since S60 3.0 - */ -class CSatProfileChangeObserver : public CBase, - public MSatSystemStateObserver - { -public: - - /** - * Two-phased constructor. - * @param aUtils Utils inteface - */ - static CSatProfileChangeObserver* NewL( MSatUtils& aUtils ); - - /** - * Destructor. - */ - virtual ~CSatProfileChangeObserver(); - - - /** - * From MSatSystemStateObserver Notifies that system state changed. - * - * @since S60 v3.0 - * @param aValue The new value that has changed. - */ - void StateChanged( const TInt aValue ); - -private: - - /** - * C++ default constructor. - * @param aUtils Utils inteface - */ - CSatProfileChangeObserver( MSatUtils& aUtils ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - -private: // Data - - /** - * Reference to command container. - */ - MSatUtils& iUtils; - - /** - * System state notifier. - */ - MSatSystemStateChangeNotifier* iStateNotifier; - - - /** - * Stores the previous profile state. - */ - TBool iPreviousProfile; - }; - -#endif // CSATPROFILECHANGEOBSERVER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatApnHandler.cpp --- a/satengine/SatServer/Engine/src/CSatApnHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,461 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Handles APN operations -* -*/ - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include -#include -#include - -#include "MSatUtils.h" -#include "CSatApnHandler.h" -#include "SatLog.h" - -const TUint32 KSatCMGranularity( 5 ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatApnHandler::CSatApnHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatApnHandler::CSatApnHandler( MSatUtils& aUtils ) : - iUtils( aUtils ) - { - LOG( SIMPLE, - "SATENGINE: CSatApnHandler::CSatApnHandler calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatApnHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatApnHandler* CSatApnHandler::NewL( MSatUtils& aUtils ) - { - LOG( SIMPLE, "SATENGINE: CSatApnHandler::NewL calling" ) - - CSatApnHandler* self = new( ELeave )CSatApnHandler( aUtils ); - LOG( SIMPLE, "SATENGINE: CSatApnHandler::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatApnHandler::Destructor -// ----------------------------------------------------------------------------- -// -CSatApnHandler::~CSatApnHandler() - { - LOG( SIMPLE, - "SATENGINE: CSatApnHandler::~CSatApnHandler calling" ) - LOG( SIMPLE, - "SATENGINE: CSatApnHandler::~CSatApnHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatApnHandler::GetApnInfoL -// ----------------------------------------------------------------------------- -// -void CSatApnHandler::GetApnInfoL( - const RSat::TAccessName& aName, - const RSat::TTextString& aUserLogin, - const RSat::TTextString& aUserPwd, - TUint32& aIapId, - TUint32& aNwId, - TBool& aApnCreated, - const RPacketContext::TProtocolType& aPdpType, - const TDesC8& aLocalAddress ) - { - LOG( SIMPLE, "SATENGINE: CSatApnHandler::GetApnInfoL calling" ) - - - // First check the length of the APN - if ( !aName.Length() ) - { - LOG( SIMPLE, "SATENGINE: CSatApnHandler::GetApnInfoL \ - aName.Length() == 0" ) - User::Leave( KErrNotFound ); - } - - // Format APN - HBufC* formatName = FormatAPN( aName ); - - if ( !formatName ) - { - LOG( SIMPLE, "SATENGINE: CSatApnHandler::GetApnInfoL wrong APN name \ - format" ) - // APN was in false format, leave - User::Leave( KErrArgument ); - } - CleanupStack::PushL( formatName ); - - // Reference params - TUint32 iapId( 0 ); - TUint32 networkId( 0 ); - - // Find if the connection method already exists - // Initialize the flags - TBool found = EFalse; - aApnCreated = EFalse; - - // Create CMManager Session - RCmManager cmManager; - cmManager.OpenLC(); - - // Get the Connection Method list from the open CMManager session - RArray array = RArray( KSatCMGranularity ); - CleanupClosePushL( array ); - - cmManager.ConnectionMethodL( array ); - - // Go through the Connection Method list to find if there is matched one - HBufC* apnCM; - - LOG2( SIMPLE, "SATENGINE: CSatApnHandler::GetApnInfoL, \ - required pdp type is %d", aPdpType ) - - for( TInt i = 0; ( i < array.Count() ) && !found; ++i ) - { - RCmConnectionMethod cm = cmManager.ConnectionMethodL( array[i] ); - - CleanupClosePushL( cm ); - // query the APN of the Connection Method - apnCM = cm.GetStringAttributeL( CMManager::EPacketDataAPName ); - CleanupStack::PushL( apnCM ); - // query the pdpType of the Connection Method - TInt pdpType = cm.GetIntAttributeL( CMManager::EPacketDataPDPType ); - - - if ( ( pdpType == aPdpType ) && ( *apnCM == *formatName ) ) - { - // Found the Connection Method, query the IapId and NwId - LOG( SIMPLE, "SATENGINE: CSatApnHandler::GetApnInfoL, \ - Record found" ) - - // Get IAP Id, Network Id - networkId = cm.GetIntAttributeL( CMManager::ECmNetworkId ); - LOG2( SIMPLE, "SATENGINE: CSatApnHandler::GetApnInfoL, \ - networkId %d", networkId ) - - iapId = cm.GetIntAttributeL( CMManager::ECmIapId ); - LOG2( SIMPLE, "SATENGINE: CSatApnHandler::GetApnInfoL, \ - iapId %d", iapId ) - - found = ETrue; - } - CleanupStack::PopAndDestroy( apnCM ); - CleanupStack::PopAndDestroy( &cm ); - } - - CleanupStack::PopAndDestroy( &array ); - - if ( !found ) - { - // No Connection Method found, insert a new one - - LOG( SIMPLE, "SATENGINE: CSatApnHandler::GetApnInfoL, \ - Record Not found, insert a new one" ) - - TRAPD( insertError, InsertRecordL( *formatName, aUserLogin, - aUserPwd, iapId, networkId, aPdpType, aLocalAddress ) ) - - if ( KErrNone == insertError ) - { - // Insert OK - LOG( NORMAL, "SATENGINE: CSatApnHandler::GetApnInfoL, \ - new record inserted" ) - aApnCreated = ETrue; - } - } - - CleanupStack::PopAndDestroy( &cmManager ); - CleanupStack::PopAndDestroy( formatName ); - - // Set return values - aIapId = iapId; - aNwId = networkId; - - LOG( SIMPLE, "SATENGINE: CSatApnHandler::GetApnInfoL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatApnHandler::DeleteApnL -// ----------------------------------------------------------------------------- -// -void CSatApnHandler::DeleteApnL( TUint32 aApnId ) - { - LOG( SIMPLE, "SATENGINE: CSatApnHandler::DeleteApnL calling" ) - - if ( aApnId ) - { - // Create CMManager Session - RCmManagerExt cmManager; - cmManager.OpenLC(); - - // Get the connection method - RCmConnectionMethodExt cm; - cm = cmManager.ConnectionMethodL( aApnId ); - CleanupClosePushL( cm ); - - cm.DeleteL(); - LOG2( SIMPLE, "SATENGINE: CSatApnHandler::DeleteApnL, \ - delete the connection method %d", aApnId ) - - CleanupStack::PopAndDestroy( &cm ); - CleanupStack::PopAndDestroy( &cmManager ); - } - - LOG( SIMPLE, "SATENGINE: CSatApnHandler::DeleteApnL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatApnHandler::InsertRecordL -// ----------------------------------------------------------------------------- -// -void CSatApnHandler::InsertRecordL( - const TDesC& aReqApn, - const RSat::TTextString& aUserLogin, - const RSat::TTextString& aUserPwd, - TUint32& aIapId, - TUint32& aNwId, - const RPacketContext::TProtocolType aPdpType, - const TDesC8& aLocalAddress ) - { - LOG( SIMPLE, "SATENGINE: CSatApnHandler::InsertRecordL calling" ) - - LOG2( NORMAL, "SATENGINE: CSatApnHandler::InsertRecordL, apn is %S", - &aReqApn ) - - // Create CMManager Session - RCmManagerExt cmManager; - cmManager.OpenLC(); - - // Create a connection method without destination. So when we can find - // the connection method by going through the connection method list. - RCmConnectionMethodExt cm; - cm = cmManager.CreateConnectionMethodL( KUidPacketDataBearerType ); - CleanupClosePushL( cm ); - - // This is shown in GS in Access Point list - cm.SetStringAttributeL( CMManager::ECmName, iUtils.BipApnName() ); - // GPRS connection name - cm.SetStringAttributeL( CMManager::EPacketDataAPName, aReqApn ); - // IPv4 or IPv6 - cm.SetIntAttributeL( CMManager::EPacketDataPDPType, aPdpType ); - - // Set the local IP address (if any) - if ( aLocalAddress.Length() ) - { - LOG2( SIMPLE, "SATENGINE: CSatApnHandler::InsertRecordL, Local addr \ - length: %i", aLocalAddress.Length() ) - cm.SetString8AttributeL( CMManager::EPacketDataPDPAddress, - aLocalAddress ); - } - - cm.SetBoolAttributeL( CMManager::ECmWapIPSecurity, EFalse ); - cm.SetIntAttributeL( CMManager::ECmWapIPWSPOption, - CMManager::ECmWapWspOptionConnectionOriented ); - cm.SetBoolAttributeL( CMManager::EPacketDataDisablePlainTextAuth, EFalse ); - cm.SetBoolAttributeL( CMManager::ECmIFPromptForAuth, EFalse ); - - if ( aUserLogin != KNullDesC ) - { - LOG2( NORMAL, "SATENGINE: CSatApnHandler::InsertRecordL, \ - username is %S", &aUserLogin ) - cm.SetStringAttributeL( CMManager::ECmIFAuthName, aUserLogin ); - - if ( aUserPwd != KNullDesC ) - { - LOG2( NORMAL, "SATENGINE: CSatApnHandler::InsertRecordL, \ - pwd is %S", &aUserPwd ) - cm.SetStringAttributeL( CMManager::ECmIFAuthPass, aUserPwd ); - } - } - - // Update the access point ID for use later. - cm.UpdateL(); - - // Get IAP Id, Network Id - aNwId = cm.GetIntAttributeL( CMManager::ECmNetworkId ); - LOG2( SIMPLE, "SATENGINE: CSatApnHandler::InsertRecordL, \ - Nwid is %d", aNwId ) - - aIapId = cm.GetIntAttributeL( CMManager::ECmIapId ); - LOG2( SIMPLE, "SATENGINE: CSatApnHandler::InsertRecordL, \ - aIpId is %d", aIapId ) - - CleanupStack::PopAndDestroy( &cm ); - CleanupStack::PopAndDestroy( &cmManager ); - - LOG( SIMPLE, "SATENGINE: CSatApnHandler::InsertRecordL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatApnHandler::FormatAPN -// ----------------------------------------------------------------------------- -// -HBufC* CSatApnHandler::FormatAPN( const RSat::TAccessName& - aReqApn ) const - { - LOG( SIMPLE, "SATENGINE: CSatApnHandler::FormatAPN calling" ) - - // Length of the access point name - const TInt accessNameLength( aReqApn.Length() ); - TInt index( 0 ); - - // Format APN coming from SIM. Remove length infos and add dots - // from the requested APN. The APN format is, for example, - // '4Some9accesspnt2fi' and after the format the formatted APN - // should be 'Some.accesspnt.fi' - HBufC* formatApnName = HBufC::New( aReqApn.MaxLength() ); - - if ( formatApnName ) - { - TPtr formApn( formatApnName->Des() ); - - // Indicates is the APN format correct. Can be detected only in loops. - TBool correctFormat( ETrue ); - - // Loop requested APN. The first byte is always the length - for ( index = 0; index < accessNameLength && correctFormat; index++ ) - { - // Next byte is the length of the next label - const TInt length( aReqApn[index] ); - - // Label length cannot be bigger than the length of the APN - if ( ( index + length ) > accessNameLength ) - { - LOG( SIMPLE, "SATENGINE: CSatApnHandler::FormatAPN \ - ( index + length ) > accessNameLength" ) - correctFormat = EFalse; - } - - // Append the label - for ( TInt j = 0; j < length && correctFormat; j++ ) - { - index++; // move to next index - TChar next = aReqApn[index]; - formApn.Append( next ); - } - - // Add dot to APN if not end of APN - if ( accessNameLength > index + 1 ) - { - LOG( SIMPLE, "SATENGINE: CSatApnHandler::FormatAPN \ - accessNameLength > index + 1" ) - formApn.Append( '.' ); - } - } - LOG2( SIMPLE, "SATENGINE: CSatApnHandler::FormatAPN index: %i", index ) - - // Check did we read all characters - if ( !correctFormat || ( index != accessNameLength ) ) - { - // Format was not correct, return zero - formApn.Zero(); - formApn.SetLength( 0 ); - } - else - { - LOG( SIMPLE, "SATENGINE: CSatApnHandler::FormatAPN lower case" ) - // Put characters to lower case - formApn.LowerCase(); - } - - LOG( SIMPLE, "SATENGINE: CSatApnHandler::FormatAPN exiting" ) - } - - return formatApnName; - } - -// ----------------------------------------------------------------------------- -// CSatApnHandler::FindDefaultApL -// ----------------------------------------------------------------------------- -// -TUint32 CSatApnHandler::FindDefaultApL( - const RPacketContext::TProtocolType& aPdpType ) - { - LOG( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL calling" ); - TUint32 defaultIap( 0 ); - TInt pdpType; - TBool isFound( EFalse ); - - // create a network destination - RCmDestination des; - RCmConnectionMethod cm; - - // Create CMManager Session - RCmManager cmManager; - cmManager.OpenL(); - CleanupClosePushL( cmManager ); - - // Get the Connection Method list from the open CMManager session - RArray array( KSatCMGranularity ); - CleanupClosePushL( array ); - - // list all available destinations' id - cmManager.AllDestinationsL( array ); - for( TInt i = 0; ( i < array.Count() ) && !isFound; ++i ) - { - des = cmManager.DestinationL( array[i] ); - CleanupClosePushL( des ); - - if ( CMManager::ESnapPurposeInternet == - des.MetadataL( CMManager::ESnapMetadataPurpose ) ) - { - LOG( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL \ - the fixed destination is identified as 'Internet'" ); - for( TInt j = 0; ( j < des.ConnectionMethodCount() ) && - !isFound; ++j ) - { - cm = des.ConnectionMethodL( j ); - CleanupClosePushL( cm ); - pdpType = cm.GetIntAttributeL( - CMManager::EPacketDataPDPType ); - LOG2( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL \ - current protocol type is %d", pdpType ) - if ( pdpType == aPdpType ) - { - defaultIap = cm.GetIntAttributeL( CMManager::ECmIapId ); - isFound = ETrue; - LOG2( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL \ - default iap had been found %d", defaultIap ) - } - CleanupStack::PopAndDestroy( &cm ); - } - } - CleanupStack::PopAndDestroy( &des ); - } - CleanupStack::PopAndDestroy( &array ); - CleanupStack::PopAndDestroy( &cmManager ); - - if ( !isFound ) - { - LOG( SIMPLE, "SATENGINE: CSatApnHandler: default AP not found" ); - User::Leave( KErrNotFound ); - } - - LOG( SIMPLE, "SATENGINE: CSatApnHandler::FindDefaultApL exit" ) - return defaultIap; - } -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatBIPDataReceiver.cpp --- a/satengine/SatServer/Engine/src/CSatBIPDataReceiver.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,152 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Receiver class for TCP / UDP sockets -* -*/ - - - -// INCLUDE FILES -#include -#include "CSatBIPDataReceiver.h" -#include "CSatBIPGPRSDataChannel.h" -#include "SatLog.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatBIPDataReceiver::CSatBIPDataReceiver -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatBIPDataReceiver::CSatBIPDataReceiver( CSatBIPGPRSDataChannel& aObserver, - RSocket& aSocket, - TBool aIsTcpSocket ) : CActive( EPriorityNormal ), - iObserver( aObserver ), - iSocket( aSocket ), - iReceiveDataLen( 0 ), - iRecvPckg( iReceiveDataLen ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataReceiver::CSatBIPDataReceiver\ - calling-exiting" ) - - iIsTcpSocket = aIsTcpSocket; - - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataReceiver::~CSatBIPDataReceiver -// Destructor -// ----------------------------------------------------------------------------- -// -CSatBIPDataReceiver::~CSatBIPDataReceiver() - { - LOG( SIMPLE, - "SATENGINE: CSatBIPDataReceiver::~CSatBIPDataReceiver calling" ) - // Don't have our own pointers... - LOG( SIMPLE, - "SATENGINE: CSatBIPDataReceiver::~CSatBIPDataReceiver exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataReceiver::RunL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -void CSatBIPDataReceiver::RunL() - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataReceiver::RunL calling" ) - - LOG2( NORMAL, " RunL with error: %i", iStatus.Int() ) - LOG2( NORMAL, " RunL Data received : %i", iRecvBuffer.Length() ) - - // Notify observer - if ( KErrNone == iStatus.Int() ) - { - iObserver.DataReceivedNotificationL( iRecvBuffer ); - } - else - { - iObserver.DataReceiveError( iStatus.Int() ); - } - LOG( SIMPLE, "SATENGINE: CSatBIPDataReceiver::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataReceiver::DoCancel -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -void CSatBIPDataReceiver::DoCancel() - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataReceiver::DoCancel calling" ) - iSocket.CancelRecv(); - LOG( SIMPLE, "SATENGINE: CSatBIPDataReceiver::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataReceiver::ReceiveStoreEmptyNotification -// ----------------------------------------------------------------------------- -// -void CSatBIPDataReceiver::ReceiveStoreEmptyNotificationL() - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataReceiver::ReceiveStoreEmptyNotification\ - calling" ) - // It doesn't matter, if this buffer is empty - iObserver.DataReceivedNotificationL( iRecvBuffer ); - LOG( SIMPLE, "SATENGINE: CSatBIPDataReceiver::ReceiveStoreEmptyNotification\ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataReceiver::StartReceive -// Starts to receive data -// ----------------------------------------------------------------------------- -// -void CSatBIPDataReceiver::StartReceive( TInetAddr& aAddr ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataReceiver::StartReceive calling" ) - - // It may already be active - if ( !IsActive() ) - { - // This is used only with TCP sockets - iReceiveDataLen = 0; - // Remove previously received data - iRecvBuffer.Zero(); - // Check the socket type - if ( iIsTcpSocket ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataReceiver::StartReceive TCP" ) - // Only TCP / Stream socket may receive one or more bytes - iSocket.RecvOneOrMore( iRecvBuffer, 0, iStatus, iRecvPckg ); - } - else - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataReceiver::StartReceive UDP" ) - // Use different receive method with UPD / Datagram socket - // Destination has already been stored in iSocket during - // activation, - // so we don't have to tell it here. - iSocket.RecvFrom( iRecvBuffer, aAddr, 0, iStatus ); - } - SetActive(); - } - LOG( SIMPLE, "SATENGINE: CSatBIPDataReceiver::StartReceive exiting" ) - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatBIPDataSender.cpp --- a/satengine/SatServer/Engine/src/CSatBIPDataSender.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,150 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Sender class for TCP / UDP sockets -* -*/ - - - -// INCLUDE FILES -#include -#include "CSatBIPDataSender.h" -#include "MSatSendDataObserver.h" -#include "SatLog.h" -#include "MSatBIPUtils.h" - -#ifdef ENABLE_SAT_LOGGING -const TUint8 KIpAddressLogSize( 40 ); -#endif - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatBIPDataSender::CSatBIPDataSender -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatBIPDataSender::CSatBIPDataSender( MSatSendDataObserver& aObserver, - RSocket& aSocket, - TBool aIsTcpSocket, - TInt aBufferSize ) : CActive( EPriorityNormal ), - iObserver( aObserver ), - iSocket( aSocket ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataSender::CSatBIPDataSender\ - calling-exiting" ) - - iIsTcpSocket = aIsTcpSocket; - iBufferSize = aBufferSize; - CActiveScheduler::Add( this ); - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataSender::~CSatBIPDataSender -// Destructor -// ----------------------------------------------------------------------------- -// -CSatBIPDataSender::~CSatBIPDataSender() - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataSender::~CSatBIPDataSender calling" ) - // Don't have our own pointers... - LOG( SIMPLE, "SATENGINE: CSatBIPDataSender::~CSatBIPDataSender exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataSender::RunL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -void CSatBIPDataSender::RunL() - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataSender::RunL calling" ) - - LOG2( NORMAL, " RunL with error: %i", iStatus.Int() ) - LOG2( NORMAL, " RunL : %i", iBufferSize ) - TInt errCode( MSatBIPUtils::ESatBIPSuccess ); - - if ( KErrNone != iStatus.Int() ) - { - // Error, setting error code - errCode = MSatBIPUtils::ESatBIPRemoteDeviceNotReachable; - } - - // Notify observer and empty buffer - iObserver.DataSentNotification( errCode, iBufferSize ); - iSendPtr.Zero(); - LOG( SIMPLE, "SATENGINE: CSatBIPDataSender::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataSender::DoCancel -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -void CSatBIPDataSender::DoCancel() - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataSender::DoCancel calling" ) - iSocket.CancelSend(); - LOG( SIMPLE, "SATENGINE: CSatBIPDataSender::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataSender::SendData -// Starts the send process using predefined protocol -// ----------------------------------------------------------------------------- -// -void CSatBIPDataSender::SendData( const TDesC8& aData, TInetAddr& aDest ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataSender::SendData calling" ) - // Copy data into local buffer - iSendPtr.Copy( aData ); - - #ifdef ENABLE_SAT_LOGGING - TBuf addressForLog; - #endif - - #ifdef ENABLE_SAT_LOGGING - aDest.Output( addressForLog ); - LOG2( NORMAL, - "SATENGINE: CSatBIPDataSender::SendData Sending to %S", &addressForLog ) - #endif - - LOG2( NORMAL, " Port number: %i", aDest.Port() ) - LOG2( NORMAL, " Sending %i bytes", aData.Length() ) - if ( !IsActive() ) - { - // Check protocol - if ( iIsTcpSocket ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataSender::SendData TCP" ) - // When using TCP, this request completes when the data is actually - // sent to remote device. - iSocket.Send( iSendPtr, 0, iStatus ); - } - else - { - LOG( SIMPLE, "SATENGINE: CSatBIPDataSender::SendData UDP" ) - // UDP Socket. This request completes almost immediately. - // There is no - // way to be sure that the remote device gets the datagram. - iSocket.SendTo( iSendPtr, aDest, 0, iStatus ); - } - SetActive(); - } - LOG( SIMPLE, "SATENGINE: CSatBIPDataSender::SendData exiting" ) - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatBIPGPRSDataChannel.cpp --- a/satengine/SatServer/Engine/src/CSatBIPGPRSDataChannel.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1692 +0,0 @@ -/* -* Copyright (c) 2002-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: GPRS Data channel for BIP -* -*/ - - -#include -#include -#include -#include -#include // For subconnection events -#include // For extension parameters -#include // TRealFormat -#include -#ifdef SYMBIAN_ENABLE_SPLIT_HEADERS -#include // For KSoUdpRecvBuf contant -#endif -#include "CSatBIPUtils.h" -#include "CSatBIPGPRSDataChannel.h" -#include "SatLog.h" -#include "EnginePanic.h" -#include "CSatBIPDataSender.h" -#include "CSatBIPDataReceiver.h" -#include "MSatSendDataObserver.h" -#include "MSatConnectionObserver.h" -#include "TSatChannelIDInfo.h" -#include "TSatQoSParser.h" -#include "csatbipsubconneventobserver.h" -#include "csatsactivewrapper.h" - -// Required GPRS parameters -const TUint8 KReqGprsQoSParams = 6; -// Required packet protocol type is always 02 for GPRS -> IP Protocol -const TUint8 KReqPacketProtType = 0x02; -// Position of the protocol type in the array -const TUint8 KProtocolPos = 5; -// Lengths of IP address -const TUint8 KIPv4Length = 4; -const TUint8 KIPv6Length = 16; - -#ifdef SAT_USE_DUMMY_TSY -const TUint8 KIpAddressSize( 15 ); -const TUint8 KIpv4Length( 4 ); -const TUint8 KIpv6Length( 16 ); -const TUint8 KIpAddressA( 0 ); -const TUint KIpAddressAValue( 127 ); -const TUint8 KIpAddressB( 1 ); -const TUint KIpAddressBValue( 0 ); -const TUint8 KIpAddressC( 2 ); -const TUint KIpAddressCValue( 0 ); -const TUint8 KIpAddressD( 3 ); -const TUint KIpAddressDValueDestination( 2 ); -const TUint KIpAddressDValueLocal( 3 ); -#endif - -#ifdef ENABLE_SAT_LOGGING -const TUint8 KIpAddressLogSize( 40 ); -#endif - -const TInt KReCheckStatusDelay = 100000; // 100ms -const TInt KMaxAttempts = 20; // 20*100ms= 2s -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -CSatBIPGPRSDataChannel* CSatBIPGPRSDataChannel::NewL( - CSatBIPUtils& aUtils, - RSocketServ& aSocketServer, - TSatChannelIdInfo& aChannelId, - RConnection& aConnection, - RSubConnection& aSubConnection ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::NewL calling" ) - - CSatBIPGPRSDataChannel* self = new( ELeave ) CSatBIPGPRSDataChannel( - aUtils, aSocketServer, aChannelId, aConnection, aSubConnection ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::NewL exiting" ) - return self; - } - -// --------------------------------------------------------------------------- -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -CSatBIPGPRSDataChannel* CSatBIPGPRSDataChannel::NewLC( - CSatBIPUtils& aUtils, - RSocketServ& aSocketServer, - TSatChannelIdInfo& aChannelId, - RConnection& aConnection, - RSubConnection& aSubConnection ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::NewLC calling" ) - - CSatBIPGPRSDataChannel* self = new ( ELeave ) CSatBIPGPRSDataChannel( - aUtils, aSocketServer, aChannelId, aConnection, aSubConnection ); - - CleanupStack::PushL( self ); - self->ConstructL(); - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::NewLC exiting" ) - return self; - } - -// --------------------------------------------------------------------------- -// destructor. -// --------------------------------------------------------------------------- -// -CSatBIPGPRSDataChannel::~CSatBIPGPRSDataChannel() - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::~CSatBIPGPRSDataChannel calling" ) - - // Close sender - delete iSender; - - // Close receiver - delete iReceiver; - - // Close receiver - delete iSubConnEventObserver; - - // Close Socket - iSocket.Close(); - - // Delete buffers - delete iSendStore; - iRcvBuffer.Zero(); - - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::~CSatBIPGPRSDataChannel exiting" ) - } - -// --------------------------------------------------------------------------- -// Sets up connection -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::SetupConnectionL( - const TSatBipConnectionInfo& aConnParams ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::SetupConnectionL calling" ) - - // Allocate Send buffer - iSendStore = HBufC8::NewL( aConnParams.iBufferSize ); - - // Store the rest of connection information - iConnInfo = aConnParams; - - // Define used protocol - iUseTcpProtocol = ( RSat::ETcp == iConnInfo.iProtocol.iTransportProto ); - - // Set connection stage - iConnStage = ESatBIPClosed; - - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::SetupConnectionL exiting" ) - } - -// --------------------------------------------------------------------------- -// Opens the connection -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::ActivateConnectionL( - MSatConnectionObserver* aObserver ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::ActivateConnectionL calling" ) - - TInt errCode( KErrNone ); // errCode - RPacketQoS::TQoSGPRSNegotiated negQoS; // The negotiated QoS - - // If the connection has not been setup or already connecting, leave - if ( ESatBIPClosed != iConnStage ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::ActivateConnectionL \ - ESatBIPClosed != iConnStage" ) - User::Leave( KErrCancel ); - } - - iConnectionObserver = aObserver; - - if ( RSat::EIPv4Address == iConnInfo.iDestination.iType ) - { - LOG( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::ActivateConnectionL\ - Using IPv4" ) - } - else if ( RSat::EIPv6Address == iConnInfo.iDestination.iType ) - { - LOG( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::ActivateConnectionL\ - Using IPv6" ) - } - else - { - LOG( NORMAL, " Unknown IP type" ) - User::Leave( KErrUnknown ); - } - - // Open connection if it is inactive - if ( !iUtils.IsConnectionActivated() ) - { - LOG( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::ActivateConnectionL\ - Connection is inactive, open connection " ) - // Write the primary PDP Context QoS Parameters to CMManager - // before activating the primary PDP Context. - WritePrimaryPDPContextQoSParamsL(); - - // Open sub-session to SocketServer - errCode = iConnection.Open( iSocketServ ); - LOG2( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::ActivateConnectionL\ - RConnection opened with code: %i", errCode ) - User::LeaveIfError( errCode ); - - // Start connection. If there are no override settings, - // use default settings - if ( iConnInfo.iOverrideSet ) - { - LOG( NORMAL, "Starting connection with override settings" ) - TConnPrefList prefList; - TExtendedConnPref extPrefs; - - extPrefs.SetNoteBehaviour( - iConnInfo.iOverrideSet->NoteBehaviour() ); - extPrefs.SetIapId( iConnInfo.iOverrideSet->IapId() ); - prefList.AppendL( &extPrefs ); - - errCode = iConnection.Start( prefList ); - } - else - { - LOG( NORMAL, "Starting connection with default settings" ) - errCode = iConnection.Start(); - } - - LOG2( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::ActivateConnectionL\ - RConnection started with code: %i", errCode ) - User::LeaveIfError( errCode ); - - // Erase the primary PDP Context QoS Parameters from CMManager - WriteDefaultQoSParamsL(); - - // Set Connection activated - iUtils.SetConnectionActivated( ETrue ); - // Make sure the subconnection is inactive. - iUtils.SetSubConnectionActivated( EFalse ); - } - else - { - LOG( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::ActivateConnectionL\ - Connection is active " ) - // Connection is active, open SubConnection if it is inactive - if ( !iUtils.IsSubConnectionActivated() ) - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::\ - ActivateConnectionL SubConnection is inactive, open \ - subconnection" ) - // Open SubConnection - OpenSubConnection(); - } - } - - // Set up QoS values - SetConnQoSParamsL(); - - // Open socket - OpenSocketL(); - - // UDP Socket doesn't need ActiveObject, so we don't have to wait. - if ( !iUseTcpProtocol ) - { - LOG( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::ActivateConnectionL\ - UDP protocol " ) - StartReceiveL(); - iConnStage = ESatBIPConnected; - - // Notify ConnectionObserver - iConnectionObserver->ConnectionNotification( KErrNone ); - } - - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::ActivateConnectionL exiting" ) - } - -// --------------------------------------------------------------------------- -// ends or stores the data. -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::GetNegotiatedQoSParams( - RSat::TBearerParams& aResult ) const - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::NegotiatedQoSParams\ - calling - exiting" ) - aResult = iConnInfo.iBearerParams; - } - -// --------------------------------------------------------------------------- -// Sends or stores the data. -// --------------------------------------------------------------------------- -// -TInt CSatBIPGPRSDataChannel::SendDataL( const TDes8& aData, - const TBool aSendImmediately, - TInt& aFreeBufferSize, - MSatSendDataObserver* aObserver ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::SendDataL calling" ) - - TInt errCode( MSatBIPUtils::ESatBIPSuccess ); - CSatSActiveWrapper* delay = NULL; - TInt numberOfTries( 1 ); - // Check status of connection - TBool suspended( RPacketService::EStatusSuspended == - iUtils.ConnectionStatus() ); - - // Check that does the data fit in buffer - const TInt bufsize( iSendStore->Length() ); - - LOG2( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::SendDataL iSendBuffer size: %i", - bufsize ) - LOG2( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::SendDataL aData size: %i", - aData.Length() ) - if ( suspended ) - { - // for async wait - delay = new ( ELeave ) CSatSActiveWrapper(); - } - - while ( suspended && KMaxAttempts >= numberOfTries ) - { - // In cases of SMS or Call suspend the pdp context, we need to - // evaluate the status of context after a small delay - LOG2( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::SendDataL, wait, %d "\ - , numberOfTries ) - delay->After( KReCheckStatusDelay ); - suspended = RPacketService::EStatusSuspended == iUtils.ConnectionStatus(); - numberOfTries++; - } - - delete delay; - delay = NULL; - - if ( suspended && aSendImmediately ) - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::SendDataL \ - Connection suspended" ) - errCode = MSatBIPUtils::ESatBIPServiceError; - } - else if ( iConnInfo.iBufferSize < ( aData.Length() + bufsize ) ) - { - LOG( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::SendDataL Buffer overflow" ) - errCode = MSatBIPUtils::ESatBIPReqBufSizeNotAvail; - } - else - { - - // Append data to send buffer - TPtr8 ptr = iSendStore->Des(); - ptr.Append( aData ); - - // Send immediately, if required - if ( aSendImmediately ) - { - LOG( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::SendDataL Sending data" ) - - // If Sender object is NULL, create it - if ( !iSender && aObserver ) - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::SendDataL \ - create iSender" ) - iSender = new ( ELeave ) CSatBIPDataSender( - *aObserver, iSocket, iUseTcpProtocol, - iConnInfo.iBufferSize ); - } - - if ( iSender ) - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::SendDataL \ - iSender true" ) - // Send data - iSender->SendData( ptr, iDestAddr ); - - // Remove data from buffer. - iSendStore = HBufC8::NewL( iConnInfo.iBufferSize ); - } - } - } - - // Place the number of bytes of empty space in the buffer to aFreeBufferSize - aFreeBufferSize = ( iConnInfo.iBufferSize - iSendStore->Length() ); - - LOG2( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::SendDataL exiting, \ - errCode: %d", errCode ) - return errCode; - } - -// --------------------------------------------------------------------------- -// Returns the received data in param aData -// --------------------------------------------------------------------------- -// -TInt CSatBIPGPRSDataChannel::ReceiveDataL( TDes8& aData, - const TInt aBytesToRead, TInt& aAvailableBytes ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::ReceiveDataL calling" ) - - TInt errCode( MSatBIPUtils::ESatBIPSuccess ); - - // Number of bytes to return, may not be the same as requested - TInt bytesToReturn( aBytesToRead ); - - const TInt bytesAvail( iRcvBuffer.Length() ); - - // Compare the number of bytes received and the number of bytes requested. - if ( bytesToReturn > bytesAvail ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::ReceiveDataL \ - bytesToReturn > bytesAvail" ) - // There are no requested bytes availabe, we return all we have. - errCode = MSatBIPUtils::ESatBIPReqBufSizeNotAvail; - bytesToReturn = bytesAvail; - } - - LOG2( NORMAL, " ReceiveDataL: Data available for receive: %i", bytesAvail ) - - // Put the data into param aData. - aData = iRcvBuffer.Left( bytesToReturn ); - // Remove read data from receive store - iRcvBuffer.Delete( 0, bytesToReturn ); - // Put the number of unread bytes into param aAvailableBytes. - aAvailableBytes = iRcvBuffer.Length(); - - LOG2( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::ReceiveDataL \ - aAvailableBytes: %d", aAvailableBytes ) - // Notify receiver if store is empty to get the next datagram in UDP sockets - if ( ( 0 == aAvailableBytes ) && iReceiver ) - { - iReceiver->ReceiveStoreEmptyNotificationL(); - } - - LOG2( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::ReceiveDataL exiting. \ - errCode: %d", errCode ) - return errCode; - } - -// --------------------------------------------------------------------------- -// Returns the identifier of this channel -// --------------------------------------------------------------------------- -// -TInt CSatBIPGPRSDataChannel::ChannelId() const - { - LOG2( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::ChannelId calling - exiting,\ - ChannelId: %i", iChannelId.ChannelId() ) - return iChannelId.ChannelId(); - } - -// --------------------------------------------------------------------------- -// Returns the identifier of this channel. This function is used only when -// generating ChannelStatus TLV object -// --------------------------------------------------------------------------- -// -TUint8 CSatBIPGPRSDataChannel::ChannelStatusChannelId() const - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::ChannelStatusChannelId calling" ) - - TUint8 channelId( iChannelId.ShortChannelId() ); - - LOG2( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::ChannelStatusChannelId exiting \ - with channel id: %i", channelId ) - return channelId; - } - -// --------------------------------------------------------------------------- -// Returns the status of this data channel -// --------------------------------------------------------------------------- -// -TInt CSatBIPGPRSDataChannel::Status() const - { - LOG2( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::Status calling - exiting,\ - iChannelStatus: %i", iChannelStatus ) - return iChannelStatus; - } - -// --------------------------------------------------------------------------- -// Closes this data channel -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::CloseChannel() - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::CloseChannel calling" ) - - if ( ESatBIPConnected == iConnStage || - ESatBIPCancelled == iConnStage ) - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::CloseChannel \ - Channel is connected" ) - CancelAll(); - // Close socket - iSocket.Close(); - - iConnStage = ESatBIPClosed; - } - else if ( iConnStage == ESatBIPConnect && - iUseTcpProtocol ) - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::CloseChannel \ - Channel is connecting" ) - // If Channel is connecting and protocol is TCP, - // have to call Cancel instead of CancelAll since this is an active - // object in this situation - Cancel(); - // Close socket - iSocket.Close(); - - iConnStage = ESatBIPClosed; - } - else - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::CloseChannel \ - Channel already closed" ) - } - - // Release channel ID - iChannelId.ReleaseChannel(); - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::CloseChannel exiting" ) - } - -// --------------------------------------------------------------------------- -// Performs cancel actions. -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::CancelAll() - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::CancelAll calling" ) - - // Cancel all activity in sockets - if ( iConnStage == ESatBIPConnected ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::CancelAll \ - iConnStage == ESatBIPConnected" ) - // Cancel sender - if ( iSender ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::CancelAll \ - cancel iSender" ) - iSender->Cancel(); - } - - // Cancel receiver - if ( iReceiver ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::CancelAll \ - cancel iReceiver" ) - iReceiver->Cancel(); - } - - // Cancel all actions - iSocket.CancelAll(); - // Link dropped, when socket cancels all - iChannelStatus = MSatBIPUtils::ESatLinkDropped; - iConnStage = ESatBIPCancelled; - } - else if ( iConnStage == ESatBIPConnect ) - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::CancelAll \ - Cancelling connect" ) - // Cancel connection negotiations - iSocket.CancelConnect(); - iConnStage = ESatBIPCancelled; - } - else - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::CancelAll \ - Channel already cancelled or closed" ) - } - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::CancelAll exiting" ) - } - -// --------------------------------------------------------------------------- -// Returns the status of this data channel -// --------------------------------------------------------------------------- -// -TBool CSatBIPGPRSDataChannel::IsContextActive() const - { - LOG2( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::IsContextActive calling - exiting,\ - return: %d", ESatBIPConnected == iConnStage ) - return ESatBIPConnected == iConnStage; - } - -// --------------------------------------------------------------------------- -// Returns the status of this data channel -// --------------------------------------------------------------------------- -// -const MSatBIPDataChannel::TSatBipConnectionInfo& CSatBIPGPRSDataChannel::ConnInfo() const - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::ConnInfo calling - exiting" ) - return iConnInfo; - } - -// ----------------------------------------------------------------------------- -// CSatBIPGPRSDataChannel::StopUdpSocket -// ----------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::StopUdpSocket() - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::StopUdpSocket calling" ) - - if ( !iUseTcpProtocol ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::StopUdpSocket UDP" ) - iSocket.Close(); - } - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::StopUdpSocket exiting" ) - } - -// --------------------------------------------------------------------------- -// From CActive -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::RunL() - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::RunL calling " ) - - if ( KErrNone == iStatus.Int() ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::RunL \ - KErrNone == iStatus.Int() " ) - // Check connection stage - switch ( iConnStage ) - { - case ESatBIPConnect: - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::RunL \ - Connect OK" ) - - // Start receiving data - StartReceiveL(); - iConnStage = ESatBIPConnected; - // Notify ConnectionObserver - iConnectionObserver->ConnectionNotification( KErrNone ); - break; - } - - case ESatBIPCancelled: - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::RunL \ - Connection Cancelled" ) - // Notify ConnectionObserver - iConnectionObserver->ConnectionNotification( KErrCancel ); - break; - } - - default: - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::RunL default" ) - PanicSatEngine( ESatBIPAccessViolation ); - } - } - } - else - { - // Notify ConnectionObserver with error - iConnectionObserver->ConnectionNotification( iStatus.Int() ); - } - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::RunL exiting " ) - } - -// --------------------------------------------------------------------------- -// DoCancel -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::DoCancel() - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::DoCancel calling" ) - - CancelAll(); - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::DoCancel calling" ) - } - -// --------------------------------------------------------------------------- -// RunError -// --------------------------------------------------------------------------- -// -TInt CSatBIPGPRSDataChannel::RunError( TInt aError ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::RunError calling" ) - - if ( iConnectionObserver ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::RunError \ - iConnectionObserver true" ) - iConnectionObserver->ConnectionNotification( aError ); - } - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::RunError calling" ) - return KErrNone; - } - -// --------------------------------------------------------------------------- -// Stores received data into buffer. -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::DataReceivedNotificationL( const TDesC8& aData ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::DataReceivedNotification calling" ) - - // Check do we have to report data receive - const TInt bufsize( iRcvBuffer.Length() ); -#ifdef ENABLE_SAT_LOGGING - TBuf addressForLog; -#endif - // LOG values - LOG2( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::RunL\ - ReceiveStore length: %i", bufsize ) - - // In UDP context, we can store only one datagram at a time. If there is - // previous datagram in store, we'll have to wait for the UICC to get all - // before storing the netx datagram and to start receive again. If there are - // more than one datagrams pending, they are stored in RSockets queue. - if ( bufsize == 0 || RSat::ETcp == iConnInfo.iProtocol.iTransportProto ) - { -#ifdef ENABLE_SAT_LOGGING - iSourceAddr.Output( addressForLog ); - LOG2( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::RunL\ - Received data length: %i", aData.Length() ) - LOG2( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::RunL\ - Received from address: %S", &addressForLog ) - LOG2( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::RunL\ - Received from port: %i", iSourceAddr.Port() ) -#endif - // Store data, if it fits into store, else, do not receive until store - // is empty. - if ( KSatBIPMinReceiveBufferSize >= ( aData.Length() + bufsize ) ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::\ - DataReceivedNotification store data" ) - iRcvBuffer.Append( aData ); - - // It is possible that aData is empty, because this function - // is called - // every time when SIM gets the final bytes from ReceiveStore. - if ( 0 == bufsize && aData.Length() > 0 ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::DataReceivedNotification \ - aData.Length() > 0" ) - // If the store is empty, send event download - iUtils.DataAvailable( ChannelId(), aData.Length() ); - } - - // Start to receive again. This should never leave, because Receiver - // object is already created. - StartReceiveL(); - } - } - - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::DataReceivedNotification exiting" ) - } - -// --------------------------------------------------------------------------- -// Error while receiving data -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::DataReceiveError( TInt aError ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::DataReceiveError calling" ) - - if ( KErrCancel != aError ) // Don't do anything if cancelled - { - LOG2( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::DataReceiveError\ - Error: %i", aError ) - // Report error - iConnStage = ESatBIPCancelled; - iChannelStatus = MSatBIPUtils::ESatLinkDropped; - iUtils.ChannelStatus( ChannelId(), iChannelStatus ); - } - else - { - // Cancelled - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::DataReceiveError\ - Receive has been cancelled cancelled" ) - } - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::DataReceiveError exiting" ) - } - -// --------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------- -// -CSatBIPGPRSDataChannel::CSatBIPGPRSDataChannel( CSatBIPUtils& aUtils, - RSocketServ& aSocketServer, - TSatChannelIdInfo& aChannelId, - RConnection& aConnection, - RSubConnection& aSubConnection) : - CActive( EPriorityStandard ), - iUtils( aUtils ), - iSocketServ( aSocketServer ), - iChannelId( aChannelId ), - iConnection( aConnection ), - iSubConnection( aSubConnection ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::CSatBIPGPRSDataChannel calling" ) - - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::CSatBIPGPRSDataChannel exiting" ) - } - -// --------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::ConstructL() - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::ConstructL calling" ) - - iChannelStatus = MSatBIPUtils::ESatNoFurtherInformation; - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::ConstructL exiting" ) - } - -// --------------------------------------------------------------------------- -// Opens and connects / binds Socket -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::OpenSocketL() - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL calling" ) - - TInt errCode( KErrNone ); - - // Define Destination address - // Create InetAddress to hold remote device information - LOG2( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - Port from SIM: %d", iConnInfo.iProtocol.iPrtNumber ) - - // Remote server's IP Address -#ifdef SAT_USE_DUMMY_TSY - TBuf8 destAddr( RSat::KPcktAddressMaxSize ); - - // KAfInet or KAfInet6 - if ( RSat::EIPv6Address == iConnInfo.iDestination.iType ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL IPv6" ) - // 0:0:0:0:0:0:0:2 is equivalent to 127, 0, 0, 2 - for ( TInt ndx = 0 ; ndx < KIpAddressSize ; ndx++ ) - { - destAddr[ndx] = 0; - } - destAddr[KIpAddressSize] = KIpAddressDValueDestination; - destAddr.SetLength( KIpv6Length ); - } - else //ipv4 - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL IPv4" ) - destAddr[KIpAddressA] = KIpAddressAValue; - destAddr[KIpAddressB] = KIpAddressBValue; - destAddr[KIpAddressC] = KIpAddressCValue; - destAddr[KIpAddressD] = KIpAddressDValueDestination; - destAddr.SetLength( KIpv4Length ); - } - iDestAddr = DestAddress( destAddr ); -#else - iDestAddr = DestAddress( iConnInfo.iDestination.iAddress ); -#endif // SAT_USE_DUMMY_TSY - - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - Complete defining destination address" ) - - iSourceAddr = iDestAddr; - - TUint socketType( KSockStream ); - TUint protocol( KProtocolInetTcp ); - - // Check is it UDP or TCP - if ( !iUseTcpProtocol ) - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - Opening UDP datagram socket" ) - socketType = KSockDatagram; - protocol = KProtocolInetUdp; - } - else - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - Opening TCP stream socket" ) - } - - // Open socket - if ( iUtils.IsSubConnectionActivated() ) - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - using subconnection" ) - errCode = iSocket.Open( iSocketServ, KAfInet, socketType, - protocol, iSubConnection ); - } - else - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - using connection" ) - errCode = iSocket.Open( iSocketServ, KAfInet, socketType, - protocol, iConnection ); - } - - // Check socket activation - LOG2( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - Socket opened with code: %i", errCode ) - User::LeaveIfError( errCode ); - - // Define local address. Local port is obtained automatically - TInetAddr localAddress( KInetPortAny ); - -#ifdef SAT_USE_DUMMY_TSY - // win2000 doesn't support IPv6, so force to IPv4 - localAddress.SetFamily( KAfInet ); - // KAfInet or KAfInet6 - if ( RSat::EIPv6Address == iConnInfo.iDestination.iType ) - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - IPv6" ) - // 0:0:0:0:0:0:0:3 is equivalent to 127, 0, 0, 3 - TIp6Addr ip6Adrr; - - for ( TInt index = 0 ; index < KIpAddressSize ; index++ ) - { - ip6Adrr.u.iAddr8[index] = 0; - } - - ip6Adrr.u.iAddr8[KIpAddressSize] = KIpAddressDValueLocal; - localAddress.SetAddress( ip6Adrr ); - } - else //ipv4 - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - IPv4" ) - localAddress.SetAddress( INET_ADDR( - KIpAddressAValue, - KIpAddressBValue, - KIpAddressCValue, - KIpAddressDValueLocal ) ); - } -#else - // Check does the SIM provide a local address - if ( 0 < iConnInfo.iSource.iAddress.Length() ) - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - Setting pre-defined local address" ) - localAddress = DestAddress( iConnInfo.iSource.iAddress ); - localAddress.SetPort( KInetPortAny ); - } - else - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - Setting automatic local address" ) - // Unspecified. Local address is obtained automatically. - localAddress.SetFamily( KAFUnspec ); - } -#endif - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - Bind local address" ) - errCode = iSocket.Bind( localAddress ); - - // Check what was the response from "Bind" - if ( KErrNone == errCode ) - { - // Set status to indicate that connection attempt ongoing - iConnStage = ESatBIPConnect; - - if ( iUseTcpProtocol ) - { - // Connect the socket - iSocket.Connect( iDestAddr, iStatus ); - SetActive(); - } - else - { - // This option redefines the receive buffer size - iSocket.SetOpt( KSoUdpRecvBuf, KSolInetUdp, - KSatBIPMinReceiveBufferSize ); - // Connect the socket - iSocket.Connect( iDestAddr, iStatus ); - // UDP sockets dont need active object - User::WaitForRequest( iStatus ); - LOG2( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - UDP Socket connect status %i", iStatus.Int() ) - } - } - else - { - // Send Terminal Response indicating that static address allocation - // could not be done (KErrNotFound) or Bind failed for some other - // reason - LOG2( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL\ - Bind error: %i", errCode ) - iConnectionObserver->ConnectionNotification( errCode ); - } - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::OpenSocketL exiting" ) - } - -// --------------------------------------------------------------------------- -// Opens SubConnection and attaches socket into it -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::OpenSubConnection() - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::OpenSubConnection calling" ) - - TInt errCode( KErrNone ); - - // Create SubConnection. This is mandatory for multiple PDP Context support - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSubConnection\ - Opening Sub-connection" ) - - errCode = iSubConnection.Open( iSocketServ, RSubConnection::ECreateNew, - iConnection ); - - LOG2( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSubConnection\ - RSubConnection opened with code: %i", errCode ) - - if ( KErrNone != errCode ) - { - // No subconnections, Affects on sockets - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSubConnection\ - RSubConnection is opened incorrectly" ) - iSubConnection.Close(); - iUtils.SetSubConnectionActivated( EFalse ); - } - else - { - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::OpenSubConnection\ - RSubConnection is opened correctly" ) - iUtils.SetSubConnectionActivated( ETrue ); - } - - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::OpenSubConnection exiting" ) - } - -// --------------------------------------------------------------------------- -// Sets QoS parameters to active SubConnection -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::SetSubConQoSParamsL() - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::SetSubConQoSParamsL calling" ) - - const TInt paramLength( iConnInfo.iBearerParams.Length() ); - TInt errCode( KErrNone ); - - LOG2( NORMAL, " QoS Parameters length: %i", paramLength ) - - // GPRS requires 6 parameters from SIM - if ( KReqGprsQoSParams == paramLength ) - { - // Check that is packet protocol valid, ie. IP protocol - if ( KReqPacketProtType != iConnInfo.iBearerParams[KProtocolPos] ) - { - LOG( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::SetSubConQoSParamsL\ - Requested packet protocol is not valid" ) - User::Leave( KErrNotSupported ); - } - } - else - { - LOG( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::SetSubConQoSParamsL\ - Requested packet protocol is valid, not support" ) - User::Leave( KErrNotSupported ); - } - - // Creating and setting properties for a sub-connection - // Create a parameter bundle and add to the cleanup stack - RSubConParameterBundle parameterBundle; - CleanupClosePushL( parameterBundle ); - - // Create a family owned by parameterBundle - CSubConParameterFamily* parameterFamily = - CSubConParameterFamily::NewL( parameterBundle, KSubConQoSFamily ); - - // Create extension paramset(Rel5) owned by parameterFamily - CSubConQosR5ParamSet* requestedQoSRel5 = - CSubConQosR5ParamSet::NewL( *parameterFamily, - CSubConParameterFamily::ERequested ); - - if( requestedQoSRel5 ) - { - RPacketQoS::TQoSGPRSRequested reqQoS; - TSatQoSParser::GetRequestedQoSValues( iConnInfo.iBearerParams, - reqQoS ); - TSatQoSParser::TQoSRel5 qosRel5 = TSatQoSParser::ConvertQoS( reqQoS ); - // Set some requested QoS values - requestedQoSRel5->SetTrafficClass( - static_cast( qosRel5.iTrafficClass ) ); - requestedQoSRel5->SetTrafficHandlingPriority( - static_cast( - qosRel5.iTrafficHandlingPriority ) ); - requestedQoSRel5->SetSDUErrorRatio( - static_cast( qosRel5.iSduErrorRatio ) ); - requestedQoSRel5->SetResidualBitErrorRatio( - static_cast( qosRel5.iResidualBer ) ); - requestedQoSRel5->SetErroneousSDUDelivery( - static_cast( - qosRel5.iDeliveryErroneousSdu ) ); - requestedQoSRel5->SetMaxBitrateUplink( qosRel5.iMaxBitRate ); - requestedQoSRel5->SetMaxBitrateDownlink( qosRel5.iMaxBitRate ); - requestedQoSRel5->SetMaxSduSize( qosRel5.iMaximumSDUSize ); - requestedQoSRel5->SetDeliveryOrder( - static_cast( qosRel5.iDeliveryOrder ) ); - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::SetSubConQoSParamsL\ - Setting requested QoS values for subconn" ) - - // Start observing granted event. - if( !iSubConnEventObserver ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::SetSubConQoSParamsL\ - iSubConnEventObserver false" ) - iSubConnEventObserver = - new ( ELeave ) CSatBIPSubConnEventObserver( *this ); - } - iSubConnEventObserver->StartObservSubConnEvent(); - - // Set parameters - errCode = iSubConnection.SetParameters( parameterBundle ); - LOG2( NORMAL, - "SATENGINE: CSatBIPGPRSDataChannel::SetSubConQoSParamsL\ - calling iSubConnection.SetParameters (parameterBundle) = %d", - errCode ) - } - else - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::SetSubConQoSParamsL\ - Can't create CSubConQosR5ParamSet" ) - errCode = KErrNotSupported; - } - - // Pop and close parameterBundle - CleanupStack::PopAndDestroy(); - - User::LeaveIfError( errCode ); - - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::SetSubConQoSParamsL exiting" ) - } - -// --------------------------------------------------------------------------- -// Starts to receive data from Socket -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::StartReceiveL() - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::StartReceiveL calling" ) - - // If receiver is NULL, create it - if ( NULL == iReceiver ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::StartReceiveL \ - create iReceiver" ) - iReceiver = new ( ELeave ) CSatBIPDataReceiver( - *this, iSocket, iUseTcpProtocol ); - } - - // Tell receiver to start receive - iReceiver->StartReceive( iSourceAddr ); - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::StartReceiveL exiting" ) - } - -// --------------------------------------------------------------------------- -// Defines address -// --------------------------------------------------------------------------- -// -TInetAddr CSatBIPGPRSDataChannel::DestAddress( const TPtrC8& aAddr ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::DestAddress calling" ) - - TInetAddr destinationAddress; - - const TInt addLength( aAddr.Length() ); - LOG2( NORMAL, " Address length is %i", addLength ) - -#ifdef ENABLE_SAT_LOGGING - TBuf addressForLog; -#endif - // Check IPv4 address - if ( KIPv4Length == addLength ) - { - TInt index = 0; - TUint8 first( aAddr[index++] ); - TUint8 second( aAddr[index++] ); - TUint8 third( aAddr[index++] ); - TUint8 fourth( aAddr[index++] ); - - // This macro creates IPAddress into TUint32 format. - //lint -e{1924} Problem inside epoc macro, nothing to do. - destinationAddress = TInetAddr( INET_ADDR( first, second, third, fourth ), - iConnInfo.iProtocol.iPrtNumber ); - destinationAddress.SetFamily( KAfInet ); -#ifdef ENABLE_SAT_LOGGING - destinationAddress.Output( addressForLog ); - LOG2( NORMAL, " Using IPv4, Address is %S", &addressForLog ) -#endif - } - // Check IPv6 address - else if ( KIPv6Length == addLength ) - { - TIp6Addr ip6Adrr; - for ( TInt index = 0 ; index < addLength ; index++ ) - { - ip6Adrr.u.iAddr8[index] = aAddr[index]; - } - - destinationAddress = TInetAddr( ip6Adrr, iConnInfo.iProtocol.iPrtNumber ); - destinationAddress.SetFamily( KAfInet6 ); -#ifdef ENABLE_SAT_LOGGING - destinationAddress.Output( addressForLog ); - LOG2( NORMAL, " Using IPv6, Address is %S", &addressForLog ) -#endif -#ifdef SAT_USE_DUMMY_TSY - // Using Dummy TSY, overwriting IPv6 address to IPv4 since - // Windows 2000 doesn't support IPv6 - destinationAddress.ConvertToV4(); - destinationAddress.SetFamily( KAfInet ); -#ifdef ENABLE_SAT_LOGGING - destinationAddress.Output( addressForLog ); - LOG2( NORMAL, " Converted IPv6 address to IPv4,\ - Address is %S", &addressForLog ) -#endif - destinationAddress.SetAddress( INET_ADDR( - KIpAddressAValue, - KIpAddressBValue, - KIpAddressCValue, - KIpAddressDValueDestination ) ); -#ifdef ENABLE_SAT_LOGGING - destinationAddress.Output( addressForLog ); - LOG2( NORMAL, " Overwrited IPv4 localhost,\ - Address is %S", &addressForLog ) -#endif -#endif //SAT_USE_DUMMY_TSY - } - else // Invalid IP address length - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::DestAddress \ - invalid IP address" ) - destinationAddress = TInetAddr( 0 , 0 ); - destinationAddress.SetFamily( KAFUnspec ); - } - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::DestAddress exiting" ) - return destinationAddress; - } - -// --------------------------------------------------------------------------- -// Write Primary PDP Context QoS parameters to RCmManager -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::WritePrimaryPDPContextQoSParamsL() - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::WritePrimaryPDPContextQoSParamsL \ - calling" ) - - if ( iConnInfo.iOverrideSet ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::WritePrimaryPDPContextQoSParamsL \ - iConnInfo.iOverrideSet true" ) - - TUint32 iapId( iConnInfo.iOverrideSet->IapId() ); - LOG2( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::WritePrimaryPDPContextQoSParamsL \ - IAP id = %d", iapId ) - - RPacketQoS::TQoSGPRSRequested reqQoS; - TSatQoSParser::GetRequestedQoSValues( iConnInfo.iBearerParams, - reqQoS ); - TSatQoSParser::TQoSRel5 qosRel5 = TSatQoSParser::ConvertQoS( reqQoS ); - - RCmManager cmManager; - cmManager.OpenLC(); - - RCmConnectionMethod cm = cmManager.ConnectionMethodL( iapId ); - CleanupClosePushL( cm ); - - // Requested traffic class. - // Type of application for which the UMTS bearer service is optimised - cm.SetIntAttributeL( CMManager::EGPRSReqTrafficClass, - qosRel5.iTrafficClass ); - LOG2( SIMPLE, " EGPRSReqTrafficClass: 0x%x", - qosRel5.iTrafficClass ) - - // Requested traffic handling priority. - // Specifies the relative importance for handling of all SDUs belonging - // to the UMTS bearer compared to the SDUs of other bearers. - cm.SetIntAttributeL( CMManager::EGPRSReqTrafficHandlingPriority, - qosRel5.iTrafficHandlingPriority ); - LOG2( SIMPLE, " EGPRSReqTrafficHandlingPriority: 0x%x", - qosRel5.iTrafficHandlingPriority ) - - // Requested target SDU error ratio. - // Indicates the fraction of SDUs lost or detected as erroneous. - cm.SetIntAttributeL( CMManager::EGPRSReqSDUErrorRatio, - qosRel5.iSduErrorRatio ); - LOG2( SIMPLE, " EGPRSReqSDUErrorRatio: 0x%x", - qosRel5.iSduErrorRatio ) - - // Requested target Bit error ratio. - // Indicates the undetected bit error ratio in the delivered SDU. - cm.SetIntAttributeL( CMManager::EGPRSReqBER, - qosRel5.iResidualBer); - LOG2( SIMPLE, " EGPRSReqBER: 0x%x", - qosRel5.iResidualBer ) - - // Requested value for erroneous SDU delivery. - // Indicates whether SDUs detected as erroneous shall be - // delivered or discarded - cm.SetIntAttributeL( CMManager::EGPRSReqDeliverErroneousSDU, - qosRel5.iDeliveryErroneousSdu ); - LOG2( SIMPLE, " EGPRSReqDeliverErroneousSDU: 0x%x", - qosRel5.iDeliveryErroneousSdu ) - - // Requested maximum bit rates on downlink. - cm.SetIntAttributeL( CMManager::EGPRSReqMaxDownlinkRate, - qosRel5.iMaxBitRate ); - LOG2( SIMPLE, " EGPRSReqMaxDownlinkRate: 0x%x", - qosRel5.iMaxBitRate ) - - // Requested maximum bit rates on uplink - cm.SetIntAttributeL( CMManager::EGPRSReqMaxUplinkRate, - qosRel5.iMaxBitRate ); - LOG2( SIMPLE, " EGPRSReqMaxUplinkRate: 0x%x", - qosRel5.iMaxBitRate ) - - // Request maximum SDU size. - // The maximum SDU size for which the network shall - // satisfy the negotiated QoS - cm.SetIntAttributeL( CMManager::EGPRSReqMaxSDUSize, - qosRel5.iMaximumSDUSize ); - LOG2( SIMPLE, " EGPRSReqMaxSDUSize: 0x%x", - qosRel5.iMaximumSDUSize ) - - // Requested value for sequential SDU delivery. - // Indicates whether the UMTS bearer shall provide - // in-sequence SDU delivery or not. - cm.SetIntAttributeL( CMManager::EGPRSReqDeliveryOrder, - qosRel5.iDeliveryOrder ); - LOG2( SIMPLE, " EGPRSReqDeliveryOrder: 0x%x", - qosRel5.iDeliveryOrder ) - - cm.UpdateL(); - - CleanupStack::PopAndDestroy( &cm ); - CleanupStack::PopAndDestroy( &cmManager ); - } - - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::WritePrimaryPDPContextQoSParamsL \ - exiting" ) - } - -// --------------------------------------------------------------------------- -// Write default QoS Parameters to RCmManager -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::WriteDefaultQoSParamsL() - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::WriteDefaultQoSParamsL \ - calling" ) - - if ( iConnInfo.iOverrideSet ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::WriteDefaultQoSParamsL \ - iConnInfo.iOverrideSet true" ); - TUint32 iapId( iConnInfo.iOverrideSet->IapId() ); - LOG2( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::WriteDefaultQoSParamsL \ - IAP id = %d", iapId ) - - RCmManager cmManager; - cmManager.OpenLC(); - - RCmConnectionMethod cm = cmManager.ConnectionMethodL( iapId ); - CleanupClosePushL( cm ); - - cm.SetIntAttributeL( CMManager::EGPRSReqTrafficClass, - RPacketQoS::ETrafficClassUnspecified ); - - cm.SetIntAttributeL( CMManager::EGPRSReqTrafficHandlingPriority, - RPacketQoS::ETrafficPriorityUnspecified ); - - cm.SetIntAttributeL( CMManager::EGPRSReqSDUErrorRatio, - RPacketQoS::ESDUErrorRatioUnspecified ); - - cm.SetIntAttributeL( CMManager::EGPRSReqBER, - RPacketQoS::EBERUnspecified ); - - cm.SetIntAttributeL( CMManager::EGPRSReqDeliverErroneousSDU, - RPacketQoS::EErroneousSDUDeliveryUnspecified ); - - cm.SetIntAttributeL( CMManager::EGPRSReqMaxDownlinkRate, 0 ); - - cm.SetIntAttributeL( CMManager::EGPRSReqMaxUplinkRate, 0 ); - - cm.SetIntAttributeL( CMManager::EGPRSReqMaxSDUSize, 0 ); - - cm.SetIntAttributeL( CMManager::EGPRSReqDeliveryOrder, - RPacketQoS::EDeliveryOrderUnspecified ); - - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::WriteDefaultQoSParamsL \ - set default QoS params" ); - - cm.UpdateL(); - - CleanupStack::PopAndDestroy( &cm ); - CleanupStack::PopAndDestroy( &cmManager ); - } - - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::WriteDefaultQoSParamsL \ - exiting" ) - } - -// --------------------------------------------------------------------------- -// Set QoS for connection or subconnection -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::SetConnQoSParamsL() - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::SetConnQoSParamsL calling" ) - - RPacketQoS::TQoSGPRSNegotiated negQoS; // The negotiated QoS - - // If using Dummy TSY, set the negotiated QoS directly by hard-codes, - // otherwise, fetch negotiated QoS for primary context(by ETel API), set QoS - // for secondary context. -#ifdef SAT_USE_DUMMY_TSY - // Set the negotiated QoS directly if using Dummy TSY - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::ActivateConnectionL\ - don't need to set qos for dummy tsy" ) - negQoS.iPrecedence = RPacketQoS::EPriorityHighPrecedence; - negQoS.iDelay = RPacketQoS::EDelayClass4; - negQoS.iReliability = RPacketQoS::EReliabilityClass3; - negQoS.iPeakThroughput = RPacketQoS::EPeakThroughput256000; - negQoS.iMeanThroughput = RPacketQoS::EUnspecifiedMeanThroughput; - TSatQoSParser::GetNegotiatedQoSValues( negQoS, iConnInfo.iBearerParams ); - // Set last bearer param to IP Protocol - iConnInfo.iBearerParams[KProtocolPos] = KReqPacketProtType; -#else // Set QoS for channels - if ( iUtils.IsSubConnectionActivated() ) - { - // Set QoS params, granted QoS will be fetched after connected - LOG( NORMAL, "SATENGINE: CSatBIPGPRSDataChannel::ActivateConnectionL\ - Set QoS values for SubConnection" ) - SetSubConQoSParamsL(); - } - else - { - // Primary PDP Context need to be fetched by ETel API - RPacketQoS::TQoSGPRSRequested reqQoS; - TSatQoSParser::GetRequestedQoSValues( iConnInfo.iBearerParams, - reqQoS ); - negQoS = iUtils.ProposeQoSParametersL( reqQoS ); - TSatQoSParser::GetNegotiatedQoSValues( negQoS, - iConnInfo.iBearerParams ); - // Set last bearer param to IP Protocol - iConnInfo.iBearerParams[KProtocolPos] = KReqPacketProtType; - } -#endif - - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::SetConnQoSParamsL exiting" ) - } - -// --------------------------------------------------------------------------- -// GetSubConQoSR5ParamsFromEvent -// --------------------------------------------------------------------------- -// -TInt CSatBIPGPRSDataChannel::GetSubConQoSR5ParamsFromEvent( - CSubConNotificationEvent& aEvent, - TSatQoSParser::TQoSRel5& aNegQoSRel5 ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::GetSubConQoSR5ParamsFromEvent \ - calling" ) - TInt errCode( KErrNone ); - - CSubConGenEventParamsGranted* grantedEvent = - static_cast( &aEvent ); - - TInt extSetNum = grantedEvent->GetNumExtensionSets(); - LOG2( NORMAL, - "SATENGINE: GetSubConQoSR5ParamsFromEvent extSetNum :%d ", extSetNum ) - - const CSubConExtensionParameterSet* grantedExtParams = - grantedEvent->GetExtensionSet( extSetNum-1 ); - - if ( grantedExtParams ) - { - CSubConQosR5ParamSet* paramSet; - paramSet = ( CSubConQosR5ParamSet* )grantedExtParams; - - if ( paramSet ) - { - aNegQoSRel5.iTrafficClass = paramSet->GetTrafficClass(); - aNegQoSRel5.iTrafficHandlingPriority = - paramSet->GetTrafficHandlingPriority(); - aNegQoSRel5.iSduErrorRatio = paramSet->GetSDUErrorRatio(); - aNegQoSRel5.iResidualBer = paramSet->GetResidualBitErrorRatio(); - aNegQoSRel5.iDeliveryErroneousSdu = - paramSet->GetErroneousSDUDelivery(); - aNegQoSRel5.iMaxBitRate = Max( paramSet->GetMaxBitrateUplink(), - paramSet->GetMaxBitrateDownlink() ); - aNegQoSRel5.iMaximumSDUSize = paramSet->GetMaxSduSize(); - aNegQoSRel5.iDeliveryOrder = paramSet->GetDeliveryOrder(); - - LOG2( SIMPLE, "Negotiated TrafficClass: %d", - aNegQoSRel5.iTrafficClass ) - LOG2( SIMPLE, "Negotiated TrafficHandlingPriority: %d", - aNegQoSRel5.iTrafficHandlingPriority ) - LOG2( SIMPLE, "Negotiated SDUErrorRatio: %d", - aNegQoSRel5.iSduErrorRatio ) - LOG2( SIMPLE, "Negotiated ResidualBitErrorRatio: %d", - aNegQoSRel5.iResidualBer ) - LOG2( SIMPLE, "Negotiated ErroneousSDUDelivery: %d", - aNegQoSRel5.iDeliveryErroneousSdu ) - LOG2( SIMPLE, "Negotiated Maxbitrate: %d", - aNegQoSRel5.iMaxBitRate ) - LOG2( SIMPLE, "Negotiated MaximumSDUSize: %d", - aNegQoSRel5.iMaximumSDUSize ) - LOG2( SIMPLE, "Negotiated DeliveryOrder: %d", - aNegQoSRel5.iDeliveryOrder ) - } - else - { - LOG( NORMAL, "SATENGINE: GetSubConQoSR5ParamsFromEvent\ - Can't get CSubConQosR5ParamSet " ) - errCode = KErrNotSupported; - } - } - else - { - LOG( NORMAL, "SATENGINE: GetSubConQoSR5ParamsFromEvent\ - Can't get granted CSubConExtensionParameterSet " ) - errCode = KErrNotSupported; - } - - LOG2( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::GetSubConQoSR5ParamsFromEvent \ - exiting, errCode: %d", errCode ) - return errCode; - } - -// --------------------------------------------------------------------------- -// GrantedEventReceivedL -// --------------------------------------------------------------------------- -// -void CSatBIPGPRSDataChannel::GrantedEventReceivedL( - const TNotificationEventBuf& aEventBuffer ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::GrantedEventReceivedL calling" ) - TInt errCode( KErrNone ); - RPacketQoS::TQoSGPRSNegotiated negQoS; - - // Exacting information from receieved events - CSubConNotificationEvent* event = - CSubConNotificationEvent::NewL( aEventBuffer ); - - if ( KSubConnGenericEventsImplUid == event->GroupId() ) - { - LOG( NORMAL, "SATENGINE: GrantedEventReceivedL \ - event->GroupId() == KSubConnGenericEventsImplUid" ) - TSatQoSParser::TQoSRel5 negQoSRel5; - - switch ( event->Id() ) - { - case KSubConGenericEventParamsGranted: - { - LOG( NORMAL, - "SATENGINE: GrantedEventReceivedL Request granted" ) - - // Get the granted param set from event - errCode = GetSubConQoSR5ParamsFromEvent( *event, negQoSRel5 ); - LOG2( NORMAL, - "SATENGINE: GetSubConQoSR5ParamsFromEvent errCode %d ", - errCode ) - User::LeaveIfError( errCode ); - break; - } - case KSubConGenericEventParamsRejected: - { - LOG( NORMAL, - "SATENGINE: GrantedEventReceivedL Request Rejected" ) - - CSubConGenEventParamsRejected* rejectedEvent = - static_cast( event ); - errCode = rejectedEvent->Error(); - - LOG2( NORMAL, - "SATENGINE: GrantedEventReceivedL\ - rejectedEvent->Error() = %d", errCode ) - User::LeaveIfError( errCode ); - break; - } - default: - { - LOG( NORMAL, - "SATENGINE: GrantedEventReceivedL. EventId \ - not in KSubConGenericEventParamsRejected/Granted " ) - // Do nothing - break; - } - } - // convert negQoSRel5 to negQoS - negQoS = TSatQoSParser::ConvertNegotiatedQoS( negQoSRel5 ); - - TSatQoSParser::GetNegotiatedQoSValues( negQoS, - iConnInfo.iBearerParams ); - - // Set last bearer param to IP Protocol - iConnInfo.iBearerParams[KProtocolPos] = KReqPacketProtType; - } - - LOG( SIMPLE, - "SATENGINE: CSatBIPGPRSDataChannel::GrantedEventReceivedL exiting" ) - } - -// --------------------------------------------------------------------------- -// Returns sub connection -// --------------------------------------------------------------------------- -// -RSubConnection& CSatBIPGPRSDataChannel::SubConnection() const - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::SubConnection\ - calling - exiting" ) - return iSubConnection; - } - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatBIPUtils.cpp --- a/satengine/SatServer/Engine/src/CSatBIPUtils.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,937 +0,0 @@ -/* -* Copyright (c) 2002-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: Utility class for BIP -* -*/ - - -#include -#include -#include "SatLog.h" -#include "CSatBIPUtils.h" -#include "CSatBIPGPRSDataChannel.h" -#include "csatbipconnectionobserver.h" -#include "MSatBIPDataChannel.h" -#include "MSatBIPChannelStatusObserver.h" -#include "MSatBIPDataAvailableObserver.h" -//lint -e766 Used inside TRAP macro, lint misfunction. -#include "EnginePanic.h" -#include "TSatChannelIDInfo.h" -#include "MSatUtils.h" -#include "CSatApnHandler.h" -#include "csatsactivewrapper.h" -#include "msatmultimodeapi.h" - -const TInt KPDPContextPos( 7 ); -const TInt KMaxAvailChannels( 7 ); -const TInt8 KProposeQoSParametersPop( 2 ); - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -CSatBIPUtils* CSatBIPUtils::NewL( MSatUtils& aUtils ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::NewL calling" ) - - CSatBIPUtils* self = new ( ELeave ) CSatBIPUtils( aUtils ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::NewL exiting" ) - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CSatBIPUtils::~CSatBIPUtils() - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::~CSatBIPUtils calling" ) - - // Close all data channels - if ( iDataChannels ) - { - iDataChannels->ResetAndDestroy(); - } - delete iDataChannels; - - if ( iChannelIds ) - { - iChannelIds->ResetAndDestroy(); - } - delete iChannelIds; - - delete iChannelId; - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::~CSatBIPUtils\ - Close connection and subconnection" ) - iSubConnection.Close(); - iConnection.Close(); - iSocketServer.Close(); - iPacketService.Close(); - - delete iApnHandler; - - if ( iWrapper ) - { - iWrapper->CancelWrapper(); - delete iWrapper; - iWrapper = NULL; - } - - if ( iConnObserver ) - { - iConnObserver->Cancel(); - delete iConnObserver; - iConnObserver = NULL; - } - - iDataAvailableObserver = NULL; - iChannelStatusObserver = NULL; - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::~CSatBIPUtils exiting" ) - } - -// --------------------------------------------------------------------------- -// Handles event -// --------------------------------------------------------------------------- -// -void CSatBIPUtils::Event( TInt aEvent ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::Event calling" ) - - // Check event - if ( MSatUtils::ECommandCancelled == aEvent || - MSatUtils::ECancelledUsingEndKey == aEvent ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::Event check event" ) - if ( iDataChannels ) - { - const TInt channelCount( iDataChannels->Count() ); - LOG2( SIMPLE, "SATENGINE: CSatBIPUtils::Event channelCount: %d", - channelCount ) - // Cancel all channels - for ( TInt index = 0; index < channelCount; index++ ) - { - MSatBIPDataChannel* channel = iDataChannels->At( index ); - __ASSERT_ALWAYS( channel, - PanicSatEngine( ESatEngineNullPointer ) ); - channel->CancelAll(); - } - } - } - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::Event exiting" ) - } - -// --------------------------------------------------------------------------- -// Creates new data channel -// --------------------------------------------------------------------------- -// -MSatBIPDataChannel* CSatBIPUtils::CreateChannelL( - const TSatBearerType aBearerType, TInt& aErrCode ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::CreateChannelL calling" ) - - TInt errCode( MSatBIPUtils::ESatBIPNoChannelAvail ); - MSatBIPDataChannel* channel = NULL; - - // Get available channel ID - TSatChannelIdInfo* channelId( AvailableChannelID() ); - - // Check is the channel available - if ( channelId ) - { - // Create the right type of data channel - if ( MSatBIPUtils::ESatGPRS == aBearerType ) - { - LOG( NORMAL, - "SATENGINE: CSatBIPUtils::CreateChannelL ESatGPRS" ) - // New GPRS data channel - channel = CSatBIPGPRSDataChannel::NewLC( *this, iSocketServer, - *channelId, iConnection, iSubConnection ); - // Reserve channel ID - channelId->ReserveChannel(); - // Add data channel to list - iDataChannels->AppendL( channel ); - // Remove from CleanupStack - CleanupStack::Pop( /* channel */ ); - // Return code - errCode = MSatBIPUtils::ESatBIPSuccess; - -#ifndef SAT_USE_DUMMY_TSY - // Start connection observer - if ( !iConnObserver ) - { - LOG( NORMAL, " Starting connection observer" ) - iConnObserver = - new ( ELeave ) CSatBIPConnectionObserver( *this ); - iConnObserver->StartObserver(); - } -#endif - } - else - { - // Others that GPRS are not yet supported - LOG( NORMAL, - "SATENGINE: CSatBIPUtils::CreateChannelL Not supported" ) - errCode = MSatBIPUtils::ESatBIPNoChannelAvail; - } - } - else - { - // Channel IDs not available - LOG( NORMAL, - "SATENGINE: CSatBIPUtils::CreateChannelL Not available" ) - errCode = MSatBIPUtils::ESatBIPNoChannelAvail; - } - - // Assign completion code - aErrCode = errCode; - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::CreateChannelL exiting" ) - return channel; - } - -// --------------------------------------------------------------------------- -// Closes the data channel -// --------------------------------------------------------------------------- -// -TInt CSatBIPUtils::CloseChannel( const TInt aChannelId ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::CloseChannel calling" ) - - TInt errCode( MSatBIPUtils::ESatBIPChannelIdNotValid ); - - TInt index( 0 ); - TBool channelClosed( EFalse ); - - // Loop the list of data channels and close the correct one. - while ( index < iDataChannels->Count() && !channelClosed ) - { - MSatBIPDataChannel* channel = iDataChannels->At( index ); - __ASSERT_ALWAYS( channel, PanicSatEngine( ESatEngineNullPointer ) ); - - if ( channel->ChannelId() == aChannelId ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::CloseChannel \ - channel->ChannelId() == aChannelId" ) - // Makes next data channel creation possible - iDataChannelActivated = EFalse; - // Channel found, close it and return Success. - channel->CloseChannel(); - // Delete data channel - iDataChannels->Delete( index ); - delete channel; - errCode = MSatBIPUtils::ESatBIPSuccess; - channelClosed = ETrue; - } - // Goto next channel - index++; - } - LOG2( SIMPLE, "SATENGINE: CSatBIPUtils::CloseChannel index: %d", index ) - - // Free the space left in possible Delete call. - iDataChannels->Compress(); - - // Close connections if there're no active channels - if ( !IsContextActive() ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::CloseChannel\ - Close connection and subconnection" ) - iSubConnection.Close(); - SetSubConnectionActivated( EFalse ); - iConnection.Close(); - SetConnectionActivated( EFalse ); - - if ( iConnObserver ) - { - iConnObserver->Cancel(); - delete iConnObserver; - iConnObserver = NULL; - } - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::CloseChannel\ - Close iPacketService" ) - iPacketService.Close(); - iPacketServiceActive = EFalse; - } - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::CloseChannel exiting" ) - return errCode; - } - -// --------------------------------------------------------------------------- -// Closes all data channels -// --------------------------------------------------------------------------- -// -void CSatBIPUtils::CloseAllChannels() - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::CloseAllChannels calling" ) - LOG2( SIMPLE, "SATENGINE: CSatBIPUtils::CloseAllChannels \ - channelcount: %d", iChannelIds->Count() ) - // Loop the list of data channels and close the correct one. - for ( TInt i = 0; i < iChannelIds->Count(); i++ ) - { - TSatChannelIdInfo* id = iChannelIds->At( i ); - // If channel is reserved -> Close it - if ( id->IsReserved() ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::CloseAllChannels \ - id->IsReserved()" ) - CloseChannel( id->ChannelId() ); - } - } - - // Close subsession to socket server - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::CloseAllChannels\ - Close connection and subconnection" ) - iSubConnection.Close(); - SetSubConnectionActivated( EFalse ); - iConnection.Close(); - SetConnectionActivated( EFalse ); - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::CloseAllChannels exiting" ) - } - -// --------------------------------------------------------------------------- -// Returns the correct data channel -// --------------------------------------------------------------------------- -// -MSatBIPDataChannel* CSatBIPUtils::DataChannel( const TInt aChannelId, - TInt& aErrCode ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::DataChannel calling" ) - - // If the channel cannot be found, returns channel not valid error code - TInt errCode( MSatBIPUtils::ESatBIPChannelIdNotValid ); - MSatBIPDataChannel* channel = NULL; - TBool found( EFalse ); - TInt index( 0 ); - - // Loop the list of data channels and return the correct one. - while ( index < iDataChannels->Count() && !found ) - { - channel = iDataChannels->At( index ); - __ASSERT_ALWAYS( channel, PanicSatEngine( ESatEngineNullPointer ) ); - // Compare channel ID's - if ( channel->ChannelId() == aChannelId ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::DataChannel \ - channel->ChannelId() == aChannelId" ) - // Channel found - found = ETrue; - if ( channel->IsContextActive() ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::DataChannel \ - IsContextActive" ) - // Channel found and it is active - errCode = MSatBIPUtils::ESatBIPSuccess; - } - else - { - // Channel found but it is closed - errCode = MSatBIPUtils::ESatBIPChannelClosed; - } - } - index++; - } - LOG2( SIMPLE, "SATENGINE: CSatBIPUtils::DataChannel \ - index: %d", index ) - // Assign completion code to param - aErrCode = errCode; - - LOG2( SIMPLE, - "SATENGINE: CSatBIPUtils::DataChannel exiting with return code %d", - errCode ) - return channel; - } - -// --------------------------------------------------------------------------- -// Generates TChannelStatus object -// --------------------------------------------------------------------------- -// -RSat::TChannelStatus CSatBIPUtils::GenerateChannelStatusL( - const TInt aChannelId, TInt aStatus ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::GenerateChannelStatusL calling" ) - - // ChannelStatus's first byte contains channel ID and pdp context status, - // second byte contains information. values can be '00' or '05' - RSat::TChannelStatus channelStatus; - TInt err( MSatBIPUtils::ESatBIPNoChannelAvail ); - - // Used to check the PDP context state - MSatBIPDataChannel* dataChannel = DataChannel( aChannelId, err ); - - // If channel is not active, status is still needed - if ( ESatBIPSuccess == err || ESatBIPChannelClosed == err ) - { - // Generate the first byte - TUint8 channelId( 0 ); // last 3 bits. - TUint8 pdpContext( 0 ); // first bit - TUint8 firstByte( 0 ); // First byte - - // Channel ID. Bits 6 to 8. - channelId = dataChannel->ChannelStatusChannelId(); - - // If PDP Context is active, first bit is 1 - if ( dataChannel->IsContextActive() ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::GenerateChannelStatusL \ - dataChannel IsContextActive" ) - pdpContext = 1 << KPDPContextPos; - } - - // We don't need data channel anymore - dataChannel = NULL; - - // All the information for the first byte is gathered - firstByte = static_cast( pdpContext ^ channelId ); - channelStatus.Append( firstByte ); - // Second byte should go straigth - channelStatus.Append( aStatus ); - // LOG values - LOG2( NORMAL, - "SATENGINE: CSatBIPUtils::GenerateChannelStatusL First byte: %b", - firstByte ) - LOG2( NORMAL, - "SATENGINE: CSatBIPUtils::GenerateChannelStatusL Second byte: %b", - aStatus ) - } - else - { - LOG2( NORMAL, "SATENGINE: CSatBIPUtils::GenerateChannelStatusL \ - Data channel not found: %i", err ) - User::LeaveIfError( KErrNotFound ); - } - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::GenerateChannelStatusL exiting" ) - return channelStatus; - } - -// --------------------------------------------------------------------------- -// Returns the interface reference to APN handler -// --------------------------------------------------------------------------- -// -MSatApnHandler& CSatBIPUtils::ApnHandler() - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::ApnHandler calling" ) - - // Assert, Apn handler cannot be NULL - __ASSERT_ALWAYS( iApnHandler, PanicSatEngine( ESatEngineNullPointer ) ); - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::ApnHandler exiting" ) - return *iApnHandler; - } - -// --------------------------------------------------------------------------- -// Returns the state of the PDP Context -// --------------------------------------------------------------------------- -// -TBool CSatBIPUtils::IsContextActive() - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::IsContextActive calling" ) - - TBool retVal( EFalse ); - TInt index( 0 ); - - // Loop the list of data channels and end if active channel is found - while ( index < iDataChannels->Count() && !retVal ) - { - MSatBIPDataChannel* channel = iDataChannels->At( index ); - __ASSERT_ALWAYS( channel, PanicSatEngine( ESatEngineNullPointer ) ); - retVal = channel->IsContextActive(); - // Goto next channel - index++; - } - LOG2( SIMPLE, "SATENGINE: CSatBIPUtils::IsContextActive \ - index: %d", index ) - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::IsContextActive exiting" ) - return retVal; - } - -// --------------------------------------------------------------------------- -// Returns the array of data channels -// --------------------------------------------------------------------------- -// -CArrayPtrFlat* CSatBIPUtils::DataChannels() - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::DataChannels calling - exiting" ) - return iDataChannels; - } - -// --------------------------------------------------------------------------- -// Request to notify when data is available -// --------------------------------------------------------------------------- -// -void CSatBIPUtils::NotifyDataAvailable( - MSatBIPDataAvailableObserver* aObserver ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPUtils::NotifyDataAvailable calling - exiting" ) - iDataAvailableObserver = aObserver; - } - -// --------------------------------------------------------------------------- -// Request to notify when an error occurs in data channel -// --------------------------------------------------------------------------- -// -void CSatBIPUtils::NotifyChannelStatus( - MSatBIPChannelStatusObserver* aObserver ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPUtils::NotifyChannelStatus calling - exiting" ) - iChannelStatusObserver = aObserver; - } - -// --------------------------------------------------------------------------- -// Cancels the DataAvailable request -// --------------------------------------------------------------------------- -// -void CSatBIPUtils::CancelDataAvailable() - { - LOG( SIMPLE, - "SATENGINE: CSatBIPUtils::CancelDataAvailable calling - exiting" ) - iDataAvailableObserver = NULL; - } - -// --------------------------------------------------------------------------- -// Cancels the ChannelStatus request -// --------------------------------------------------------------------------- -// -void CSatBIPUtils::CancelChannelStatus() - { - LOG( SIMPLE, - "SATENGINE: CSatBIPUtils::CancelChannelStatus calling - exiting" ) - iChannelStatusObserver = NULL; - } - -// --------------------------------------------------------------------------- -// DataAvailable event. Notifies observer. -// --------------------------------------------------------------------------- -// -void CSatBIPUtils::DataAvailable( const TInt aChannelId, const TInt aLength ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::DataAvailable calling" ) - - // If there is an active request for this event, notify observer. - if ( iDataAvailableObserver ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::DataAvailable \ - iDataAvailableObserver true" ) - iDataAvailableObserver->DataAvailable( aChannelId, aLength ); - } - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::DataAvailable exiting" ) - } - -// --------------------------------------------------------------------------- -// ChannelStatus event. Notifies observer. -// --------------------------------------------------------------------------- -// -void CSatBIPUtils::ChannelStatus( const TInt aChannelId, const TInt aStatus ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::ChannelStatus calling" ) - - // If there is an active request for this event, notify observer. - if ( iChannelStatusObserver ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::ChannelStatus \ - iChannelStatusObserver true" ) - iChannelStatusObserver->ChannelStatus( aChannelId, aStatus ); - } - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::ChannelStatus exiting" ) - } - -// --------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------- -// -CSatBIPUtils::CSatBIPUtils( MSatUtils& aUtils ) : - iChannelId( NULL ), - iUtils( aUtils ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPUtils::CSatBIPUtils calling-exiting" ) - } - -// --------------------------------------------------------------------------- -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -void CSatBIPUtils::ConstructL() - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::ConstructL calling" ) - - // Create array for the data channels. - iDataChannels = - new ( ELeave ) CArrayPtrFlat( KMaxAvailChannels ); - - // Create array for Channel ID infos - iChannelIds = - new ( ELeave ) CArrayPtrFlat( KMaxAvailChannels ); - - TUint8 index = 1; - - iChannelId = new ( ELeave ) TSatChannelIdInfo( RSat::KChannel1, index++ ); - iChannelIds->AppendL( iChannelId ); - iChannelId = NULL; - - iChannelId = new ( ELeave ) TSatChannelIdInfo( RSat::KChannel2, index++ ); - iChannelIds->AppendL( iChannelId ); - iChannelId = NULL; - - iChannelId = new ( ELeave ) TSatChannelIdInfo( RSat::KChannel3, index++ ); - iChannelIds->AppendL( iChannelId ); - iChannelId = NULL; - - iChannelId = new ( ELeave ) TSatChannelIdInfo( RSat::KChannel4, index++ ); - iChannelIds->AppendL( iChannelId ); - iChannelId = NULL; - - iChannelId = new ( ELeave ) TSatChannelIdInfo( RSat::KChannel5, index++ ); - iChannelIds->AppendL( iChannelId ); - iChannelId = NULL; - - iChannelId = new ( ELeave ) TSatChannelIdInfo( RSat::KChannel6, index++ ); - iChannelIds->AppendL( iChannelId ); - iChannelId = NULL; - - iChannelId = new ( ELeave ) TSatChannelIdInfo( RSat::KChannel7, index++ ); - iChannelIds->AppendL( iChannelId ); - iChannelId = NULL; - - // Regiseter to listen events - iUtils.RegisterL( this, MSatUtils::ECommandCancelled ); - iUtils.RegisterL( this, MSatUtils::ECancelledUsingEndKey ); - - // Connect to Socket Server - User::LeaveIfError( iSocketServer.Connect() ); - iPacketServiceActive = EFalse; - iApnHandler = CSatApnHandler::NewL( iUtils ); - - iWrapper = new ( ELeave ) CSatSActiveWrapper; - - SetConnectionActivated( EFalse ); - SetSubConnectionActivated( EFalse ); - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::ConstructL exiting" ) - } - -// --------------------------------------------------------------------------- -// Returns next available channel ID -// --------------------------------------------------------------------------- -// -TSatChannelIdInfo* CSatBIPUtils::AvailableChannelID() - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::AvailableChannelID calling" ) - - TSatChannelIdInfo* channelId = NULL; - - TInt index( 0 ); - TBool idFound( EFalse ); - - // Loop channel IDs - while ( index < iChannelIds->Count() && !idFound ) - { - channelId = iChannelIds->At( index ); - // If channel is free, take it - if ( !channelId->IsReserved() ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::AvailableChannelID \ - channel free" ) - idFound = ETrue; - } - // goto next channel - index++; - } - LOG2( SIMPLE, "SATENGINE: CSatBIPUtils::AvailableChannelID \ - index: %d", index ) - if ( !idFound ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::AvailableChannelID \ - idFound false" ) - // If not found, return NULL - channelId = NULL; - } - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::AvailableChannelID exiting" ) - return channelId; - } - -// --------------------------------------------------------------------------- -// Blocks synchronous requests -// --------------------------------------------------------------------------- -// -RPacketQoS::TQoSGPRSNegotiated CSatBIPUtils::ProposeQoSParametersL( - const RPacketQoS::TQoSGPRSRequested& aQoSParams ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::ProposeQoSParametersL calling" ) - - // Number of contexts - TInt count( ContextCount() ); // Get the number of contexts - // QoS profile name - TName profName; - // Handle to the actual context - RPacketContext packetContext; - // QoS session - RPacketQoS qos; - // Context info - RPacketService::TContextInfo info; - // Error value for asynchronous calls - TInt statusError( KErrNone ); - - if ( count > 0 ) // At least one context found - { - // Get the last contexts info - iPacketService.GetContextInfo( - iWrapper->RequestStatus(), count - 1, info ); - - statusError = iWrapper->SetActiveAndWait(); // Wait for completion - LOG2( SIMPLE, " ContextInfo iActiveStatus: %i", statusError ) - LOG2( SIMPLE, " ContextInfo CntxStatus: %i", info.iStatus ) - // Leave point - User::LeaveIfError( statusError ); - } - else - { - // Didn't find any contexts - User::Leave( KErrNotFound ); - } - - // Get the context by name - LOG( SIMPLE, " Open existing context" ) - User::LeaveIfError( - packetContext.OpenExistingContext( iPacketService, info.iName ) ); - - CleanupClosePushL( packetContext ); - - // Get the QoS Profile - LOG( SIMPLE, " Get QoS Profile name" ) - User::LeaveIfError( packetContext.GetProfileName( profName ) ); - - // Get the instance of the QoS profile - if ( profName.Length() > 0 ) - { - LOG( SIMPLE, " Open existing QoS profile" ) - User::LeaveIfError( qos.OpenExistingQoS( packetContext, profName ) ); - } - - CleanupClosePushL( qos ); - - TPckg qosPckg( aQoSParams ); - - qos.SetProfileParameters( iWrapper->RequestStatus(), qosPckg ); - - User::LeaveIfError( iWrapper->SetActiveAndWait() ); // Wait for completion - - // Get negotioted parameters - RPacketQoS::TQoSGPRSNegotiated negParams; - TPckg negPckg( negParams ); - qos.GetProfileParameters( iWrapper->RequestStatus(), negPckg ); - - User::LeaveIfError( iWrapper->SetActiveAndWait() ); // Wait for completion - - LOG2( SIMPLE, " GetNegQoSParams Status: %i", statusError ) - LOG2( SIMPLE, " GetNegQoSParams Reliability: %i", - negParams.iReliability ) - LOG2( SIMPLE, " GetNegQoSParams Precedence: %i", - negParams.iPrecedence ) - LOG2( SIMPLE, " GetNegQoSParams Delay: %i", negParams.iDelay ) - LOG2( SIMPLE, " GetNegQoSParams Peak: %i", negParams.iPeakThroughput ) - LOG2( SIMPLE, " GetNegQoSParams Mean: %i", negParams.iMeanThroughput ) - - // Cleaning and closing: packetContext, qos - CleanupStack::PopAndDestroy( KProposeQoSParametersPop ); - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::ProposeQoSParametersL exiting" ) - return negParams; - } - -// --------------------------------------------------------------------------- -// Opens session to GPRS Service -// --------------------------------------------------------------------------- -// -TInt CSatBIPUtils::GprsService() - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::GprsService calling" ) - - TInt ret( KErrNone ); - if ( !iPacketServiceActive ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::GprsService \ - iPacketServiceActive false" ) - ret = iPacketService.Open( *( iUtils.MultiModeApi().Phone() ) ); - iPacketServiceActive = ETrue; - } - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::GprsService exiting" ) - return ret; - } - -// --------------------------------------------------------------------------- -// Gives reference to RPacketService -// --------------------------------------------------------------------------- -// -RPacketService& CSatBIPUtils::PacketService() - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::PacketService calling" ) - - GprsService(); - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::PacketService exiting" ) - return iPacketService; - } - -// --------------------------------------------------------------------------- -// CSatBIPUtils::ConnectionStatus -// --------------------------------------------------------------------------- -// -RPacketService::TStatus CSatBIPUtils::ConnectionStatus() const - { - LOG( NORMAL, - "SATENGINE: CSatBIPUtils::ConnectionStatus calling" ) - -#ifndef SAT_USE_DUMMY_TSY - RPacketService::TStatus status( RPacketService::EStatusSuspended ); -#else - RPacketService::TStatus status( RPacketService::EStatusActive ); -#endif - - if ( iConnObserver ) - { - LOG( NORMAL, - "SATENGINE: CSatBIPUtils::ConnectionStatus iConnObserver true" ) - status = iConnObserver->Status(); - } - - LOG( NORMAL, - "SATENGINE: CSatBIPUtils::ConnectionStatus exiting" ) - return status; - } - -// --------------------------------------------------------------------------- -// CSatBIPUtils::StopUdpLink -// --------------------------------------------------------------------------- -// -void CSatBIPUtils::StopUdpLink() - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::StopUdpLink calling" ) - if ( iDataChannels ) - { - const TInt channelCount( iDataChannels->Count() ); - LOG2( SIMPLE, "SATENGINE: CSatBIPUtils::StopUdpLink \ - channelCount: %d", channelCount ) - // Cancel all channels - for ( TInt index = 0; index < channelCount; index++ ) - { - MSatBIPDataChannel* channel = iDataChannels->At( index ); - __ASSERT_ALWAYS( channel, - PanicSatEngine( ESatEngineNullPointer ) ); - channel->StopUdpSocket(); - } - } - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::StopUdpLink exiting" ) - } - -// --------------------------------------------------------------------------- -// Synchronous request complete -// --------------------------------------------------------------------------- -// -TInt CSatBIPUtils::ContextCount() - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::ContextCount calling" ) - - // Number of contexts - TInt count( 0 ); - TInt maxAllowed( 0 ); - - // Init PacketService - TInt error( GprsService() ); - - if ( KErrNone == error ) - { - // Enumerate contexts - iPacketService.EnumerateContexts( - iWrapper->RequestStatus(), count, maxAllowed ); - error = iWrapper->SetActiveAndWait(); // Wait for completion - LOG2( SIMPLE, " EnumContexts Status: %i", error ) - LOG2( SIMPLE, " EnumContexts Count: %i", count ) - LOG2( SIMPLE, " EnumContexts MaxAllowed: %i", maxAllowed ) - // Check status - if ( KErrNone != error ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::ContextCount \ - KErrNone != error" ) - count = 0; - } - } - - LOG2( SIMPLE, "SATENGINE: CSatBIPUtils::ContextCount exiting: %i", count ) - return count; - } - -// --------------------------------------------------------------------------- -// CSatBIPUtils::SetConnectionActivated() -// --------------------------------------------------------------------------- -// -void CSatBIPUtils::SetConnectionActivated( TBool aSet ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::SetConnectionActivated calling" ) - iConnectionActivated = aSet; - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::SetConnectionActivated exiting" ) - } - -// --------------------------------------------------------------------------- -// CSatBIPUtils::IsConnectionActivated() -// --------------------------------------------------------------------------- -// -TBool CSatBIPUtils::IsConnectionActivated() - { - LOG( SIMPLE, - "SATENGINE: CSatBIPUtils::IsConnectionActivated calling-exiting" ) - return iConnectionActivated; - } - -// --------------------------------------------------------------------------- -// CSatBIPUtils::SetSubConnectionActivated() -// --------------------------------------------------------------------------- -// -void CSatBIPUtils::SetSubConnectionActivated( TBool aSet ) - { - LOG( SIMPLE, - "SATENGINE: CSatBIPUtils::SetSubConnectionActivated calling" ) - iSubConnectionActivated = aSet; - LOG( SIMPLE, - "SATENGINE: CSatBIPUtils::SetSubConnectionActivated exiting" ) - } - -// --------------------------------------------------------------------------- -// CSatBIPUtils::IsSubConnectionActivated() -// --------------------------------------------------------------------------- -// -TBool CSatBIPUtils::IsSubConnectionActivated() - { - LOG( SIMPLE, - "SATENGINE: CSatBIPUtils::IsSubConnectionActivated calling-exiting" ) - return iSubConnectionActivated; - } - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatClientServiceReq.cpp --- a/satengine/SatServer/Engine/src/CSatClientServiceReq.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,298 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles client requests. -* -*/ - - - -// INCLUDE FILES -#include "CSatClientServiceReq.h" -#include "MSatUtils.h" -#include "MSatSUiClientHandler.h" -#include "EnginePanic.h" -#include "SatLog.h" - -_LIT( KTxtServer, "SatServer" ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatClientServiceReq::CSatClientServiceReq -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatClientServiceReq::CSatClientServiceReq( - TSatServerRequest aRequest, - TSatServerRequest aResponse, - MSatCommand* aCommand, - MSatUtils& aUtils ) : - iHandledRequest( aRequest ), - iHandledResponse( aResponse ), - iResponseObserver( aCommand ), - iUtils( aUtils ) - { - LOG( SIMPLE, "SATENGINE: \ - CSatClientServiceReq::CSatClientServiceReq calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatClientServiceReq::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatClientServiceReq* CSatClientServiceReq::NewL( - TSatServerRequest aRequest, - TSatServerRequest aResponse, - MSatCommand* aCommand, - MSatUtils& aUtils ) - { - LOG( SIMPLE, "SATENGINE: CSatClientServiceReq::NewL calling-exiting" ) - return new ( ELeave ) CSatClientServiceReq( - aRequest, aResponse, aCommand, aUtils ); - } - - -// Destructor -CSatClientServiceReq::~CSatClientServiceReq() - { - LOG( SIMPLE, - "SATENGINE: CSatClientServiceReq::~CSatClientServiceReq calling" ) - - iResponseObserver = NULL; - iCmdData = 0; - iCmdRsp = 0; - - LOG( SIMPLE, - "SATENGINE: CSatClientServiceReq::~CSatClientServiceReq exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatClientServiceReq::HandleCommand -// Handles the SIM command. If client has not yet requested service for this -// SIM command, command is stored for later use. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CSatClientServiceReq::HandleCommand( - TDesC8* aCmdData, // Data to be sent to client. - TDes8* aCmdRsp, // Client is response is written to this.h - TSatServerRequest aRequest ) // Command from SIM - { - LOG( DETAILED, "SATENGINE: CSatClientServiceReq::HandleCommand calling" ) - - __ASSERT_ALWAYS( iResponseObserver, - PanicSatEngine( ESatEngineNullPointer ) ); - - TBool handled( EFalse ); - // Handle the command here if the request op codes match. - if ( iHandledRequest == aRequest ) - { - LOG( DETAILED, "SATENGINE: CSatClientServiceReq::HandleCommand \ - request op codes match" ) - // Store the descriptors - iCmdData = aCmdData; - iCmdRsp = aCmdRsp; - - handled = ETrue; - - // Is the client already waiting for the command - if ( iRequestPending ) - { - LOG( DETAILED, "SATENGINE: CSatClientServiceReq::HandleCommand \ - RequestPending" ) - // Request is served. - iRequestPending = EFalse; - SendDataToClient(); - } - else - { - LOG( DETAILED, "SATENGINE: CSatClientServiceReq::HandleCommand \ - no RequestPending" ) - // Client request was not available, so command is waiting for - // client request. - iCmdPending = ETrue; - } - } - - LOG( DETAILED, "SATENGINE: CSatClientServiceReq::HandleCommand exiting" ) - return handled; - } - -// ----------------------------------------------------------------------------- -// CSatClientServiceReq::HandleRequest -// Handles the client's request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CSatClientServiceReq::HandleRequest( - const RMessage2& aRequest ) // Request from client. - { - LOG( DETAILED, "SATENGINE: CSatClientServiceReq::HandleRequest calling" ) - - TBool handled( EFalse ); - - // Is the request handled here. - const TInt request( aRequest.Function() ); - if ( request == iHandledRequest ) - { - LOG( DETAILED, "SATENGINE: CSatClientServiceReq::HandleRequest \ - handle request" ) - handled = ETrue; - iRequest = aRequest; - - // Is the command waiting for client. - if ( iCmdPending ) - { - LOG( DETAILED, "SATENGINE: CSatClientServiceReq::HandleRequest \ - iCmdPending" ) - iCmdPending = EFalse; - SendDataToClient(); - } - else - { - // Command has not yet arrived from SIM, so - // wait for the command. - iRequestPending = ETrue; - } - } - // Is the response handled here. - else if ( request == iHandledResponse ) - { - LOG( DETAILED, "SATENGINE: CSatClientServiceReq::HandleRequest \ - handle response" ) - handled = ETrue; - - TRAPD( res, aRequest.ReadL( 0, *iCmdRsp ) ); - - // Send the response further only if IPC succeeded. - if ( KErrNone != res ) - { - LOG( DETAILED, "SATENGINE: CSatClientServiceReq::HandleRequest \ - KErrNone != res" ) - iRequest.Panic( KTxtServer, ESatSBadDescriptor ); - } - - // Release client first, then handle the response - aRequest.Complete( KErrNone ); - // Notify command that response is available. - iResponseObserver->ClientResponse(); - } - else - { - } - - LOG( DETAILED, "SATENGINE: CSatClientServiceReq::HandleRequest exiting" ) - return handled; - } - -// ----------------------------------------------------------------------------- -// CSatClientServiceReq::SendDataToClient -// Writes the data to client address space and completes the iRequest. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatClientServiceReq::SendDataToClient() - { - LOG( SIMPLE, "SATENGINE: CSatClientServiceReq::SendDataToClient calling" ) - - TRAPD( res,iRequest.WriteL( 0, *iCmdData ) ); - LOG2( SIMPLE, "SATENGINE: CSatClientServiceReq::SendDataToClient res: %d", - res ) - if ( KErrNone != res ) - { - iRequest.Panic( KTxtServer, ESatSBadDescriptor ); - } - - iRequest.Complete( KErrNone ); - - // If UI is not launched by user, make sure UI is in foreground - if ( !iUtils.SatUiHandler().UiLaunchedByUser() ) - { - LOG( SIMPLE, - "SATENGINE: CSatClientServiceReq::SendDataToClient \ - EBringSatUiToForeGround" ) - iUtils.NotifyEvent( MSatUtils::EBringSatUiToForeGround ); - } - - LOG( SIMPLE, "SATENGINE: CSatClientServiceReq::SendDataToClient exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatClientServiceReq::IsMyRequest -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CSatClientServiceReq::IsMyRequest( const TSatServerRequest aRequest ) - { - LOG( SIMPLE, "SATENGINE: CSatClientServiceReq::IsMyRequest calling" ) - TBool myRequest( EFalse ); - - if ( iHandledRequest == aRequest ) - { - LOG( SIMPLE, - "SATENGINE: CSatClientServiceReq::IsMyRequest" ) - - myRequest = ETrue; - } - LOG2( SIMPLE, "SATENGINE: CSatClientServiceReq::IsMyRequest exiting, \ - return: %d", myRequest ) - return myRequest; - } - -// ----------------------------------------------------------------------------- -// CSatClientServiceReq::SetCommandHandler -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatClientServiceReq::SetCommandHandler( MSatCommand* aCommand ) - { - LOG( SIMPLE, "SATENGINE: CSatClientServiceReq::SetCommandHandler calling" ) - - iResponseObserver = aCommand; - - LOG( SIMPLE, "SATENGINE: CSatClientServiceReq::SetCommandHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatClientServiceReq::Reset -// Resets member data -// ----------------------------------------------------------------------------- -// -void CSatClientServiceReq::Reset() - { - LOG( SIMPLE, "SATENGINE: CSatClientServiceReq::Reset calling" ) - - // Check is request pending - if ( !iRequestPending ) - { - // Request not pending meaning that command is executing. - // Send client response to prevent SIM to lock - LOG( NORMAL, " Request is not pending" ) - // Notify command that response is available. - iResponseObserver->ClientResponse(); - } - - // Clean data - iCmdData = NULL; - iCmdRsp = NULL; - iCmdPending = EFalse; - iRequestPending = EFalse; - // We don't reset iResponseObserver - - LOG( SIMPLE, "SATENGINE: CSatClientServiceReq::Reset exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatCommandContainer.cpp --- a/satengine/SatServer/Engine/src/CSatCommandContainer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1177 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Contains SAT commands. -* -*/ - - - -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "MSatSystemState.h" -#include "TSatSystemStateFactory.h" -#include "MSatSystemStateChangeNotifier.h" -#include "CSatCommandContainer.h" -//lint -e766 Used inside TRAP macro, lint misfunction. -#include "EnginePanic.h" -#include "TUSatAPI.h" -#include "MSatSSessions.h" -#include "MSatShellController.h" -#include "SatServer.hrh" -#include "SatLog.h" -#include "MSatSUiClientHandler.h" -#include "CSatClientServiceReq.h" -#include "CSatEventMonitorContainer.h" -#include "CSatSAPChangeObserver.h" -#include "CSatSSimSubscriberId.h" -#include "CSatBIPUtils.h" -#include "TSatExtErrorUtils.h" -#include "MSatUiSession.h" -#include "csatmediatoreventprovider.h" -#include "csatprofilechangeobserver.h" -#include "SATInternalPSKeys.h" -#include "csatmultimodeapi.h" -#include "csatsactivewrapper.h" - -// Drive letter for resource file -_LIT( KResourceDrive, "Z:" ); -// SatServer's resource file -_LIT( KSatServerRsc, "SatServer.rsc" ); - - -const TUid KSatInterfaceDefinitionUid = { 0x1000f001 }; -const TInt KSizeOfBuf = 50; - -const TInt8 KCreateSatAppNamePop( 2 ); - -// Important plugins UIDs. These are started on startup -// Implementation UID is from the .rss -const TUid KSetUpEventListUid = { 0x10202993 }; - -// ======== LOCAL FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CleanupPointerArray -// Cleanup RPointerArray objects by using the cleanup stack. Function will be -// called when application leaves while a RPointerArray object still alive, -// or when CleanupStack::PopAndDestroy is explicitly called to release a -// RPointerArray. See CleanupStack::PushL( TCleanupItem ) for more details. -// ----------------------------------------------------------------------------- -// -static void CleanupPointerArray( TAny* aArray ) - { - LOG2( NORMAL, "SATENGINE: CSatCommandContainer::CleanupPointerArray \ - calling array = 0x%08x", aArray ) - - RImplInfoPtrArray* array = reinterpret_cast( aArray ); - if ( array ) - { - array->ResetAndDestroy(); - } - - LOG( NORMAL, "SATENGINE: CSatCommandContainer::CleanupPointerArray \ - exiting" ) - } - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCommandContainer* CSatCommandContainer::NewL( - MSatSSessions& aSessions, - TSatEventMediator& aEventMediator, - MSatSUiClientHandler& aSatUiHandler ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::NewL calling" ) - - CSatCommandContainer* self = - new ( ELeave ) CSatCommandContainer( - aSessions, - aEventMediator, - aSatUiHandler ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( NORMAL, "SATENGINE: CSatCommandContainer::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::~CSatCommandContainer -// Destructor -// ----------------------------------------------------------------------------- -// -CSatCommandContainer::~CSatCommandContainer() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::~CSatCommandContainer calling" ) - - // Stop and Delete all command handlers - StopCommandHandlers(); - - if ( iUSatAPI ) - { - iUSatAPI->Close(); - delete iUSatAPI; - iUSatAPI = NULL; - } - - if ( iServiceReqs ) - { - iServiceReqs->Reset(); - delete iServiceReqs; - iServiceReqs = NULL; - } - - delete iSatAppName; - delete iSystemState; - delete iBipUtils; - delete iSatMediatorEvent; - delete iMultiModeApi; - - delete iSapObserver; - delete iProfileObserver; - - delete iSimSubscriberId; - delete iEventMonitors; - - delete iCmdHandlers; - delete iStartupChangeObserver; - - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::~CSatCommandContainer exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::StartCommandHandlersL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::StartCommandHandlersL() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::StartCommandHandlersL calling" ) - - // If in startup phase, start the rest of the commands - if ( iStartupPhase ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::StartCommandHandlersL \ - in startup phase" ) - // Create command handlers. - RImplInfoPtrArray satCommandImplementations; - CleanupStack::PushL( - TCleanupItem( CleanupPointerArray, &satCommandImplementations ) ); - REComSession::ListImplementationsL( KSatInterfaceDefinitionUid, - satCommandImplementations ); - - // Container for commands - const TInt cmdCount( satCommandImplementations.Count() ); - LOG2( NORMAL, "SATENGINE: CSatCommandContainer::StartCommandHandlersL \ - Command handler count: %d", cmdCount ) - - // Check are there any command implementations - if ( cmdCount > 0 ) - { - // Check array. Should not be NULL as it is started earlier - if ( !iCmdHandlers ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::\ - StartCommandHandlersL iCmdHandlers false" ) - iCmdHandlers = new ( ELeave ) - CArrayPtrFlat( cmdCount ); - } - - // Add all found command handlers to list - for ( TInt i = 0; i < cmdCount; i++ ) - { - const TUid KImplementationUid( - satCommandImplementations[i]->ImplementationUid() ); - - // Check important command handlers. They are already started - if ( KImplementationUid != KSetUpEventListUid ) - { - CSatCommandHandler* cmd = - CSatCommandHandler::NewL( KImplementationUid, this ); - cmd->Start(); - CleanupStack::PushL( cmd ); - iCmdHandlers->AppendL( cmd ); - CleanupStack::Pop( cmd ); - } - } - } - CleanupStack::PopAndDestroy( &satCommandImplementations ); - - // Notify TSY about readiness i.e. all nofies are sent - // Done only once in startup phase - TInt ret = iUSatAPI->UsatClientReadyIndication(); - LOG2( NORMAL, "SATENGINE: UsatClientReadyIndication() gives %d", ret ) - } - - // Else check that there are no command handlers created and - // BT SAP is not active - else if ( !iCmdHandlers && !( SystemState().IsBtSapActive() ) ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::StartCommandHandlersL \ - no command handlers created and BT SAP is not active" ) - // This is the case when - // SAP is first enabled and then disabled - if ( !iUSatAPI->IsRSatConnected() ) - { - User::LeaveIfError( iUSatAPI->Connect( *iMultiModeApi ) ); - } - - // Create command handlers. - RImplInfoPtrArray satCommandImplementations; - CleanupStack::PushL( - TCleanupItem( CleanupPointerArray, &satCommandImplementations ) ); - REComSession::ListImplementationsL( KSatInterfaceDefinitionUid, - satCommandImplementations ); - - // Container for commands - const TInt cmdCount( satCommandImplementations.Count() ); - LOG2( NORMAL, "SATENGINE: CSatCommandContainer::StartCommandHandlersL \ - Command handler count: %d", cmdCount ) - - // Check are there any command implementations - if ( cmdCount > 0 ) - { - iCmdHandlers = - new ( ELeave ) CArrayPtrFlat( cmdCount ); - - // Add all found command handlers to list - for ( TInt i = 0; i < cmdCount; i++ ) - { - const TUid KImplementationUid( - satCommandImplementations[i]->ImplementationUid() ); - CSatCommandHandler* cmd = - CSatCommandHandler::NewL( KImplementationUid, this ); - cmd->Start(); - CleanupStack::PushL( cmd ); - iCmdHandlers->AppendL( cmd ); - CleanupStack::Pop( cmd ); - } - } - else - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::\ - StartCommandHandlersL No commands found" ) - // No commands, remove SAT Icon from shell - iSatUiHandler.ShellController().RemoveSatUiL(); - } - CleanupStack::PopAndDestroy( &satCommandImplementations ); - } - else - { - LOG( NORMAL, " Not starting any command handlers" ) - } - - // Create SAP State observer. - if ( !iSapObserver ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::StartCommandHandlersL \ - iSapObserver false" ) - // Create SAP change observer only if there are command handlers. - iSapObserver = CSatSAPChangeObserver::NewL( *this ); - } - - // Create Profile change observer. - if ( !iProfileObserver ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::StartCommandHandlersL \ - iProfileObserver false" ) - iProfileObserver = CSatProfileChangeObserver::NewL( *this ); - } - - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::StartCommandHandlersL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::StopCommandHandlersL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::StopCommandHandlers() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::StopCommandHandlers calling" ) - - if ( iCmdHandlers ) - { - // Remove every command handler from event observers - const TInt count( iCmdHandlers->Count() ); - LOG2( NORMAL, "SATENGINE: CSatCommandContainer::StopCommandHandlers \ - Command handler count: %d", count ) - for ( TInt j = 0; j < count; j++ ) - { - CSatCommandHandler* cmd = iCmdHandlers->At( j ); - UnregisterEventObserver( cmd ); - } - - // Delete command handlers - iCmdHandlers->ResetAndDestroy(); - - delete iCmdHandlers; - iCmdHandlers = NULL; - } - - // This must be called when all ECom Plug-Ins has been deleted. Otherwise - // there might be memory leaks. - REComSession::FinalClose(); - - // Reset ClientService request handlers since there are no command handlers - // to handle client responses. If SAT UI / Proactive command is executing - // while Bluetooth SAP is enabled, SAT UI sends ClientResponse and that must - // be preveted - if ( iServiceReqs ) - { - iServiceReqs->Reset(); - } - - // Close all reserved BIP Data channels - if ( iBipUtils ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::StopCommandHandlers \ - iBipUtils true" ) - iBipUtils->CloseAllChannels(); - } - - // Cancel all event monitors - if ( iEventMonitors ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::StopCommandHandlers \ - iEventMonitors true" ) - iEventMonitors->CancelAllMonitors(); - } - -#ifdef SAT_USE_DUMMY_TSY - // Close ATSY. This is needed when testin BT SAP in emulator - if ( iUSatAPI ) - { - iUSatAPI->Close(); - } -#endif - - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::StopCommandHandlers exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::Event -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::Event( TInt aEvent ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::Event calling" ) - - if ( MSatUtils::ECmccSimDetected == aEvent ) - { - LOG( NORMAL, "SATENGINE: Event: ECmccSimDetected" ) - iIsCmccSim = ETrue; - - // Update default name read in ConstructL. - TRAPD( err, CreateSatAppNameL( R_QTN_SAT_CMCC_TITLE ) ); - LOG2( NORMAL, "SATENGINE: Error: %i", err ) - if ( KErrNone == err ) - { - // Notify application name update. - NotifyEvent( EApplNameUpdated ); - } - } - else if ( MSatUtils::ESatUiClosed == aEvent ) - { - LOG( NORMAL, "SATENGINE: Event: ESatUiClosed" ) - // Reset service requests. If this is not done, - // Some command may try to send data to UiClient, - // even if there is no request. - const TInt reqs( iServiceReqs->Count() ); - LOG2( NORMAL, "SATENGINE: CSatCommandContainer::Event reqs: %i", - reqs ) - for ( TInt i = 0; i < reqs; i++ ) - { - iServiceReqs->At( i )->Reset(); - } - } - else - { - LOG( NORMAL, "SATENGINE: Unexpected event" ) - } - - LOG( NORMAL, "SATENGINE: CSatCommandContainer::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::NotifyUiEvent -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::NotifyUiEvent( - TInt aEventId, TInt aEventStatus, TInt aEventError ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::NotifyUiEvent calling" ) - - MSatUiSession* session = iSatUiHandler.UiSession(); - if ( session ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::NotifyUiEvent \ - session" ) - session->UiEventNotification( aEventId, aEventStatus, aEventError ); - session = NULL; - } - - LOG( NORMAL, "SATENGINE: CSatCommandContainer::NotifyUiEvent exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::USatAPI -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -MSatApi& CSatCommandContainer::USatAPI() - { - LOG( DETAILED, "SATENGINE: CSatCommandContainer::USatAPI calling" ) - - __ASSERT_ALWAYS( iUSatAPI, PanicSatEngine( ESatEngineNullPointer ) ); - - LOG( DETAILED, "SATENGINE: CSatCommandContainer::USatAPI exiting" ) - return *iUSatAPI; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::SystemState -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -MSatSystemState& CSatCommandContainer::SystemState() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::SystemState calling-exiting" ) - return *iSystemState; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::SatUiHandler -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -MSatSUiClientHandler& CSatCommandContainer::SatUiHandler() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::SatUiHandler calling-exiting" ) - return iSatUiHandler; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::RegisterL -// Forwards the registeration to TSatEventMediator -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::RegisterL( - MSatEventObserver* aObserver, // Event observer - TSatEvent aEvent ) // Event which is observerd - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::RegisterL calling" ) - - iEventMediator.RegisterL( aObserver, aEvent ); - - LOG( NORMAL, "SATENGINE: CSatCommandContainer::RegisterL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::NotifyEvent -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::NotifyEvent( TSatEvent aEvent ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::NotifyEvent calling" ) - - iEventMediator.Notify( aEvent ); - - LOG( NORMAL, "SATENGINE: CSatCommandContainer::NotifyEvent exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::UnregisterEvent -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::UnregisterEvent( - MSatEventObserver* aObserver, // Observer of the event - TSatEvent aEvent ) // Event - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::UnregisterEvent calling" ) - - iEventMediator.Unregister( aObserver, aEvent ); - - LOG( NORMAL, "SATENGINE: CSatCommandContainer::UnregisterEvent exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::UnregisterEvent -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::UnregisterEventObserver( - MSatEventObserver* aObserver ) - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::UnregisterEventObserver calling" ) - - iEventMediator.Unregister( aObserver ); - - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::UnregisterEventObserver exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::NumberOfExecutingCommandHandlers -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CSatCommandContainer::NumberOfExecutingCommandHandlers() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::NumberOfExecutingCommandHandlers \ - calling" ) - - TInt result( 0 ); - TInt count( 0 ); - if ( iCmdHandlers ) - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::NumberOfExecutingCommandHandlers \ - iCmdHandlers true" ) - // Gets the count of command handlers - // if the list is already available. - count = iCmdHandlers->Count(); - } - LOG2( NORMAL, "CSatCommandContainer::NumberOfExecutingCommandHandlers \ - count: %i", count ) - for ( TInt i = 0; i < count; i++ ) - { - CSatCommandHandler* handler = iCmdHandlers->At( i ); - __ASSERT_ALWAYS( handler, PanicSatEngine( ESatEngineNullPointer ) ); - - // If command handler is not active then it has received command - // from sim. - if ( handler->IsCommandExecuting() ) - { - result++; - } - } - - LOG2( NORMAL, - "SATENGINE: CSatCommandContainer::NumberOfExecutingCommandHandlers \ - exiting: %i", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::SatAppName -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const TDesC& CSatCommandContainer::SatAppName() const - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::SatAppName calling-exiting" ) - return *iSatAppName; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::BipApnName -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const TDesC& CSatCommandContainer::BipApnName() const - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::BipApnName calling-exiting" ) - return iSatBipName; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::RestoreSatAppNameL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::RestoreSatAppNameL() - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::RestoreSatAppNameL calling" ) - if ( !iIsCmccSim ) - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::RestoreSatAppNameL name reset" ) - CreateSatAppNameL( R_QTN_SAT_LOG_TITLE ); - } - LOG( NORMAL, "SATENGINE: CSatCommandContainer::RestoreSatAppNameL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::SetSatAppNameL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::SetSatAppNameL( - const TDesC& aName ) // New sat app name - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::SetSatAppNameL calling" ) - - if ( !iIsCmccSim ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::SetSatAppNameL \ - iIsCmccSim false" ) - HBufC* temp = aName.AllocL(); - delete iSatAppName; - iSatAppName = temp; - } - - LOG( NORMAL, "SATENGINE: CSatCommandContainer::SetSatAppNameL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::RefreshSubSessions -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const RPointerArray& - CSatCommandContainer::RefreshSubSessions() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::RefreshSubSessions calling-exiting" ) - return iSessions.RefreshSubSessions(); - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::RegisterServiceRequestL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::RegisterServiceRequestL( - TSatServerRequest aRequest, - TSatServerRequest aResponse, - MSatCommand* aCommand ) - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::RegisterServiceRequestL calling" ) - - // First, check is there service request handler already with the same - // request.If it exists, change command handler - const TInt reqs( iServiceReqs->Count() ); - TBool requestHandled( EFalse ); - LOG2( NORMAL, "CSatCommandContainer::RegisterServiceRequestL \ - reqs: %i", reqs ) - for ( TInt i = 0; i < reqs; i++ ) - { - CSatClientServiceReq* req = iServiceReqs->At( i ); - __ASSERT_ALWAYS( req, PanicSatEngine( ESatEngineNullPointer ) ); - - if ( req->IsMyRequest( aRequest ) ) - { - req->SetCommandHandler( aCommand ); - requestHandled = ETrue; - i = reqs; // to end for-loop - } - } - - // Check was service request found - if ( !requestHandled ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::\ - RegisterServiceRequestL requestHandled false" ) - // Not found, add new - CSatClientServiceReq* servReq = CSatClientServiceReq::NewL( - aRequest, aResponse, aCommand, *this ); - CleanupStack::PushL( servReq ); - iServiceReqs->AppendL( servReq ); - CleanupStack::Pop( servReq ); - } - - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::RegisterServiceRequestL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::ServiceRequests -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CArrayPtrFlat* - CSatCommandContainer::ServiceRequests() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::ServiceRequests calling-exiting" ) - return iServiceReqs; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::EventMonitors -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -MSatEventMonitorContainer* CSatCommandContainer::EventMonitors() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::EventMonitors calling-exiting" ) - return iEventMonitors; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::SimSubscriberId -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -MSatSSimSubscriberId& CSatCommandContainer::SimSubscriberId() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::SimSubscriberId calling-exiting" ) - return *iSimSubscriberId; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::BipUtils -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -MSatBIPUtils& CSatCommandContainer::BipUtils() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::BipUtils calling-exiting" ) - return *CreateAndGetBIPUtils(); - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::BipEventNotifier -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -MSatBIPEventNotifier& CSatCommandContainer::BipEventNotifier() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::BipEventNotifier calling-exiting" ) - return *CreateAndGetBIPUtils(); - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::MultiModeApi -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -MSatMultiModeApi& CSatCommandContainer::MultiModeApi() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::MultiModeApi calling-exiting" ) - return *iMultiModeApi; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::CustomApi -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -RMmCustomAPI* CSatCommandContainer::CustomApi() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::CustomApi calling-exiting" ) - return iMultiModeApi->CustomApi(); - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::RaiseSatEvent -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CSatCommandContainer::RaiseSatEvent( const TDesC8& aData ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::RaiseSatEvent calling" ) - - CSatMediatorEventProvider* medEvent = - CreateAndGetSatMediatorEventProvider(); - TInt retVal( KErrNone ); - if ( medEvent ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::RaiseSatEvent \ - medEvent true" ) - retVal = medEvent->RaiseSatEvent( aData ); - } - - LOG2( NORMAL,"SATENGINE: CSatCommandContainer::RaiseSatEvent exiting, \ - retVal: %d", retVal ) - return retVal; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::CoverUiSupported() -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CSatCommandContainer::CoverUiSupported() - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::CoverUiSupported calling" ) - - CSatMediatorEventProvider* medEvent = CreateAndGetSatMediatorEventProvider(); - TBool supported( EFalse ); - if ( medEvent ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::CoverUiSupported \ - medEvent true" ) - supported = medEvent->CoverUiSupported(); - } - - LOG2( NORMAL, "SATENGINE: CSatCommandContainer::CoverUiSupported exiting,\ - supported: %d", supported ) - return supported; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::CreateAsyncToSyncHelperL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -MSatAsyncToSync* CSatCommandContainer::CreateAsyncToSyncHelper() - { - MSatAsyncToSync* wrapper = new CSatSActiveWrapper(); - LOG( NORMAL, "SATENGINE: CSatCommandContainer::\ - CreateAsyncToSyncHelperL calling - exiting" ) - return wrapper; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::StateChanged -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::StateChanged( const TInt aValue ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::StateChanged calling" ) - CheckStartupState( aValue ); - LOG( NORMAL, "SATENGINE: CSatCommandContainer::StateChanged exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::CSatCommandContainer -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatCommandContainer::CSatCommandContainer( - MSatSSessions& aSessions, - TSatEventMediator& aEventMediator, - MSatSUiClientHandler& aSatUiHandler ) : - iSessions( aSessions ), - iEventMediator( aEventMediator ), - iSatUiHandler( aSatUiHandler ), - iSatMediatorEvent( NULL ) - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::CSatCommandContainer calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::ConstructL() - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::ConstructL calling" ) - - iIsCmccSim = EFalse; - CreateSatAppNameL( R_QTN_SAT_LOG_TITLE ); - - // Register for ui events in order to keep track if user or command - // has launched the ui. - iEventMediator.RegisterL( this, MSatUtils::ESatUiClosed ); - iEventMediator.RegisterL( this, MSatUtils::ECmccSimDetected ); - - // Set these pointers to NULL because their value is checked - // before initialization... - iSapObserver = NULL; - iCmdHandlers = NULL; - iProfileObserver = NULL; - - // Create pointer array for service request handlers - iServiceReqs = new( ELeave )CArrayPtrFlat( 1 ); - - iMultiModeApi = CSatMultiModeApi::NewL(); - - // By default, we use extended errors - iMultiModeApi->RaiseErrorGranularity(); - - iUSatAPI = new( ELeave )TUSatAPI(); - TInt error = iUSatAPI->Connect( *iMultiModeApi ); - - // Create SystemState. - iSystemState = - TSatSystemStateFactory::CreateSystemStateL( *iMultiModeApi ); - - // Create event monitor container. - iEventMonitors = CSatEventMonitorContainer::NewL( *iUSatAPI, *this ); - - // Check did the conneciton to phone passed. - if ( KErrNone == error ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::ConstructL connection \ - to phone" ) - iStartupPhase = ETrue; - // Start important plugins - StartImportantCommandHandlersL(); - - // Start listening system's state - iStartupChangeObserver = - TSatSystemStateFactory::CreateStartupChangeNotifierL( *this ); - CheckStartupState( iStartupChangeObserver->GetValueInt() ); - - if ( iStartupPhase ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::ConstructL \ - iStartupPhase true" ) - iStartupChangeObserver->NotifyChangeL(); - } - - } - - // Create Subscriber id handler. - iSimSubscriberId = - CSatSSimSubscriberId::NewL( *iMultiModeApi, iEventMediator ); - iSimSubscriberId->Start(); - - // Create SatMediatorEventProvider. Will register SAT Cover UI events - // if cover UI is supported. - CreateAndGetSatMediatorEventProvider(); - - TSecurityPolicy readPolicy( ECapabilityReadUserData ); - TSecurityPolicy writePolicy( ECapabilityWriteUserData ); - - // Define properties in P&S key for icon support - error = RProperty::Define( KPSUidSatServerInternal, - KSatAppClosedUsingEndKey, RProperty::EInt, readPolicy, writePolicy ); - - LOG2( NORMAL, "CSatUiActionPerformer::ConstructL \ - define KSatAppClosedUsingEndKey and return: %d", error ) - - // Publish P&S key for icon support - error = RProperty::Set( KPSUidSatServerInternal, KSatAppClosedUsingEndKey, - KSatAppTerminatedNormal ); - - LOG2( SIMPLE, "SATENGINE: CSatCommandContainer::ConstructL \ - P&S key: %i", KSatAppTerminatedNormal ) - - LOG2( NORMAL, "CSatUiActionPerformer::ConstructL \ - publish KSatAppClosedUsingEndKey and return: %d", error ) - LOG( NORMAL, "SATENGINE: CSatCommandContainer::ConstructL exiting" ) - } -// ----------------------------------------------------------------------------- -// CSatCommandContainer::CreateSatAppNameL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::CreateSatAppNameL( const TInt aResourceId ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::CreateSatAppNameL calling" ) - - // Open the RFs session. - RFs fs; - - User::LeaveIfError( fs.Connect() ); - - // Push close operation in tbe cleanup stack - CleanupClosePushL( fs ); - - RResourceFile resFile; - // Backslashes are already defined in resource file, not needed here. - TBuf buf( KResourceDrive ); - buf.Append( KDC_RESOURCE_FILES_DIR ); - buf.Append( KSatServerRsc ); - - TFileName fileName( buf ); - - BaflUtils::NearestLanguageFile( fs, fileName ); - - // Open the resource file - resFile.OpenL( fs, fileName ); - - // Push close operation in the cleanup stack - CleanupClosePushL( resFile ); - - resFile.ConfirmSignatureL( ESatSResourceSignature ); - - // Reads a resource structure with memory allocation. - HBufC8* dataBuffer = resFile.AllocReadLC( aResourceId ); - - TResourceReader resReader; - resReader.SetBuffer( dataBuffer ); - - // Reads a string with memory allocation - iSatAppName = resReader.ReadHBufCL(); - iSatBipName.Copy( SatAppName() ); - - // dataBuffer - CleanupStack::PopAndDestroy( dataBuffer ); - // resFile, Calls resFile.Close() - // fs, Calls fs.Close - CleanupStack::PopAndDestroy( KCreateSatAppNamePop ); - - LOG( NORMAL, "SATENGINE: CSatCommandContainer::CreateSatAppNameL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::CreateAndGetBIPUtilsL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CSatBIPUtils* CSatCommandContainer::CreateAndGetBIPUtils() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::CreateAndGetBIPUtils calling" ) - // If pointer is null, create new - if ( !iBipUtils ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::CreateAndGetBIPUtilsL \ - Creating BIP Utils" ) - // TRAP this, We will panic, if this is NULL - TInt err( KErrNone ); - TRAP( err, iBipUtils = CSatBIPUtils::NewL( *this ) ); - LOG2( NORMAL, "SATENGINE: CSatCommandContainer::\ - CreateAndGetBIPUtilsL BIP Utils creation status: %i", err ) - } - - __ASSERT_ALWAYS( iBipUtils, PanicSatEngine( ESatEngineNullPointer ) ); - - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::CreateAndGetBIPUtils exiting" ) - return iBipUtils; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::CreateAndGetMediatorEventProvider -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CSatMediatorEventProvider* CSatCommandContainer:: - CreateAndGetSatMediatorEventProvider() - { - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::CreateAndGetSatMediatorEventProvider \ - calling" ) - - // If pointer is null, create new - if ( !iSatMediatorEvent ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::\ - CreateAndGetSatMediatorEventProvider \ - Creating CreateAndGetSatMediatorEventProvider" ) - // TRAP this, We will panic, if this is NULL - TInt err( KErrNone ); - TRAP( err, iSatMediatorEvent = CSatMediatorEventProvider::NewL() ); - LOG2( NORMAL, "SATENGINE: CSatCommandContainer::\ - CreateAndGetCSatMediatorEventProvider status: %i", err ) - } - - __ASSERT_ALWAYS( - iSatMediatorEvent, PanicSatEngine( ESatEngineNullPointer ) ); - - LOG( NORMAL, - "SATENGINE: CSatCommandContainer::CreateAndGetSatMediatorEventProvider \ - exiting" ) - return iSatMediatorEvent; - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::StartImportantCommandHandlersL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::StartImportantCommandHandlersL() - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::\ - StartImportantCommandHandlersL calling" ) - - // Create command handlers. - RImplInfoPtrArray satCommandImplementations; - CleanupStack::PushL( - TCleanupItem( CleanupPointerArray, &satCommandImplementations ) ); - REComSession::ListImplementationsL( KSatInterfaceDefinitionUid, - satCommandImplementations ); - - // Container for commands - const TInt cmdCount( satCommandImplementations.Count() ); - LOG2( NORMAL, "SATENGINE: CSatCommandContainer::\ - StartImportantCommandHandlersL Command handler count: %d", cmdCount ) - - // Check are there any command implementations - if ( cmdCount > 0 ) - { - iCmdHandlers - = new ( ELeave ) CArrayPtrFlat( cmdCount ); - - CSatCommandHandler* setUpEventListCmd = NULL; - // Add all important command handlers to list. - - // This will return KErrNotFound if the implementation is not included - // in configurations - TRAPD( err, setUpEventListCmd = - CSatCommandHandler::NewL( KSetUpEventListUid, this ) ); - - // Check does the command exist. - if ( setUpEventListCmd && KErrNone == err ) - { - LOG( NORMAL, "SATENGINE: CSatCommandContainer::\ - StartImportantCommandHandlersL KErrNone == err" ) - setUpEventListCmd->Start(); - CleanupStack::PushL( setUpEventListCmd ); - iCmdHandlers->AppendL( setUpEventListCmd ); - CleanupStack::Pop( setUpEventListCmd ); - } - } - - CleanupStack::PopAndDestroy( &satCommandImplementations ); - LOG( NORMAL, "SATENGINE: CSatCommandContainer::\ - StartImportantCommandHandlersL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandContainer::CheckStartupState -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCommandContainer::CheckStartupState( const TInt aValue ) - { - LOG2( NORMAL, "SATENGINE: CSatCommandContainer::CheckStartupState calling\ - with value %d", aValue ) - if ( ESwStateNormalRfOn == aValue ) - { - TRAP_IGNORE( StartCommandHandlersL() ) - iStartupChangeObserver->CancelNotify(); - // Startup phase is over - iStartupPhase = EFalse; - } - LOG( NORMAL, "SATENGINE: CSatCommandContainer::CheckStartupState exiting" ) - } - -// End Of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatCommandHandler.cpp --- a/satengine/SatServer/Engine/src/CSatCommandHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,336 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Base class for handling SAT commands. -* -*/ - - - -// INCLUDE FILES -#include -#include "MSatSystemState.h" -#include "CSatCommandHandler.h" -#include "MSatUtils.h" -#include "MSatApi.h" -#include "EnginePanic.h" -#include "MSatSUiClientHandler.h" -#include "SatLog.h" - -// Small delay for giving UI time to launch before starting to handle -// pending command -const TInt KTimerDelay = 100000; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatCommandHandler::CSatCommandHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C CSatCommandHandler::CSatCommandHandler() : - CActive( EPriorityStandard ) - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::CSatCommandHandler calling" ) - - CActiveScheduler::Add( this ); - - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::CSatCommandHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandHandler::BaseConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSatCommandHandler::BaseConstructL( MSatUtils* aPtr ) - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::BaseConstructL calling" ) - - __ASSERT_ALWAYS( aPtr, PanicSatEngine( ESatEngineNullPointer ) ); - iUtils = aPtr; - - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::BaseConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCommandHandler* CSatCommandHandler::NewL( - const TUid& aImplUid, - MSatUtils* aUtils ) - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::NewL calling" ) - - __ASSERT_ALWAYS( aUtils, PanicSatEngine( ESatEngineNullPointer ) ); - - TAny* ptr = REComSession::CreateImplementationL( aImplUid, - _FOFF( CSatCommandHandler, iDtorIDKey ), aUtils ); - - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::NewL exiting" ) - return reinterpret_cast( ptr ); - } - -// Destructor -EXPORT_C CSatCommandHandler::~CSatCommandHandler() - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::~CSatCommandHandler calling" ) - - iUtils = NULL; - REComSession::DestroyedImplementation( iDtorIDKey ); - - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::~CSatCommandHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandHandler::Start -// Starts the waiting of SAT command, if not already active. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSatCommandHandler::Start() - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::Start calling" ) - - if ( !IsActive() ) - { - LOG( DETAILED, "SATENGINE: CSatCommandHandler::Start set active" ) - // Child class issues the request. - IssueUSATRequest( iStatus ); - SetActive(); - - // Not executing - iIsExecuting = EFalse; - iWaitingUiLaunch = EFalse; - } - - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandHandler::DoHandleCommand -// Handles the SAT command, which has been notified from USAT api. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSatCommandHandler::DoHandleCommand() - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::DoHandleCommand calling" ) - - if ( CommandAllowed() ) - { - iUtils->NotifyEvent( MSatUtils::EDestroySimSessionEndTimer ); - if ( NeedUiSession() ) - { - // If ui session is not availabe, SATUI has to be - // launched. - if ( NULL == iUtils->SatUiHandler().UiSession() ) - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::DoHandleCommand \ - uisession not available" ) - TRAPD( err, iUtils->RegisterL( - this, MSatUtils::ESatUiLaunched ); - - // Try to launch the ui client. - iUtils->SatUiHandler().LaunchSatUiL(); - ); // End of TRAPD - - if ( KErrNone != err ) - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::\ - DoHandleCommand KErrNone != err" ) - // Ui launch failed, unregister event - iUtils->UnregisterEvent( this, MSatUtils::ESatUiLaunched ); - - // Notify derived class that ui launch failed. - UiLaunchFailed(); - } - else - { - LOG( SIMPLE, - "SATENGINE: CSatCommandHandler::DoHandleCommand iWaitingUiLaunch") - iWaitingUiLaunch = ETrue; - } - } - else - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::DoHandleCommand \ - uisession available" ) - // client session is available handle the command. - HandleCommand(); - } - } - else - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::DoHandleCommand \ - don't need uisession" ) - // Command does not need ui client, so handle the command. - HandleCommand(); - } - } - - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::DoHandleCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandHandler::ClientResponse -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSatCommandHandler::ClientResponse() - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::ClientResponse panic" ) - PanicSatEngine( ESatUnexpectedHandleUiResponseCall ); - } - -// ----------------------------------------------------------------------------- -// CSatCommandHandler::Event -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSatCommandHandler::Event( TInt aEvent ) - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::Event calling" ) - - if ( MSatUtils::ESatUiLaunched == aEvent ) - { - iUtils->UnregisterEvent( this, MSatUtils::ESatUiLaunched ); - // Check is command still waiting UI to start - if ( !IsActive() ) - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::Event waiting UI" ) - // Start timer to give UI some time to execute - iWaitingUiLaunch = ETrue; - iDelayTimer.CreateLocal(); - iDelayTimer.After( iStatus, KTimerDelay ); - SetActive(); - } - else - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::Event close UI" ) - // UI is launched but command is not executing. UI must be closed. - iUtils->NotifyEvent( MSatUtils::ESessionTerminatedByUser ); - } - } - - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandHandler::TerminalRsp -// Sends the terminal response to the SIM and renews the sat request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSatCommandHandler::TerminalRsp( - RSat::TPCmd aPCmd, // Identifies the command sending terminal rsp. - const TDesC8& aRsp ) // Data package of the response - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::TerminalRsp calling" ) - - iUtils->NotifyEvent( MSatUtils::EDelaySimSessionEnd ); - iUtils->USatAPI().TerminalRsp( aPCmd, aRsp ); - Start(); - - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::TerminalRsp exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandHandler::RunL -// If request is completed without error, starts handling the command. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSatCommandHandler::RunL() - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::RunL calling" ) - LOG2( SIMPLE, - "SATENGINE: RunL status: %d", iStatus.Int() ) - if ( iWaitingUiLaunch ) - { - LOG( NORMAL, " UI is launched. Starting to handle command" ) - iWaitingUiLaunch = EFalse; - iDelayTimer.Close(); - HandleCommand(); - } - else if ( KErrNone == iStatus.Int() ) - { - // Executing only, if really executing - iIsExecuting = ETrue; - DoHandleCommand(); - } - else if ( KErrNotSupported != iStatus.Int() ) - { - Start(); - } - else - { - LOG( SIMPLE, "SATENGINE: Request was unsupported" ) - } - - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCommandHandler::IsPhoneInIdleState -// Returns ETrue if using Dummy TSY -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool CSatCommandHandler::IsPhoneInIdleState() - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::IsPhoneInIdleState calling" ) - TBool isIdle( EFalse ); - - TRAPD( err, ( isIdle = iUtils->SystemState().IsPhoneInIdleStateL() ) ); - - if ( KErrNone != err ) - { - LOG( SIMPLE, - "SATENGINE: CSatCommandHandler::IsPhoneInIdleState KErrNone != err" ) - isIdle = EFalse; - } - - LOG2( SIMPLE, "SATENGINE: CSatCommandHandler::IsPhoneInIdleState \ - exiting, isIdle: %d", isIdle ) - return isIdle; - } - -// ----------------------------------------------------------------------------- -// CSatCommandHandler::Panic -// Gives a panic. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSatCommandHandler::Panic( - const TDesC& aCategory, TInt aReason ) const - { - LOG( SIMPLE, "SATENGINE: CSatCommandHandler::Panic" ) - User::Panic( aCategory, aReason ); - } - -// ----------------------------------------------------------------------------- -// CSatCommandHandler::IsCommandExecuting -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool CSatCommandHandler::IsCommandExecuting() const - { - LOG( DETAILED, "SATENGINE: CSatCommandHandler::IsCommandExecuting" ) - return iIsExecuting; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatEventMonitorContainer.cpp --- a/satengine/SatServer/Engine/src/CSatEventMonitorContainer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,748 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Container of event monitor classes -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "MSatEventMonitor.h" -#include "MSatUtils.h" -#include "MSatBIPUtils.h" -#include "MSatSystemState.h" -#include "TSatEventMonitorFactory.h" -#include "CSatEventMonitorContainer.h" -//lint -e766 Used inside TRAP macro, lint misfunction. -#include "EnginePanic.h" -#include "TUSatAPI.h" -#include "SatSOpcodes.h" -#include "SatLog.h" - -// CONSTANTS -const TUint KLangTextSize( 2 ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatEventMonitorContainer* CSatEventMonitorContainer::NewL( - TUSatAPI& aUsatAPI, - MSatUtils& aSatUtils ) - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::NewL calling" ) - - CSatEventMonitorContainer* self = - new( ELeave )CSatEventMonitorContainer( aUsatAPI, aSatUtils ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( /* self */ ); - - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::NewL exiting" ) - return self; - } - -// Destructor -CSatEventMonitorContainer::~CSatEventMonitorContainer() - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - ~CSatEventMonitorContainer calling" ) - - iEventMonitors = NULL; - - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - ~CSatEventMonitorContainer exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::Event -// From MSatEventObserver -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorContainer::Event( TInt aEvent ) - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::Event calling" ) - - //lint -e{961} else block meaningless, event handled elsewhere. - if ( MSatUtils::EBipCommandExecuting == aEvent ) - { - LOG( SIMPLE, "EventMonitor: BIP Command Executing" ) - iBipExecuting = ETrue; - } - else if ( MSatUtils::EBipCommandDoneExecuting == aEvent ) - { - LOG( SIMPLE, "EventMonitor: BIP Command NOT executing" ) - iBipExecuting = EFalse; - - if ( iEventPending ) - { - iEventPending = EFalse; - LOG( SIMPLE, "EventMonitor: Executing pending envelope" ) - EventDownload( iPendingEvent, iPendingFirstArg, iPendingSecondArg ); - } - } - - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::SetUpEventMonitors -// Updates all event monitors in list. -// ----------------------------------------------------------------------------- -// -TInt CSatEventMonitorContainer::SetUpEventMonitors( TUint aEvents ) - { - LOG2( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::SetUpEventMonitors calling %d", - aEvents ) - const TInt monitorCount( iEventMonitors->Count() ); - TInt errCode = KErrNotSupported; - LOG2( SIMPLE, "SATENGINE: CSatEventMonitorContainer::SetUpEventMonitors \ - monitorCount: %i", monitorCount ) - // Check is events supported - if ( EventsSupported( aEvents ) ) - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - SetUpEventMonitors events supported" ) - // Update all monitors from list - for ( TInt index = 0; index < monitorCount; index++ ) - { - MSatEventMonitor* monitor = iEventMonitors->At( index ); - __ASSERT_ALWAYS( monitor, PanicSatEngine( ESatEngineNullPointer ) ); - // Update monitor - errCode = monitor->UpdateMonitor( aEvents ); - - if ( KErrNone != errCode ) - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - SetUpEventMonitors KErrNone != errCode" ) - // Error, cancel all monitors and end this loop - CancelAllMonitors(); - index = monitorCount; - } - } - } - - LOG2( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::SetUpEventMonitors exiting %d", - errCode ) - - return errCode; - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::CancelAllMonitors -// Cancels all monitors in list. -// ----------------------------------------------------------------------------- -// -TInt CSatEventMonitorContainer::CancelAllMonitors() - { - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::CancelAllMonitors calling" ) - - const TInt monitorCount( iEventMonitors->Count() ); - LOG2( SIMPLE, "SATENGINE: CSatEventMonitorContainer::CancelAllMonitors \ - monitorCount: %i", monitorCount ) - // Cancel all monitors from list - for ( TInt index = 0; index < monitorCount; index++ ) - { - MSatEventMonitor* monitor = iEventMonitors->At( index ); - __ASSERT_ALWAYS( monitor, PanicSatEngine( ESatEngineNullPointer ) ); - // Cancel monitor - monitor->CancelMonitor(); - } - - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::CancelAllMonitors exiting" ) - - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::LanguageSettingL -// Resolves language ID -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorContainer::LanguageSettingL( TInt& aLanguage ) - { - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::LanguageSettingL calling" ) - - // Automatic Language setting is detected as 0. - // There is no header file for this. This is only needed here. - const TInt KAutomaticLanguageSetting( 0 ); - - // Special treatment for automatic language setting. - if ( KAutomaticLanguageSetting == aLanguage ) - { - // Automatic language setting - Tries to take preferred - // language from SIM card. - - // The following operations need a file server session. - RFs fileServerSession; - User::LeaveIfError( fileServerSession.Connect() ); - CleanupClosePushL( fileServerSession ); - - // Automatic language setting - // 1) look for SIM Preferred Language - // 2) look if language is supported in phone - // - - // Preferred language from SIM (Symbian coding). - TInt simPreferredLanguageSymbianCoding; - - // Fetch SIM preferred language (Symbian coding) and see if it is - // supported - if ( KErrNone == SysLangUtil::RestoreSIMLanguage - ( simPreferredLanguageSymbianCoding, &fileServerSession ) - && SysLangUtil::IsValidLanguage - ( simPreferredLanguageSymbianCoding, &fileServerSession ) ) - { - aLanguage = simPreferredLanguageSymbianCoding; - LOG2( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - LanguageSettingL SIM preferred language is supported %d", - aLanguage ) - } - else - { - // Either there is no SIM preferred language, or the SIM preferred - // language is not supported. Then default language is used. - SysLangUtil::GetDefaultLanguage( aLanguage, &fileServerSession ); - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - LanguageSettingL No SIM preferred language" ) - } - - CleanupStack::PopAndDestroy(); // fileServerSession - } - - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::LanguageSettingL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::EventDownload -// Called when an event occurs. Handles that event and possibly sends -// event download to SIM. -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorContainer::EventDownload( - RSat::TEventList aSingleEvent, TInt aFirstArg, TInt aSecArg ) - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::EventDownload calling" ) - - //lint -e{961} Else block meaningless - if ( ( iBipExecuting || IsActive() ) && !iEventPending ) - { - LOG( NORMAL, "EventMonitor: EventDownload BIP Command Executing" ) - // If there is event download currently active, we cannot send next - // event download, so we have to store this event. - iPendingEvent = aSingleEvent; - iPendingFirstArg = aFirstArg; - iPendingSecondArg = aSecArg; - iEventPending = ETrue; - } - else if ( !iEventPending ) - { - // No pending events, we can execute - switch ( aSingleEvent ) - { - case RSat::KLanguageSelection: - { - LOG( NORMAL, "SATENGINE: Event LanguageSelection" ) - LanguageSelectionEvent( aFirstArg ); - break; - } - - case RSat::KBrowserTermination: - { - LOG( NORMAL, "SATENGINE: Event BrowserTermination" ) - BrowserTerminationEvent( aFirstArg ); - break; - } - - case RSat::KDataAvailable: - { - LOG( NORMAL, "SATENGINE: Event DataAvailable" ) - DataAvailableEvent( aFirstArg, aSecArg ); - break; - } - - case RSat::KChannelStatus: - { - LOG( NORMAL, "SATENGINE: Event ChannelStatus" ) - ChannelStatusEvent( aFirstArg, aSecArg ); - break; - } - - // These events does not have any data to be sent - // to SIM - case RSat::KUserActivity: - case RSat::KIdleScreenAvailable: - { - LOG( NORMAL, "SATENGINE: Event UserActivity/IdleScreen" ) - RSat::TEventDownloadBaseV2 eventDownload; - RSat::TEventDownloadBaseV2Pckg eventDownloadPckg( - eventDownload ); - eventDownload.iDataAvailable = EFalse; - iSat.EventDownload( iStatus, aSingleEvent, eventDownloadPckg ); - iRemovableSingleEvent = aSingleEvent; - break; - } - - default: - { - LOG( NORMAL, "SATENGINE: BadRequest" ) - __ASSERT_DEBUG( EFalse, PanicSatEngine( ESatSBadRequest ) ); - } - } - - SetActive(); - } - - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::EventDownload exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::BipUtils -// Returns the interface for BIP Utils -// ----------------------------------------------------------------------------- -// -MSatBIPEventNotifier& CSatEventMonitorContainer::BipNotifier() - { - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::BipUtils calling-exiting" ) - return iSatUtils.BipEventNotifier(); - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::SimRemoved -// Updates event monitor list -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorContainer::SimRemoved() - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::SimRemoved calling" ) - - // If SIM is removed, all monitors must be cancelled. - CancelAllMonitors(); - - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::SimRemoved exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::GetLanguageString -// Gets the ISO639 language code. -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorContainer::GetLanguageString( const TInt aId, TDes& aText ) - { - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::GetLanguageString calling" ) - - aText = KNullDesC; - TBuf lanText; - lanText.Copy( KNullDesC ); - - // Number of Symbian languages. - TInt count( KNUMLANGSTRINGS ); - // Index for searching loop. - TInt i( 0 ); - // Language structure for searching loop. - SLangString language( KLangStrings[i] ); - - // Loop languages until one is found - do { - language = KLangStrings[i]; - // Finds the appropriate language and gives a code for that. - if ( language.iId == aId ) - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - GetLanguageString language.iId == aId" ) - // Current language code in the loop is appended to reference. - lanText.Append( - *( language.iString ) << 8 | *( language.iString + 1 ) ); - } - i++; - } - while ( ( i <= count ) && ( language.iId != aId ) ); - - aText.Copy( lanText ); - LOG2( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::GetLanguageString aId: %i", aId ) - LOG2( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::GetLanguageString aId: %S", - &aText ) - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::GetLanguageString exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::RunL -// From CActive -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorContainer::RunL() - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::RunL calling" ) - - if ( KErrCancel != iRemovableSingleEvent ) - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::RunL \ - KErrCancel != iRemovableSingleEvent" ) - //Remove event from list as these are not continuous events - RemoveSingleEvent( - static_cast( iRemovableSingleEvent ) ); - iRemovableSingleEvent = KErrCancel; - } - - // Check the request status - if ( KErrNone != iStatus.Int() ) - { - LOG2( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::RunL with value %d", - iStatus.Int() ) - } - - // If there are events pending, send now - if ( iEventPending ) - { - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::RunL Sending pending event" ) - iEventPending = EFalse; - - // Send event - EventDownload( iPendingEvent, iPendingFirstArg, iPendingSecondArg ); - } - - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::DoCancel -// From CActive -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorContainer::DoCancel() - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::DoCancel calling" ) - - CancelAllMonitors(); - - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::CSatEventMonitorContainer -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatEventMonitorContainer::CSatEventMonitorContainer( TUSatAPI& aUsatAPI, - MSatUtils& aSatUtils ) : - CActive ( CActive::EPriorityStandard ), - iSat( aUsatAPI ), - iSatUtils( aSatUtils ) - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - CSatEventMonitorContainer calling" ) - - CActiveScheduler::Add( this ); - - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - CSatEventMonitorContainer exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorContainer::ConstructL() - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::ConstructL calling" ) - - iEventMonitors = TSatEventMonitorFactory::CreateEventMonitorsL( *this ); - iRemovableSingleEvent = KErrCancel; - - iSatUtils.RegisterL( this, MSatUtils::EBipCommandExecuting ); - iSatUtils.RegisterL( this, MSatUtils::EBipCommandDoneExecuting ); - - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::LanguageSelectionEvent -// Handles LanguageSelection event and sends event download -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorContainer::LanguageSelectionEvent( TInt aLanguageId ) - { - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::LanguageSelectionEvent calling" ) - - // Special event download package, - // used exclusively for Language Selection events - RSat::TLanguageSelectionEventV2 languageDownload; - RSat::TLanguageSelectionEventV2Pckg languageDownloadPckg( - languageDownload ); - languageDownload.iDataAvailable = EFalse; - - // Resolve Language ID - TRAPD( err, LanguageSettingL( aLanguageId ) ); - LOG2( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - LanguageSelectionEvent err: %i", err ) - if ( KErrNone == err ) - { - // Get Language string - TBuf<1> languageTxt; - GetLanguageString( aLanguageId, languageTxt ); - - // If language is found, put it to event download information - if ( languageTxt.Length() != 0 ) - { - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::LanguageSelectionEvent \ - languageTxt.Length() != 0" ) - - // Language selection event does have data. - languageDownload.iDataAvailable = ETrue; - - // Integer argument is interpreted as language code. - languageDownload.iLanguage = - static_cast( languageTxt[0] ); - } - } - - // Send EventDownload to SIM - iSat.EventDownload( - iStatus, - RSat::KLanguageSelection, - languageDownloadPckg ); - - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::LanguageSelectionEvent exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::BrowserTerminationEvent -// Handles browser termination event and sends event download -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorContainer::BrowserTerminationEvent( TInt aCause ) - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - BrowserTerminationEvent calling" ) - - // Special event download package, - // used exclusively for Browser termination events. - RSat::TBrowserTerminationEventV2 browserTermination; - RSat::TBrowserTerminationEventV2Pckg browserTerminationPckg( - browserTermination ); - - // Language selection event does have data. - browserTermination.iDataAvailable = ETrue; - - // Browser termination event does have data. - browserTermination.iCause = - static_cast( aCause ); - - // Send event download - iSat.EventDownload( - iStatus, - RSat::KBrowserTermination, - browserTerminationPckg ); - - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - BrowserTerminationEvent exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::DataAvailableEvent -// Handles DataAvailable event and sends event download -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorContainer::DataAvailableEvent( - const TInt aChannelId, const TInt aLength ) - { - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::DataAvailableEvent calling" ) - - RSat::TDataAvailableEventV2 dataAvailable; - RSat::TDataAvailableEventV2Pckg dataAvailablePckg( dataAvailable ); - RSat::TChannelStatus status; - - // BIP Utils will generate channel status - TRAPD( err, - status = iSatUtils.BipUtils().GenerateChannelStatusL( aChannelId, 0 ) ); - - // Check error - LOG2( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - DataAvailableEvent ChannelStatus failed: %i", err ) - if ( KErrNone == err ) - { - // Put the parameters to data package - dataAvailable.iDataAvailable = ETrue; - // If received more than 0xFF, we return 0xFF, because that iLength can - // contain only one byte. - TInt8 length( 0 ); - - if ( KSatBIPMoreThanMaxSize < aLength ) - { - LOG( SIMPLE, "SATENGINE: CSatEventMonitorContainer::\ - DataAvailableEvent KSatBIPMoreThanMaxSize < aLength" ) - length = static_cast( KSatBIPMoreThanMaxSize ); - } - else - { - length = static_cast( aLength ); - } - - dataAvailable.iLength = length; - dataAvailable.iStatus = status; - // Send EventDownload to SIM - iSat.EventDownload( - iStatus, - RSat::KDataAvailable, - dataAvailablePckg ); - } - - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::DataAvailableEvent exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::ChannelStatusEvent -// Handles ChannelStatus event and sends event download -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorContainer::ChannelStatusEvent( const TInt aChannelId, - const TInt aStatus ) - { - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::ChannelStatusEvent calling" ) - - RSat::TChannelStatusEventV2 channelStatus; - RSat::TChannelStatusEventV2Pckg channelStatusPckg( channelStatus ); - RSat::TChannelStatus status; - - // BIP Utils will generate channel status - TRAPD( err, status = iSatUtils.BipUtils().GenerateChannelStatusL( - aChannelId, aStatus ) ); - - // Check error - LOG2( NORMAL, "SATENGINE: CSatEventMonitorContainer::\ - ChannelStatusEvent ChannelStatus failed: %i", err ) - if ( KErrNone == err ) - { - - LOG2( SIMPLE, "SatServer, ChannelStatus envelope: %b", status[0] ) - // Put the parameters to data package - channelStatus.iDataAvailable = ETrue; - channelStatus.iStatus = status; - // Send EventDownload to SIM - iSat.EventDownload( - iStatus, - RSat::KChannelStatus, - channelStatusPckg ); - } - - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::ChannelStatusEvent exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::EventsSupported -// Checks whether aEvents contains supported events only. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CSatEventMonitorContainer::EventsSupported( TUint aEvents ) const - { - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::EventsSupported calling" ) - - // Events supported and handled by this class. - const TUint eventsSupported = - RSat::KUserActivity | RSat::KIdleScreenAvailable | - RSat::KLanguageSelection | RSat::KBrowserTermination | - RSat::KDataAvailable | RSat::KChannelStatus; - - // If aEvents has even one event that is not supported (not found from - // eventsSuported), then EventsSupported returns EFalse. - - // First the eventsSupported is masked and bits are inverted. Then that mask - // is compared to aEvents and if there is even one bit that is not supposed - // to be there, function returns EFalse. - - const TBool supported( !( ~( eventsSupported ) & aEvents ) ); - - LOG2( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::EventsSupported returning %i", - supported ) - return supported; - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::WriteLanguageSelectionTime -// Sets time delay before reboot. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CSatEventMonitorContainer::WriteLanguageSelectionTime( TInt aTime ) - { - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::WriteLanguageSelectionTime \ - calling-exiting" ) - return iSatUtils.SystemState().WriteLanguageSelectionTime( aTime ); - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorContainer::RemoveSingleEvent -// Removes single event from list -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorContainer::RemoveSingleEvent( - RSat::TEventList aSingleEvent ) - { - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::RemoveSingleEvent calling" ) - - const TInt monitorCount( iEventMonitors->Count() ); - LOG2( SIMPLE, "SATENGINE: CSatEventMonitorContainer::RemoveSingleEvent \ - monitorCount: %i", monitorCount ) - - // Cancel all monitors from list - for ( TInt index = 0; index < monitorCount; index++ ) - { - MSatEventMonitor* monitor = iEventMonitors->At( index ); - __ASSERT_ALWAYS( monitor, PanicSatEngine( ESatEngineNullPointer ) ); - - if ( monitor->IsMonitoringEvent( aSingleEvent ) ) - { - // Cancel monitor - monitor->CancelMonitor(); - } - } - - LOG( SIMPLE, - "SATENGINE: CSatEventMonitorContainer::RemoveSingleEvent exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatIconHandler.cpp --- a/satengine/SatServer/Engine/src/CSatIconHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,390 +0,0 @@ -/* -* Copyright (c) 2004-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: Interface for accessing icon data in SIM. -* -*/ - - -#include "TUSatAPI.h" -#include "MSatIconObserver.h" -#include "CSatIconHandler.h" -#include "SatLog.h" -#include "EnginePanic.h" -#include "csatsactivewrapper.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatIconHandler::CSatIconHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatIconHandler::CSatIconHandler( - MSatApi& aSatApi ) : - CActive( EPriorityStandard ), - MSatSIconAPI(), - iSatApi( aSatApi ), - iGetIconInfoActive( EFalse ), - iGetIconInstanceActive( EFalse ), - iGetClutActive( EFalse ), - iSyncIconFetching( EFalse ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::CSatIconHandler calling" ) - - CActiveScheduler::Add( this ); - - LOG( SIMPLE, "SATENGINE: CSatIconHandler::CSatIconHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatIconHandler::~CSatIconHandler() -// Destructor -// ----------------------------------------------------------------------------- -// -CSatIconHandler::~CSatIconHandler() - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::~CSatIconHandler calling" ) - - iObserver = NULL; - - LOG( SIMPLE, "SATENGINE: CSatIconHandler::~CSatIconHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatIconHandler::GetIconInfo -// Gets the icon info from SIM through USAT-API. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatIconHandler::GetIconInfo( - TUint8 aRecordNumber, - RSat::TIcon& aIconEf, - MSatIconObserver& aObserver ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetIconInfo calling" ) - - iObserver = &aObserver; - - // Check is RSat connected - if ( iSatApi.IsRSatConnected() ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetIconInfo connected" ) - iSatApi.GetIcon( iStatus, aRecordNumber, aIconEf ); - iGetIconInfoActive = ETrue; - SetActive(); - } - else - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetIconInfo Not connected" ) - iObserver->NotifyFailure( KErrDisconnected ); - } - - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetIconInfo exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatIconHandler::GetIconInstance -// Gets the icon data from SIM through USAT-API. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatIconHandler::GetIconInstance( - const RSat::TInstanceInfoV3& aInstanceInfo, - TDes8& aInstance, - MSatIconObserver& aObserver ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetIconInstance calling" ) - - iObserver = &aObserver; - - // Check is RSat connected - if ( iSatApi.IsRSatConnected() ) - { - LOG( SIMPLE, - "SATENGINE: CSatIconHandler::GetIconInstance connected" ) - #ifndef __WINS__ - RSat::TInstanceInfoV3Pckg instanceInfoPckg( aInstanceInfo ); - if ( !iSyncIconFetching ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetIconInstance \ - iSyncIconFetching false" ) - iSatApi.GetImageInstance( - iStatus, instanceInfoPckg, aInstance ); - iGetIconInstanceActive = ETrue; - SetActive(); - } - else - { - CSatSActiveWrapper* wrapper = NULL; - wrapper = new CSatSActiveWrapper(); - TInt error( KErrNoMemory ); - if ( wrapper ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetIconInstance\ - wrapper" ) - iSatApi.GetImageInstance( wrapper->RequestStatus(), - instanceInfoPckg, aInstance ); - error = wrapper->SetActiveAndWait(); - delete wrapper; - wrapper = NULL; - } - - LOG2( - SIMPLE, - "SATENGINE: CSatIconHandler::GetIconInstance iStatus: %i", - error ) - if ( KErrNone != error ) - { - iObserver->NotifyFailure( error ); - } - else - { - TRAP_IGNORE( iObserver->NotifyGetIconInstanceL(); ); - } - } - #else - CSatSActiveWrapper* wrapper = NULL; - wrapper = new CSatSActiveWrapper(); - TInt error( KErrNoMemory ); - if ( wrapper ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetIconInstance\ - wrapper true" ) - RSat::TInstanceInfoV3Pckg instanceInfoPckg( aInstanceInfo ); - iSatApi.GetImageInstance( wrapper->RequestStatus(), - instanceInfoPckg, aInstance ); - error = wrapper->SetActiveAndWait(); - delete wrapper; - wrapper = NULL; - } - - LOG2( - SIMPLE, - "SATENGINE: CSatIconHandler::GetIconInstance iStatus: %i", - error ) - if ( KErrNone != error ) - { - iObserver->NotifyFailure( error ); - } - else - { - TRAP_IGNORE( iObserver->NotifyGetIconInstanceL(); ); - } - #endif - - } - else - { - LOG( SIMPLE, - "SATENGINE: CSatIconHandler::GetIconInstance not connected" ) - iObserver->NotifyFailure( KErrDisconnected ); - } - - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetIconInstance exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatIconHandler::GetClut -// Gets the Clut from SIM through USAT-API. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatIconHandler::GetClut( - TUint aInstanceNumber, - TUint aOffset, - TDes8& aClut, - MSatIconObserver& aObserver ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetClut calling" ) - - iObserver = &aObserver; - // Check is RSat connected - if ( iSatApi.IsRSatConnected() ) - { - LOG( SIMPLE, - "SATENGINE: CSatIconHandler::GetClut connected" ) - #ifndef __WINS__ - if ( !iSyncIconFetching ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetClut \ - iSyncIconFetching false" ) - iSatApi.GetClut( iStatus, aInstanceNumber, aOffset, aClut ); - iGetClutActive = ETrue; - SetActive(); - } - else - { - CSatSActiveWrapper* wrapper = NULL; - wrapper = new CSatSActiveWrapper(); - TInt error( KErrNoMemory ); - if ( wrapper ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetClut\ - wrapper" ) - iSatApi.GetClut( wrapper->RequestStatus(), - aInstanceNumber, aOffset, aClut ); - error = wrapper->SetActiveAndWait(); - delete wrapper; - wrapper = NULL; - } - - LOG2( - SIMPLE, - "SATENGINE: CSatIconHandler::GetClut iStatus: %i", error ) - if ( KErrNone != error ) - { - iObserver->NotifyFailure( error ); - } - else - { - TRAP_IGNORE( iObserver->NotifyGetClutL(); ); - } - } - #else - CSatSActiveWrapper* wrapper = NULL; - wrapper = new CSatSActiveWrapper(); - TInt error( KErrNoMemory ); - if ( wrapper ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetClut\ - wrapper true" ) - iSatApi.GetClut( wrapper->RequestStatus(), aInstanceNumber, - aOffset, aClut ); - error = wrapper->SetActiveAndWait(); - delete wrapper; - wrapper = NULL; - } - - LOG2( - SIMPLE, - "SATENGINE: CSatIconHandler::GetClut iStatus: %i", error ) - if ( KErrNone != error ) - { - iObserver->NotifyFailure( error ); - } - else - { - TRAP_IGNORE( iObserver->NotifyGetClutL(); ); - } - #endif - - } - else - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetClut Not connected" ) - iObserver->NotifyFailure( KErrDisconnected ); - } - - LOG( SIMPLE, "SATENGINE: CSatIconHandler::GetClut exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatIconHandler::DoCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatIconHandler::DoCancel() - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::DoCancel calling" ) - - // Complete the request with cancel code. - iObserver->NotifyFailure( KErrCancel ); - - LOG( SIMPLE, "SATENGINE: CSatIconHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatIconHandler::RunL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatIconHandler::RunL() - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::RunL calling" ) - LOG2( SIMPLE, - "SATENGINE: CSatIconHandler::RunL error: %i", iStatus.Int() ) - if ( KErrNone == iStatus.Int() ) - { - if ( iGetIconInfoActive ) - { - LOG( NORMAL, "SATENGINE: iGetIconInfoActive" ) - iGetIconInfoActive = EFalse; - iObserver->NotifyGetIconInfo(); - } - - else if ( iGetIconInstanceActive ) - { - LOG( NORMAL, "SATENGINE: iGetIconInstanceActive" ) - iGetIconInstanceActive = EFalse; - iObserver->NotifyGetIconInstanceL(); - } - - else if ( iGetClutActive ) - { - LOG( NORMAL, "SATENGINE: iGetClutActive" ) - iGetClutActive = EFalse; - iObserver->NotifyGetClutL(); - } - - else - { - LOG( SIMPLE, "SATENGINE: Unexpected RunL" ) - PanicSatEngine( ESatSBadRequest ); - } - } - else - { - iObserver->NotifyFailure( iStatus.Int() ); - } - - LOG( SIMPLE, "SATENGINE: CSatIconHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatIconHandler::RunError -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CSatIconHandler::RunError( TInt aError ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::RunError calling" ) - - // If leave happened before completion of iMessage, we do it now - TInt err = iObserver->CompleteError( aError ); - // If completed succesfully, aError is sent forward in completion. - // If not, we should return aError forward - if ( KErrNone != err ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::RunError KErrNone != err" ) - err = aError; - } - - LOG2( SIMPLE, "SATENGINE: CSatIconHandler::RunError exiting, err: %i", - err ) - return err; - } -// ----------------------------------------------------------------------------- -// Set a mode to determine whether to fetch icons from NAA syncronously or -// asynchronously. -// ----------------------------------------------------------------------------- -// -void CSatIconHandler::SetIconFetchingMode( TBool aMode ) - { - LOG( SIMPLE, "SATENGINE: CSatIconHandler::SetIconFetchingMode calling" ) - - iSyncIconFetching = aMode; - - LOG( SIMPLE, "SATENGINE: CSatIconHandler::SetIconFetchingMode exiting" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatSAPChangeObserver.cpp --- a/satengine/SatServer/Engine/src/CSatSAPChangeObserver.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,149 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Observes SIM Access Profile status changes. -* -*/ - - -#include -#include -#include "MSatUiSession.h" -#include "MSatSUiClientHandler.h" -#include "TSatSystemStateFactory.h" -#include "MSatSystemStateChangeNotifier.h" -#include "CSatSAPChangeObserver.h" -#include "SatLog.h" -#include "CSatCommandContainer.h" -#include "CSatSUiClientHandler.h" - - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatSAPChangeObserver::CSatSAPChangeObserver( - CSatCommandContainer& aContainer ) : - iContainer( aContainer ) - { - LOG( SIMPLE, "SATENGINE: CSatSAPChangeObserver::CSatSAPChangeObserver\ - calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatSAPChangeObserver* CSatSAPChangeObserver::NewL( - CSatCommandContainer& aContainer ) - { - LOG( SIMPLE, "SATENGINE: CSatSAPChangeObserver::NewL calling" ) - - CSatSAPChangeObserver* self = - new ( ELeave ) CSatSAPChangeObserver( aContainer ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATENGINE: CSatSAPChangeObserver::NewL exiting" ) - return self; - } - - -// Destructor -CSatSAPChangeObserver::~CSatSAPChangeObserver() - { - LOG( SIMPLE, - "SATENGINE: CSatSAPChangeObserver::~CSatSAPChangeObserver calling" ) - - if ( iStateNotifier ) - { - iStateNotifier->CancelNotify(); - delete iStateNotifier; - iStateNotifier = NULL; - } - - LOG( SIMPLE, - "SATENGINE: CSatSAPChangeObserver::~CSatSAPChangeObserver exiting" ) - } - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -void CSatSAPChangeObserver::ConstructL() - { - LOG( SIMPLE, "SATENGINE: CSatSAPChangeObserver::ConstructL calling" ) - - iStateNotifier = - TSatSystemStateFactory::CreateSIMAccessProfileChangeNotifierL( *this ); - // Start observer immediately - iStateNotifier->NotifyChangeL(); - - LOG( SIMPLE, "SATENGINE: CSatSAPChangeObserver::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -void CSatSAPChangeObserver::StateChanged( const TInt aValue ) - { - LOG2( SIMPLE, - "SATENGINE: CSatSAPChangeObserver::StateChanged calling with value %d", - aValue ) - - TInt error( KErrNone ); - - // If value is true, stop all command handlers and remove - // SAT Icon from Application Shell. - if ( EBTSapConnecting == aValue || - EBTSapConnected == aValue ) - { - // SIM Access Profile activated. - // Notify listeners about SAT UI icon removing from Application Shell. - // This should be notified before command handlers are stopped. - iContainer.NotifyEvent( MSatUtils::ERemoveSatUiCalled ); - - // Then stop command handlers and remove SAT UI from Application Shell. - iContainer.StopCommandHandlers(); - } - else if ( EBTSapNotConnected == aValue ) - { - LOG( SIMPLE, "SATENGINE: CSatSAPChangeObserver::StateChanged \ - EBTSapNotConnected" ) - // Start command handlers - TRAP( error, - iContainer.StartCommandHandlersL(); - ); // End of TRAP - - if ( KErrNone != error ) - { - LOG2( SIMPLE, "SATENGINE: CSatSAPChangeObserver::StateChanged \ - failed to recover from SAP: %i", error ) - } - - // Notify listeners about SAT UI icon adding. - iContainer.NotifyEvent( MSatUtils::EAddSatUiCalled ); - } - else - { - LOG( SIMPLE, "SATENGINE: Unexpected value" ) - } - - LOG2( SIMPLE, "SATENGINE: CSatSAPChangeObserver::StateChanged exiting, \ - error: %d",error ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatSBasicIconConverter.cpp --- a/satengine/SatServer/Engine/src/CSatSBasicIconConverter.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,173 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Converts basic icon to CFbsBitmap -* -*/ - - -#include -#include -#include "CSatSBasicIconConverter.h" -#include "TSatBitOP.h" -#include "SatLog.h" - -// Black&white icon uses 1 bpp. -const TUint8 KBpp = 1; - -// Black&white icon header size is 2. -const TUint8 KHeaderSize( 2 ); - -// Value of icon data, which means that pixel is lit. -const TInt KPixelIsLit = 1; -const TUint KBitCount( 8 ); - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatSBasicIconConverter::CSatSBasicIconConverter -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatSBasicIconConverter::CSatSBasicIconConverter() : -CSatSIconConverter() - { - LOG( SIMPLE, "SATENGINE: \ - CSatSBasicIconConverter::CSatSBasicIconConverter calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSBasicIconConverter::ConvertL -// Converts the basic icon format (ETSI TS 131 102 V4.10.0) to CFbsBitmap -// The format of aData has to be following: -// 1st byte: Image width -// 2nd byte: Image height -// 3rd byte to end: Image body. -// Image body has to be in following format: -// Bit 8: 1st pixel -// Bit 7: 2nd pixel -// Bit 6: 3rd pixel -// etc... -// -// Clut is not needed for converting basic icon. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CFbsBitmap* CSatSBasicIconConverter::ConvertL( - const TDesC8& aData, - const TDesC8& /*aClut*/ ) const - { - LOG( SIMPLE, "SATENGINE: CSatSBasicIconConverter::ConvertL calling" ) - - CheckDataValidityL( aData ); - const TUint8 width( aData[0] ); - const TUint8 height( aData[1] ); - - // Create black and white bitmap. - CFbsBitmap* bitmap = CreateBitmapL( width, height, EGray2 ); - - // Extract the header information away from icon data. - const TPtrC8 iconData( - aData.Mid( KHeaderSize, aData.Length() - KHeaderSize ) ); - - TBitmapUtil bitmapUtil( bitmap ); - bitmapUtil.Begin( TPoint( 0, 0 ) ); - TInt x( 0 ); - TInt y( 0 ); - // Convert the icon data. - for ( y = 0; y < height; y++ ) - { - bitmapUtil.SetPos( TPoint( 0, y ) ); - for ( x = 0; x < width; x++ ) - { - const TInt startingBit( y * width + x ); - const TUint8 color = - TSatBitOP::ExtractBits( startingBit, KBpp, iconData ); - - if ( KPixelIsLit == color ) - { - // Black is lit pixel. - bitmapUtil.SetPixel( KRgbBlack.Value() ); - } - else - { - // White means no pixel. - bitmapUtil.SetPixel( KRgbWhite.Value() ); - } - - bitmapUtil.IncXPos(); - } - } - - bitmapUtil.End(); - LOG3( SIMPLE,"SATENGINE: CSatSBasicIconConverter::ConvertL, \ - x: %d, y: %d", x, y ) - LOG( SIMPLE, "SATENGINE: CSatSBasicIconConverter::ConvertL exiting" ) - return bitmap; - } - -// ----------------------------------------------------------------------------- -// CSatSBasicIconConverter::CheckDataValidityL -// Checks that icon data has valid length. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSBasicIconConverter::CheckDataValidityL( const TDesC8& aData ) const - { - LOG( SIMPLE, - "SATENGINE: CSatSBasicIconConverter::CheckDataValidityL calling" ) - - TInt err( KErrNone ); - - // Is there at least width and height in aData. - const TInt dataLength( aData.Length() ); - - if ( dataLength > KHeaderSize ) - { - LOG( SIMPLE, "SATENGINE: CSatSBasicIconConverter::CheckDataValidityL \ - dataLength bigger than KHeaderSize" ) - const TUint8 width( aData[0] ); - const TUint8 height( aData[1] ); - - // Width and height does not belong to image body. - const TInt imageBodyLength( dataLength - KHeaderSize ); - - // Check that image body has at least as many - // bits than width and height succest. There might - // be more bits because the actual size of the image - // body may occupie only couple bits from - // last byte in image body. - const TInt bitsInImageBody( imageBodyLength * KBitCount ); - const TInt bitsExpectedInImageBody( width * height ); - - if ( bitsInImageBody < bitsExpectedInImageBody ) - { - LOG( SIMPLE, "SATENGINE: CSatSBasicIconConverter::\ - CheckDataValidityL bitsInImageBody < bitsExpectedInImageBody" ) - err = KErrCorrupt; - } - } - else - { - LOG( SIMPLE, "SATENGINE: CSatSBasicIconConverter::CheckDataValidityL \ - dataLength less than KHeaderSize" ) - err = KErrCorrupt; - } - - User::LeaveIfError( err ); - LOG( SIMPLE, - "SATENGINE: CSatSBasicIconConverter::CheckDataValidityL exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatSColorIconConverter.cpp --- a/satengine/SatServer/Engine/src/CSatSColorIconConverter.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,209 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Converts color icon to CFbsBitmap -* -*/ - - -#include -#include -#include "CSatSColorIconConverter.h" -#include "TSatBitOP.h" -#include "SatLog.h" - -const TInt KHeaderSize = 6; -const TInt KClutEntrySize = 3; -const TInt KRedShift = 16; -const TInt KGreenShift = 8; -const TInt KPixelSize = 8; - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatSColorIconConverter::CSatSColorIconConverter -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatSColorIconConverter::CSatSColorIconConverter() - { - LOG( SIMPLE, "SATENGINE: \ - CSatSColorIconConverter::CSatSColorIconConverter calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSColorIconConverter::CheckDataValidityL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSColorIconConverter::CheckDataValidityL( - const TDesC8& aData ) const - { - LOG( SIMPLE, - "SATENGINE: CSatSColorIconConverter::CheckDataValidityL calling" ) - TInt err( KErrNone ); - const TInt dataLength( aData.Length() ); - - if ( dataLength >= KHeaderSize ) - { - LOG( SIMPLE, "SATENGINE: CSatSColorIconConverter::CheckDataValidityL \ - dataLength bigger than KHeaderSize" ) - const TInt width( aData[0] ); - const TInt height( aData[1] ); - const TInt bpp( aData[2] ); - - if ( dataLength < ( width * height * bpp / KPixelSize + KHeaderSize ) ) - { - LOG( SIMPLE, "SATENGINE: CSatSColorIconConverter::\ - CheckDataValidityL KErrCorrupt" ) - err = KErrCorrupt; - } - } - - else - { - LOG( SIMPLE, "SATENGINE: CSatSColorIconConverter::CheckDataValidityL \ - dataLength less than KHeaderSize" ) - err = KErrCorrupt; - } - - User::LeaveIfError( err ); - LOG( SIMPLE, - "SATENGINE: CSatSColorIconConverter::CheckDataValidityL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSColorIconConverter::CheckClutValidityL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSColorIconConverter::CheckClutValidityL( - const TDesC8& aData, - const TDesC8& aClut ) const - { - LOG( SIMPLE, - "SATENGINE: CSatSColorIconConverter::CheckClutValidityL calling" ) - const TInt clutEntries( aData[3] ); - const TInt expectedClutLength( clutEntries * KClutEntrySize ); - - if ( aClut.Length() < expectedClutLength ) - { - LOG( SIMPLE, - "SATENGINE: CSatSColorIconConverter::CheckClutValidityL KErrCorrupt" ) - User::Leave( KErrCorrupt ); - } - - LOG( SIMPLE, - "SATENGINE: CSatSColorIconConverter::CheckClutValidityL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSColorIconConverter::ConvertL -// Converts color icon to CFbsBitamp. -// -// aData has following format( ETSI TS 131 102 V4.10.0 ). -// 1 byte: Icon width -// 2 byte: Icon height -// 3 byte: Bits per raster image point. (1 to 8) -// 7 to end byte: Image body. -// -// The image body has following format. -// -// Byte 1 Byte 2 -// 1001 1100 1110 1100 .... -// -// If the Bits per pixel ratio is 3 then -// 1st raster point CLUT reference is 100 -// 2nd ------------ "" -------------- 111 -// 3rd ------------ "" -------------- 001 -// 4th ------------ "" -------------- 110 -// etc... -// -// One CLUT entry is 3 bytes and each byte defines the intensity of color (RGB). -// The CLUT is in following format: -// 1st CLUT entry -// 1 byte Red color intensity -// 2 byte Green color intensity -// 3 byte Blue color intensity -// 2nd CLUT entry -// 4 byte Red color intensity -// 5 byte Green color intensity -// 6 byte Blue color intensity -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CFbsBitmap* CSatSColorIconConverter::ConvertL( - const TDesC8& aData, - const TDesC8& aClut ) const - { - LOG( SIMPLE, "SATENGINE: CSatSColorIconConverter::ConvertL calling" ) - - // Check that data is valid. - CheckDataValidityL( aData ); - CheckClutValidityL( aData, aClut ); - - const TUint8 width( aData[0] ); - const TUint8 height( aData[1] ); - - // Create the bitmap - CFbsBitmap* bitmap = CreateBitmapL( width, height, EColor16M ); - - // Separate the header from image body. - const TPtrC8 iconData( - aData.Mid( KHeaderSize, aData.Length() - KHeaderSize ) ); - - const TUint8 bpp( aData[2] ); - TBitmapUtil bitmapUtil( bitmap ); - bitmapUtil.Begin( TPoint( 0, 0 ) ); - TInt x(0); - TInt y(0); - // Go through the image body to convert the data. - for ( y = 0; y < height; y++ ) - { - bitmapUtil.SetPos( TPoint( 0, y ) ); - - for ( x = 0; x < width; x++ ) - { - // Calculate the starting bit index of current pixel - // location. - const TInt startBit( ( y * width + x ) * bpp ); - - // Get the entry from icon data. - const TUint8 clutReference( - TSatBitOP::ExtractBits( startBit, bpp, iconData ) ); - - // clut entry is 3 bytes long and therefore the start of - // the clut entry is multiplied with 3. - const TInt clutEntryPoint( clutReference * KClutEntrySize ); - - // Take the color intensities from clut entry. - const TUint red( aClut[clutEntryPoint] ); - const TUint green( aClut[clutEntryPoint + 1] ); - const TUint blue( aClut[clutEntryPoint + 2] ); - - // Cannot use TRgb here, because of different interpration of - // r,g,b order than bitmapUtil. - bitmapUtil.SetPixel( - red << KRedShift | green << KGreenShift | blue ); - - bitmapUtil.IncXPos(); - } - } - LOG3( SIMPLE,"SATENGINE: CSatSColorIconConverter::ConvertL, \ - x: %d, y: %d", x, y ) - bitmapUtil.End(); - - LOG( SIMPLE, "SATENGINE: CSatSColorIconConverter::ConvertL exiting" ) - return bitmap; - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatSIconConverter.cpp --- a/satengine/SatServer/Engine/src/CSatSIconConverter.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Base class for converters. -* -*/ - - -#include -#include "CSatSIconConverter.h" -#include "CSatSBasicIconConverter.h" -#include "CSatSColorIconConverter.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatSIconConverter::CSatSIconConverter -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatSIconConverter::CSatSIconConverter() - { - LOG( SIMPLE, - "SATENGINE: CSatSIconConverter::CSatSIconConverter calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSIconConverter::CreateConverterL -// Factory method for creating converter. -// ----------------------------------------------------------------------------- -// -CSatSIconConverter* CSatSIconConverter::CreateConverterL( - const RSat::TImageCoding& aCoding ) - { - LOG( SIMPLE, "SATENGINE: CSatSIconConverter::CreateConverterL calling" ) - - CSatSIconConverter* converter = NULL; - LOG2( SIMPLE, "SATENGINE: CSatSIconConverter::CreateConverterL \ - aCoding: %d", aCoding ) - switch ( aCoding ) - { - case RSat::KBasic: - { - converter = new( ELeave )CSatSBasicIconConverter(); - break; - } - - case RSat::KColour: - { - converter = new( ELeave )CSatSColorIconConverter(); - break; - } - - default: - { - User::Leave( KErrNotSupported ); - } - } - - LOG( SIMPLE, "SATENGINE: CSatSIconConverter::CreateConverterL exiting" ) - return converter; - } - -// ----------------------------------------------------------------------------- -// CSatSIconConverter::CreateBitmapL -// Creates the bitmap. -// ----------------------------------------------------------------------------- -// -CFbsBitmap* CSatSIconConverter::CreateBitmapL( - TUint8 aWidth, - TUint8 aHeight, - TDisplayMode aDisplayMode ) const - { - LOG( SIMPLE, "SATENGINE: CSatSIconConverter::CreateBitmapL calling" ) - - CFbsBitmap* bitmap = new( ELeave )CFbsBitmap(); - CleanupStack::PushL( bitmap ); - User::LeaveIfError( - bitmap->Create( TSize( aWidth, aHeight ), aDisplayMode ) ); - CleanupStack::Pop( bitmap ); - - LOG( SIMPLE, "SATENGINE: CSatSIconConverter::CreateBitmapL exiting" ) - return bitmap; - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatSIconSubSession.cpp --- a/satengine/SatServer/Engine/src/CSatSIconSubSession.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,624 +0,0 @@ -/* -* Copyright (c) 2002-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: Handles the icon sub-session IPC. -* -*/ - - -#include -#include -#include - -#include "tsatinternaliconinfo.h" -#include "SATInternalPSKeys.h" -#include "CSatSIconSubSession.h" -#include "MSatSIconAPI.h" -#include "SatSOpcodes.h" -#include "CSatSSession.h" -#include "CSatSIconConverter.h" -#include "EnginePanic.h" -#include "SatLog.h" -#include "TSatEventMediator.h" -#include "MSatUtils.h" - -const TUint8 KClutEntrySize = 3; -const TUint KDefaultNumberOfClutEntries = 256; -const TUint8 KColourDepthByte = 4; -const TUint8 KNumberOfCLUTByte = KColourDepthByte + 1; - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::CSatSIconSubSession -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatSIconSubSession::CSatSIconSubSession( - CSatSSession& aSession, - TSatEventMediator& aEventMediator ) : - CSatSSubSession( aSession ), - iEventMediator( aEventMediator ) - { - LOG( SIMPLE, "SATENGINE: \ - CSatSIconSubSession::CSatSIconSubSession calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatSIconSubSession* CSatSIconSubSession::NewL( - CSatSSession& aSession, - TSatEventMediator& aEventMediator ) - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::NewL calling" ) - - CSatSIconSubSession* self = - new( ELeave ) CSatSIconSubSession( aSession, aEventMediator ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( /* self */ ); - - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::ConstructL -// ----------------------------------------------------------------------------- -// -void CSatSIconSubSession::ConstructL() - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::ConstructL calling" ) - - iIconAPI = iSession.CreateIconHandlerL(); - - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::~CSatSIconSubSession -// ----------------------------------------------------------------------------- -// -CSatSIconSubSession::~CSatSIconSubSession() - { - LOG( SIMPLE, - "SATENGINE: CSatSIconSubSession::~CSatSIconSubSession calling" ) - - delete iBitmap; - delete iIconAPI; - delete iClut; - delete iIconData; - - LOG( SIMPLE, - "SATENGINE: CSatSIconSubSession::~CSatSIconSubSession exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::GetIconInfo -// Gets the icon info from SIM. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSIconSubSession::GetIconInfo() - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::GetIconInfo calling" ) - - // Read the recordnumber from client. - TUint8 recordNumber( 0 ); - TPckg recordPckg( recordNumber ); - TRAPD( err, iMessage.ReadL( 0, recordPckg ) ); - LOG2( SIMPLE, "SATENGINE: CSatSIconSubSession::GetIconInfo \ - err: %i", err ) - if ( KErrNone == err ) - { - // Start getting the icon info from SIM. - iIconEf.SetLength( NULL ); - iIconAPI->GetIconInfo( recordNumber, iIconEf, *this ); - } - else - { - iSession.PanicClient( iMessage, ESatSBadDescriptor ); - } - - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::GetIconInfo exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::NotifyGetIconInfo -// Notification from icon observer -// ----------------------------------------------------------------------------- -// -void CSatSIconSubSession::NotifyGetIconInfo() - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::NotifyGetIconInfo calling" ) - - // Send the icon info data got to client. - TPckg infoPckg( iIconEf ); - Write( iMessage, 1, infoPckg ); - iMessage.Complete( KErrNone ); - - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::NotifyGetIconInfo exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::GetIconInstanceL -// Gets the icon from SIM. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSIconSubSession::GetIconInstanceL() - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::GetIconInstanceL calling" ) - - TSatInternalIconInfo info; - // Read the icon info from client. - TSatInternalIconInfoPckg infoPckg( info ); - TRAPD( err, iMessage.ReadL( 0, infoPckg ) ); - - iInfo.iInstanceNumber = info.iFileIdentifier; - iInfo.iOffset = info.iOffset; - iInfo.iLength = info.iLength; - - if ( TSatInternalIconInfo::EBasic == info.iCodingScheme ) - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::GetIconInstanceL \ - basic CodingScheme" ) - iInfo.iCoding = RSat::KBasic; - } - else - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::GetIconInstanceL \ - colour CodingScheme" ) - iInfo.iCoding = RSat::KColour; - } - - iInfo.iImgWidth = static_cast( info.iWidth ); - iInfo.iImgHeight = static_cast( info.iHeight ); - iInfo.iFileId = info.iFileIdentifier; - LOG2( SIMPLE, "SATENGINE: CSatSIconSubSession::GetIconInstanceL \ - err: %i", err ) - if ( KErrNone == err ) - { - // Create buffer for the icon data. - iIconData = HBufC8::NewL( iInfo.iLength ); - TPtr8 iconDataPtr( iIconData->Des() ); - - // Start getting the icon data from SIM. - iIconAPI->GetIconInstance( iInfo, iconDataPtr, *this ); - } - else - { - iSession.PanicClient( iMessage, ESatSBadDescriptor ); - } - - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::GetIconInstanceL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::NotifyGetIconInstanceL -// Notification from icon observer -// ----------------------------------------------------------------------------- -// -void CSatSIconSubSession::NotifyGetIconInstanceL() - { - LOG( SIMPLE, - "SATENGINE: CSatSIconSubSession::NotifyGetIconInstanceL calling" ) - - LOG2( NORMAL, "SATENGINE: CSatSIconSubSession::NotifyGetIconInstanceL \ - infoLength: %x", iInfo.iLength ) - - LOG2( NORMAL, "SATENGINE: CSatSIconSubSession::NotifyGetIconInstanceL \ - dataLength: %x", iIconData->Length() ) - - // Get the CLUT and convert the icon data to bitmap. - - // basic icon has empty CLUT - if ( RSat::KBasic == iInfo.iCoding ) - { - // For the basi icon the length from the icon info and icon data - // body should have the same length but for the clore icon the - // length not always same. - if ( iInfo.iLength == iIconData->Length() ) - { - LOG( SIMPLE, "CSatSIconSubSession::NotifyGetIconInstanceL \ - get the basic clut" ) - // Basic icon does not have CLUT. - iClut = KNullDesC8().AllocL(); - // Complete icon. - NotifyGetClutL(); - } - else - { - LOG( SIMPLE, "CSatSIconSubSession::NotifyGetIconInstanceL \ - notify failure basic" ) - NotifyFailure( KErrCorrupt ); - } - } - else // color icon - { - LOG( SIMPLE, "CSatSIconSubSession::NotifyGetIconInstanceL \ - others" ) - TPtr8 iconDataPtr( iIconData->Des() ); - - if ( iconDataPtr.Length() >= KNumberOfCLUTByte + 1 ) - { - // Create buffer for clut. Each clut entry contains - // intensity of red, green and blue. The value of 0 is - // interpreted as 256 clut entries. (ETSI TS 131 102 V4.10.0). - TInt numberOfClutEntries( iconDataPtr[KClutEntrySize] ); - LOG2( SIMPLE, "CSatSIconSubSession::NotifyGetIconInstanceL \ - numberOfClutEntries: %i", numberOfClutEntries ) - if ( 0 == numberOfClutEntries ) - { - numberOfClutEntries = KDefaultNumberOfClutEntries; - } - - // Start getting the icon color lookup table from SIM. - TInt length = numberOfClutEntries * KClutEntrySize; - // In some situation the length we get from the icon information - // includes the length of the CLUT and some time it doesn't - // Both situation a valid. - if ( ( iInfo.iLength == iIconData->Length() ) - || ( iInfo.iLength == iIconData->Length() + length ) ) - { - iClut = HBufC8::NewL( length ); - - LOG( SIMPLE, "CSatSIconSubSession::NotifyGetIconInstanceL \ - get clut" ) - const TUint offset( iconDataPtr[KColourDepthByte] << 8 | - iconDataPtr[KNumberOfCLUTByte] ); - TPtr8 clutPtr( iClut->Des() ); - iIconAPI->GetClut( - iInfo.iInstanceNumber, offset, clutPtr, *this ); - } - else - { - LOG( SIMPLE, "CSatSIconSubSession::NotifyGetIconInstanceL \ - others notify failure" ) - NotifyFailure( KErrCorrupt ); - } - } - else - { - LOG( SIMPLE, "CSatSIconSubSession::NotifyGetIconInstanceL \ - others notify failure" ) - NotifyFailure( KErrCorrupt ); - } - } - - LOG( SIMPLE, - "SATENGINE: CSatSIconSubSession::NotifyGetIconInstanceL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::NotifyGetClutL -// Notification from icon observer -// ----------------------------------------------------------------------------- -// -void CSatSIconSubSession::NotifyGetClutL() - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::NotifyGetClutL calling" ) - - // Create icon converter. - CSatSIconConverter* converter = - CSatSIconConverter::CreateConverterL( - static_cast( iInfo.iCoding ) ); - CleanupStack::PushL( converter ); - - if ( NULL != iBitmap ) - { - delete iBitmap; // Delete the bitmap - iBitmap = NULL; - } - - iBitmap = converter->ConvertL( *iIconData, *iClut ); - - // Send the bitmap handle to client. - TPckg handlePckg( iBitmap->Handle() ); - Write( iMessage, 1, handlePckg ); - - CleanupStack::PopAndDestroy( converter ); - - delete iClut; - iClut = NULL; - - delete iIconData; - iIconData = NULL; - - iMessage.Complete( KErrNone ); - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::NotifyGetClutL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::NotifyFailure -// Notification from icon observer -// ----------------------------------------------------------------------------- -// -void CSatSIconSubSession::NotifyFailure( TInt errorCode ) - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::NotifyFailure calling" ) - - if ( NULL != iMessage.Handle() ) - { - LOG( - SIMPLE, - "SATENGINE: CSatSIconSubSession::NotifyFailure Message!" ) - iMessage.Complete( errorCode ); - } - else - { - LOG( - SIMPLE, - "SATENGINE: CSatSIconSubSession::NotifyFailure No Message!" ) - } - - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::NotifyFailure exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::HandleCommandL -// Handles the icon sub-session requests. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSIconSubSession::HandleCommandL( const RMessage2& aMessage ) - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::HandleCommandL calling" ) - - switch ( aMessage.Function() ) - { - case ESatSGetIconInfo: - { - LOG( NORMAL, "SATENGINE: ESatSGetIconInfo" ) - if ( NULL != iMessage.Handle() ) - { - LOG( SIMPLE, - "SATENGINE: Request already pending (GetIconInfo)" ) - iSession.PanicClient( aMessage, ESatSBadRequest ); - } - else - { - LOG( SIMPLE, - "SATENGINE: Request handling (GetIconInfo)" ) - iMessage = aMessage; - GetIconInfo(); - } - break; - } - - case ESatSGetIconInstance: - { - LOG( NORMAL, "SATENGINE: ESatSGetIconInstance" ) - TBool mode = IconFetchingMode(); - - NotifyIconFetchingMode( mode ); - - if ( NULL != iMessage.Handle() ) - { - LOG( SIMPLE, - "SATENGINE: Request already pending (GetIconInstance)" ) - iSession.PanicClient( aMessage, ESatSBadRequest ); - } - else - { - LOG( SIMPLE, - "SATENGINE: Request handling (GetIconInstance)" ) - iMessage = aMessage; - GetIconInstanceL(); - } - break; - } - - // Client issues ESatSIconInstanceGot when the client - // has duplicated the icon and then the bitmap can be - // deleted. - case ESatSIconInstanceGot: - { - LOG( NORMAL, "SATENGINE: ESatSIconInstanceGot" ) - // Free the bitmap. - delete iBitmap; - iBitmap = NULL; - aMessage.Complete( KErrNone ); - break; - } - - // Response for SetUpIdleModeText - case ESatSIdleModeResponse: - { - LOG( NORMAL, "SATENGINE: ESatSIdleModeResponse" ) - // Send the response to Proactive SetUpIdleModeText handler - SendSetUpIdleModeResponse( aMessage.Int0() ); - aMessage.Complete( KErrNone ); - break; - } - - default: - { - LOG( SIMPLE, "SATENGINE: Bad function - default" ) - iSession.PanicClient( aMessage, ESatSBadRequest ); - } - } - - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::HandleCommandL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::SendSetUpIdleModeResponse -// Notification from icon observer -// ----------------------------------------------------------------------------- -// -void CSatSIconSubSession::SendSetUpIdleModeResponse( TInt aResponse ) const - { - LOG( SIMPLE, - "SATENGINE: CSatSIconSubSession::SendSetUpIdleModeResponse calling" ) - - // Send the response through Event handling procedure. - switch ( aResponse ) - { - case RSatService::ESATIdleSuccess: - { - LOG( NORMAL, "SATENGINE: Success" ) - iEventMediator.Notify( - MSatUtils::EIdleModeResponseSuccess ); - break; - } - - case RSatService::ESATIdleSuccessRequestedIconNotDisplayed: - { - LOG( NORMAL, "SATENGINE: Success no icon" ) - iEventMediator.Notify( - MSatUtils::EIdleModeResponseSuccessNoIcon ); - break; - } - - case RSatService::ESATIdleMeUnableToProcessCmd: - { - LOG( NORMAL, "SATENGINE: Unable to process" ) - iEventMediator.Notify( - MSatUtils::EIdleModeResponseUnableToProcess ); - break; - } - - case RSatService::ESATIdleCmdBeyondMeCapabilities: - { - LOG( NORMAL, "SATENGINE: Beyond capabilities" ) - iEventMediator.Notify( - MSatUtils::EIdleModeResponseBeyondCapabilities ); - break; - } - - default: - { - LOG( NORMAL, "SATENGINE: Unknown response" ) - break; - } - } - - LOG( SIMPLE, - "SATENGINE: CSatSIconSubSession::SendSetUpIdleModeResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::Write -// Writes descriptor to client address space and panics the client if -// writing fails. -// ----------------------------------------------------------------------------- -// -void CSatSIconSubSession::Write( const RMessage2& aMessage, - TInt aParam, - const TDesC8& aDes ) const - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::Write calling" ) - - TRAPD( err, aMessage.WriteL( aParam, aDes ) ); - LOG2( SIMPLE, "SATENGINE: CSatSIconSubSession::Write \ - err: %i", err ) - if ( KErrNone != err ) - { - iSession.PanicClient( aMessage, ESatSBadDescriptor ); - } - - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::Write exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSIconSubSession::CompleteError -// Completion of iMessage for handler -// ----------------------------------------------------------------------------- -// -TInt CSatSIconSubSession::CompleteError( TInt aError ) const - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::CompleteError calling" ) - TInt err( KErrCompletion ); - - if ( NULL != iMessage.Handle() ) - { - iMessage.Complete( aError ); - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::CompleteError iMessage \ - completed" ) - err = KErrNone; - } - - LOG2( SIMPLE, "SATENGINE: CSatSIconSubSession::CompleteError exiting, \ - err: %i", err ) - return err; - } -// ----------------------------------------------------------------------------- -// Get icon fetching mode which is in synchronous or asynchronous mode. -// ----------------------------------------------------------------------------- -TBool CSatSIconSubSession::IconFetchingMode() - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::IconFetchingMode calling" ) - - TInt cancelledUsingEndKey( 0 ); - TBool isSyncMode( EFalse ); - - TInt error = RProperty::Get( KPSUidSatServerInternal, - KSatAppClosedUsingEndKey, cancelledUsingEndKey ); - - LOG2( SIMPLE, "SATENGINE: CSatSIconSubSession::IconFetchingMode \ - P&S key: %i", cancelledUsingEndKey ) - - LOG2( NORMAL, - "SATENGINE: CSatSIconSubSession::IconFetchingMode \ - subscribe KSatUiCancelledUsingEndKey and return: %d", error ) - - if ( cancelledUsingEndKey ) - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::IconFetchingMode \ - cancell UsingEndKey" ) - isSyncMode = ETrue; - } - else - { - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::IconFetchingMode \ - don't cancell UsingEndKey" ) - isSyncMode = EFalse; - } - - LOG( SIMPLE, "SATENGINE: CSatSIconSubSession::IconFetchingMode exiting" ) - - return isSyncMode; - } - -// ----------------------------------------------------------------------------- -// Notify CSatIconHandler to fetch icons from NAA synchronously or -// asynchrounously. -// ----------------------------------------------------------------------------- -void CSatSIconSubSession::NotifyIconFetchingMode( TBool aMode ) - { - LOG( SIMPLE, - "SATENGINE: CSatSIconSubSession::NotifyIconFetchingMode calling" ) - - iIconAPI->SetIconFetchingMode( aMode ); - - if ( aMode ) - { - TInt error = RProperty::Set( KPSUidSatServerInternal, - KSatAppClosedUsingEndKey, KSatAppTerminatedNormal ); - LOG2( SIMPLE,"CSatSIconSubSession::NotifyIconFetchingMode \ - P&S key: %i", KSatAppTerminatedNormal ) - - LOG2( NORMAL, - "SATENGINE: CSatSIconSubSession::NotifyIconFetchingMode \ - publish KSatUiCancelledUsingEndKey and return: %d", error ) - } - - LOG( SIMPLE, - "SATENGINE: CSatSIconSubSession::NotifyIconFetchingMode exiting" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatSRefreshSubSession.cpp --- a/satengine/SatServer/Engine/src/CSatSRefreshSubSession.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,771 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Handles the refresh sub-session IPC. -* -*/ - - -#include -#include "MSatUtils.h" -#include "CSatSRefreshSubSession.h" -#include "SatSOpcodes.h" -#include "CSatSSession.h" -#include "EnginePanic.h" -#include "CSatSServer.h" -#include "SatLog.h" - -const TInt KClientQueryDelay = 1000000; // 1 second. -const TInt KClientNotifyDelay = 60000000; // 1 minute. - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::CSatSRefreshSubSession -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatSRefreshSubSession::CSatSRefreshSubSession( - CSatSSession& aSession, - TSatEventMediator& aEventMediator ) : - CSatSSubSession( aSession ), - iEventMediator( aEventMediator ), - iClientQueryPending( EFalse ), - iClientNotifyPending( EFalse ), - iClientWaitingRefresh( EFalse ) - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::CSatSRefreshSubSession \ - calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatSRefreshSubSession::ConstructL() - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::ConstructL calling" ) - - CSatSServer* server = - const_cast( - static_cast( iSession.Server() ) ); - server->AddL( this ); - - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatSRefreshSubSession* CSatSRefreshSubSession::NewL( - CSatSSession& aSession, - TSatEventMediator& aEventMediator ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NewL calling" ) - - CSatSRefreshSubSession* self = - new( ELeave ) CSatSRefreshSubSession( aSession, aEventMediator ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::~CSatSRefreshSubSession() -// Destructor. -// ----------------------------------------------------------------------------- -// -CSatSRefreshSubSession::~CSatSRefreshSubSession() - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::~CSatSRefreshSubSession calling" ) - - CSatSServer* server = - const_cast( - static_cast( iSession.Server() ) ); - server->Remove( this ); - - // Remove Client Query timer. - if ( iQueryTimer ) - { - iQueryTimer->Cancel(); - delete iQueryTimer; - iQueryTimer = NULL; - } - - // Remove Client Notify timer. - if ( iNotifyTimer ) - { - iNotifyTimer->Cancel(); - delete iNotifyTimer; - iNotifyTimer = NULL; - } - - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::~CSatSRefreshSubSession exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::HandleCommandL -// Handles the refresh sub-session requests. -// ----------------------------------------------------------------------------- -// -void CSatSRefreshSubSession::HandleCommandL( const RMessage2& aMessage ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::HandleCommandL calling" ) - - switch ( aMessage.Function() ) - { - case ESatSRefreshAllowed: - { - LOG( NORMAL, "SATENGINE: Command: ESatSRefreshAllowed" ) - // Client's response to refresh query. - RefreshAllowed( aMessage ); - break; - } - - case ESatSNotifyAllowRefresh: - { - LOG( NORMAL, "SATENGINE: Command: ESatSNotifyAllowRefresh" ) - // Client is ready for refresh query. - NotifyRefreshAllowed( aMessage ); - break; - } - - case ESatSNotityAllowRefreshCancel: - { - LOG( NORMAL, "SATENGINE: Command: ESatSNotityAllowRefreshCancel" ) - // Client cancels the refresh query. - CancelNotifyAllowRefresh( aMessage ); - break; - } - - case ESatSNotifyRefresh: - { - LOG( NORMAL, "SATENGINE: Command: ESatSNotifyRefresh" ) - // Client is ready for refresh. - NotifyRefresh( aMessage ); - break; - } - - case ESatSCancelNotifyRefresh: - { - LOG( NORMAL, "SATENGINE: Command: ESatSCancelNotifyRefresh" ) - // Client cancels the refresh. - CancelNotifyRefresh( aMessage ); - break; - } - - case ESatSRefreshEFRead: - { - LOG( NORMAL, "SATENGINE: Command: ESatSRefreshEFRead" ) - // Client has completed refresh. - CompleteRefresh( aMessage ); - break; - } - - default: - { - LOG( NORMAL, "SATENGINE: Unexpected command: ggg" ) - // A wrong message was sent. - iSession.PanicClient( aMessage, ESatSBadDescriptor ); - } - } - - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::HandleCommandL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::RefreshAllowed -// Sends the client's response of refresh query to SatServer. -// ----------------------------------------------------------------------------- -// -void CSatSRefreshSubSession::RefreshAllowed( const RMessage2& aMessage ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::RefreshAllowed calling" ) - - // Handle reply only when we are waiting for it. - // It is possible, that query has timed out and we got a late response. - if ( iClientQueryPending ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::RefreshAllowed \ - iClientQueryPending true" ) - iClientQueryPending = EFalse; - - // Stop timer, client replied. - if ( iQueryTimer ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::RefreshAllowed \ - iQueryTimer true" ) - iQueryTimer->Cancel(); - } - - TBool allow( EFalse ); - TPckg allowPckg( allow ); - TRAPD( err, aMessage.ReadL( 0, allowPckg ) ); - LOG2( SIMPLE, "SATENGINE: CSatSRefreshSubSession::RefreshAllowed \ - err: %i", err ) - if ( KErrNone == err ) - { - //lint -e{774} Allow updated through allowPckg in ReadL. - if ( allow ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\ - RefreshAllowed allow refresh" ) - iEventMediator.Notify( MSatUtils::ERefreshAllowed ); - iClientWaitingRefresh = ETrue; - } - else - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\ - RefreshAllowed don't allow refresh" ) - iEventMediator.Notify( MSatUtils::ERefreshNotAllowed ); - } - } - else - { - iSession.PanicClient( aMessage, ESatSBadDescriptor ); - } - } - - aMessage.Complete( KErrNone ); - - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::RefreshAllowed exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::NotifyRefresh -// Stores the NotifyRefresh request information for later completion. -// ----------------------------------------------------------------------------- -// -void CSatSRefreshSubSession::NotifyRefresh( const RMessage2& aMessage ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyRefresh calling" ) - - if ( !iNotifyRefreshPending ) - { - iNotifyRefreshPending = ETrue; - iNotifyRefreshMessage = aMessage; - } - else - { - LOG( SIMPLE, "SATENGINE: Request already received" ) - aMessage.Complete( KErrInUse ); - } - - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyRefresh exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::CancelNotifyRefresh -// Cancels the refresh notification -// ----------------------------------------------------------------------------- -// -void CSatSRefreshSubSession::CancelNotifyRefresh( const RMessage2& aMessage ) - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::CancelNotifyRefresh calling" ) - - if ( iNotifyRefreshPending ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::CancelNotifyRefresh\ - iNotifyRefreshPending true" ) - iNotifyRefreshPending = EFalse; - iNotifyRefreshMessage.Complete( KErrCancel ); - } - - aMessage.Complete( KErrNone ); - - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::CancelNotifyRefresh exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::NotifyRefreshAllowed -// Storest the refresh notification for later completion -// ----------------------------------------------------------------------------- -// -void CSatSRefreshSubSession::NotifyRefreshAllowed( const RMessage2& aMessage ) - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::NotifyRefreshAllowed calling" ) - - if ( !iRefreshAllowPending ) - { - iRefreshAllowPending = ETrue; - iRefreshAllowMessage = aMessage; - } - else - { - LOG( SIMPLE, "SATENGINE: Request already received" ) - aMessage.Complete( KErrInUse ); - } - - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::NotifyRefreshAllowed exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::CancelNotifyAllowRefresh -// Cancels the refresh notification. -// ----------------------------------------------------------------------------- -// -void CSatSRefreshSubSession::CancelNotifyAllowRefresh( - const RMessage2& aMessage ) - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::CancelNotifyAllowRefresh calling" ) - - if ( iRefreshAllowPending ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\ - CancelNotifyAllowRefresh iRefreshAllowPending true" ) - iRefreshAllowPending = EFalse; - iRefreshAllowMessage.Complete( KErrCancel ); - } - - aMessage.Complete( KErrNone ); - - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::CancelNotifyAllowRefresh exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::CompleteRefresh -// Sends the client's completion to SatServer. -// ----------------------------------------------------------------------------- -// -void CSatSRefreshSubSession::CompleteRefresh( const RMessage2& aMessage ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::CompleteRefresh calling" ) - - // Handle completion only when we are waiting for it. - // It is possible, that it has timed out and we got a late response. - if ( iClientNotifyPending ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::CompleteRefresh \ - iClientNotifyPending true" ) - iClientNotifyPending = EFalse; - - // Stop timer, client replied. - if ( iNotifyTimer ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::CompleteRefresh \ - iNotifyTimer true" ) - iNotifyTimer->Cancel(); - } - - TBool additionEFRead( EFalse ); - TPckg additionEFReadPckg( additionEFRead ); - TRAPD( err, aMessage.ReadL( 0, additionEFReadPckg ) ); - if ( KErrNone == err ) - { - //lint -e{774} additionEFRead updated through additionEFReadPckg. - if ( additionEFRead ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\ - CompleteRefresh additionEFRead true" ) - iEventMediator.Notify( MSatUtils::ERefreshAdditionalEFRead ); - } - else - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\ - CompleteRefresh additionEFRead false" ) - iEventMediator.Notify( MSatUtils::ERefreshEFRead ); - } - } - else - { - LOG( SIMPLE, "SATENGINE: Bad descriptor" ) - iEventMediator.Notify( MSatUtils::ERefreshEFRead ); - } - } - - aMessage.Complete( KErrNone ); - - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::CompleteRefresh exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::QueryClient -// Notifies the client that response for refresh query has to be made. -// ----------------------------------------------------------------------------- -// -void CSatSRefreshSubSession::QueryClient( - const RSat::TRefreshV2& aRefresh ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::QueryClient calling" ) - TBool allowRefreshNow( ETrue ); - - if ( iRefreshAllowPending ) - { - if ( VerifyObservedFiles( aRefresh ) ) - { - // Write the refresh information to client. - TPckg fileListPckg( aRefresh.iFileList ); - TPckg typePckg( aRefresh.iType ); - - TRAPD( - err, - iRefreshAllowMessage.WriteL( 0, fileListPckg ); - iRefreshAllowMessage.WriteL( 1, typePckg ); ) - - if ( KErrNone == err ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::QueryClient \ - KErrNone == err" ) - iRefreshAllowPending = EFalse; - iRefreshAllowMessage.Complete( err ); - iClientQueryPending = ETrue; - allowRefreshNow = EFalse; - - // Start timer to prevent jam, when client will not reply. - if ( iQueryTimer ) - { - LOG( SIMPLE, "CSatSRefreshSubSession::QueryClient \ - iQueryTimer true" ) - iQueryTimer->Cancel(); - } - else - { - // Create Client Query timer when first time used. - TRAP( - err, - iQueryTimer = - CPeriodic::NewL( CActive::EPriorityStandard ); ) - } - - if ( ( KErrNone == err ) && iQueryTimer ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\ - QueryClient start iQueryTimer" ) - TCallBack callback( TimerQueryCallback, this ); - iQueryTimer->Start( - KClientQueryDelay, - KClientQueryDelay, - callback ); - } - } - else - { - LOG2( SIMPLE, "SATENGINE: QueryClient error: %i", err ) - } - } - } - - if ( allowRefreshNow ) - { - LOG( SIMPLE, "CSatSRefreshSubSession::QueryClient \ - allowRefreshNow true" ) - iEventMediator.Notify( MSatUtils::ERefreshAllowed ); - } - - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::QueryClient exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::NotifyClient -// Notifies the client that refresh has happened. -// ----------------------------------------------------------------------------- -// -void CSatSRefreshSubSession::NotifyClient( - const RSat::TRefreshV2& aRefresh ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyClient calling" ) - TBool completeRefreshNow( ETrue ); - - if ( iNotifyRefreshPending && iClientWaitingRefresh ) - { - TPckg fileListPckg( aRefresh.iFileList ); - - #ifdef ENABLE_SAT_LOGGING - TInt fileCount ( aRefresh.iFileList.Length() ); - LOG2( NORMAL, "SATENGINE: Refresh file count: %d", fileCount ) - for ( TInt fileIndex = 0; fileIndex < fileCount; fileIndex++ ) - { - LOG2( NORMAL, "SATENGINE: Refresh file : %x", - aRefresh.iFileList[ fileIndex ] ) - } - #endif - - TPckg typePckg( aRefresh.iType ); - - TRAPD( - err, - iNotifyRefreshMessage.WriteL( 0, fileListPckg ); - iNotifyRefreshMessage.WriteL( 1, typePckg ); ) - - LOG2( SIMPLE, "SATENGINE: NotifyClient error: %i", err ) - if ( KErrNone == err ) - { - // ESimReset confirmation will not be waited. - if ( RSat::ESimReset != aRefresh.iType ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyClient\ - RSat::ESimReset != aRefresh.iType" ) - iClientNotifyPending = ETrue; // Waiting client - completeRefreshNow = EFalse; // Client must complete this - - // Start timer to prevent jam, when client will not restart. - if ( iNotifyTimer ) - { - LOG( SIMPLE, "CSatSRefreshSubSession::NotifyClient \ - iNotifyTimer true" ) - iNotifyTimer->Cancel(); - } - else - { - // Create Client Notify timer when first time used. - TRAP( - err, - iNotifyTimer = - CPeriodic::NewL( CActive::EPriorityStandard ); ) - } - - if ( ( KErrNone == err ) && iNotifyTimer ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\ - NotifyClient start iNotifyTimer" ) - TCallBack callback( TimerNotifyCallback, this ); - iNotifyTimer->Start( - KClientNotifyDelay, - KClientNotifyDelay, - callback ); - } - } - } - - iNotifyRefreshPending = EFalse; - iClientWaitingRefresh = EFalse; - iNotifyRefreshMessage.Complete( err ); - } - - if ( completeRefreshNow ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyClient \ - completeRefreshNow true" ) - iEventMediator.Notify( MSatUtils::ERefreshEFRead ); - } - - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyClient exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::NotifyClientCancel -// Notifies the client that refresh has been cancelled. -// ----------------------------------------------------------------------------- -// -void CSatSRefreshSubSession::NotifyClientCancel() - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::NotifyClientCancel calling" ) - - // Notify only clients having accepted Refresh and waiting it. - if ( iNotifyRefreshPending && iClientWaitingRefresh ) - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::NotifyClientCancel wait refresh" ) - RSat::TRefreshFileList fileList; - fileList.Zero(); - TPckg fileListPckg( fileList ); - TPckg typePckg( RSat::ERefreshTypeNotSet ); - iNotifyRefreshPending = EFalse; - iClientWaitingRefresh = EFalse; - - TRAPD( - err, - iNotifyRefreshMessage.WriteL( 0, fileListPckg ); - iNotifyRefreshMessage.WriteL( 1, typePckg ) ); - - LOG2( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyClientCancel error: %i", err ) - - iNotifyRefreshMessage.Complete( err ); - } - - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::NotifyClientCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::VerifyObservedFiles -// Checks whether current client is interested about this refresh. -// ----------------------------------------------------------------------------- -// -TBool CSatSRefreshSubSession::VerifyObservedFiles( - const RSat::TRefreshV2& aRefresh ) const - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::VerifyObservedFiles calling" ) - TBool isObserved( ETrue ); - - // Only pure file refresh is checked. - if ( RSat::EFileChangeNotification == aRefresh.iType ) - { - // Fetch observed files from clients message. - RSat::TRefreshFileList observedFiles; - observedFiles.Zero(); - TPckg observedPckg( observedFiles ); - TRAPD( err, iRefreshAllowMessage.ReadL( 0, observedPckg ) ); - LOG2( SIMPLE, "SATENGINE: ReadL failed: %i", err ) - if ( KErrNone == err ) - { - TInt observeFileCount( observedFiles.Length() ); - LOG2( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\ - VerifyObservedFiles observeFileCount: %i", observeFileCount ) - if ( observeFileCount > 0 ) - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::\ - VerifyObservedFiles observeFileCount > 0" ) - // Observed files found, check whether any of them has been - // updated. - isObserved = EFalse; - for ( TInt fileIndex = 0; - ( fileIndex < observeFileCount ) && !isObserved; - fileIndex++ ) - { - if ( KErrNotFound != - aRefresh.iFileList.Locate( - observedFiles[ fileIndex ] ) ) - { - isObserved = ETrue; - LOG( SIMPLE, "SATENGINE: Observed file found" ) - } - } - } - } - } - - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::VerifyObservedFiles exiting" ) - return isObserved; - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::TimerQueryCallback -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CSatSRefreshSubSession::TimerQueryCallback( - TAny* aRefreshSubSession ) - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::TimerQueryCallback calling" ) - - CSatSRefreshSubSession* handler = - static_cast( aRefreshSubSession ); - - if ( handler ) - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::TimerQueryCallback handler true" ) - handler->QueryTimeout(); - } - - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::TimerQueryCallback exiting" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::QueryTimeout -// Timeout handler for the client's response of refresh query. -// ----------------------------------------------------------------------------- -// -void CSatSRefreshSubSession::QueryTimeout() - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::QueryTimeout calling" ) - - if ( iQueryTimer ) - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::QueryTimeout iQueryTimer true" ) - iQueryTimer->Cancel(); - } - - // Handle reply timeout only when we are waiting for it. - if ( iClientQueryPending ) - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::QueryTimeout \ - iClientQueryPending true" ) - iClientQueryPending = EFalse; - iEventMediator.Notify( MSatUtils::ERefreshAllowed ); - } - - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::QueryTimeout exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::TimerNotifyCallback -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CSatSRefreshSubSession::TimerNotifyCallback( - TAny* aRefreshSubSession ) - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::TimerNotifyCallback calling" ) - - CSatSRefreshSubSession* handler = - static_cast( aRefreshSubSession ); - - if ( handler ) - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::TimerNotifyCallback handler" ) - handler->NotifyTimeout(); - } - - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::TimerNotifyCallback exiting" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSatSRefreshSubSession::NotifyTimeout -// Timeout handler for the client's response of refresh query. -// ----------------------------------------------------------------------------- -// -void CSatSRefreshSubSession::NotifyTimeout() - { - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyTimeout calling" ) - - if ( iNotifyTimer ) - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::NotifyTimeout iNotifyTimer true" ) - iNotifyTimer->Cancel(); - } - - // Handle reply timeout only when we are waiting for it. - if ( iClientNotifyPending ) - { - LOG( SIMPLE, - "SATENGINE: CSatSRefreshSubSession::NotifyTimeout \ - iClientNotifyPending" ) - iClientNotifyPending = EFalse; - // On timeout we should assume no EFs read, as most typical for S60. - iEventMediator.Notify( MSatUtils::ERefreshEFRead ); - } - - LOG( SIMPLE, "SATENGINE: CSatSRefreshSubSession::NotifyTimeout exiting" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatSScheduler.cpp --- a/satengine/SatServer/Engine/src/CSatSScheduler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,77 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: This is the active scheduler of the SAT Server. -* -*/ - - - -// INCLUDES -#include // RDebug -#include "CSatSScheduler.h" -#include "CSatSServer.h" -#include "SatLog.h" - -// ================= MEMBER FUNCTIONS ========================================== - -// The class constructor. -EXPORT_C CSatSScheduler::CSatSScheduler() - { - LOG( SIMPLE, "SATENGINE: CSatSScheduler::SetServer calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSScheduler::SetServer -// Gives a pointer of the current CSatSServer instance to the scheduler. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSatSScheduler::SetServer( CSatSServer* aServer ) - { - LOG( SIMPLE, "SATENGINE: CSatSScheduler::SetServer calling" ) - iServer = aServer; - LOG( SIMPLE, "SATENGINE: CSatSScheduler::SetServer exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSScheduler::Error -// Overridden to handle leaves in request functions and unexpected situations. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSScheduler::Error( TInt aError ) const - { - LOG( SIMPLE, "SATENGINE: CSatSScheduler::Error calling" ) - LOG2( SIMPLE, "SATENGINE: CSatSScheduler::Error aError=%d", aError ) - - if ( iServer ) - { - if ( iServer->IsActive() ) - { - LOG( SIMPLE, "SATENGINE: CSatSScheduler::Error iServer active" ) - __DEBUGGER() - } - else - { - // Relay the error code to the client and restart the server. - LOG( SIMPLE, "SATENGINE: CSatSScheduler::Error iServer not active" ) - iServer->CompleteMessage( aError ); - iServer->ReStart(); - } - } - - LOG( SIMPLE, "SATENGINE: CSatSScheduler::Error exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatSServer.cpp --- a/satengine/SatServer/Engine/src/CSatSServer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,255 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Manages the sessions. -* -*/ - - - -// INCLUDE FILES -#include "CSatSServer.h" -#include "SatSOpcodes.h" -#include "CSatCommandContainer.h" -#include "CSatSSession.h" -#include "SatLog.h" -#include "SatServerFactory.h" -#include "CSatSUiClientHandler.h" -//lint -e766 Used inside TRAP macro, lint misfunction. -#include "EnginePanic.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatSServer::CSatSServer -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatSServer::CSatSServer() : -CPolicyServer( EPriorityHigh, satServerPolicy, ESharableSessions ) - { - LOG( SIMPLE, "SATENGINE: CSatSServer::CSatSServer calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSServer::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatSServer::ConstructL() - { - LOG( SIMPLE, "SATENGINE: CSatSServer::ConstructL calling" ) - - iObjectConIx = CObjectConIx::NewL(); - iUiHandler = CSatSUiClientHandler::NewL( *this, iEventMediator ); - iCmdContainer = CSatCommandContainer::NewL( - *this, iEventMediator, *iUiHandler ); - - iUiHandler->SetUtils( iCmdContainer ); - - const TInt err( Start( KSatServerName ) ); - __ASSERT_ALWAYS( err == KErrNone, PanicSatEngine( ESatSStartServer ) ); - - LOG( SIMPLE, "SATENGINE: CSatSServer::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSServer::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatSServer* CSatSServer::NewL() - { - LOG( SIMPLE, "SATENGINE: CSatSServer::NewL calling" ) - CSatSServer* self = new( ELeave ) CSatSServer(); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATENGINE: CSatSServer::NewL exiting" ) - return self; - } - -// Destructor -CSatSServer::~CSatSServer() - { - LOG( SIMPLE, "SATENGINE: CSatSServer::~CSatSServer calling" ) - - iEventMediator.Reset(); - - iRefreshSubSessions.Close(); - delete iCmdContainer; - delete iUiHandler; - delete iObjectConIx; - - LOG( SIMPLE, "SATENGINE: CSatSServer::~CSatSServer exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSServer::CompleteMessage -// Completes current message from client with an error code. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSServer::CompleteMessage( - TInt aError ) const// Error code, which is used to complete the message. - { - LOG( SIMPLE, "SATENGINE: CSatSServer::CompleteMessage calling" ) - - Message().Complete( aError ); - - LOG( SIMPLE, "SATENGINE: CSatSServer::CompleteMessage exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSServer::CreateNewContainerL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -CObjectCon* CSatSServer::CreateNewContainerL() - { - LOG( SIMPLE, "SATENGINE: CSatSServer::CreateNewContainerL calling" ) - - CObjectCon* objCon = iObjectConIx->CreateL(); - - LOG( SIMPLE, "SATENGINE: CSatSServer::CreateNewContainerL exiting" ) - return objCon; - } - -// ----------------------------------------------------------------------------- -// CSatSServer::AddL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSatSServer::AddL( const MSatRefreshSubSession* aSubSession ) - { - LOG( SIMPLE, "SATENGINE: CSatSServer::AddL calling" ) - - User::LeaveIfError( iRefreshSubSessions.Append( aSubSession ) ); - - LOG( SIMPLE, "SATENGINE: CSatSServer::AddL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSServer::Remove -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -void CSatSServer::Remove( const MSatRefreshSubSession* aSubSession ) - { - LOG( SIMPLE, "SATENGINE: CSatSServer::Remove calling" ) - const TInt index( iRefreshSubSessions.Find( aSubSession ) ); - - if ( KErrNotFound != index ) - { - LOG( SIMPLE, "SATENGINE: CSatSServer::Remove KErrNotFound != index" ) - iRefreshSubSessions.Remove( index ); - } - - LOG( SIMPLE, "SATENGINE: CSatSServer::Remove exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSServer::NewSessionL -// Creates new session if the clients version number matches with server -// version number. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CSession2* CSatSServer::NewSessionL( - const TVersion& aVersion, // Clients version of the server - const RMessage2& /*aMessage*/ ) const // Message - { - LOG( SIMPLE, "SATENGINE: CSatSServer::NewSessionL calling" ) - - // Check we're the right version. - TVersion satVersionInformation( KSatServerMajorVersionNumber, - KSatServerMinorVersionNumber,KSatServerBuildVersionNumber ); - - if ( !User::QueryVersionSupported( satVersionInformation, aVersion ) ) - { - LOG( SIMPLE, "SATENGINE: CSatSServer::NewSessionL KErrNotSupported" ) - User::Leave( KErrNotSupported ); - } - - // Create a new session. - CSatSSession* session = - CSatSSession::NewL( const_cast( this ), - const_cast( iEventMediator ), - const_cast( iCmdContainer->USatAPI() ), - *iUiHandler ); - - LOG( SIMPLE, "SATENGINE: CSatSServer::NewSessionL exiting" ) - return session; - } - -// ----------------------------------------------------------------------------- -// CSatSServer::UiSession -// Getter for ui session -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -MSatUiSession* CSatSServer::UiSession() - { - LOG( SIMPLE, "SATENGINE: CSatSServer::UiSession calling" ) - MSatUiSession* result = NULL; - - //lint -e{1757} Post increment acceptable here. - for ( iSessionIter.SetToFirst(); - iSessionIter.operator CSession2*() && ( !result ); - iSessionIter++ ) - { - CSatSSession* session = - static_cast( iSessionIter.operator CSession2*() ); - - // Has session ui subsession - result = session->UiSubSession(); - } - - if ( NULL != result ) - { - LOG( SIMPLE, - "SATENGINE: CSatSServer::UiSession exiting (Ui session found)" ) - } - else - { - LOG( SIMPLE, - "SATENGINE: CSatSServer::UiSession exiting (Ui session not found)" ) - } - LOG( SIMPLE, "SATENGINE: CSatSServer::UiSession exiting" ) - return result; - } - -// ----------------------------------------------------------------------------- -// CSatSServer::RefreshSubSessions -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -const RPointerArray& - CSatSServer::RefreshSubSessions() - { - LOG( SIMPLE, "SATENGINE: CSatSServer::RefreshSubSessions calling-exiting" ) - return iRefreshSubSessions; - } - -// ----------------------------------------------------------------------------- -// CSatSServer::SatUtils -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -MSatUtils* CSatSServer::SatUtils() - { - LOG( SIMPLE, "SATENGINE: CSatSServer::SatUtils calling-exiting" ) - return iCmdContainer; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatSSession.cpp --- a/satengine/SatServer/Engine/src/CSatSSession.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,433 +0,0 @@ -/* -* Copyright (c) 2002-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: The Sat Server session manages a connection to a client and -* handles client requests. -* -*/ - - -#include -#include "MSatUtils.h" -#include "CSatIconHandler.h" -#include "CSatSSession.h" -#include "CSatSUiSubSession.h" -#include "CSatSServer.h" -#include "EnginePanic.h" -#include "SatLog.h" -#include "TSatEventMediator.h" -#include "SatSOpcodes.h" -#include "MSatApi.h" -#include "MSatUtils.h" -#include "CSatSRefreshSubSession.h" -#include "MThreadDeathNotifier.h" -#include "CSatSIconSubSession.h" - -const TUint8 KHandleParam( 3 ); - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// Class constructor -// ----------------------------------------------------------------------------- -// -CSatSSession::CSatSSession( - CSatSServer* aServer, - TSatEventMediator& aEventMediator, - MSatApi& aSatApi, - MThreadDeathNotifier& aThreadDeathNotifier ) : - CSession2(), - iSatServer( aServer ), - iEventMediator( aEventMediator ), - iSatApi( aSatApi ), - iThreadDeathNotifier( aThreadDeathNotifier ) - { - LOG( SIMPLE, "SATENGINE: CSatSSession::CSatSSession calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// Two-phased constructor -// ----------------------------------------------------------------------------- -// -CSatSSession* CSatSSession::NewL( - CSatSServer* aServer, - TSatEventMediator& aEventMediator, - MSatApi& aSatApi, - MThreadDeathNotifier& aThreadDeathNotifier ) - { - LOG( SIMPLE, "SATENGINE: CSatSSession::NewL calling" ) - - // Perform construction. - CSatSSession* self = - new ( ELeave ) CSatSSession( - aServer, - aEventMediator, - aSatApi, - aThreadDeathNotifier ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATENGINE: CSatSSession::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -// -CSatSSession::~CSatSSession() - { - LOG( SIMPLE, "SATENGINE: CSatSSession::~CSatSSession calling" ) - - delete iSubSessionIx; - delete iSubSessionCon; - - iSatServer = NULL; - iUiSubSession = NULL; - - LOG( SIMPLE, "SATENGINE: CSatSSession::~CSatSSession exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSession::ConstructL -// ----------------------------------------------------------------------------- -// -void CSatSSession::ConstructL() - { - LOG( SIMPLE, "SATENGINE: CSatSSession::ConstructL calling" ) - - iSubSessionCon = iSatServer->CreateNewContainerL(); - iSubSessionIx = CObjectIx::NewL(); - - LOG( SIMPLE, "SATENGINE: CSatSSession::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSession::UiSubSession -// ----------------------------------------------------------------------------- -// -MSatUiSession* CSatSSession::UiSubSession() - { - LOG( DETAILED, "SATENGINE: CSatSSession::UiSubSession calling" ) - - MSatUiSession* session = iUiSubSession; - - LOG( DETAILED, "SATENGINE: CSatSSession::UiSubSession exiting" ) - return session; - } - -// ----------------------------------------------------------------------------- -// CSatSSession::CloseSubSession -// ----------------------------------------------------------------------------- -TBool CSatSSession::CloseSubSession( const RMessage2& aMessage ) - { - LOG( SIMPLE, "SATENGINE: CSatSSession::CloseSubSession calling" ) - - // If subssession exists, return TRUE. Otherwise, return FALSE - TInt result = ETrue; - // Read the handle from client. - const TInt handle( aMessage.Int3() ); - - // Check that subsession exists before deleting the subsession - if ( iSubSessionIx->At( handle ) ) - { - LOG( - SIMPLE, "SATENGINE: CSatSSession::CloseSubSession subsession exists" ) - // Delete the sub-session. - iSubSessionIx->Remove( handle ); - } - else - { - LOG( SIMPLE, - "SATENGINE: CSatSSession::CloseSubSession subsession doesn't exist" ) - // Sub-session handle was not valid. - PanicClient( aMessage, ESatSBadDescriptor ); - result = EFalse; - } - - LOG( SIMPLE, "SATENGINE: CSatSSession::CloseSubSession exiting" ) - return result; - } - -// ----------------------------------------------------------------------------- -// CSatSSession::GetSubSessionFromHandle -// Returns the subsession which handle is aHandle. -// ----------------------------------------------------------------------------- -CSatSSubSession* CSatSSession::GetSubSessionFromHandle( TInt aHandle ) const - { - LOG( DETAILED, "SATENGINE: CSatSSession::GetSubSessionFromHandle calling" ) - - CSatSSubSession* session = - static_cast( iSubSessionIx->At( aHandle ) ); - - LOG( DETAILED, "SATENGINE: CSatSSession::GetSubSessionFromHandle exiting" ) - return session; - } - -// ----------------------------------------------------------------------------- -// CSatSSession::AddSubSessionL -// ----------------------------------------------------------------------------- -void CSatSSession::AddSubSessionL( - CSatSSubSession* aSubSession, - const RMessage2& aMessage ) - { - LOG( SIMPLE, "SATENGINE: CSatSSession::AddSubSessionL calling" ) - - __ASSERT_ALWAYS( aSubSession, PanicSatEngine( ESatEngineNullPointer ) ); - - CleanupStack::PushL( aSubSession ); - iSubSessionCon->AddL( aSubSession ); - const TInt handle( iSubSessionIx->AddL( aSubSession ) ); - CleanupStack::Pop( aSubSession ); - - // Send the handle to client. - TPckg handlePckg( handle ); - TRAPD( err, aMessage.WriteL( KHandleParam, handlePckg ) ); - - if ( KErrNone != err ) - { - // Remove the handle, will also cause destruction - // of session. - iSubSessionIx->Remove( handle ); - LOG2( SIMPLE, - "SATENGINE: CSatSSession::AddSubSessionL panic: %i", err ) - PanicClient( aMessage, ESatSBadDescriptor ); - User::Leave( err ); - } - - LOG( SIMPLE, "SATENGINE: CSatSSession::AddSubSessionL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSession::ServiceL -// Dispatches the commands to their appropriate handlers. For asynchronous -// messages, the message object is save for future processing. -// ----------------------------------------------------------------------------- -// -void CSatSSession::ServiceL( const RMessage2& aMessage ) - { - LOG( SIMPLE, "SATENGINE: CSatSSession::ServiceL calling" ) - - if ( !aMessage.HasCapability( ECapabilityReadDeviceData ) ) - { - // Legal client should at least have ReadDeviceData capability - LOG( SIMPLE, "SATENGINE: CSatSSession::ServiceL client \ - has no ReadDeviceData capability. Panic it" ) - PanicClient( aMessage, ESatSBadDescriptor ); - } - else - { - // Client has enough capability - - LOG2( NORMAL, "SATENGINE: CSatSSession::ServiceL \ - aMessage.Function is %d", aMessage.Function() ) - - switch ( aMessage.Function() ) - { - // Ui Sub-session indicator. - case ESatSOpenUiSubSession: - { - LOG( SIMPLE, - "SATENGINE: CSatSSession::ServiceL ESatSOpenUiSubSession" ) - CSatSUiSubSession* subsession = CSatSUiSubSession::NewL( - *this, - iSatApi, - iEventMediator ); - - TRAPD( err, AddSubSessionL( subsession, aMessage ) ); - if ( KErrNone == err ) - { - // Store the ui clients thread handle. - RThread uiClientThread; - User::LeaveIfError( aMessage.Client( uiClientThread ) ); - - iUiSubSession = subsession; - - // Start observing threads state - TThreadId threadId = uiClientThread.Id(); - iThreadDeathNotifier.SetObserveredThread( threadId ); - iThreadDeathNotifier.StartObservingThread(); - uiClientThread.Close(); - - // Complete message before notifying SAT Server since notifying may - // be very time consuming operation dependening on the situation - aMessage.Complete( KErrNone ); - - // Event has to be send after the iUiSubSession has been set. - // Otherwise NULL pointer error in commandhandlers. - iEventMediator.Notify( MSatUtils::ESatUiLaunched ); - } - break; - } - - case ESatSOpenRefreshSubSession: - { - LOG( SIMPLE, - "SATENGINE: CSatSSession::ServiceL ESatSOpenRefreshSubSession" ) - CSatSRefreshSubSession* subsession = CSatSRefreshSubSession::NewL( - *this, - iEventMediator ); - - TRAPD( err, AddSubSessionL( subsession, aMessage ) ); - if ( KErrNone == err ) - { - aMessage.Complete( KErrNone ); - } - break; - } - - case ESatSOpenIconSubSession: - { - LOG( SIMPLE, - "SATENGINE: CSatSSession::ServiceL ESatSOpenIconSubSession" ) - CSatSIconSubSession* subsession = CSatSIconSubSession::NewL( - *this, - iEventMediator ); - - TRAPD( err, AddSubSessionL( subsession, aMessage ) ); - if ( KErrNone == err ) - { - aMessage.Complete( KErrNone ); - } - break; - } - - case ESatSCloseUiSubSession: - { - LOG( SIMPLE, - "SATENGINE: CSatSSession::ServiceL ESatSCloseUiSubSession" ) - iEventMediator.Notify( MSatUtils::ESatUiClosed ); - iSatUiSubSessionClosed = ETrue; - iUiSubSession = NULL; - if ( CloseSubSession( aMessage ) ) - { - aMessage.Complete( KErrNone ); - } - break; - } - - case ESatSCloseRefreshSubSession: - { - LOG( SIMPLE, - "SATENGINE: CSatSSession::ServiceL ESatSCloseRefreshSubSession" ) - if ( CloseSubSession( aMessage ) ) - { - aMessage.Complete( KErrNone ); - } - break; - } - - case ESatSCloseIconSubSession: - { - LOG( SIMPLE, - "SATENGINE: CSatSSession::ServiceL ESatSCloseIconSubSession" ) - if ( CloseSubSession( aMessage ) ) - { - aMessage.Complete( KErrNone ); - } - break; - } - - default: - { - LOG( SIMPLE, "SATENGINE: CSatSSession::ServiceL others" ) - CSatSSubSession* subsession = - GetSubSessionFromHandle( aMessage.Int3() ); - - if ( NULL != subsession ) - { - LOG( SIMPLE, - "SATENGINE: CSatSSession::ServiceL NULL != subsession" ) - subsession->HandleCommandL( aMessage ); - } - else - { - PanicClient( aMessage, ESatSBadDescriptor ); - } - } - } - } - LOG( SIMPLE, "SATENGINE: CSatSSession::ServiceL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSession::PanicClient -// Panics the client. -// ----------------------------------------------------------------------------- -// -void CSatSSession::PanicClient( const RMessage2& aMessage, TInt aPanic ) const - { - LOG( SIMPLE, "SATENGINE: CSatSSession::PanicClient calling" ) - - _LIT( KTxtServer, "SatS server" ); - aMessage.Panic( KTxtServer, aPanic ); - - LOG( SIMPLE, "SATENGINE: CSatSSession::PanicClient exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSession::NotifyThreadDeathMonitor -// Notifies ThreadDeathMonitor for thread is dying -// ----------------------------------------------------------------------------- -// -void CSatSSession::NotifyThreadDeathMonitor() - { - LOG( SIMPLE, "SATENGINE: CSatSSession::NotifyThreadDeathMonitor calling" ) - - iThreadDeathNotifier.NotifyThreadDeath(); - - LOG( SIMPLE, "SATENGINE: CSatSSession::NotifyThreadDeathMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSession::SatServer -// Returns pointer to SatServer - class -// ----------------------------------------------------------------------------- -// -CSatSServer* CSatSSession::SatServer() - { - LOG( SIMPLE, "SATENGINE: CSatSSession::SatServer calling-exiting" ) - return iSatServer; - } - -// ----------------------------------------------------------------------------- -// CSatSSession::UiSessionClosed -// Notifies SatEngine that UI session has closed -// ----------------------------------------------------------------------------- -// -void CSatSSession::UiSessionClosed() - { - LOG( SIMPLE, "SATENGINE: CSatSSession::UiSessionClosed calling" ) - - if ( !iSatUiSubSessionClosed ) - { - LOG( SIMPLE, "SATENGINE: CSatSSession::UiSessionClosed close satui" ) - iEventMediator.Notify( MSatUtils::ESatUiClosed ); - iSatUiSubSessionClosed = ETrue; - } - - LOG( SIMPLE, "SATENGINE: CSatSSession::UiSessionClosed exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSession::CreateIconHandlerL -// Creates and returns CSatIconHandler -// ----------------------------------------------------------------------------- -// -MSatSIconAPI* CSatSSession::CreateIconHandlerL() - { - LOG( SIMPLE, "SATENGINE: CSatSSession::CreateIconHandlerL calling-exiting" ) - return new( ELeave ) CSatIconHandler( iSatApi ); - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatSSimSubscriberId.cpp --- a/satengine/SatServer/Engine/src/CSatSSimSubscriberId.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,268 +0,0 @@ -/* -* Copyright (c) 2004-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: This is the handler for the SIM Application Toolkit to detect -* the SIM card subscriber ID. -* -*/ - - -#include -#include -#include "msatmultimodeapi.h" -#include "MSatUtils.h" -#include "CSatSSimSubscriberId.h" -#include "TSatEventMediator.h" -#include "csatsactivewrapper.h" -#include "SatLog.h" - -// MCC and MNC values can be found from numbering plans -const TInt KMinImsiLength( 5 ); // MNC + MNC consists of five numbers -const TInt KTimeBeforeRetry( 500000 ); // 0.5 seconds. -const TInt KMaxRetry( 20 ); - -// Special IMSI -_LIT( KCmccImsiIdentity1, "46000" ); -_LIT( KCmccImsiIdentity2, "46002" ); - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatSSimSubscriberId::CSatSSimSubscriberId -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatSSimSubscriberId::CSatSSimSubscriberId( - MSatMultiModeApi& aPhone, - TSatEventMediator& aEventMediator ) : - CActive( EPriorityStandard ), - iPhone( aPhone ), - iEventMediator( aEventMediator ), - iSubscriberIdValid( EFalse ), - iRetryCounter( 0 ) - { - LOG( SIMPLE, - "SATENGINE: CSatSSimSubscriberId::CSatSSimSubscriberId calling" ) - - // Add to active scheduler. - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "SATENGINE: CSatSSimSubscriberId::CSatSSimSubscriberId exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSimSubscriberId::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatSSimSubscriberId::ConstructL() - { - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::ConstructL calling" ) - - // Used to suspends the current thread until a 0.5 seconds - // interval has expired. - iWrapper = new ( ELeave ) CSatSActiveWrapper(); - - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSimSubscriberId::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatSSimSubscriberId* CSatSSimSubscriberId::NewL( - MSatMultiModeApi& aPhone, - TSatEventMediator& aEventMediator ) - { - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::NewL calling" ) - - // Perform construction. - CSatSSimSubscriberId* self = new ( ELeave ) CSatSSimSubscriberId( - aPhone, - aEventMediator ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::NewL exiting" ) - return self; - } - - -// Destructor -CSatSSimSubscriberId::~CSatSSimSubscriberId() - { - LOG( SIMPLE, - "SATENGINE: CSatSSimSubscriberId::~CSatSSimSubscriberId calling" ) - - if ( iWrapper ) - { - iWrapper->CancelWrapper(); - delete iWrapper; - iWrapper = NULL; - } - - // Cancel any outstanding requests. - Cancel(); - - LOG( SIMPLE, - "SATENGINE: CSatSSimSubscriberId::~CSatSSimSubscriberId exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSimSubscriberId::Start -// Starts the handler initially. -// ----------------------------------------------------------------------------- -// -void CSatSSimSubscriberId::Start() - { - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::Start calling" ) - - iRetryCounter = KMaxRetry; - DoStart(); - - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSimSubscriberId::DoStart -// Starts the handler. -// ----------------------------------------------------------------------------- -// -void CSatSSimSubscriberId::DoStart() - { - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::DoStart calling" ) - - if ( !IsActive() ) - { - iSubscriberIdValid = EFalse; - iPhone.GetSubscriberId( iStatus, iSubscriberId ); - LOG( SIMPLE, "SATENGINE: GetSubscriberId called" ) - SetActive(); - } - - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::DoStart exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSimSubscriberId::RunL -// Handles the command. -// ----------------------------------------------------------------------------- -// -void CSatSSimSubscriberId::RunL() - { - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::RunL calling" ) - - // Check the status of the asnychronous operation. - TInt status( iStatus.Int() ); - if ( KErrNone == status ) - { - // Indicate id successfully read. - iSubscriberIdValid = ETrue; - - // Handle special SIM. - if ( IsCmccSIM() ) - { - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::RunL Cmcc SIM" ) - // Activate SetUpMenuHandler for special SIM. - iEventMediator.Notify( MSatUtils::ECmccSimDetected ); - } - } - else if ( ( KErrServerBusy == status ) || - ( KErrNotFound == status ) ) - { - LOG2( SIMPLE, - "SATENGINE: CSatSSimSubscriberId::RunL Server busy (%d)", status ) - - if ( iRetryCounter > 0 ) - { - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::RunL \ - iRetryCounter > 0" ) - iRetryCounter--; - - // Restart subscriber ID reading after short period of time. - if ( iWrapper ) - { - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::RunL \ - iWrapper true" ) - iWrapper->After( KTimeBeforeRetry ); - } - - DoStart(); - } - } - else - { - LOG2( SIMPLE, - "SATENGINE: CSatSSimSubscriberId::RunL error: %d", status ) - } - - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSimSubscriberId::DoCancel -// Cancels the pending request. -// ----------------------------------------------------------------------------- -// -void CSatSSimSubscriberId::DoCancel() - { - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::DoCancel calling" ) - - // Cancel an outstanding request. - iPhone.CancelAsyncRequest( EMobilePhoneGetSubscriberId ); - - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSSimSubscriberId::IsCmccSIM -// Check if the used SIM card is special SIM -// ----------------------------------------------------------------------------- -// -TBool CSatSSimSubscriberId::IsCmccSIM() const - { - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::IsCmccSIM calling" ) - TBool isCmcc( EFalse ); - - // Check validity. - if ( iSubscriberIdValid ) - { - if ( iSubscriberId.Length() >= KMinImsiLength ) - { - LOG( SIMPLE, "SATENGINE: \ - CSatSSimSubscriberId::IsCmccSIM length valid" ) - isCmcc = ( - ( iSubscriberId.Left( KMinImsiLength ). - Compare( KCmccImsiIdentity1 ) == KErrNone ) || - ( iSubscriberId.Left( KMinImsiLength ). - Compare( KCmccImsiIdentity2 ) == KErrNone ) ); - } - } - - else - { - LOG( SIMPLE, "SATENGINE: CSatSSimSubscriberId::IsCmccSIM Not valid" ) - } - - LOG2( - SIMPLE, - "SATENGINE: CSatSSimSubscriberId::IsCmccSIM exiting: %i", - isCmcc ) - - return isCmcc; - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatSSubSession.cpp --- a/satengine/SatServer/Engine/src/CSatSSubSession.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,49 +0,0 @@ -/* -* Copyright (c) 2004 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: Base class for sub-sessions. -* -*/ - - - -// INCLUDE FILES -#include "CSatSSubSession.h" -#include "CSatSServer.h" -#include "CSatSSession.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatSSubSession::CSatSSubSession -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatSSubSession::CSatSSubSession( CSatSSession& aSession ) : - CObject(), - iSession( aSession ) - { - LOG( SIMPLE, - "SATENGINE: CSatSSubSession::CSatSSubSession calling-exiting" ) - } - -// Destructor -CSatSSubSession::~CSatSSubSession() - { - LOG( SIMPLE, - "SATENGINE: CSatSSubSession::~CSatSSubSession calling-exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatSUiClientHandler.cpp --- a/satengine/SatServer/Engine/src/CSatSUiClientHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,364 +0,0 @@ -/* -* Copyright (c) 2002-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: Handles some UI Client activity -* -*/ - - - -// INCLUDE FILES -#include "CSatSUiClientHandler.h" -//lint -e766 Used inside TRAP macro, lint misfunction. -#include "EnginePanic.h" -#include "MSatSSessions.h" -#include "MSatShellController.h" -#include "CSatThreadDeathMonitor.h" -#include "SatLog.h" -#include "MSatUtils.h" -#include "TSatEventMediator.h" - -// CONSTANTS -_LIT( KShellControllerDll, "SatShellCntrl.dll" ); // ShellController dll - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::CSatSUiClientHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatSUiClientHandler::CSatSUiClientHandler( - MSatSSessions& aSessions, - TSatEventMediator& aEventMediator ) : - iSessions( aSessions ), - iEventMediator( aEventMediator ), - iUiLaunchedByUser( EFalse ), - iSatUiClosing( EFalse ), - iLaunchSatUiAfterClose( EFalse ), - iSatUiPanicked( EFalse ) - { - LOG( SIMPLE, "SATENGINE: \ - CSatSUiClientHandler::CSatSUiClientHandler calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatSUiClientHandler::ConstructL() - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::ConstructL calling" ) - - // Create thread death monitor - iThreadDeathMonitor = CSatThreadDeathMonitor::NewL(); - - iEventMediator.RegisterL( this, MSatUtils::ESatUiLaunched ); - iEventMediator.RegisterL( this, MSatUtils::EBringSatUiToForeGround ); - - // Load SatShellController - // Create the UI handler instance - User::LeaveIfError( iSatShellCntrlLibrary.Load( KShellControllerDll ) ); - - // creating the class... - TLibraryFunction uiControllerFactory = iSatShellCntrlLibrary.Lookup( 1 ); - - iSatShellCntrl = - reinterpret_cast( uiControllerFactory() ); - - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatSUiClientHandler* CSatSUiClientHandler::NewL( - MSatSSessions& aSessions, - TSatEventMediator& aEventMediator ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::NewL calling" ) - - CSatSUiClientHandler* self = - new( ELeave ) CSatSUiClientHandler( aSessions, aEventMediator ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::NewL exiting" ) - return self; - } - - -// Destructor -CSatSUiClientHandler::~CSatSUiClientHandler() - { - LOG( SIMPLE, - "SATENGINE: CSatSUiClientHandler::~CSatSUiClientHandler calling" ) - - iUtils = NULL; - delete iSatShellCntrl; - delete iThreadDeathMonitor; - iSatShellCntrlLibrary.Close(); - - LOG( SIMPLE, - "SATENGINE: CSatSUiClientHandler::~CSatSUiClientHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::SetUtils -// Sets Sat Utils interface -// ----------------------------------------------------------------------------- -// -void CSatSUiClientHandler::SetUtils( MSatUtils* aUtils ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::SetUtils calling" ) - - iUtils = aUtils; - - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::SetUtils exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::ThreadDiedL -// Notification from Thread death monitor -// ----------------------------------------------------------------------------- -// -void CSatSUiClientHandler::ThreadDiedL() - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::ThreadDiedL calling" ) - - // Sat UI Thread has died. - iSatUiClosing = EFalse; - iUiLaunchedByUser = EFalse; - - // Check is there LaunchUi request active. - if ( iLaunchSatUiAfterClose ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::ThreadDiedL \ - iLaunchSatUiAfterClose true" ) - iLaunchSatUiAfterClose = EFalse; - LaunchSatUiL(); - } - - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::ThreadDiedL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::ThreadPanicedL -// Notification from Thread death monitor -// ----------------------------------------------------------------------------- -// -void CSatSUiClientHandler::ThreadPanicedL() - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::ThreadDiedL calling" ) - - iSatUiPanicked = ETrue; - ThreadDiedL(); - - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::ThreadDiedL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::Event -// Event notified -// ----------------------------------------------------------------------------- -// -void CSatSUiClientHandler::Event( TInt aEvent ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::Event calling" ) - - //lint -e{961} Other events do not need to be handled here - if ( MSatUtils::ESatUiLaunched == aEvent ) - { - iSatUiPanicked = EFalse; - // Ui is not launced by user, if there are executing commands when - // ui launch event has arrived. - const TInt activeCommands( iUtils->NumberOfExecutingCommandHandlers() ); - LOG2( SIMPLE, "SATENGINE: CSatSUiClientHandler::Event \ - activeCommands: %i", activeCommands ) - if ( activeCommands > 0 ) - { - iUiLaunchedByUser = EFalse; - // Bring to foreground. This will complete the SAT UI cosntruction. - ShellController().BringSatUiToForeground(); - } - else - { - iUiLaunchedByUser = ETrue; - } - } - else if ( MSatUtils::EBringSatUiToForeGround == aEvent ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::Event bring SAT UI \ - to foreground" ) - // If UI is not launched by user, bring SAT UI to foreground when - // needed. - if ( !iUiLaunchedByUser ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::Event \ - iUiLaunchedByUser false" ) - ShellController().BringSatUiToForeground(); - } - } - - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::NotifyThreadDeath -// Notifies Thread death monitor -// ----------------------------------------------------------------------------- -// -void CSatSUiClientHandler::NotifyThreadDeath() - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::NotifyThreadDeath calling" ) - - iSatUiClosing = ETrue; - iUiLaunchedByUser = EFalse; - - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::NotifyThreadDeath exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::StartObservingThread -// Notifies Thread death monitor -// ----------------------------------------------------------------------------- -// -void CSatSUiClientHandler::StartObservingThread() - { - LOG( SIMPLE, - "SATENGINE: CSatSUiClientHandler::StartObservingThread calling" ) - - TInt err( KErrNone ); - TRAP( err, iThreadDeathMonitor->NotifyThreadDeathL( iThread, *this ) ); - if ( KErrNone != err ) - { - LOG2( NORMAL, "SATENGINE: \ - CSatSUiClientHandler::NotifyThreadDeath error: %i", err ) - iThreadDeathMonitor->Cancel(); - } - - LOG( SIMPLE, - "SATENGINE: CSatSUiClientHandler::StartObservingThread exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::SetObserveredThread -// Notifies Thread death monitor -// ----------------------------------------------------------------------------- -// -void CSatSUiClientHandler::SetObserveredThread( TThreadId& aThreadId ) - { - LOG( SIMPLE, - "SATENGINE: CSatSUiClientHandler::SetObserveredThread calling" ) - - iThread = aThreadId; - - LOG( SIMPLE, - "SATENGINE: CSatSUiClientHandler::SetObserveredThread exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::UiSession -// Returns UI session -// ----------------------------------------------------------------------------- -// -MSatUiSession* CSatSUiClientHandler::UiSession() - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::UiSession calling" ) - - MSatUiSession* session = NULL; - - // If SAT UI is closing, return null, even if session is not null - if ( !iSatUiClosing && !iSatUiPanicked ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::UiSession session \ - not null" ) - session = iSessions.UiSession(); - } - - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::UiSession exiting" ) - return session; - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::LaunchSatUiL -// Launches Sat UI -// ----------------------------------------------------------------------------- -// -void CSatSUiClientHandler::LaunchSatUiL() - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::LaunchSatUiL calling" ) - - // If ui client application is closing, we have to wait for the - // closing and launch ui client after it. - if ( iSatUiClosing ) - { - LOG( NORMAL, "SATENGINE: CSatSUiClientHandler::LaunchSatUiL \ - UI IS CLOSING DOWN -> WAIT UI THREAD DEATH" ) - iLaunchSatUiAfterClose = ETrue; - } - else - { - LOG( NORMAL, "SATENGINE: CSatSUiClientHandler::LaunchSatUiL \ - LAUNCHING SAT UI" ) - ShellController().LaunchSatUiL(); - } - - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::LaunchSatUiL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::UiLaunchedByUser -// Is UI Launched by user -// ----------------------------------------------------------------------------- -// -TBool CSatSUiClientHandler::UiLaunchedByUser() - { - LOG( SIMPLE, - "SATENGINE: CSatSUiClientHandler::UiLaunchedByUser calling - exiting" ) - return iUiLaunchedByUser; - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::ShellController -// Returns SatShellController from UI side -// ----------------------------------------------------------------------------- -// -MSatShellController& CSatSUiClientHandler::ShellController() - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::ShellController calling" ) - - __ASSERT_ALWAYS( iSatShellCntrl, PanicSatEngine( ESatEngineNullPointer ) ); - - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::ShellController exiting" ) - return *iSatShellCntrl; - } - -// ----------------------------------------------------------------------------- -// CSatSUiClientHandler::ShellController -// Returns SatShellController from UI side -// ----------------------------------------------------------------------------- -// -TBool CSatSUiClientHandler::IsUiClosing() const - { - LOG( SIMPLE, "SATENGINE: CSatSUiClientHandler::IsUiClosing call - exit" ) - return iSatUiClosing; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatSUiSubSession.cpp --- a/satengine/SatServer/Engine/src/CSatSUiSubSession.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,563 +0,0 @@ -/* -* Copyright (c) 2002-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: Ui sub session. -* -*/ - - - -// INCLUDE FILES -#include -#include - -#include "CSatSUiSubSession.h" -#include "CSatSSession.h" -#include "CSatSServer.h" -#include "CSatCommandHandler.h" -#include "CSatCommandContainer.h" -#include "MSatApi.h" -#include "EnginePanic.h" -#include "SatLog.h" -#include "SATInternalPSKeys.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatSUiSubSession::CSatSUiSubSession -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized, harmless. -CSatSUiSubSession::CSatSUiSubSession( - CSatSSession& aSession, - MSatApi& aSatApi, - TSatEventMediator& aEventMediator ) // Session - : - CSatSSubSession( aSession ), - iEventData(), - iEventDataPckg( iEventData ), - iSatApi( aSatApi ), - iEventMediator( aEventMediator ) - { - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::CSatSUiSubSession calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiSubSession::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatSUiSubSession::ConstructL() - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::ConstructL calling" ) - - iEventMediator.RegisterL( this, MSatUtils::ESmsSent ); - - // Get registered service requests from MSatUtils. - iServiceRequest = iSession.SatServer()->SatUtils()->ServiceRequests(); - - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiSubSession::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatSUiSubSession* CSatSUiSubSession::NewL( - CSatSSession& aSession, - MSatApi& aSatApi, - TSatEventMediator& aEventMediator ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::NewL calling" ) - - CSatSUiSubSession* self = - new( ELeave ) CSatSUiSubSession( aSession, aSatApi, aEventMediator ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::NewL exiting" ) - return self; - } - -// Destructor -CSatSUiSubSession::~CSatSUiSubSession() - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::~CSatSUiSubSession calling" ) - - iServiceRequest = NULL; - - // Unregister to listen events - iEventMediator.Unregister( this ); - - // Inform session that UI Session is closed. - // Session tells to container of iServiceRequest to reset - // request handlers. - iSession.UiSessionClosed(); - - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::~CSatSUiSubSession exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiSubSession::HandleCommandL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSUiSubSession::HandleCommandL( - const RMessage2& aMessage ) // Message from ui client. - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::HandleCommandL calling" ) - LOG2( SIMPLE, "SATENGINE: CSatSUiSubSession::HandleCommandL \ - command: %i", aMessage.Function() ) - switch ( aMessage.Function() ) - { - // Ui client is ready to handle setupmenu command. - case ESatSProactiveSetUpMenu: - { - // Notifies that SetUpMenu command has been made because SAT Client - // side application is returning to the main menu after SelectItem. - // For example: Next action is LaunchBrowser command and after - // Browser is launched then SAT Client side application has been - // opened top of Browser. In some cases SAT client side application - // stays topmost. - iEventMediator.Notify( MSatUtils::ESetUpMenuRequested ); - // This service request is handled also like commands listed below. - } - //lint -fallthrough intended here - case ESatSProactiveDisplayText: - case ESatSProactiveGetInkey: - case ESatSProactiveGetInput: - case ESatSProactiveSelectItem: - case ESatSProactivePlayTone: - case ESatSProactiveRefresh: - case ESatSProactiveDisplayTextResponse: - case ESatSProactiveGetInkeyResponse: - case ESatSProactiveGetInputResponse: - case ESatSProactiveSelectItemResponse: - case ESatSProactivePlayToneResponse: - case ESatSProactiveQuery: - case ESatSProactiveQueryResponse: - case ESatSProactiveNotification: - case ESatSProactiveNotificationResponse: - { - const TInt count( iServiceRequest->Count() ); - TBool requestHandled( EFalse ); - TInt index( 0 ); - // Loop until request is handled or no request handler found. - while ( !requestHandled && index < count ) - { - requestHandled = iServiceRequest->At( index )-> - HandleRequest( aMessage ); - index++; - } - LOG2( SIMPLE, "SATENGINE: CSatSUiSubSession::HandleCommandL \ - index: %i", index ) - break; - } - - // Menu selection envelope. - case ESatSActiveMenuSelection: - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession: MenuSelection" ) - // Declare the IPC data structures. - RSat::TMenuSelectionV1 menuSelection; - RSat::TMenuSelectionV1Pckg menuSelectionPckg( menuSelection ); - - // Perform the IPC transfer of response data. - TRAPD( res, aMessage.ReadL( 0, menuSelectionPckg ) ); - - // Send the response further only if IPC succeeded. - if ( KErrNone != res ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession: KErrNone != res" ) - iSession.PanicClient( aMessage, ESatSBadDescriptor ); - } - iSatApi.SendMenuSelection( menuSelectionPckg ); - - // Complete the client request. - aMessage.Complete( KErrNone ); - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::HandleCommandL exiting" ) - return; - } - - case ESatSProactiveEvent: - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession: Event" ) - iEventRequest = aMessage; - iEventRequestAvailable = ETrue; - if ( iCloseUiRequested ) - { - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::HandleCommandL closeui" ) - CloseUiSession(); - } - else if ( iSmsSent ) - { - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::HandleCommandL smssent" ) - SendSmsSentEventToClient(); - } - else if ( iClearScreenRequested ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::HandleCommandL \ - clearscreen" ) - ClearScreen(); - } - else if ( iUiEventRequested ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::HandleCommandL \ - UiEventRequested" ) - HandleUiEventNotification(); - } - else - { - LOG( SIMPLE, "SATENGINE: Event request available" ) - } - - break; - } - - case ESatSProactiveEventResponse: - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession: EventResponse" ) - // Declare the IPC data structures. - TSatEventV1 eventRsp; - //lint -e{603} eventRsp read through eventRspPckg in ReadL. - TSatEventV1Pckg eventRspPckg( eventRsp ); - - // Perform the IPC transfer of response data. - TRAPD( res, aMessage.ReadL( 0, eventRspPckg ) ); - if ( KErrNone != res ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::HandleCommandL \ - read response data error" ) - iSession.PanicClient( aMessage, ESatSBadDescriptor ); - } - else - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::HandleCommandL \ - no error" ) - aMessage.Complete( KErrNone ); - } - break; - } - - case ESatSSessionTerminated: - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession: SessionTerminated" ) - TSatTermination temp; - //lint -e{603} temp read through tempPckg in ReadL. - TSatTerminationPckg tempPckg ( temp ); - TRAPD( res, aMessage.ReadL( 0, tempPckg ) ); - if ( KErrNone != res ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::HandleCommandL \ - read tempPckg error" ) - iSession.PanicClient( aMessage, ESatSBadDescriptor ); - } - else - { - LOG2( SIMPLE, "SATENGINE: CSatSUiSubSession::HandleCommandL \ - temp.type: %i", temp.type ) - switch ( temp.type ) - { - case ETerminatedByCancel: - { - iEventMediator.Notify( - MSatUtils::ECommandCancelled ); - break; - } - case ETerminatedByEndKey: - { - iEventMediator.Notify( - MSatUtils::ECancelledUsingEndKey ); - - PublishSatAppClosedUsingEndKey(); - - // Inform session that UI Session is closed. - // Session is not actually closed yet but this prevents - // sending data through this session. - // Notify thread death monitor - iSession.NotifyThreadDeathMonitor(); - break; - } - default: - { - LOG( SIMPLE, "SATENGINE: Unknown termination type" ) - } - } - } - // Complete the client request. - aMessage.Complete( KErrNone ); - break; - } - - default: - { - LOG( SIMPLE, " Unhandled command") - } - } - - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::HandleCommandL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiSubSession::CloseUiSession -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSUiSubSession::CloseUiSession() - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::CloseUiSession calling" ) - - // Set request flag to ETrue. Updated when command is successfully sent. - iCloseUiRequested = ETrue; - - // Notify thread death monitor - iSession.NotifyThreadDeathMonitor(); - - iEventData.iEvent = ESatSCloseSatUiAppEvent; - - const TBool commandSent( SendCommandDataToClient( iEventRequestAvailable, - iEventDataPckg, - iEventRequest ) ); - - if ( commandSent ) - { - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::CloseUiSession commandSent" ) - // If command was sent, set flag to false, so when next Event request - // arrives, command data is not sent. - iCloseUiRequested = EFalse; - } - - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::CloseUiSession exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiSubSession::ClearScreen -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSUiSubSession::ClearScreen() - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::ClearScreen calling" ) - - // Set request flag to ETrue. Updated when command is successfully sent. - iClearScreenRequested = ETrue; - - iEventData.iEvent = ESatSClearScreenEvent; - - const TBool commandSent( SendCommandDataToClient( iEventRequestAvailable, - iEventDataPckg, - iEventRequest ) ); - - if ( commandSent ) - { - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::ClearScreen commandSent" ) - // If command was sent, set flag to false, so when next Event request - // arrives, command data is not sent. - iClearScreenRequested = EFalse; - } - - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::ClearScreen exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiSubSession::UiEventNotification -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSUiSubSession::UiEventNotification( - TInt aEventId, TInt aEventStatus, TInt aEventError ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::UiEventNotification calling" ) - - // Set request flag to ETrue. Updated when command is successfully sent. - iUiEventRequested = ETrue; - iEventData.iEvent = static_cast< TSatSEvent >( aEventId ); - iEventData.iStatus = static_cast< TSatSEventStatus >( aEventStatus ); - iEventData.iError = aEventError; - - HandleUiEventNotification(); - - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::UiEventNotification exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiSubSession::HandleUiEventNotification -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSUiSubSession::HandleUiEventNotification() - { - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::HandleUiEventNotification calling" ) - - // Send Command to client - const TBool commandSent( SendCommandDataToClient( iEventRequestAvailable, - iEventDataPckg, - iEventRequest ) ); - - // Check the status of command sending - if ( commandSent ) - { - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::HandleUiEventNotification commandSent" ) - // If command was sent, set flag to false, so when next Event request - // arrives, command data is not sent. - iUiEventRequested = EFalse; - } - - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::HandleUiEventNotification exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiSubSession::SendCommand -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSUiSubSession::SendCommand( - TDesC8* aCmdData, // Data from SIM. - TDes8* aCmdRsp, // Response. - TSatServerRequest aRequest ) // Request, which the aData is sent. - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::SendCommand calling" ) - - const TInt count( iServiceRequest->Count() ); - TBool requestHandled( EFalse ); - TInt index( 0 ); - - // Loop until request is handled or no request handler found. - while ( !requestHandled && ( index < count ) ) - { - requestHandled = iServiceRequest->At( index )->HandleCommand( - aCmdData, aCmdRsp, aRequest ); - index++; - } - LOG2( SIMPLE, "SATENGINE: CSatSUiSubSession::SendCommand \ - index: %i", index ) - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::SendCommand exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiSubSession::Event -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatSUiSubSession::Event( TInt aEvent ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::Event calling" ) - - if ( MSatUtils::ESmsSent == aEvent ) - { - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::Event ESmsSent" ) - iSmsSent = ETrue; - SendSmsSentEventToClient(); - } - - LOG( SIMPLE, "SATENGINE: CSatSUiSubSession::Event exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSUiSubSession::SendCommandDataToClient -// Writes descriptor to clients address space and -// completes the request. -// ----------------------------------------------------------------------------- -// -TBool CSatSUiSubSession::SendCommandDataToClient( - TBool& aRequestAvailable, // Is request available - const TDesC8& aData, // Data to be sent to client - const RMessage2& aMessage ) const // Message of the request - { - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::SendCommandDataToClient calling" ) - - TBool commandSent( EFalse ); - - // Is ui client ready to receive the command data. - if ( aRequestAvailable ) - { - LOG( SIMPLE, "SATENGINE: SendCommandDataToClient: Sending to Client" ) - TRAPD( res, aMessage.WriteL( 0, aData ) ); - if ( KErrNone != res ) - { - LOG( SIMPLE, - "SATENGINE: SendCommandDataToClient: KErrNone != res" ) - iSession.PanicClient( aMessage, ESatSBadDescriptor ); - } - aMessage.Complete( KErrNone ); - aRequestAvailable = EFalse; - commandSent = ETrue; - } - - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::SendCommandDataToClient exiting" ) - return commandSent; - } - -// ----------------------------------------------------------------------------- -// CSatSUiSubSession::SendSmsSentEventToClient -// ----------------------------------------------------------------------------- -// -void CSatSUiSubSession::SendSmsSentEventToClient() - { - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::SendSmsSentEventToClient calling" ) - - iEventData.iEvent = ESatSSmEndEvent; - const TBool commandSent( SendCommandDataToClient( iEventRequestAvailable, - iEventDataPckg, iEventRequest ) ); - - if ( commandSent ) - { - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::SendSmsSentEventToClient commandSent" ) - // If command was sent, set flag to false, so when next Event request - // arrives, command data is not sent. - iSmsSent = EFalse; - } - - LOG( SIMPLE, - "SATENGINE: CSatSUiSubSession::SendSmsSentEventToClient exiting" ) - } - -// ----------------------------------------------------------------------------- -// Publish the P&S key KSatAppClosedUsingEndKey to indicate the occurred -// End Key action -// ----------------------------------------------------------------------------- -// -void CSatSUiSubSession::PublishSatAppClosedUsingEndKey() - { - LOG( SIMPLE, - "SATENGINE:CSatSUiSubSession::PublishSatAppClosedUsingEndKey calling" ) - - TInt error = RProperty::Set( KPSUidSatServerInternal, - KSatAppClosedUsingEndKey, KSatAppTerminatedUsingEndKey ); - LOG2( SIMPLE, "CSatSUiSubSession::PublishSatAppClosedUsingEndKey \ - P&S key: %i", KSatAppTerminatedUsingEndKey ) - LOG2(NORMAL, - "SATENGINE: CSatSUiSubSession::PublishSatAppClosedUsingEndKey - \ - publish KSapAppClosedUsingEndKey and return: %d ", error ); - - LOG( SIMPLE, - "SATENGINE:CSatSUiSubSession::PublishSatAppClosedUsingEndKey exiting" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/CSatThreadDeathMonitor.cpp --- a/satengine/SatServer/Engine/src/CSatThreadDeathMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -/* -* Copyright (c) 2002-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: Monitors threads death and notifies an event, when thread dies -* -*/ - - - -// INCLUDE FILES -#include "CSatThreadDeathMonitor.h" -#include "MThreadDeathObserver.h" -#include "SatLog.h" -#include "MSatUtils.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatThreadDeathMonitor::CSatThreadDeathMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatThreadDeathMonitor::CSatThreadDeathMonitor() : CActive( EPriorityStandard ) - { - LOG( SIMPLE, - "SATENGINE: CSatThreadDeathMonitor::CSatThreadDeathMonitor calling" ) - - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "SATENGINE: CSatThreadDeathMonitor::CSatThreadDeathMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatThreadDeathMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatThreadDeathMonitor* CSatThreadDeathMonitor::NewL() - { - LOG( SIMPLE, "SATENGINE: CSatThreadDeathMonitor::NewL calling" ) - CSatThreadDeathMonitor* deathMonitor = new( ELeave ) CSatThreadDeathMonitor; - LOG( SIMPLE, "SATENGINE: CSatThreadDeathMonitor::NewL exiting" ) - return deathMonitor; - } - - -// Destructor -CSatThreadDeathMonitor::~CSatThreadDeathMonitor() - { - LOG( SIMPLE, - "SATENGINE: CSatThreadDeathMonitor::~CSatThreadDeathMonitor calling" ) - Cancel(); - iThread.Close(); - iObserver = NULL; - LOG( SIMPLE, - "SATENGINE: CSatThreadDeathMonitor::~CSatThreadDeathMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatThreadDeathMonitor::NotifyThreadDeathL -// Prepares to notify observer of threads death -// ----------------------------------------------------------------------------- -// -void CSatThreadDeathMonitor::NotifyThreadDeathL( - const TThreadId& aThreadId, - MThreadDeathObserver& aObserver ) - { - - LOG( SIMPLE, - "SATENGINE: CSatThreadDeathMonitor::NotifyThreadDeathL calling" ) - Cancel(); - - iThread.Close(); - - User::LeaveIfError( iThread.Open( aThreadId ) ); - - iObserver = &aObserver; - StartObservingThreadDeath(); - LOG( SIMPLE, - "SATENGINE: CSatThreadDeathMonitor::NotifyThreadDeathL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatThreadDeathMonitor::StartObservingThreadDeath -// Logons to thread and starts observing it's state -// ----------------------------------------------------------------------------- -// -void CSatThreadDeathMonitor::StartObservingThreadDeath() - { - LOG( SIMPLE, "SATENGINE: CSatThreadDeathMonitor::\ - StartObservingThreadDeath calling" ) - iThread.Logon( iStatus ); - SetActive(); - LOG( SIMPLE, "SATENGINE: CSatThreadDeathMonitor::\ - StartObservingThreadDeath exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatThreadDeathMonitor::DoCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatThreadDeathMonitor::DoCancel() - { - LOG( SIMPLE, "SATENGINE: CSatThreadDeathMonitor::DoCancel calling" ) - iThread.LogonCancel( iStatus ); - LOG( SIMPLE, "SATENGINE: CSatThreadDeathMonitor::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatThreadDeathMonitor::RunL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatThreadDeathMonitor::RunL() - { - LOG( SIMPLE, "SATENGINE: CSatThreadDeathMonitor::RunL calling" ) - - const TExitType exitType( iThread.ExitType() ); - - if ( EExitPending == exitType ) // If thread is still alive, restart - { - LOG( SIMPLE, " Thread is still alive" ) - StartObservingThreadDeath(); - } - else if ( EExitPanic == exitType ) - { - LOG( SIMPLE, " Thread has panicked" ) - iThread.Close(); - iObserver->ThreadPanicedL(); - } - else - { - LOG( SIMPLE, " Thread is dead" ) - iThread.Close(); - iObserver->ThreadDiedL(); - } - LOG( SIMPLE, "SATENGINE: CSatThreadDeathMonitor::RunL exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/Panic.cpp --- a/satengine/SatServer/Engine/src/Panic.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,41 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Panic function implementation -* -*/ - - - -// INCLUDE FILES -#include -#include "EnginePanic.h" -#include "SatLog.h" - -// CONSTANTS -_LIT( KSatEnginePanic, "SatEngine" ); - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// PanicSatEngine -// Panics the engine. -// ----------------------------------------------------------------------------- -// -void PanicSatEngine( TPanicCode aPanicCode ) // Panic code - { - LOG( SIMPLE, "SATENGINE: PanicSatEngine panic" ) - User::Panic( KSatEnginePanic, aPanicCode ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/SatServer.hrh --- a/satengine/SatServer/Engine/src/SatServer.hrh Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,22 +0,0 @@ -/* -* Copyright (c) 2003-2005 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: Resource header file for SatServer. -* -*/ - - -// SatServer Resource file signature -#define ESatSResourceSignature 74 - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/SatServer.rss --- a/satengine/SatServer/Engine/src/SatServer.rss Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* -* Copyright (c) 2003-2007 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: This file contains all the resources for the module. -* -*/ - - -NAME SATS - -#include - -#include "SatServer.hrh" -#include - -RESOURCE RSS_SIGNATURE { signature = ESatSResourceSignature; } - -/******************* Localized texts **********************/ - -// ----------------------------------------------------------------------------- -// r_sats_ti_log_title -// Defines localized text -// ----------------------------------------------------------------------------- -// -RESOURCE LBUF r_qtn_sat_log_title - { - txt = qtn_sat_log_title; - } - -RESOURCE LBUF r_qtn_sat_cmcc_title - { - txt = qtn_sat_cmcc_title; - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/TSatBitOP.cpp --- a/satengine/SatServer/Engine/src/TSatBitOP.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Bit manipulator. -* -*/ - - -#include "TSatBitOP.h" -#include "SatLog.h" - -const TUint8 KBitsInByte( 8 ); -const TUint8 KBitsInWord( 16 ); -const TUint8 KHighBitInByte( 7 ); -const TUint8 KHighBitInWord( 15 ); - -// ----------------------------------------------------------------------------- -// Extracts bits from bit sequence. First bit is 0 index. -// The lsb of extracted bits is set to 0 bit. -// ----------------------------------------------------------------------------- -// -TUint8 TSatBitOP::ExtractBits( - TInt aBitIndex, - TUint8 aBitCount, - const TDesC8& aBytes ) - { - LOG( DETAILED, "SATENGINE: TSatBitOP::ExtractBits calling" ) - - // Calculate the byte where aBitIndex is pointing. - const TInt byteIndex( static_cast( aBitIndex / KBitsInByte ) ); - if ( byteIndex > 0 ) // aBitIndex is pointing other than first byte. - { - LOG( DETAILED, "SATENGINE: TSatBitOP::ExtractBits byteIndex > 0" ) - // Change the aBitIndex to point the bits 0 to 7, because - // we know which byte it is indexing. - aBitIndex -= byteIndex * KBitsInByte; - } - - TUint8 result( 0 ); - // Check if the bits to be extracted is in two bytes. - // ie. Part of the bits is in one byte and another - // part is in the following byte. - const TUint8 lastBit( static_cast( aBitIndex + aBitCount ) ); - LOG2( DETAILED, "SATENGINE: TSatBitOP::ExtractBits lastBit: %i", lastBit ) - if ( lastBit > KBitsInByte ) - { - // The bits to be extracted reside in two bytes. - - // Take the bytes. - const TUint16 word( static_cast( - ( aBytes[byteIndex] << KBitsInByte ) + aBytes[byteIndex + 1] ) ); - - // Create the mask, which extracts the bits. - const TUint16 mask( - CreateMask16Bit( static_cast( aBitIndex ), aBitCount ) ); - - // Extract the bits from the word. - // Result will be shifted so that the lsb bit of the extracted bits - // will be in bit 0. - result = - static_cast( ( word & mask ) >> ( KBitsInWord - lastBit ) ); - } - else - { - // Bits can be extracted from single byte. - - // Create the mask. - const TUint8 mask( - CreateMask8Bit( static_cast( aBitIndex ), aBitCount ) ); - - const TUint8 byte( aBytes[byteIndex] ); - - // Mask the bits and move the lsb of the extracted bits to 0 bit. - // Result will be shifted so that the lsb bit of the extracted bits - // will be in bit 0. - result = - static_cast( ( byte & mask ) >> ( KBitsInByte - lastBit ) ); - } - - LOG( DETAILED, "SATENGINE: TSatBitOP::ExtractBits exiting" ) - return result; - } - -// ----------------------------------------------------------------------------- -// Creates a 8-bit mask of ones. -// ----------------------------------------------------------------------------- -// -TUint8 TSatBitOP::CreateMask8Bit( TUint8 aBitIndex, TUint8 aCount ) - { - LOG( DETAILED, "SATENGINE: TSatBitOP::CreateMask8Bit calling" ) - - // Change aBitIndex to use normal indexing of bits, because - // 0 in aBitIndex means MSB. - aBitIndex = static_cast( KHighBitInByte - aBitIndex ); - - TUint8 result( 0 ); - TInt i ( 0 ); - for ( i = 0; i < aCount; i++ ) - { - result |= static_cast( 1 << aBitIndex ); - aBitIndex--; - } - LOG2( DETAILED, "SATENGINE: TSatBitOP::CreateMask8Bit i: %i", i ) - LOG2( DETAILED, "SATENGINE: TSatBitOP::CreateMask8Bit exiting, \ - result: %i", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// Creates a 16-bit mask of ones. -// ----------------------------------------------------------------------------- -// -TUint16 TSatBitOP::CreateMask16Bit( TUint8 aBitIndex, TUint8 aCount ) - { - LOG( DETAILED, "SATENGINE: TSatBitOP::CreateMask16Bit calling" ) - - // Change aBitIndex to use normal indexing of bits, because - // 0 in aBitIndex means MSB. - aBitIndex = static_cast( KHighBitInWord - aBitIndex ); - - TUint16 result( 0 ); - TInt i ( 0 ); - for ( i = 0; i < aCount; i++ ) - { - result |= static_cast( 1 << aBitIndex ); - aBitIndex--; - } - LOG2( DETAILED, "SATENGINE: TSatBitOP::CreateMask16Bit i: %i", i ) - LOG2( DETAILED, "SATENGINE: TSatBitOP::CreateMask16Bit exiting, \ - result: %i", result ) - return result; - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/TSatChannelIDInfo.cpp --- a/satengine/SatServer/Engine/src/TSatChannelIDInfo.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Information class for Channel IDs. -* -*/ - - -#include "TSatChannelIDInfo.h" -#include "SatLog.h" - -// ----------------------------------------------------------------------------- -// TSatChannelIdInfo::TSatChannelIdInfo -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -TSatChannelIdInfo::TSatChannelIdInfo( TInt aChannelId, TUint8 aShort ) : - iChannelId( aChannelId ), - iShortChannelId( aShort ), - iActive( EFalse ) - { - LOG( SIMPLE, "SATENGINE: TSatChannelIdInfo::TSatChannelIdInfo \ - calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// TSatChannelIdInfo::ChannelId -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt TSatChannelIdInfo::ChannelId() const - { - LOG2( SIMPLE, "SATENGINE: TSatChannelIdInfo::ChannelId \ - calling-exiting with: %i", iChannelId ) - return iChannelId; - } - -// ----------------------------------------------------------------------------- -// TSatChannelIdInfo::ShortChannelId -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TUint8 TSatChannelIdInfo::ShortChannelId() const - { - LOG2( SIMPLE, "SATENGINE: TSatChannelIdInfo::ShortChannelId \ - calling-exiting with: %i", iShortChannelId ) - return iShortChannelId; - } - -// ----------------------------------------------------------------------------- -// TSatChannelIdInfo::IsReserved -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool TSatChannelIdInfo::IsReserved() const - { - LOG2( SIMPLE, "SATENGINE: TSatChannelIdInfo::IsReserved \ - calling-exiting with: %i", iActive ) - return iActive; - } - -// ----------------------------------------------------------------------------- -// TSatChannelIdInfo::ReserveChannel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatChannelIdInfo::ReserveChannel() - { - LOG( SIMPLE, "SATENGINE: TSatChannelIdInfo::ReserveChannel \ - calling-exiting" ) - iActive = ETrue; - } - -// ----------------------------------------------------------------------------- -// TSatChannelIdInfo::ReleaseChannel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatChannelIdInfo::ReleaseChannel() - { - LOG( SIMPLE, "SATENGINE: TSatChannelIdInfo::ReleaseChannel \ - calling-exiting" ) - iActive = EFalse; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/TSatEventMediator.cpp --- a/satengine/SatServer/Engine/src/TSatEventMediator.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,346 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Provides way to notify events and register observers -* for events -* -*/ - - - -// INCLUDE FILES -#include "TSatEventMediator.h" -#include "TSatEventsObserver.h" -//lint -e766 Used inside TRAP macro, lint misfunction. -#include "EnginePanic.h" -#include "MSatEventObserver.h" -#include "SatLog.h" - -// FORWARD DECLARE -class MSatEventObserver; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TSatEventMediator::TSatEventMediator -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -TSatEventMediator::TSatEventMediator() : - iEventsObservers(), - iIsNotifying( EFalse ), - iDeletionsMarked( EFalse ) - { - LOG( SIMPLE, - "SATENGINE: TSatEventMediator::TSatEventMediator calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// TSatEventMediator::Reset -// Replaces destructor since T classes cannot have one -// ----------------------------------------------------------------------------- -// -void TSatEventMediator::Reset() - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::Reset calling" ) - - iEventsObservers.ResetAndDestroy(); - - LOG( SIMPLE, "SATENGINE: TSatEventMediator::Reset exiting" ) - } - -// ----------------------------------------------------------------------------- -// TSatEventMediator::Notify -// All observers, who are registered to get the notification of aEvent, are -// notified -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatEventMediator::Notify( - TInt aEvent ) // Event - { - LOG( DETAILED, "SATENGINE: TSatEventMediator::Notify calling" ) - - // Go through the list of observers and call notify for observers who are - // observing aEvent. - - // Set the flag on. No one can remove observers when this flag is on - iIsNotifying = ETrue; - - TInt count( iEventsObservers.Count() ); - LOG2( DETAILED, "SATENGINE: TSatEventMediator::Notify observers \ - count: %d", count ) - for ( TInt i = 0; i < count; i++ ) - { - TSatEventsObserver* eventsObserver = - iEventsObservers[i]; - __ASSERT_ALWAYS( eventsObserver, - PanicSatEngine( ESatEngineNullPointer ) ); - - if ( eventsObserver->ObservingEvent( aEvent ) ) - { - MSatEventObserver* observer = - eventsObserver->Observer(); - - if ( observer ) - { - LOG( DETAILED, "TSatEventMediator::Notify observer found" ) - // Observer found, notify it - observer->Event( aEvent ); - - // Check is iEventObservers list changed. Some observers might - // remove themselves and notify a new event (new Notify loop) - // and marked observers are deleted there. When it comes back - // here iEventsObserver has changed - if ( count > iEventsObservers.Count() ) - { - LOG( DETAILED, "TSatEventMediator::Notify \ - count > iEventsObservers.Count()" ) - TInt newCount( iEventsObservers.Count() ); - i = i - ( count - newCount ); - count = newCount; - } - } - else - { - LOG( DETAILED, "TSatEventMediator::Notify observer not found" ) - // Found NULL observer -> Mark fo deleted. This is deleted after - // this notification loop - eventsObserver->RemoveEvent( aEvent ); - eventsObserver->MarkForDelete(); - } - } - } - - // Set the flag off. Now observers can be removed - iIsNotifying = EFalse; - - // Check was there any deletions during notify loop - if ( iDeletionsMarked ) - { - LOG( DETAILED, "TSatEventMediator::Notify iDeletionsMarked true" ) - // Delete marked observers - DeleteMarkedObservers(); - iDeletionsMarked = EFalse; - } - - LOG( DETAILED, "SATENGINE: TSatEventMediator::Notify exiting" ) - } - -// ----------------------------------------------------------------------------- -// TSatEventMediator::RegisterL -// Registers observer for getting the event when event is notified using -// Notify( TInt aEvent ). -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatEventMediator::RegisterL( - MSatEventObserver* aObserver, // Observer of aEvent. - TInt aEvent ) // Event, which will be trigger of notification. - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::RegisterL calling" ) - - __ASSERT_ALWAYS( aObserver, PanicSatEngine( ESatEngineNullPointer ) ); - // Check if aObserver instance is already registered, so that we dont - // create a new TSatEventsObserver entry in to the iEventsObserver list. - TSatEventsObserver* eventsObserver = HasObserverInstance( aObserver ); - - if ( NULL != eventsObserver ) - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::RegisterL eventsObserver \ - not NULL" ) - // Add the event for the observer. - eventsObserver->AddEventL( aEvent ); - } - else - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::RegisterL eventsObserver \ - NULL" ) - // Observer is registering for the first time. - eventsObserver = new( ELeave )TSatEventsObserver( aObserver ); - CleanupStack::PushL( eventsObserver ); - eventsObserver->AddEventL( aEvent ); - User::LeaveIfError( iEventsObservers.Append( eventsObserver ) ); - CleanupStack::Pop( eventsObserver ); - } - - LOG( SIMPLE, "SATENGINE: TSatEventMediator::RegisterL exiting" ) - } - -// ----------------------------------------------------------------------------- -// TSatEventMediator::Unregister -// Removes aEvent from aObservers observable events. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatEventMediator::Unregister( - const MSatEventObserver* aObserver, // Observer of aEvent. - TInt aEvent ) // Event, which the observer is observing. - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::Unregister calling" ) - - // Check if observer is registered. - TSatEventsObserver* eventsObserver = HasObserverInstance( aObserver ); - if ( NULL != eventsObserver ) - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::RegisterL eventsObserver \ - not NULL" ) - eventsObserver->RemoveEvent( aEvent ); - - // Remove the eventsObserver from the list if the observer has - // no longer any events to observe. - if ( 0 == eventsObserver->EventCount() ) - { - // Prevent delete if we are notifying observers - if ( !iIsNotifying ) - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::Unregister \ - iIsNotifying false" ) - const TInt index = iEventsObservers.Find( eventsObserver ); - // Does not destroy the object. - iEventsObservers.Remove( index ); - iEventsObservers.GranularCompress(); - delete eventsObserver; - } - else - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::Unregister \ - iIsNotifying true" ) - // If we are notifying, mark this observer as deleted - eventsObserver->MarkForDelete(); - iDeletionsMarked = ETrue; - } - } - } - - LOG( SIMPLE, "SATENGINE: TSatEventMediator::Unregister exiting" ) - } - -// ----------------------------------------------------------------------------- -// TSatEventMediator::Unregister -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatEventMediator::Unregister( - const MSatEventObserver* aObserver ) // Observer of aEvent. - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::Unregister calling" ) - - // Check if observer is registered. - TSatEventsObserver* eventsObserver = HasObserverInstance( aObserver ); - if ( NULL != eventsObserver ) - { - // Prevent delete if we are notifying observers - if ( !iIsNotifying ) - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::Unregister \ - iIsNotifying false" ) - const TInt index = iEventsObservers.Find( eventsObserver ); - iEventsObservers.Remove( index ); // Does not destroy the object. - iEventsObservers.GranularCompress(); - delete eventsObserver; - } - else - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::Unregister \ - iIsNotifying true" ) - // If we are notifying, mark this observer as deleted - eventsObserver->MarkForDelete(); - iDeletionsMarked = ETrue; - } - } - - LOG( SIMPLE, "SATENGINE: TSatEventMediator::Unregister exiting" ) - } - -// ----------------------------------------------------------------------------- -// TSatEventMediator::HasObserverInstance -// Checks if aObserver is already registered to this mediator and returns the -// result. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TSatEventsObserver* TSatEventMediator::HasObserverInstance( - const MSatEventObserver* aObserver ) const // Observer looked from the list. - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::HasObserverInstance calling" ) - - // Go through the list until same observer instance is found or - // all entries have been checked. - TSatEventsObserver* foundEventsObserver = NULL; - const TInt count( iEventsObservers.Count() ); - LOG2( NORMAL, "SATENGINE: TSatEventMediator::HasObserverInstance \ - observer count: %d", count ) - for ( TInt i = 0; ( i < count ) && ( !foundEventsObserver ); i++ ) - { - TSatEventsObserver* eventsObserver = iEventsObservers[i]; - __ASSERT_ALWAYS( eventsObserver, - PanicSatEngine( ESatEngineNullPointer ) ); - - if ( aObserver == eventsObserver->Observer() ) - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::HasObserverInstance \ - aObserver == eventsObserver->Observer()" ) - foundEventsObserver = eventsObserver; - } - } - - LOG( SIMPLE, "SATENGINE: TSatEventMediator::HasObserverInstance exiting" ) - return foundEventsObserver; - } - -// ----------------------------------------------------------------------------- -// TSatEventMediator::DeleteMarkedObservers -// Deletes all observers marked as deleted during Notify loop -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatEventMediator::DeleteMarkedObservers() - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::DeleteMarkedObservers calling" ) - - // Go through the list and delete all observers wich are - // marked as deleted - TInt count( iEventsObservers.Count() ); - LOG2( NORMAL, "SATENGINE: TSatEventMediator::DeleteMarkedObservers \ - observer count: %d", count ) - for ( TInt i = 0; i < count; i++ ) - { - TSatEventsObserver* eventsObserver = - iEventsObservers[i]; - if ( eventsObserver ) - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::DeleteMarkedObservers\ - eventsObserver true" ) - // Check is obserer marked and it has no events - if ( eventsObserver->IsMarkedForDelete() && - ( 0 == eventsObserver->EventCount() ) ) - { - LOG( SIMPLE, "SATENGINE: TSatEventMediator::\ - DeleteMarkedObservers delete Observer" ) - iEventsObservers.Remove( i ); // Does not destroy the object. - iEventsObservers.GranularCompress(); - delete eventsObserver; - - // Update count value. We just removed an object from list - count = iEventsObservers.Count(); - i--; - } - } - } - - LOG( SIMPLE, "SATENGINE: TSatEventMediator::DeleteMarkedObservers exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/TSatEventsObserver.cpp --- a/satengine/SatServer/Engine/src/TSatEventsObserver.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,185 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Capsulates the observer and events. -* -*/ - - - -// INCLUDE FILES -#include "TSatEventsObserver.h" -//lint -e766 Used inside TRAP macro, lint misfunction. -#include "EnginePanic.h" -#include "SatLog.h" - -// FORWARD DECLARE -class MSatEventObserver; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TSatEventsObserver::TSatEventsObserver -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -TSatEventsObserver::TSatEventsObserver( - MSatEventObserver* aObserver ) // Observer of events. - : - iEvents(), - iObserver( aObserver ), - iMarkedForDelete( EFalse ) // This observer is not marked for delete, yet. - { - LOG( SIMPLE, "SATENGINE: TSatEventsObserver::TSatEventsObserver calling" ) - - __ASSERT_ALWAYS( aObserver, PanicSatEngine( ESatEngineNullPointer ) ); - - LOG( SIMPLE, "SATENGINE: TSatEventsObserver::TSatEventsObserver exiting" ) - } - -// Destructor -TSatEventsObserver::~TSatEventsObserver() - { - LOG( SIMPLE, "SATENGINE: TSatEventsObserver::~TSatEventsObserver calling" ) - - iEvents.Reset(); - iEvents.Close(); - iObserver = NULL; - - LOG( SIMPLE, "SATENGINE: TSatEventsObserver::~TSatEventsObserver exiting" ) - } - -// ----------------------------------------------------------------------------- -// TSatEventsObserver::AddEventL -// Adds event to the list of events. If aEvent is already in the list, it will -// not be added to the list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatEventsObserver::AddEventL( - TInt aEvent ) // Event to be added to list. - { - LOG( SIMPLE, "SATENGINE: TSatEventsObserver::AddEventL calling" ) - - // Check if the event is already added to the list. - if ( !ObservingEvent( aEvent ) ) - { - LOG( SIMPLE, "SATENGINE: TSatEventsObserver::AddEventL add event" ) - User::LeaveIfError( iEvents.Append( aEvent ) ); - } - - LOG( SIMPLE, "SATENGINE: TSatEventsObserver::AddEventL exiting" ) - } - -// ----------------------------------------------------------------------------- -// TSatEventsObserver::RemoveEvent -// Removes aEvent from the iEvents list, if aEvent is in the list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatEventsObserver::RemoveEvent( TInt aEvent ) - { - LOG( SIMPLE, "SATENGINE: TSatEventsObserver::RemoveEvent calling" ) - - const TInt index( iEvents.Find( aEvent ) ); - LOG2( SIMPLE, "SATENGINE: TSatEventsObserver::RemoveEvent index: %d", - index ) - - // KErrNotFound in index means that aEvent is not in the list. - if ( KErrNotFound != index ) - { - iEvents.Remove( index ); - iEvents.GranularCompress(); - } - - LOG( SIMPLE, "SATENGINE: TSatEventsObserver::RemoveEvent exiting" ) - } - -// ----------------------------------------------------------------------------- -// TSatEventsObserver::ObservingEvents -// Checks wether aEvent is in the iEvents list. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool TSatEventsObserver::ObservingEvent( - TInt aEvent ) const // Event to be checked - { - LOG( DETAILED, "SATENGINE: TSatEventsObserver::ObservingEvent calling" ) - - TBool result( ETrue ); - if ( KErrNotFound == iEvents.Find( aEvent ) ) - { - LOG( DETAILED, "SATENGINE: TSatEventsObserver::ObservingEvent \ - find event" ) - result = EFalse; - } - - LOG2( DETAILED, "SATENGINE: TSatEventsObserver::ObservingEvent exiting, \ - result: %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// TSatEventsObserver::Observer -// Getter for the observer. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -MSatEventObserver* TSatEventsObserver::Observer() - { - LOG( DETAILED, "SATENGINE: TSatEventsObserver::Observer calling-exiting" ) - return iObserver; - } - -// ----------------------------------------------------------------------------- -// TSatEventsObserver::EventCount -// Getter for the event cound -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt TSatEventsObserver::EventCount() const - { - LOG( SIMPLE, "SATENGINE: TSatEventsObserver::EventCount calling-exiting" ) - return iEvents.Count(); - } - -// ----------------------------------------------------------------------------- -// TSatEventsObserver::IsMarkedForDelete -// Getter for deletion mark -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool TSatEventsObserver::IsMarkedForDelete() const - { - LOG( SIMPLE, - "SATENGINE: TSatEventsObserver::IsMarkedForDelete calling-exiting" ) - return iMarkedForDelete; - } - -// ----------------------------------------------------------------------------- -// TSatEventsObserver::MarkForDelete -// Marks this observer to be deleted -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatEventsObserver::MarkForDelete() - { - LOG( SIMPLE, "SATENGINE: TSatEventsObserver::MarkForDelete calling" ) - - iMarkedForDelete = ETrue; - - LOG( SIMPLE, "SATENGINE: TSatEventsObserver::MarkForDelete exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/TSatExtErrorUtils.cpp --- a/satengine/SatServer/Engine/src/TSatExtErrorUtils.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,197 +0,0 @@ -/* -* Copyright (c) 2002-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: Maps extended error values to correct values. -* -*/ - - -#include "TSatExtErrorUtils.h" -#include -#include "SatLog.h" - -// In some cases return value needs to be zeroed -const TUint8 KSatZeroError( 0x00 ); -const TUint8 KHighBitInByte( 0x80 ); - -// ----------------------------------------------------------------------------- -// TSatExtErrorUtils::MapError -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TUint8 TSatExtErrorUtils::MapError( - TInt aExtError, - TBool aModifyMappedValue ) - { - LOG2( SIMPLE, "SATENGINE: TSatExtErrorUtils::MapError calling value: %i", - aExtError ) - - TUint8 retValue( 0 ); - TUint8 nwValue( 0 ); - TInt baseError( 0 ); - - if ( IsExtendedError( aExtError ) ) - { - // Define the base error value - if ( KErrGsmMobilityManagementBase < aExtError ) - { - LOG( NORMAL, "SATENGINE: TSatExtErrorUtils::MapError Base error" ) - baseError = KErrEtelGsmBase; // Base error - } - else if ( KErrGsmCallControlBase < aExtError ) - { - LOG( NORMAL, "SATENGINE: TSatExtErrorUtils::MapError MM error" ) - baseError = KErrGsmMobilityManagementBase; // MM error - } - else if ( KErrGsmSuppServiceBase < aExtError ) - { - LOG( NORMAL, "SATENGINE: TSatExtErrorUtils::MapError CallControl \ - error" ) - baseError = KErrGsmCallControlBase; // CallControl error - } - else if ( KErrGsmSmsBase < aExtError ) - { - LOG( NORMAL, "SATENGINE: TSatExtErrorUtils::MapError SS error" ) - baseError = KErrGsmSuppServiceBase; // Ss error - } - else if ( KErrGsm0707Base < aExtError ) - { - LOG( NORMAL, "SATENGINE: TSatExtErrorUtils::MapError Sms error" ) - baseError = KErrGsmSmsBase; // Sms error - } - else - { - LOG( NORMAL, "SATENGINE: TSatExtErrorUtils::MapError TE-TA error" ) - baseError = KErrGsm0707Base; // TE-TA error - } - // Base error resolved, calculate error value - nwValue = static_cast( baseError - aExtError ); - } - else - { - LOG( NORMAL, " Value not extended error, not mapped" ) - } - - // Next, check specific cases - CheckSpecificCases( aExtError, nwValue ); - - // Check do we have to modify the value - if ( aModifyMappedValue && nwValue > KSatZeroError ) - { - LOG( NORMAL, "SATENGINE: TSatExtErrorUtils::MapError Modifying value" ) - retValue = static_cast( KHighBitInByte | nwValue ); - } - else - { - retValue = nwValue; - } - - LOG2( SIMPLE, "SATENGINE: TSatExtErrorUtils::MapError exiting value:%x", - retValue ) - - return retValue; - } - -// ----------------------------------------------------------------------------- -// TSatExtErrorUtils::IsExtendedError -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool TSatExtErrorUtils::IsExtendedError( TInt aExtError ) - { - LOG( SIMPLE, - "SATENGINE: TSatExtErrorUtils::IsExtendedError calling-exiting" ) - const TBool isExtError( - ( KErrEtelGsmBase >= aExtError ) && - ( KErrGsm0707UnknownError <= aExtError ) ); - - return isExtError; - } - -// ----------------------------------------------------------------------------- -// TSatExtErrorUtils::IsNetworkError -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool TSatExtErrorUtils::IsNetworkError( TInt aExtError ) - { - LOG2( SIMPLE, "SATENGINE: TSatExtErrorUtils::IsNetworkError calling, \ - aExtError: %d", aExtError ) - TBool isNwError( ETrue ); - - switch ( aExtError ) - { - // Add errors here that are not supposed to handle as NW errors - case KErrGsmSMSTemporaryFailure: - case KErrGsmSSUnknownAlphabet: - case KErrGsmSSSystemFailure: - case KErrGsmSSUnexpectedDataValue: - case KErrGsmSSIllegalOperation: - case KErrGsm0707UnknownError: - { - isNwError = EFalse; - break; - } - - default: - { - LOG( NORMAL, "SATENGINE: TSatExtErrorUtils::IsNetworkError\ - Is Network error" ) - isNwError = ETrue; - } - } - LOG2( SIMPLE, "SATENGINE: TSatExtErrorUtils::IsNetworkError exiting, \ - isNwError: %d", isNwError ) - return isNwError; - } - -// ----------------------------------------------------------------------------- -// TSatExtErrorUtils::CheckSpecificCases -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatExtErrorUtils::CheckSpecificCases( - TInt aExtError, TUint8& aNwError ) - { - LOG( SIMPLE, "SATENGINE: TSatExtErrorUtils::CheckSpecificCases calling" ) - // Specific cases, where Extended error received by SAT differs from the - // one that SIM expects - if ( KErrGsmSMSCongestion == aExtError ) - { - LOG( NORMAL, "SATENGINE: TSatExtErrorUtils::CheckSpecificCases\ - Changing Sms Congestion" ) - // Change this into KErrGsmMmCongestion - aNwError = static_cast( - KErrGsmMobilityManagementBase - KErrGsmMMCongestion ); - } - else if ( KErrGsmSMSUnspecifiedProtocolError == aExtError || - KErrGsmCCResourceNotAvailable == aExtError || - KErrGsmSSIllegalOperation == aExtError || - KErrGsmSMSNoNetworkService == aExtError || - KErrGsmSSNotAvailable == aExtError || - KErrGsm0707UnknownError == aExtError ) - { - LOG( NORMAL, "SATENGINE: TSatExtErrorUtils::CheckSpecificCases\ - Changing unspecified protocol error to 0x00" ) - // Change this into zero value - aNwError = KSatZeroError; - } - else - { - LOG( NORMAL, "SATENGINE: TSatExtErrorUtils::CheckSpecificCases\ - Not a special case" ) - } - LOG( SIMPLE, "SATENGINE: TSatExtErrorUtils::CheckSpecificCases exiting" ) - } - -// End Of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/TSatQoSParser.cpp --- a/satengine/SatServer/Engine/src/TSatQoSParser.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,714 +0,0 @@ -/* -* Copyright (c) 2002-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: Maps QoS parameters -* -*/ - - -#include "TSatQoSParser.h" -#include "SatLog.h" - -// Lenght of array of QoS from / to (U)SIM -const TUint8 KSimQoSSize = 6; - -// Precedence class values -const TUint8 KPrecMaxSize = 4; -const TUint8 KPrecPos = 0; - -const RPacketQoS::TQoSPrecedence TPrecedenceClass[KPrecMaxSize] = - { - RPacketQoS::EUnspecifiedPrecedence, - RPacketQoS::EPriorityHighPrecedence, - RPacketQoS::EPriorityMediumPrecedence, - RPacketQoS::EPriorityLowPrecedence - }; - -// Delay class values -const TUint8 KDelayMaxSize = 8; -const TUint8 KDelayPos = 1; -const RPacketQoS::TQoSDelay TDelayClass[KDelayMaxSize] = - { - RPacketQoS::EUnspecifiedDelayClass, - RPacketQoS::EDelayClass1, - RPacketQoS::EDelayClass2, - RPacketQoS::EDelayClass3, - RPacketQoS::EDelayClass4, - // CDMA2000 specific values - RPacketQoS::EDelay40ms, - RPacketQoS::EDelay120ms, - RPacketQoS::EDelay360ms - }; - -// Reliability class values -const TUint8 KRelMaxSize = 6; -const TUint8 KRelPos = 2; -const RPacketQoS::TQoSReliability TReliablitityClass[KRelMaxSize] = - { - RPacketQoS::EUnspecifiedReliabilityClass, - RPacketQoS::EReliabilityClass1, - RPacketQoS::EReliabilityClass2, - RPacketQoS::EReliabilityClass3, - RPacketQoS::EReliabilityClass4, - RPacketQoS::EReliabilityClass5 - }; - -// Peak throughput values -const TUint8 KPeakMaxSize = 10; -const TUint8 KPeakPos = 3; -const RPacketQoS::TQoSPeakThroughput TPeak[KPeakMaxSize] = - { - RPacketQoS::EUnspecifiedPeakThroughput, - RPacketQoS::EPeakThroughput1000, - RPacketQoS::EPeakThroughput2000, - RPacketQoS::EPeakThroughput4000, - RPacketQoS::EPeakThroughput8000, - RPacketQoS::EPeakThroughput16000, - RPacketQoS::EPeakThroughput32000, - RPacketQoS::EPeakThroughput64000, - RPacketQoS::EPeakThroughput128000, - RPacketQoS::EPeakThroughput256000 - }; - -// Mean throughput values -const TUint8 KMeanMaxSize = 20; -const TUint8 KMeanPos = 4; -const TUint8 KMeanBestEffort = 0x1F; -const RPacketQoS::TQoSMeanThroughput TMean[KMeanMaxSize] = - { - RPacketQoS::EUnspecifiedMeanThroughput, - RPacketQoS::EMeanThroughput100, - RPacketQoS::EMeanThroughput200, - RPacketQoS::EMeanThroughput500, - RPacketQoS::EMeanThroughput1000, - RPacketQoS::EMeanThroughput2000, - RPacketQoS::EMeanThroughput5000, - RPacketQoS::EMeanThroughput10000, - RPacketQoS::EMeanThroughput20000, - RPacketQoS::EMeanThroughput50000, - RPacketQoS::EMeanThroughput100000, - RPacketQoS::EMeanThroughput200000, - RPacketQoS::EMeanThroughput500000, - RPacketQoS::EMeanThroughput1000000, - RPacketQoS::EMeanThroughput2000000, - RPacketQoS::EMeanThroughput5000000, - RPacketQoS::EMeanThroughput10000000, - RPacketQoS::EMeanThroughput20000000, - RPacketQoS::EMeanThroughput50000000, - RPacketQoS::EMeanThroughputBestEffort - }; - -// Maximum SDU size value -const TInt KMaximumSDUSize = 1500; - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// GetRequestedQoSValues -// --------------------------------------------------------------------------- -// -void TSatQoSParser::GetRequestedQoSValues( - RSat::TBearerParams& aParams, - RPacketQoS::TQoSGPRSRequested& aResult) - { - LOG( SIMPLE, "SATENGINE: TSatQoSParser::GetRequestedQoSValues calling" ) - - // Get Precedence class value - aResult.iReqPrecedence = TPrecedenceClass[ - CheckIndex( aParams[KPrecPos], KPrecMaxSize ) ]; - LOG2( SIMPLE, " Precedence class: %i", aParams[KPrecPos] ) - LOG2( SIMPLE, " Precedence value: 0x%x", aResult.iReqPrecedence ) - - // Get Delay class value - aResult.iReqDelay = TDelayClass[ - CheckIndex( aParams[KDelayPos], KDelayMaxSize ) ]; - LOG2( SIMPLE, " Delay class: %i", aParams[KDelayPos] ) - LOG2( SIMPLE, " Delay value: 0x%x", aResult.iReqDelay ) - - // Get Reliablility value - aResult.iReqReliability = TReliablitityClass[ - CheckIndex( aParams[KRelPos], KRelMaxSize ) ]; - LOG2( SIMPLE, " Reliablility class: %i", aParams[KRelPos] ) - LOG2( SIMPLE, " Reliablility value: 0x%x", aResult.iReqReliability ) - - // Get Peak value - aResult.iReqPeakThroughput = TPeak[ - CheckIndex( aParams[KPeakPos], KPeakMaxSize ) ]; - LOG2( SIMPLE, " Peak througput: %i", aParams[KPeakPos] ) - LOG2( SIMPLE, " Peak througput: 0x%x", aResult.iReqPeakThroughput ) - - // Get Mean value - if ( KMeanBestEffort != aParams[KMeanPos] ) - { - LOG( SIMPLE, "SATENGINE: TSatQoSParser::GetRequestedQoSValues \ - KMeanBestEffort != aParams[KMeanPos]" ) - aResult.iReqMeanThroughput = TMean[ - CheckIndex( aParams[KMeanPos], KMeanMaxSize ) ]; - } - else - { - aResult.iReqMeanThroughput = RPacketQoS::EMeanThroughputBestEffort; - } - LOG2( SIMPLE, " Mean througput: %i", aParams[KMeanPos] ) - LOG2( SIMPLE, " Mean througput(int):%i", aResult.iReqMeanThroughput ) - - LOG( SIMPLE, "SATENGINE: TSatQoSParser::GetRequestedQoSValues exiting" ) - } - -// --------------------------------------------------------------------------- -// GetRequestedQoSValues -// --------------------------------------------------------------------------- -// -void TSatQoSParser::GetNegotiatedQoSValues( - const RPacketQoS::TQoSGPRSNegotiated& aNegParams, - RSat::TBearerParams& aResult ) - { - LOG( SIMPLE, "SATENGINE: TSatQoSParser::GetNegotiatedQoSValues calling" ) - - aResult.SetLength( KSimQoSSize ); - TInt index( 0 ); - - // Get Precedence class by value - for ( index = 0; index < KPrecMaxSize; index++ ) - { - if ( TPrecedenceClass[index] == aNegParams.iPrecedence ) - { - // Found, store index - aResult[KPrecPos] = static_cast( index ); - index = KPrecMaxSize; // Stop loop - LOG2( SIMPLE, " Prececence class: %i", aResult[KPrecPos] ) - LOG2( SIMPLE, " Prececence value: 0x%x", aNegParams.iPrecedence ) - } - } - LOG2( SIMPLE, "SATENGINE: TSatQoSParser::GetNegotiatedQoSValues index:%i", - index ) - // Get Delay class by value - for ( index = 0; index < KDelayMaxSize; index++ ) - { - if ( TDelayClass[index] == aNegParams.iDelay ) - { - // Found, store index - aResult[KDelayPos] = static_cast( index ); - index = KDelayMaxSize; // Stop loop - LOG2( SIMPLE, " Delay class: %i", aResult[KDelayPos] ) - LOG2( SIMPLE, " Delay value: 0x%x", aNegParams.iDelay ) - } - } - LOG2( SIMPLE, "SATENGINE: TSatQoSParser::GetNegotiatedQoSValues index:%i", - index ) - // Get Reliability class by value - for ( index = 0; index < KRelMaxSize; index++ ) - { - if ( TReliablitityClass[index] == aNegParams.iReliability ) - { - // Found, store index - aResult[KRelPos] = static_cast( index ); - index = KRelMaxSize; // Stop loop - LOG2( SIMPLE, " Reliability class: %i", aResult[KRelPos] ) - LOG2( SIMPLE, " Reliability value: 0x%x", aNegParams.iReliability ) - } - } - LOG2( SIMPLE, "SATENGINE: TSatQoSParser::GetNegotiatedQoSValues index:%i", - index ) - // Get Peak by value - for ( index = 0; index < KPeakMaxSize; index++ ) - { - if ( TPeak[index] == aNegParams.iPeakThroughput ) - { - // Found, store index - aResult[KPeakPos] = static_cast( index ); - index = KPeakMaxSize; // Stop loop - LOG2( SIMPLE, " Peak class: %i", aResult[KPeakPos] ) - LOG2( SIMPLE, " Peak value: 0x%x", - aNegParams.iPeakThroughput ) - } - } - LOG2( SIMPLE, "SATENGINE: TSatQoSParser::GetNegotiatedQoSValues index:%i", - index ) - // Get Mean by value - for ( index = 0; index < KMeanMaxSize; index++ ) - { - if ( TMean[index] == aNegParams.iMeanThroughput ) - { - if ( RPacketQoS::EMeanThroughputBestEffort == - aNegParams.iMeanThroughput ) - { - LOG( SIMPLE, "SATENGINE: TSatQoSParser::GetNegotiatedQoSValues \ - EMeanThroughputBestEffort" ) - // Best effort is not value '19', handle this case differently - aResult[4] = KMeanBestEffort; - } - else - { - // All other values are linear from '0' to '18' - // store index - aResult[KMeanPos] = static_cast( index ); - } - - index = KMeanMaxSize; // Stop loop - LOG2( SIMPLE, " Mean class: %i", aResult[KMeanPos] ) - LOG2( SIMPLE, " Mean value: 0x%x", - aNegParams.iMeanThroughput ) - } - } - LOG2( SIMPLE, "SATENGINE: TSatQoSParser::GetNegotiatedQoSValues index:%i", - index ) - LOG( SIMPLE, "SATENGINE: TSatQoSParser::GetNegotiatedQoSValues exiting" ) - } - -// --------------------------------------------------------------------------- -// CheckIndex -// --------------------------------------------------------------------------- -// -TInt TSatQoSParser::CheckIndex( TInt aReqIndex, TInt aMaxIndex ) - { - LOG( SIMPLE, "SATENGINE: TSatQoSParser::CheckIndex calling" ) - TInt retVal( aReqIndex ); - - if ( aMaxIndex < aReqIndex ) - { - LOG( SIMPLE, "SATENGINE: TSatQoSParser::CheckIndex \ - aMaxIndex < aReqIndex" ) - retVal = 0; - } - LOG( SIMPLE, "SATENGINE: TSatQoSParser::CheckIndex exiting" ) - return retVal; - } - -// --------------------------------------------------------------------------- -// Convert QoS parameters from Rel97/98 format to Rel5 format -// --------------------------------------------------------------------------- -// -TSatQoSParser::TQoSRel5 TSatQoSParser::ConvertQoS( - const RPacketQoS::TQoSGPRSRequested& aReqParams ) - { - LOG( SIMPLE, "SATENGINE: TSatQoSParser::ConvertQoS calling" ) - - TQoSRel5 qos; - LOG2( SIMPLE, "SATENGINE: TSatQoSParser::ConvertQoS \ - aReqParams.iReqDelay: %i", aReqParams.iReqDelay ) - // Map Delay class value to Traffic class/Traffic handling priority - // Delay Class ----------- Traffic Class - // 1,2,3 Interactive - // 4 Background - // Delay Class ----------- Traffic Handling priority - // 1 1 - // 2 2 - // 3 3 - // 4 unspecified - switch ( aReqParams.iReqDelay ) - { - case RPacketQoS::EDelayClass1: - { - qos.iTrafficClass = RPacketQoS::ETrafficClassInteractive; - qos.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority1; - break; - } - case RPacketQoS::EDelayClass2: - { - qos.iTrafficClass = RPacketQoS::ETrafficClassInteractive; - qos.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority2; - break; - } - case RPacketQoS::EDelayClass3: - { - qos.iTrafficClass = RPacketQoS::ETrafficClassInteractive; - qos.iTrafficHandlingPriority = RPacketQoS::ETrafficPriority3; - break; - } - case RPacketQoS::EDelayClass4: - { - qos.iTrafficClass = RPacketQoS::ETrafficClassBackground; - qos.iTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified; - break; - } - default: - { - qos.iTrafficClass = RPacketQoS::ETrafficClassUnspecified; - qos.iTrafficHandlingPriority = RPacketQoS::ETrafficPriorityUnspecified; - break; - } - } - LOG2( SIMPLE, "SATENGINE: TSatQoSParser::ConvertQoS \ - aReqParams.iReqReliability: %i", aReqParams.iReqReliability ) - // Map Reliability class value to SDU error ratio/ - // Residual bit error ratio/Delivery of erroneous SDUs - // Reliability Class ----------- SDU error ratio - // 1,2 0.000001 - // 3 0.0001 - // 4,5 0.001 - // Reliability Class ----------- Residual bit error ratio - // 1,2,3,4 0.00001 - // 5 0.004 - // Reliability Class ----------- Delivery of erroneous SDUs - // 1,2,3,4 No - // 5 Yes - switch ( aReqParams.iReqReliability ) - { - case RPacketQoS::EReliabilityClass1: - { - qos.iSduErrorRatio = - RPacketQoS::ESDUErrorRatioOnePerMillion; - qos.iResidualBer = RPacketQoS::EBEROnePerHundredThousand; - qos.iDeliveryErroneousSdu = - RPacketQoS::EErroneousSDUDeliveryNotRequired; - break; - } - case RPacketQoS::EReliabilityClass2: - { - qos.iSduErrorRatio = RPacketQoS::ESDUErrorRatioOnePerMillion; - qos.iResidualBer = RPacketQoS::EBEROnePerHundredThousand; - qos.iDeliveryErroneousSdu = - RPacketQoS::EErroneousSDUDeliveryNotRequired; - break; - } - case RPacketQoS::EReliabilityClass3: - { - qos.iSduErrorRatio = - RPacketQoS::ESDUErrorRatioOnePerTenThousand; - qos.iResidualBer = RPacketQoS::EBEROnePerHundredThousand; - qos.iDeliveryErroneousSdu = - RPacketQoS::EErroneousSDUDeliveryNotRequired; - break; - } - case RPacketQoS::EReliabilityClass4: - { - qos.iSduErrorRatio = RPacketQoS::ESDUErrorRatioOnePerThousand; - qos.iResidualBer = RPacketQoS::EBEROnePerHundredThousand; - qos.iDeliveryErroneousSdu = - RPacketQoS::EErroneousSDUDeliveryNotRequired; - break; - } - case RPacketQoS::EReliabilityClass5: - { - qos.iSduErrorRatio = RPacketQoS::ESDUErrorRatioOnePerThousand; - qos.iResidualBer = RPacketQoS::EBERFourPerThousand; - qos.iDeliveryErroneousSdu = - RPacketQoS::EErroneousSDUDeliveryRequired; - break; - } - default: - { - qos.iSduErrorRatio = RPacketQoS::ESDUErrorRatioUnspecified; - qos.iResidualBer = RPacketQoS::EBERUnspecified; - qos.iDeliveryErroneousSdu = - RPacketQoS::EErroneousSDUDeliveryNotRequired; - break; - } - } - LOG2( SIMPLE, "SATENGINE: TSatQoSParser::ConvertQoS \ - aReqParams.iReqPeakThroughput: %i", aReqParams.iReqPeakThroughput ) - // Map Peak throughout class value to Maximum bitrate[kbps] - // Peak throughout Class ---- Maximum bitrate[kbps] - // 1 8 - // 2 16 - // 3 32 - // 4 64 - // 5 128 - // 6 256 - // 7 512 - // 8 1024 - // 9 2048 - switch ( aReqParams.iReqPeakThroughput ) - { - case RPacketQoS::EPeakThroughput1000: - { - qos.iMaxBitRate = ESatMaxBitRate1; - break; - } - - case RPacketQoS::EPeakThroughput2000: - { - qos.iMaxBitRate = ESatMaxBitRate2; - break; - } - case RPacketQoS::EPeakThroughput4000: - { - qos.iMaxBitRate = ESatMaxBitRate3; - break; - } - case RPacketQoS::EPeakThroughput8000: - { - qos.iMaxBitRate = ESatMaxBitRate4; - break; - } - case RPacketQoS::EPeakThroughput16000: - { - qos.iMaxBitRate = ESatMaxBitRate5; - break; - } - case RPacketQoS::EPeakThroughput32000: - { - qos.iMaxBitRate = ESatMaxBitRate6; - break; - } - case RPacketQoS::EPeakThroughput64000: - { - qos.iMaxBitRate = ESatMaxBitRate7; - break; - } - case RPacketQoS::EPeakThroughput128000: - { - qos.iMaxBitRate = ESatMaxBitRate8; - break; - } - case RPacketQoS::EPeakThroughput256000: - { - qos.iMaxBitRate = ESatMaxBitRate9; - break; - } - default: - { - qos.iMaxBitRate = ESatMaxBitRateUnspecified; - break; - } - } - - // Fixed value - qos.iMaximumSDUSize = KMaximumSDUSize; - qos.iDeliveryOrder = RPacketQoS::EDeliveryOrderNotRequired; - - LOG( SIMPLE, "SATENGINE: TSatQoSParser::ConvertQoS exiting" ) - - return qos; - } - -// --------------------------------------------------------------------------- -// Convert QoS parameters from Rel5 format to Rel97/98 format -// --------------------------------------------------------------------------- -// -RPacketQoS::TQoSGPRSNegotiated TSatQoSParser::ConvertNegotiatedQoS( - const TQoSRel5& aNegQoSRel5 ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::ConvertNegotiatedQoS \ - calling" ) - - RPacketQoS::TQoSGPRSNegotiated negQos; - LOG2( SIMPLE, "SATENGINE: TSatQoSParser::ConvertNegotiatedQoS \ - aNegQoSRel5.iTrafficClass: %i", aNegQoSRel5.iTrafficClass ) - // Map Traffic class/Traffic handling priority to Delay class value - // Traffic Class/Traffic Handling priority----------- Delay Class - // conversational 1 - // streaming 1 - // Interactive/1 1 - // Interactive/2 2 - // Interactive/3 3 - // Background 4 - - switch ( aNegQoSRel5.iTrafficClass ) - { - case RPacketQoS::ETrafficClassConversational: - { - negQos.iDelay = RPacketQoS::EDelayClass1; - break; - } - case RPacketQoS::ETrafficClassStreaming: - { - negQos.iDelay = RPacketQoS::EDelayClass1; - break; - } - case RPacketQoS::ETrafficClassInteractive: - { - LOG2( SIMPLE, "SATENGINE: TSatQoSParser::ConvertNegotiatedQoS \ - priority: %i", aNegQoSRel5.iTrafficHandlingPriority ) - switch ( aNegQoSRel5.iTrafficHandlingPriority ) - { - case RPacketQoS::ETrafficPriority1: - { - negQos.iDelay = RPacketQoS::EDelayClass1; - break; - } - case RPacketQoS::ETrafficPriority2: - { - negQos.iDelay = RPacketQoS::EDelayClass2; - break; - } - case RPacketQoS::ETrafficPriority3: - { - negQos.iDelay = RPacketQoS::EDelayClass3; - break; - } - default: - { - negQos.iDelay = RPacketQoS::EUnspecifiedDelayClass; - break; - } - } - break; - } - case RPacketQoS::ETrafficClassBackground: - { - negQos.iDelay = RPacketQoS::EDelayClass4; - break; - } - default: - { - negQos.iDelay = RPacketQoS::EUnspecifiedDelayClass; - break; - } - } - LOG2( SIMPLE, "SATENGINE: TSatQoSParser::ConvertNegotiatedQoS \ - aNegQoSRel5.iSduErrorRatio: %i", aNegQoSRel5.iSduErrorRatio ) - // Map SDU error ratio/Residual bit error ratio to Reliability value - // SDU error ratio/Residual bit error ratio -------- Reliability Class - // 0.000001 2 - // 0.00001 2 - // 0.0001 3 - // 0.001,0.007,0.01,0.1/0.0001,0.00001, 0.000001,0.00000006 4 - // 0.001,0.007,0.01,0.1/0.001,0.004,0.005,0.01,0.05 5 - switch ( aNegQoSRel5.iSduErrorRatio ) - { - case RPacketQoS::ESDUErrorRatioOnePerHundredThousand: - case RPacketQoS::ESDUErrorRatioOnePerMillion: - { - negQos.iReliability = RPacketQoS::EReliabilityClass2; - break; - } - case RPacketQoS::ESDUErrorRatioOnePerTenThousand: - { - negQos.iReliability = RPacketQoS::EReliabilityClass3; - break; - } - case RPacketQoS::ESDUErrorRatioOnePerThousand: - case RPacketQoS::ESDUErrorRatioSevenPerThousand: - case RPacketQoS::ESDUErrorRatioOnePerHundred: - case RPacketQoS::ESDUErrorRatioOnePerTen: - { - LOG2( SIMPLE, "SATENGINE: TSatQoSParser::ConvertNegotiatedQoS \ - aNegQoSRel5.iResidualBer: %i", aNegQoSRel5.iResidualBer ) - switch( aNegQoSRel5.iResidualBer ) - { - case RPacketQoS::EBEROnePerTenThousand: - case RPacketQoS::EBEROnePerHundredThousand: - case RPacketQoS::EBEROnePerMillion: - case RPacketQoS::EBERSixPerHundredMillion: - { - negQos.iReliability = RPacketQoS::EReliabilityClass4; - break; - } - case RPacketQoS::EBERFivePerHundred: - case RPacketQoS::EBEROnePerHundred: - case RPacketQoS::EBERFivePerThousand: - case RPacketQoS::EBERFourPerThousand: - case RPacketQoS::EBEROnePerThousand: - { - negQos.iReliability = RPacketQoS::EReliabilityClass5; - break; - } - default: - { - negQos.iReliability = RPacketQoS::EUnspecifiedReliabilityClass; - break; - } - } - break; - } - default: - { - negQos.iReliability = RPacketQoS::EUnspecifiedReliabilityClass; - break; - } - } - - // Map Maximum bitrate [kbps] to Peak throughout class - // Maximum bitrate[kbps] ---- Peak throughout Class - // - // < 16 1 - // 16 <= x < 32 2 - // 32 <= x < 64 3 - // 64 <= x < 128 4 - // 128 <= x < 256 5 - // 256 <= x < 512 6 - // 512 <= x < 1024 7 - // 1024 <= x < 2048 8 - // >= 2048 9 - if ( aNegQoSRel5.iMaxBitRate < ESatMaxBitRate2 ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::\ - ConvertNegotiatedQoS rate: rate< 16" ) - negQos.iPeakThroughput = RPacketQoS::EPeakThroughput1000; - } - else if ( ( aNegQoSRel5.iMaxBitRate < ESatMaxBitRate3 ) && - ( aNegQoSRel5.iMaxBitRate >= ESatMaxBitRate2 ) ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::\ - ConvertNegotiatedQoS rate: 16 <= rate < 32" ) - negQos.iPeakThroughput = RPacketQoS::EPeakThroughput2000; - } - else if ( ( aNegQoSRel5.iMaxBitRate < ESatMaxBitRate4 ) && - ( aNegQoSRel5.iMaxBitRate >= ESatMaxBitRate3 ) ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::\ - ConvertNegotiatedQoS rate: 32 <= rate < 64" ) - negQos.iPeakThroughput = RPacketQoS::EPeakThroughput4000; - } - else if ( ( aNegQoSRel5.iMaxBitRate < ESatMaxBitRate5 ) && - ( aNegQoSRel5.iMaxBitRate >= ESatMaxBitRate4 ) ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::\ - ConvertNegotiatedQoS rate: 64 <= rate < 128" ) - negQos.iPeakThroughput = RPacketQoS::EPeakThroughput8000; - } - else if ( ( aNegQoSRel5.iMaxBitRate < ESatMaxBitRate6 ) && - ( aNegQoSRel5.iMaxBitRate >= ESatMaxBitRate5 ) ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::\ - ConvertNegotiatedQoS rate: 128 <= rate < 256" ) - negQos.iPeakThroughput = RPacketQoS::EPeakThroughput16000; - } - else if ( ( aNegQoSRel5.iMaxBitRate < ESatMaxBitRate7 ) && - ( aNegQoSRel5.iMaxBitRate >= ESatMaxBitRate6 ) ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::\ - ConvertNegotiatedQoS rate: 256 <= rate < 512" ) - negQos.iPeakThroughput = RPacketQoS::EPeakThroughput32000; - } - else if ( ( aNegQoSRel5.iMaxBitRate < ESatMaxBitRate8 ) && - ( aNegQoSRel5.iMaxBitRate >= ESatMaxBitRate7 ) ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::\ - ConvertNegotiatedQoS rate: 512 <= rate < 1024" ) - negQos.iPeakThroughput = RPacketQoS::EPeakThroughput64000; - } - else if ( ( aNegQoSRel5.iMaxBitRate < ESatMaxBitRate9 ) && - ( aNegQoSRel5.iMaxBitRate >= ESatMaxBitRate8 ) ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::\ - ConvertNegotiatedQoS rate: 1024 <= rate < 2048" ) - negQos.iPeakThroughput = RPacketQoS::EPeakThroughput128000; - } - else if ( aNegQoSRel5.iMaxBitRate >= ESatMaxBitRate9 ) - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::\ - ConvertNegotiatedQoS rate: rate >= 2048" ) - negQos.iPeakThroughput = RPacketQoS::EPeakThroughput256000; - } - else - { - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::\ - ConvertNegotiatedQoS others" ) - negQos.iPeakThroughput = RPacketQoS::EUnspecifiedPeakThroughput; - } - - // Fixed value - // UE shall set the R97/98 precedence class to value "subscribed" - negQos.iPrecedence = RPacketQoS::EUnspecifiedPrecedence; - // Always set to 31, best effort - negQos.iMeanThroughput = RPacketQoS::EMeanThroughputBestEffort; - - LOG( SIMPLE, "SATENGINE: CSatBIPGPRSDataChannel::ConvertNegotiatedQoS \ - exiting" ) - - return negQos; - } - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/TUSatAPI.cpp --- a/satengine/SatServer/Engine/src/TUSatAPI.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1075 +0,0 @@ -/* -* Copyright (c) 2002-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: Wrapper for usat api. -* -*/ - - -#include -#include "TUSatAPI.h" -#include "SatLog.h" -#include "msatmultimodeapi.h" -#include "csatsactivewrapper.h" - -const TInt KSatSLoopTimeout = 3000000; -const TInt KLoopMaxTryouts = 5; // Max tryouts for loops - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TUSatAPI::TUSatAPI -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -TUSatAPI::TUSatAPI() : - iSat(), - iRSatConnected( EFalse ), - iWrapper( NULL ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::TUSatAPI calling - exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::Connect -// Connects to USAT API. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt TUSatAPI::Connect( MSatMultiModeApi& aPhone ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::Connect calling" ) - - TInt numberOfTries( 1 ); // Indicates loop tryouts - TBool loopSuccess( EFalse ); // Loop stopper, if this is ETrue - TInt error( KErrNotSupported ); // Error code from iSat.Open() - iRSatConnected = EFalse; - - // Create active wrapper - iWrapper = new CSatSActiveWrapper(); - - if ( iWrapper ) - { - while ( !loopSuccess && numberOfTries <= KLoopMaxTryouts ) - { -#ifndef SAT_USE_DUMMY_TSY - LOG( NORMAL, "SATENGINE: TUSatAPI::Connect connect Phone" ) - error = iSat.Open( *( aPhone.Phone() ) ); -#else - LOG( NORMAL, "SATENGINE: TUSatAPI::Connect connect DummyPhone" ) - error = iSat.Open( *( aPhone.DummyPhone() ) ); -#endif - if ( KErrNone == error ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::Connect KErrNone == error" ) - loopSuccess = ETrue; - iRSatConnected = ETrue; - } - else - { - numberOfTries++; - iWrapper->After( KSatSLoopTimeout ); - } - } - LOG2( SIMPLE, "SATENGINE: TUSatAPI::Connect numberOfTries: %d", - numberOfTries ) - } - - LOG2( SIMPLE, "SATENGINE: TUSatAPI::Connect exiting with code: %i", error ) - return error; - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::Close -// Closes the connection. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::Close() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::Close calling" ) - - iSat.Close(); - iRSatConnected = EFalse; - - if ( iWrapper ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::Close iWrapper true" ) - iWrapper->CancelWrapper(); - delete iWrapper; - iWrapper = NULL; - } - - LOG( SIMPLE, "SATENGINE: TUSatAPI::Close exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySetUpMenu -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySetUpMenu( - TRequestStatus& aStatus, - TDes8& aPCmd ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpMenu calling" ) - - iSat.NotifySetUpMenuPCmd( aStatus, aPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpMenu exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySetUpMenuCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySetUpMenuCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpMenuCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifySetUpMenuPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpMenuCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyLanguageNotification -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyLanguageNotification( - TRequestStatus& aStatus, - TDes8& aPCmd ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyLanguageNotification calling" ) - - iSat.NotifyLanguageNotificationPCmd( aStatus, aPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyLanguageNotification exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyLanguageNotification -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyLanguageNotificationCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpMenuCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyLanguageNotificationPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpMenuCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySetUpCall -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySetUpCall( - TRequestStatus& aStatus, - TDes8& aPCmd ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpCall calling" ) - - iSat.NotifySetUpCallPCmd( aStatus, aPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpCall exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySetUpCallCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySetUpCallCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpCallCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifySetUpCallPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpCallCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySelectItem -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySelectItem( - TRequestStatus& aStatus, - TDes8& aPCmd ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySelectItem calling" ) - - iSat.NotifySelectItemPCmd( aStatus, aPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySelectItem exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySelectItemCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySelectItemCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySelectItemCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifySelectItemPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySelectItemCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySendSm -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySendSm( - TRequestStatus& aStatus, - TDes8& aPCmd ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendSm calling" ) - - iSat.NotifySendSmPCmd( aStatus, aPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendSm exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySendSmCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySendSmCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendSmCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifySendSmPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendSmCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::SendMessageNoLogging -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::SendMessageNoLogging( - TRequestStatus& aStatus, - TDes8& aData, - TUint16& aRefMsg ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::SendMessageNoLogging calling" ) - - iSat.SendMessageNoLogging( aStatus, aData, aRefMsg ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::SendMessageNoLogging exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::SendMessageNoLoggingCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::SendMessageNoLoggingCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::SendMessageNoLoggingCancel calling" ) - - iSat.CancelAsyncRequest( ESatSendMessageNoLogging ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::SendMessageNoLoggingCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyLaunchBrowser -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyLaunchBrowser( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyLaunchBrowser calling" ) - - iSat.NotifyLaunchBrowserPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyLaunchBrowser exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyLaunchBrowserCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyLaunchBrowserCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyLaunchBrowserCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyLaunchBrowserPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyLaunchBrowserCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyDisplayText -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyDisplayText( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyDisplayText calling" ) - - iSat.NotifyDisplayTextPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyDisplayText exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyDisplayTextCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyDisplayTextCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyDisplayTextCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyDisplayTextPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyDisplayTextCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyGetInput -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyGetInput( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyGetInput calling" ) - - iSat.NotifyGetInputPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyGetInput exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyGetInputCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyGetInputCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyGetInputCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyGetInputPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyGetInputCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyGetInkey -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyGetInkey( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyGetInkey calling" ) - - iSat.NotifyGetInkeyPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyGetInkey exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyGetInkeyCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyGetInkeyCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyGetInkeyCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyGetInkeyPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyGetInkeyCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyCallControl -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyCallControl( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyCallControl calling" ) - - iSat.NotifyCallControlRequest( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyCallControl exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyCallControlCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyCallControlCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyCallControlCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyCallControlRequest ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyCallControlCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyMoSmControl -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyMoSmControl( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyMoSmControl calling" ) - - iSat.NotifyMoSmControlRequest( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyMoSmControl exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyMoSmControlCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyMoSmControlCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyMoSmControlCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyMoSmControlRequest ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyMoSmControlCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySetUpEventList -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySetUpEventList( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpEventList calling" ) - - iSat.NotifySetUpEventListPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpEventList exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySetUpEventListCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySetUpEventListCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpEventListCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifySetUpEventListPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpEventListCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySetUpIdleModeText -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySetUpIdleModeText( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpIdleModeText calling" ) - - iSat.NotifySetUpIdleModeTextPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpIdleModeText exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySetUpIdleModeTextCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySetUpIdleModeTextCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpIdleModeTextCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifySetUpIdleModeTextPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySetUpIdleModeTextCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySendDtmf -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySendDtmf( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendDtmf calling" ) - - iSat.NotifySendDtmfPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendDtmf exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySendDtmfCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySendDtmfCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendDtmfCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifySendDtmfPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendDtmfCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySendSs -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySendSs( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendSs calling" ) - - iSat.NotifySendSsPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendSs exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySendSsCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySendSsCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendSsCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifySendSsPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendSsCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySendUssd -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySendUssd( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendUssd calling" ) - - iSat.NotifySendUssdPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendUssd exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySendUssdCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySendUssdCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendUssdCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifySendUssdPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendUssdCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyPlayTone -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyPlayTone( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyPlayTone calling" ) - - iSat.NotifyPlayTonePCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyPlayTone exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyPlayToneCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyPlayToneCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyPlayToneCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyPlayTonePCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyPlayToneCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyRefreshRequired -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyRefreshRequired( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyRefreshRequired calling" ) - - iSat.NotifyRefreshRequired( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyRefreshRequired exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyRefreshRequiredCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyRefreshRequiredCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyRefreshRequiredCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyRefreshRequiredParam ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyRefreshRequiredCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::RefreshAllowed -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::RefreshAllowed( - const TDesC8& aPCkg ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::RefreshAllowed calling" ) - - if ( iWrapper ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::RefreshAllowed iWrapper true" ) - iSat.RefreshAllowed( iWrapper->RequestStatus(), aPCkg ); - iWrapper->SetActiveAndWait(); - } - - LOG( SIMPLE, "SATENGINE: TUSatAPI::RefreshAllowed exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyRefresh -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyRefresh( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyRefresh calling" ) - - iSat.NotifyRefreshPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyRefresh exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyRefreshCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyRefreshCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyRefreshCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyRefreshPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyRefreshCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySimSessionEnd -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySimSessionEnd( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySimSessionEnd calling" ) - - iSat.NotifyProactiveSimSessionEnd( aStatus ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySimSessionEnd exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySimSessionEndCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySimSessionEndCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySimSessionEndCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyProactiveSimSessionEnd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySimSessionEndCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyLocalInfo -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyLocalInfo( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyLocalInfo calling" ) - - iSat.NotifyLocalInfoPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyLocalInfo exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyLocalInfoCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyLocalInfoCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyLocalInfoCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyLocalInfoPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyLocalInfoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyOpenChannel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyOpenChannel( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyOpenChannel calling" ) - - iSat.NotifyOpenChannelPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyOpenChannel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyOpenChannelCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyOpenChannelCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyOpenChannelCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyOpenChannelPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyOpenChannelCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyCloseChannel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyCloseChannel( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyCloseChannel calling" ) - - iSat.NotifyCloseChannelPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyCloseChannel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyCloseChannelCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyCloseChannelCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyCloseChannelCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyCloseChannelPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyCloseChannelCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyGetChannelStatus -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyGetChannelStatus( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyGetChannelStatus calling" ) - - iSat.NotifyGetChannelStatusPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyGetChannelStatus exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyGetChannelStatusCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyGetChannelStatusCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyGetChannelStatusCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyGetChannelStatusPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyGetChannelStatusCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySendData -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySendData( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendData calling" ) - - iSat.NotifySendDataPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendData exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifySendDataCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifySendDataCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendDataCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifySendDataPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifySendDataCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyReceiveData -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyReceiveData( - TRequestStatus& aStatus, - TDes8& aData ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyReceiveData calling" ) - - iSat.NotifyReceiveDataPCmd( aStatus, aData ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyReceiveData exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::NotifyReceiveDataCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::NotifyReceiveDataCancel() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyReceiveDataCancel calling" ) - - iSat.CancelAsyncRequest( ESatNotifyReceiveDataPCmd ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::NotifyReceiveDataCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::SendMenuSelection -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::SendMenuSelection( const TDes8& aMenuSelection ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::SendMenuSelection calling" ) - - if ( iWrapper ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::SendMenuSelection iWrapper true" ) - iSat.MenuSelection( iWrapper->RequestStatus(), aMenuSelection ); - iWrapper->SetActiveAndWait(); - } - - LOG( SIMPLE, "SATENGINE: TUSatAPI::SendMenuSelection exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatApi::TerminalRsp -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::TerminalRsp( - RSat::TPCmd aPCmd, // Identifies the command, which is sending the response - const TDesC8& aRsp ) // Resposen data package - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::TerminalRsp calling" ) - - if ( iWrapper ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::TerminalRsp iWrapper true" ) - iSat.TerminalRsp( iWrapper->RequestStatus(), aPCmd, aRsp ); - iWrapper->SetActiveAndWait(); - } - - LOG( SIMPLE, "SATENGINE: TUSatAPI::TerminalRsp exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::GetIcon -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::GetIcon( - TRequestStatus& aReqStatus, - TUint8 aRecordNumber, - RSat::TIcon& aIconEf ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::GetIcon calling" ) - - iSat.GetIcon( aReqStatus, aRecordNumber, aIconEf ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::GetIcon exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::GetImageInstance -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::GetImageInstance( - TRequestStatus& aReqStatus, - const TDesC8& aInstanceInfo, - TDes8& aInstance ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::GetImageInstance calling" ) - - iSat.GetImageInstance( aReqStatus, aInstanceInfo, aInstance ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::GetImageInstance exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::GetClut -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::GetClut( - TRequestStatus& aReqStatus, - TUint aInstanceNumber, - TUint aOffset, - TDes8& aClut ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::GetClut calling" ) - - iSat.GetClut( aReqStatus, aInstanceNumber, aOffset, aClut ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::GetClut exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::EventDownload -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TUSatAPI::EventDownload( - TRequestStatus& aReqStatus, - RSat::TEventList aSingleEvent, - const TDesC8& aEventInfo ) - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::EventDownload calling" ) - - iSat.EventDownload( aReqStatus, aSingleEvent, aEventInfo ); - - LOG( SIMPLE, "SATENGINE: TUSatAPI::EventDownload exiting" ) - } - -// ----------------------------------------------------------------------------- -// TUSatAPI::IsRSatConnected -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool TUSatAPI::IsRSatConnected() const - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::IsRSatConnected calling-exiting" ) - return iRSatConnected; - } -// ----------------------------------------------------------------------------- -// TUSatAPI::UsatClientReadyIndication -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt TUSatAPI::UsatClientReadyIndication() - { - LOG( SIMPLE, "SATENGINE: TUSatAPI::UsatClientReadyIndication calling-exit") - - return iSat.UsatClientReadyIndication(); - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/csatbipconnectionobserver.cpp --- a/satengine/SatServer/Engine/src/csatbipconnectionobserver.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2007 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: Observer of the GPRS connection status change -* -*/ - - - -// INCLUDE FILES -#include -#include // for EPacketNotifyStatusChange in DoCancel -#include "csatbipconnectionobserver.h" -#include "CSatBIPUtils.h" -#include "SatLog.h" - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatBIPConnectionObserver::CSatBIPConnectionObserver -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatBIPConnectionObserver::CSatBIPConnectionObserver( - CSatBIPUtils& aBipUtils ) : - CActive( EPriorityNormal ), - iBipUtils( aBipUtils ) - { - LOG( NORMAL, "SATENGINE: CSatBIPConnectionObserver::\ - CSatBIPConnectionObserver calling" ) - CActiveScheduler::Add( this ); - // Get current status - iBipUtils.PacketService().GetStatus( iConnectionStatus ); - // Set last status - iPrevConnectionStatus = iConnectionStatus; - LOG2( NORMAL, "SATENGINE: CSatBIPConnectionObserver::\ - CSatBIPConnectionObserver exiting: %i", iConnectionStatus ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPConnectionObserver::~CSatBIPConnectionObserver -// Destructor -// ----------------------------------------------------------------------------- -// -CSatBIPConnectionObserver::~CSatBIPConnectionObserver() - { - LOG( SIMPLE, - "SATENGINE: CSatBIPConnectionObserver::~CSatBIPConnectionObserver \ - calling" ) - Cancel(); - LOG( SIMPLE, - "SATENGINE: CSatBIPConnectionObserver::~CSatBIPConnectionObserver \ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPConnectionObserver::RunL -// ----------------------------------------------------------------------------- -// -void CSatBIPConnectionObserver::RunL() - { - LOG( NORMAL, "SATENGINE: CSatBIPConnectionObserver::RunL calling" ) - - const TInt errStatus( iStatus.Int() ); - LOG2( SIMPLE, " RunL (%i)", errStatus ) - LOG2( SIMPLE, " ConnStatus (%i)", iConnectionStatus ) - if ( KErrNone == errStatus ) - { - //if previous status is active packet data connection and - //current status is inactive packet data connection, drop links. - if( RPacketService::EStatusActive == iPrevConnectionStatus && - ( RPacketService::EStatusAttached == iConnectionStatus || - RPacketService::EStatusUnattached == iConnectionStatus )) - { - LOG( NORMAL, "CSatBIPConnectionObserver::RunL stop UDP link" ) - iBipUtils.StopUdpLink(); - } - - // Restart request - iPrevConnectionStatus = iConnectionStatus; - iBipUtils.PacketService().NotifyStatusChange( iStatus, iConnectionStatus ); - SetActive(); - } - - LOG( NORMAL, "SATENGINE: CSatBIPConnectionObserver::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPConnectionObserver::DoCancel -// ----------------------------------------------------------------------------- -// -void CSatBIPConnectionObserver::DoCancel() - { - LOG( NORMAL, "SATENGINE: CSatBIPConnectionObserver::DoCancel calling" ) - - iBipUtils.PacketService().CancelAsyncRequest( EPacketNotifyStatusChange ); - - LOG( NORMAL, "SATENGINE: CSatBIPConnectionObserver::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPConnectionObserver::StartObserver -// Starts to observe connection status -// ----------------------------------------------------------------------------- -// -void CSatBIPConnectionObserver::StartObserver() - { - LOG( NORMAL, "SATENGINE: CSatBIPConnectionObserver::StartObserver calling" ) - - if ( !IsActive() ) - { - LOG( SIMPLE, " Activating observer" ) - iBipUtils.PacketService().NotifyStatusChange( iStatus, iConnectionStatus ); - SetActive(); - } - - LOG( NORMAL, "SATENGINE: CSatBIPConnectionObserver::StartObserver exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPConnectionObserver::Status -// Returns current connection status -// ----------------------------------------------------------------------------- -// -RPacketService::TStatus CSatBIPConnectionObserver::Status() const - { - LOG( NORMAL, "SATENGINE: CSatBIPConnectionObserver::Status \ - calling-exiting" ) - LOG2( NORMAL, " ConnectionStatus: %i", iConnectionStatus ) - return iConnectionStatus; - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/csatbipsubconneventobserver.cpp --- a/satengine/SatServer/Engine/src/csatbipsubconneventobserver.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,126 +0,0 @@ -/* -* Copyright (c) 2007 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: Observer of Subconnection parameters granted event -* -*/ - - -#include -#include "csatbipsubconneventobserver.h" -#include "CSatBIPGPRSDataChannel.h" -#include "SatLog.h" - - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// --------------------------------------------------------------------------- -// -CSatBIPSubConnEventObserver::CSatBIPSubConnEventObserver( - CSatBIPGPRSDataChannel& aDataChannel ) : - CActive( EPriorityNormal ), - iDataChannel( aDataChannel ) - { - LOG( NORMAL, "SATENGINE: CSatBIPSubConnEventObserver::\ - CSatBIPSubConnEventObserver calling" ) - CActiveScheduler::Add( this ); - - iEventFilter.iEventGroupUid = KSubConnGenericEventsImplUid; - iEventFilter.iEventMask = - KSubConGenericEventParamsRejected | KSubConGenericEventParamsGranted; - - LOG( NORMAL, "SATENGINE: CSatBIPSubConnObserver::\ - CSatBIPSubConnEventObserver exiting" ) - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CSatBIPSubConnEventObserver::~CSatBIPSubConnEventObserver() - { - LOG( SIMPLE, - "SATENGINE: CSatBIPSubConnEventObserver::~CSatBIPSubConnEventObserver \ - calling" ) - Cancel(); - LOG( SIMPLE, - "SATENGINE: CSatBIPSubConnEventObserver::~CSatBIPSubConnEventObserver \ - exiting" ) - } - -// --------------------------------------------------------------------------- -// Starts to observe connection status -// --------------------------------------------------------------------------- -// -void CSatBIPSubConnEventObserver::StartObservSubConnEvent() - { - LOG( NORMAL, - "SATENGINE: CSatBIPSubConnEventObserver::StartObservSubConnEvent\ - calling" ) - - if ( !IsActive() ) - { - LOG( SIMPLE, " Activating observer" ) - iDataChannel.SubConnection().EventNotification( - iEventBuffer, &iEventFilter, 1, iStatus ); - SetActive(); - } - - LOG( NORMAL, - "SATENGINE: CSatBIPSubConnEventObserver::StartObservSubConnEvent\ - exiting" ) - } - -// --------------------------------------------------------------------------- -// From base class -// RunL -// --------------------------------------------------------------------------- -// -void CSatBIPSubConnEventObserver::RunL() - { - LOG( NORMAL, "SATENGINE: CSatBIPSubConnEventObserver::RunL calling" ) - - const TInt errStatus( iStatus.Int() ); - LOG2( SIMPLE, " RunL (%i)", errStatus ) - if ( KErrNone == errStatus ) - { - iDataChannel.GrantedEventReceivedL( iEventBuffer ); - } - else - { - LOG( NORMAL, - "SATENGINE: CSatBIPSubConnEventObserver::RunL Leave with err" ) - User::LeaveIfError( errStatus ); - } - - LOG( NORMAL, "SATENGINE: CSatBIPSubConnEventObserver::RunL exiting" ) - } - -// --------------------------------------------------------------------------- -// From base class -// DoCancel -// --------------------------------------------------------------------------- -// -void CSatBIPSubConnEventObserver::DoCancel() - { - LOG( NORMAL, "SATENGINE: CSatBIPSubConnEventObserver::DoCancel calling" ) - - iDataChannel.SubConnection().CancelEventNotification(); - - LOG( NORMAL, "SATENGINE: CSatBIPSubConnEventObserver::DoCancel exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/csatmediatoreventprovider.cpp --- a/satengine/SatServer/Engine/src/csatmediatoreventprovider.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,216 +0,0 @@ -/* -* Copyright (c) 2005-2010 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: Provides events to mediator event consumer. -* -*/ - -#include -#include -#include -#include -#include - -#include "SATPrivateCRKeys.h" -#include "csatmediatoreventprovider.h" -#include "SatLog.h" - -using namespace MediatorService; - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatMediatorEventProvider::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatMediatorEventProvider* CSatMediatorEventProvider::NewL() - { - LOG( NORMAL, "SATENGINE: CSatMediatorEventProvider::NewL calling" ) - - CSatMediatorEventProvider* self = - new ( ELeave ) CSatMediatorEventProvider(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop(); - - LOG( NORMAL, "SATENGINE: CSatMediatorEventProvider::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatMediatorEventProvider::~CSatMediatorEventProvider -// Destructor. -// ----------------------------------------------------------------------------- -// -CSatMediatorEventProvider::~CSatMediatorEventProvider() - { - LOG( NORMAL, "SATENGINE: CSatMediatorEventProvider::\ - ~CSatMediatorEventProvider calling" ) - - if ( iEventProvider ) - { - iEventProvider->UnregisterEvent( KMediatorSecondaryDisplayDomain, - KCatSAT, - EMsgAnySatCommand ); - delete iEventProvider; - iEventProvider = NULL; - } - - LOG( NORMAL, - "SATENGINE: CSatMediatorEventProvider::\ - ~CSatMediatorEventProvider exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMediatorEventProvider::RaiseSatEvent -// -// ----------------------------------------------------------------------------- -// -TInt CSatMediatorEventProvider::RaiseSatEvent( const TDesC8& aData ) - { - - LOG( NORMAL, "SATENGINE: CSatMediatorEventProvider \ - ::RaiseSatEvent calling" ) - TInt retVal( KErrNone ); - // If SAT Event is registered, raise SAT event - if ( iRegistered ) - { - LOG( NORMAL, "SATENGINE: CSatMediatorEventProvider \ - ::RaiseSatEvent iRegistered true" ) -#ifdef ENABLE_SAT_LOGGING - const TSatCommandPckg* eventPckg = - reinterpret_cast ( aData.Ptr() ); - const TSatCommandData& eventData = - reinterpret_cast ( *eventPckg ); - - LOG2( DETAILED, - "SATENGINE: CSatMediatorEventProvider::RaiseSatEvent: \ - cmdNumber: 0x%2X", eventData.iPCmdNumber ) - LOG2( DETAILED, - "SATENGINE: CSatMediatorEventProvider::RaiseSatEvent: AlphaId: %S", - &eventData.iAlphaId ) - LOG2( DETAILED, - "SATENGINE: CSatMediatorEventProvider::RaiseSatEvent: \ - duration[s]: 0x%2X", eventData.iDuration.iNumOfUnits ) - LOG2( DETAILED, - "SATENGINE: CSatMediatorEventProvider::RaiseSatEvent: IconID: 0x%2X", - eventData.iIconID.iIdentifier ) -#endif - retVal = iEventProvider->RaiseEvent( - KMediatorSecondaryDisplayDomain, - KCatSAT, - EMsgAnySatCommand, - TVersion( KVersionMajor, - KVersionMinor, - KVersionBuild ), - aData ); - } - - LOG2( NORMAL, "SATENGINE: CSatMediatorEventProvider\ - ::RaiseSatEvent exiting, retVal: %d", retVal ) - return retVal; - } - -// ----------------------------------------------------------------------------- -// CSatMediatorEventProvider::CoverUiSupported -// -// ----------------------------------------------------------------------------- -// -TBool CSatMediatorEventProvider::CoverUiSupported() - { - LOG( NORMAL, "SATENGINE: CSatMediatorEventProvider \ - ::CoverUiSupported calling-exiting" ) - return iCoverUiSupported; - } - -// ----------------------------------------------------------------------------- -// CSatMediatorEventProvider::CSatMediatorEventProvider -// C++ default constructor can NOT contain any code, that might leave. -// ----------------------------------------------------------------------------- -// -CSatMediatorEventProvider::CSatMediatorEventProvider() : - iRegistered( EFalse ), - iCoverUiSupported( EFalse ), - iEventProvider( NULL ) - { - LOG( NORMAL, - "SATENGINE: CSatMediatorEventProvider::CSatMediatorEventProvider \ - calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMediatorEventProvider::ConstructL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -void CSatMediatorEventProvider::ConstructL() - { - LOG( NORMAL, "SATENGINE: CSatMediatorEventProvider::ConstructL calling" ) - - // Store Cover UI supported information - CUiSupportedL(); - - // If Cover UI is supported, register SAT Event - if ( iCoverUiSupported ) - { - LOG( NORMAL, "SATENGINE: CSatMediatorEventProvider::ConstructL \ - iCoverUiSupported true" ) - iEventProvider = CMediatorEventProvider::NewL(); - - User::LeaveIfError( iEventProvider->RegisterEvent( - KMediatorSecondaryDisplayDomain, - KCatSAT, - EMsgAnySatCommand, - TVersion( KVersionMajor, KVersionMinor, KVersionBuild ), - TCapabilitySet( ECapabilitySwEvent ) ) ); - - iRegistered = ETrue; - } - - LOG( NORMAL, "SATENGINE: CSatMediatorEventProvider::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMediatorEventProvider::CUiSupportedL -// -// ----------------------------------------------------------------------------- -// -void CSatMediatorEventProvider::CUiSupportedL() - { - LOG( NORMAL, - "SATENGINE: CSatMediatorEventProvider::CoverUiSupported calling" ) - - TBool coverui( EFalse ); - - // Check if Cover UI presents from Feature Manager - FeatureManager::InitializeLibL(); - coverui = FeatureManager::FeatureSupported( KFeatureIdCoverDisplay ); - FeatureManager::UnInitializeLib(); - - // Check SAT internal flag for Cover UI - TInt satCoverUi( 0 ); - CRepository* repository = CRepository::NewL( KCRUidSatServer ); - repository->StartTransaction( CRepository::EReadTransaction ); - repository->Get( KSatSecondaryDisplaySupport, satCoverUi ); - delete repository; - repository = NULL; - - // Store Supported information - iCoverUiSupported = TBool( coverui & satCoverUi ); - LOG2( SIMPLE,"CSatMediatorEventProvider::CUiSupportedL \ - KSatSecondaryDisplaySupport:%d", satCoverUi ) - LOG( NORMAL, - "SATENGINE: CSatMediatorEventProvider::CoverUiSupported exiting" ) - } - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/csatmultimodeapi.cpp --- a/satengine/SatServer/Engine/src/csatmultimodeapi.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,745 +0,0 @@ -/* -* Copyright (c) 2007-2010 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: Encapsule the access to etelmm API in sat -* -*/ - - -#include -#include "csatmultimodeapi.h" -#include "csatsactivewrapper.h" -#include "SatLog.h" - -#ifdef SAT_USE_DUMMY_TSY - _LIT( KSatSDummyTsyModuleName, "DSAT" ); - _LIT( KSatSDummyTsyPhoneName, "DMobile" ); -#endif - -const TInt KLoopMaxTryouts = 5; -const TInt KLoopTimeout = 3000000; - -// ================= MEMBER FUNCTIONS ========================================== - -// ----------------------------------------------------------------------------- -// Class constructor. -// ----------------------------------------------------------------------------- -// -CSatMultiModeApi::CSatMultiModeApi() - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::CSatMultiModeApi calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// Destructor -// ----------------------------------------------------------------------------- -// -CSatMultiModeApi::~CSatMultiModeApi() - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::~CSatMultiModeApi calling" ) - - if ( iCallOpened ) - { - iCall.Close(); - } - - if ( iLineOpened ) - { - iLine.Close(); - } - - if ( iUssdOpened ) - { - iUssd.Close(); - } - - iCustomPhone.Close(); - - iPhone.Close(); - -#ifdef SAT_USE_DUMMY_TSY - iDummyPhone.Close(); -#endif - iTelServer.Close(); - - delete iWrapper; - iWrapper = NULL; - - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::~CSatMultiModeApi calling" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::NewL -// ----------------------------------------------------------------------------- -// -CSatMultiModeApi* CSatMultiModeApi::NewL() - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::NewL calling" ) - - CSatMultiModeApi* self = new( ELeave )CSatMultiModeApi(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::NewL calling" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::Phone -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -RMobilePhone* CSatMultiModeApi::Phone() - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::Phone calling-exiting" ) - return &iPhone; - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::Phone -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -RMobilePhone* CSatMultiModeApi::DummyPhone() - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::Phone calling-exiting" ) -#ifdef SAT_USE_DUMMY_TSY - return &iDummyPhone; -#else - return NULL; -#endif - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::CustomApi -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -RMmCustomAPI* CSatMultiModeApi::CustomApi() - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::CustomApi calling-exiting" ) - return &iCustomPhone; - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::LowerErrorGranularity -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::LowerErrorGranularity() - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::LowerErrorGranularity \ - calling-exiting" ) - iTelServer.SetExtendedErrorGranularity( RTelServer::EErrorBasic ); - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::RaiseErrorGranularity -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::RaiseErrorGranularity() - { - LOG( NORMAL, "SATENGINE: CSatMultiModeApi::RaiseErrorGranularity \ - calling-exiting" ) - iTelServer.SetExtendedErrorGranularity( RTelServer::EErrorExtended ); - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::GetNetworkRegistrationStatus -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::GetNetworkRegistrationStatus( - TRequestStatus& aReqStatus, - RMobilePhone::TMobilePhoneRegistrationStatus& aStatus) - { - LOG( SIMPLE, - "SATENGINE: CSatMultiModeApi::GetNetworkRegistrationStatus calling" ) - - iPhone.GetNetworkRegistrationStatus( aReqStatus, aStatus ); - - LOG( SIMPLE, - "SATENGINE: CSatMultiModeApi::GetNetworkRegistrationStatus exiting" ) - } -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::NotifyNetworkRegistrationStatusChange -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::NotifyNetworkRegistrationStatusChange( - TRequestStatus& aReqStatus, - RMobilePhone::TMobilePhoneRegistrationStatus& aStatus) - { - LOG( SIMPLE, "SATENGINE: \ - CSatMultiModeApi::NotifyNetworkRegistrationStatusChange calling" ) - - iPhone.NotifyNetworkRegistrationStatusChange( aReqStatus, aStatus ); - - LOG( SIMPLE, "SATENGINE: \ - CSatMultiModeApi::NotifyNetworkRegistrationStatusChange exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::GetSubscriberId -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::GetSubscriberId(TRequestStatus& aReqStatus, - RMobilePhone::TMobilePhoneSubscriberId& aId) - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::GetSubscriberId calling" ) - iPhone.GetSubscriberId( aReqStatus, aId ); - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::GetSubscriberId exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::SendDTMFTones -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::SendDTMFTones( TRequestStatus& aReqStatus, - const TDesC& aTones) - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::SendDTMFTones calling" ) - iPhone.SendDTMFTones( aReqStatus, aTones ); - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::SendDTMFTones exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::ContinueDTMFStringSending -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CSatMultiModeApi::ContinueDTMFStringSending( TBool aContinue ) - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::ContinueDTMFStringSending" ) - return iPhone.ContinueDTMFStringSending( aContinue ); - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::DialNoFdnCheck -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::DialNoFdnCheck( TRequestStatus& aStatus, - const TDesC8& aCallParams, const TDesC& aTelNumber) - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::DialNoFdnCheck calling" ) - TInt err = LoadMobileCall(); - LOG2( SIMPLE, "SATENGINE: CSatMultiModeApi::DialNoFdnCheck err %d", err ) - - iCall.DialNoFdnCheck( aStatus, aCallParams, aTelNumber ); - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::DialNoFdnCheck exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::SendNetworkServiceRequestNoFdnCheck -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::SendNetworkServiceRequestNoFdnCheck( - TRequestStatus& aReqStatus, const TDesC& aServiceString) - - { - LOG( SIMPLE, "SATENGINE: \ - CSatMultiModeApi::SendNetworkServiceRequestNoFdnCheck calling" ) - - iPhone.SendNetworkServiceRequestNoFdnCheck( aReqStatus, aServiceString ); - - LOG( SIMPLE, "SATENGINE: \ - CSatMultiModeApi::SendNetworkServiceRequestNoFdnCheck exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::SendMessageNoFdnCheck -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::SendMessageNoFdnCheck( TRequestStatus& aReqStatus, - const TDesC8& aMsgData, const TDesC8& aMsgAttributes ) - { - LOG( SIMPLE, - "SATENGINE: CSatMultiModeApi::SendMessageNoFdnCheck calling" ) - - iUssd.SendMessageNoFdnCheck( aReqStatus, aMsgData, aMsgAttributes ); - - LOG( SIMPLE, - "SATENGINE: CSatMultiModeApi::SendMessageNoFdnCheck exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::CancelAsyncRequest -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::CancelAsyncRequest(TInt aReqToCancel) - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::CancelAsyncRequest calling" ) - iPhone.CancelAsyncRequest( aReqToCancel ); - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::CancelAsyncRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::DialCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::DialCancel() - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::DialCancel calling" ) - iCall.DialCancel(); - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::DialCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::GetCurrentActiveUSimApplication -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::GetCurrentActiveUSimApplication( - TRequestStatus& aReqStatus, RMobilePhone::TAID& aAID ) - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::\ - GetCurrentActiveUSimApplication calling" ) - iPhone.GetCurrentActiveUSimApplication( aReqStatus,aAID ); - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::\ - GetCurrentActiveUSimApplication exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::IsCallIncoming -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool CSatMultiModeApi::IsCallIncoming() - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::IsCallIncoming entering" ) - TInt lines( 0 ); - TBool callIncoming( EFalse ); - - // Enumerate all lines in the phone - TInt err( iPhone.EnumerateLines( lines ) ); - - if ( KErrNone == err ) - { - RPhone::TLineInfo lineInfo; - // Check the lines' status one by one - for( TInt i = 0; ( i < lines ) && !callIncoming; ++i ) - { - err = iPhone.GetLineInfo( i, lineInfo ); - if ( KErrNone == err ) - { - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::IsCallIncoming \ - line status is %d", lineInfo.iStatus ) - if ( ( RCall::EStatusDialling == lineInfo.iStatus ) || - ( RCall::EStatusRinging == lineInfo.iStatus ) ) - { - // There is an incoming call - callIncoming = ETrue; - } - } - else - { - // Error happened when getting line info - // We currently do nothing but skip the error line and log it - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::IsCallIncoming \ - getting line status error %d", err ) - } - } - } - else - { - // Enumerate lines error - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::IsCallIncoming \ - enumerate lines error %d", err ) - } - - LOG2( SIMPLE, "SATENGINE: CSatMultiModeApi::IsCallIncoming exiting %d", - callIncoming ) - return callIncoming; - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::NotifyMobileCallStatusChange -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::NotifyMobileCallStatusChange ( - TRequestStatus& aReqStatus, RMobileCall::TMobileCallStatus& aStatus ) - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::NotifyMobileCallStatusChange \ - calling" ) - iCall.NotifyMobileCallStatusChange( aReqStatus, aStatus ); - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::NotifyMobileCallStatusChange \ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::NotifyCallStatusChangeCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::NotifyCallStatusChangeCancel() - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::DialCancel calling" ) - iCall.NotifyStatusChangeCancel(); - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::DialCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::NotifyMobileCallStatusChange -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::TerminateActiveCalls(TRequestStatus& aReqStatus) - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::TerminateAllCalls calling" ) - - iPhone.TerminateActiveCalls( aReqStatus ); - - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::TerminateAllCalls exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::GetMobileCallInfo -// ----------------------------------------------------------------------------- -// -TInt CSatMultiModeApi::GetMobileCallInfo(TDes8& aCallInfo) - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::GetMobileCallInfo calling" ) - TInt ret = iCall.GetMobileCallInfo( aCallInfo ); - LOG2( SIMPLE, "SATENGINE: CSatMultiModeApi::GetMobileCallInfo exiting %d", - ret ) - return ret; - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::GetMobileCallInfo -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::DialEmergencyCall(TRequestStatus& aReqStatus, - const TDesC& aNumber) - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::DialEmergencyCall calling" ) - TInt err = LoadMobileCall(); - LOG2( SIMPLE, "SATENGINE: CSatMultiModeApi::DialEmergencyCall err %d", err ) - iCall.DialEmergencyCall( aReqStatus, aNumber ); - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::DialEmergencyCall exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::ConstructL -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::ConstructL() - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::ConstructL calling" ) - - // Connect to ETel Server - ConnectETelServerL(); -#if !defined ( __WINSCW__ ) - //On the emulator the load will leave. We can not use the functionaly - //on enmulator - LoadUssdMessagingL(); -#endif - - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::ConnectETelServerL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::ConnectETelServerL() - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::ConnectETelServerL calling" ) - - TInt numberOfTries( 1 ); // Indicates loop tryouts - TBool loopSuccess( EFalse ); // Loop stopper, if this is ETrue - TInt error = KErrNone; // Error that is Leave'd - - if ( !iWrapper ) - { - LOG( NORMAL, "SATENGINE: CSatMultiModeApi::ConnectETelServerL \ - iWrapper false" ) - iWrapper = new ( ELeave ) CSatSActiveWrapper(); - } - - // First loop is for connecting to RTelServer. Loop is done until - // connection returns KErrNone or when max loop try outs has been - // reached - while ( !loopSuccess && numberOfTries <= KLoopMaxTryouts ) - { - error = iTelServer.Connect(); - if ( KErrNone == error ) - { - LOG( NORMAL, "SATENGINE: \ - CSatMultiModeApi::ConnectETelServerL KErrNone == error" ) - loopSuccess = ETrue; - } - else - { - numberOfTries++; - iWrapper->After( KLoopTimeout ); - } - } - - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::ConnectETelServerL \ - numberOfTries: %i", numberOfTries ) - - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::ConnectETelServerL \ - error: %i", error ) - - // Check the error status - User::LeaveIfError( error ); - - // Now load phone module - LoadPhoneModuleL( iPhone, KMmTsyModuleName, KMmTsyPhoneName ); - -#ifdef SAT_USE_DUMMY_TSY - // Also load dummy tsy - LoadPhoneModuleL( iDummyPhone, KSatSDummyTsyModuleName, KSatSDummyTsyPhoneName ); -#endif // SAT_USE_DUMMY_TSY - - User::LeaveIfError( iCustomPhone.Open( iPhone ) ); - - // No need for wrapper anymore - delete iWrapper; - iWrapper = NULL; - - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::ConnectETelServerL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::LoadPhoneModuleL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::LoadPhoneModuleL( RMobilePhone& aPhone, - const TDesC& aModuleName, const TDesC& aPhoneName ) - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::LoadPhoneModuleL calling" ) - - TInt numberOfTries( 1 ); // Indicates loop tryouts - TBool loopSuccess( EFalse ); // Loop stopper, if this is ETrue - TInt error = KErrNone; // Error that is Leave'd - - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::LoadPhoneModuleL \ - ModuleName: %S", &aModuleName ) - - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::LoadPhoneModuleL \ - PhoneName: %S", &aPhoneName ) - - // We wait here until the phone module gets loaded. - // Load the correct phone module depending on the TSY being used. - while ( !loopSuccess && numberOfTries <= KLoopMaxTryouts ) - { - error = iTelServer.LoadPhoneModule( aModuleName ); - if ( KErrNone == error ) - { - loopSuccess = ETrue; - } - else - { - numberOfTries++; - iWrapper->After( KLoopTimeout ); - } - } - - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::LoadPhoneModuleL \ - numberOfTries: %i", numberOfTries ) - - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::LoadPhoneModuleL \ - error: %i", error ) - - // Check the error status - User::LeaveIfError( error ); - - // This function retrieves the total number of phones supported by all - // the currently loaded ETel (TSY) modules. - TInt phoneCount( 0 ); - User::LeaveIfError( iTelServer.EnumeratePhones( phoneCount ) ); - - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::LoadPhoneModuleL \ - phoneCount: %i", phoneCount ) - - // This function retrieves information associated with the specified phone - RTelServer::TPhoneInfo phoneInfo; - while ( phoneCount-- ) - { - User::LeaveIfError( iTelServer.GetPhoneInfo( phoneCount, - phoneInfo ) ); - - // Check that do we have the right phone - if ( phoneInfo.iName == aPhoneName ) - { - LOG( NORMAL, "SATENGINE: CSatMultiModeApi::LoadPhoneModuleL \ - phoneInfo.iName == aPhoneName" ) - phoneCount = 0; - } - } - - if ( phoneInfo.iName != aPhoneName ) - { - // Did not found correct phone info -> Leave - LOG( SIMPLE, - "SATENGINE: CSatMultiModeApi::LoadPhoneModuleL Not found" ) - User::Leave( KErrNotFound ); - } - - // Reset the counter and loop status for the next loop. - numberOfTries = 1; - loopSuccess = EFalse; - - // We wait here until the phone gets opened. - // Open the correct phone depending on the TSY being used. - while ( !loopSuccess && ( numberOfTries <= KLoopMaxTryouts ) ) - { - error = aPhone.Open( iTelServer, aPhoneName ); - - if ( KErrNone == error ) - { - LOG( NORMAL, "SATENGINE: \ - CSatMultiModeApi::LoadPhoneModuleL KErrNone == error" ) - loopSuccess = ETrue; - } - else - { - numberOfTries++; - iWrapper->After( KLoopTimeout ); - } - } - if ( !loopSuccess ) - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::LoadPhoneModuleL\ - phone open failed" ); - } - - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::LoadPhoneModuleL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::LoadMobileCall -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CSatMultiModeApi::LoadMobileCall() - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::LoadMobileCallL calling" ) - - if ( iCallOpened ) - { - iCall.Close(); - } - - if ( iLineOpened ) - { - iLine.Close(); - } - - TInt numberOfTries( 1 ); // Indicates loop tryouts - TBool loopSuccess( EFalse ); // Loop stopper, if this is ETrue - TInt error = KErrNone; // Error that is Leave'd - - while ( !loopSuccess && numberOfTries <= KLoopMaxTryouts ) - { - error = iLine.Open( iPhone, KMmTsyVoice1LineName ); - if ( KErrNone == error ) - { - loopSuccess = ETrue; - iLineOpened = ETrue; - } - else - { - numberOfTries++; - iWrapper->After( KLoopTimeout ); - } - } - - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::LoadMobileCallL \ - iLine numberOfTries: %i", numberOfTries ) - - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::LoadMobileCallL \ - iLine error: %i", error ) - - numberOfTries = 1; - loopSuccess = EFalse; - - while ( iLineOpened &&!loopSuccess && numberOfTries <= KLoopMaxTryouts ) - { - error = iCall.OpenNewCall( iLine ); - if ( KErrNone == error ) - { - loopSuccess = ETrue; - iCallOpened = ETrue; - } - else - { - numberOfTries++; - iWrapper->After( KLoopTimeout ); - } - } - - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::LoadMobileCallL \ - iCall numberOfTries: %i", numberOfTries ) - - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::LoadMobileCallL \ - iCall error: %i", error ) - - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::LoadMobileCallL exiting" ) - return error; - } - -// ----------------------------------------------------------------------------- -// CSatMultiModeApi::LoadMobileCallL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatMultiModeApi::LoadUssdMessagingL() - - { - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::LoadUssdMessagingL calling" ) - - TInt numberOfTries( 1 ); // Indicates loop tryouts - TBool loopSuccess( EFalse ); // Loop stopper, if this is ETrue - TInt error = KErrNone; // Error that is Leave'd - - while ( !loopSuccess && numberOfTries <= KLoopMaxTryouts ) - { - error = iUssd.Open( iPhone ); - if ( KErrNone == error ) - { - loopSuccess = ETrue; - iUssdOpened = ETrue; - } - else - { - numberOfTries++; - iWrapper->After( KLoopTimeout ); - } - } - - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::LoadUssdMessagingL \ - iUssd numberOfTries: %i", numberOfTries ) - - LOG2( NORMAL, "SATENGINE: CSatMultiModeApi::LoadUssdMessagingL \ - iUssd error: %i", error ) - - User::LeaveIfError( error ); - - LOG( SIMPLE, "SATENGINE: CSatMultiModeApi::LoadUssdMessagingL exiting" ) - } - - -//End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/csatprofilechangeobserver.cpp --- a/satengine/SatServer/Engine/src/csatprofilechangeobserver.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ -/* -* Copyright (c) 2007 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: Observes Profile state changes. -* -*/ - - -// INCLUDE FILES -#include "TSatSystemStateFactory.h" -#include "MSatSystemStateChangeNotifier.h" -#include "MSatUtils.h" -#include "csatprofilechangeobserver.h" -#include "SatLog.h" -#include "CSatSUiClientHandler.h" - - -// CONSTANTS -const TInt KSatActiveProfileOffline = 5; // value from ProfileEngine - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatProfileChangeObserver::CSatProfileChangeObserver -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatProfileChangeObserver::CSatProfileChangeObserver( - MSatUtils& aUtils ) : - iUtils( aUtils ) - { - } - -// ----------------------------------------------------------------------------- -// CSatProfileChangeObserver::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatProfileChangeObserver* CSatProfileChangeObserver::NewL( - MSatUtils& aUtils ) - { - LOG( SIMPLE, "SATENGINE: CSatProfileChangeObserver::NewL calling" ) - - CSatProfileChangeObserver* self = - new ( ELeave ) CSatProfileChangeObserver( aUtils ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATENGINE: CSatProfileChangeObserver::NewL exiting" ) - return self; - } - -// Destructor -CSatProfileChangeObserver::~CSatProfileChangeObserver() - { - LOG( SIMPLE, - "SATENGINE: CSatProfileChangeObserver::~CSatProfileChangeObserver \ - calling" ) - - if ( iStateNotifier ) - { - iStateNotifier->CancelNotify(); - delete iStateNotifier; - iStateNotifier = NULL; - } - - LOG( SIMPLE, - "SATENGINE: CSatProfileChangeObserver::~CSatProfileChangeObserver \ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatProfileChangeObserver::ConstructL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -void CSatProfileChangeObserver::ConstructL() - { - LOG( SIMPLE, "SATENGINE: CSatProfileChangeObserver::ConstructL calling" ) - - iStateNotifier = TSatSystemStateFactory::CreateProfileChangeNotifierL( *this ); - // Start observer immediately - iStateNotifier->NotifyChangeL(); - - // iPreviousProfile must set to -1 because values 0-49 - // are reserved for different profiles. - iPreviousProfile = -1; - - LOG( SIMPLE, "SATENGINE: CSatSAPChangeObserver::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatProfileChangeObserver::StateChanged -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -void CSatProfileChangeObserver::StateChanged( const TInt aValue ) - { - LOG2( SIMPLE, "SATENGINE: CSatProfileChangeObserver::StateChanged calling \ - with value %d", aValue ) - - // If profile is off-line send removing event - if ( KSatActiveProfileOffline == aValue ) - { - LOG( SIMPLE, "SATENGINE: Off-line" ) - // Off-line state activated. - // Notify listeners about SAT UI icon removing - iUtils.NotifyEvent( MSatUtils::ERemoveSatUiCalled ); - } - - // Send event if previous state was offline. - // The event will not be sent in following case: Phone is started - // in offline mode and profile is changed to online. Proactive - // SetupMenu command is received from SIM card not before phone is - // in online mode. iPreviousProfile is -1 when StateChanged is called - // first time. - else if ( ( KSatActiveProfileOffline != aValue ) && - ( KSatActiveProfileOffline == iPreviousProfile ) ) - { - LOG( SIMPLE, "SATENGINE: !Off-line" ) - // Notify listeners about SAT UI icon adding - iUtils.NotifyEvent( MSatUtils::EAddSatUiCalled ); - } - - else - { - // meaningless else. Only for Lint - } - - iPreviousProfile = aValue; - - LOG( SIMPLE, "SATENGINE: CSatProfileChangeObserver::StateChanged exiting" ) - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/csatsactivewrapper.cpp --- a/satengine/SatServer/Engine/src/csatsactivewrapper.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,205 +0,0 @@ -/* -* Copyright (c) 2002-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: Active object wrapper for SAT Server -* -*/ - - -#include "csatsactivewrapper.h" -#include "SatLog.h" - -const TInt KShortWait = 200; // 200 microseconds -const TInt KWaitTimes = 5; // Number of retries - -// ================= MEMBER FUNCTIONS ========================================== - -// Class constructor. -CSatSActiveWrapper::CSatSActiveWrapper() : - CActive( EPriorityStandard ) - { - LOG( SIMPLE, "SATENGINE: CSatSActiveWrapper::CSatSActiveWrapper \ - calling-exiting" ) - CActiveScheduler::Add( this ); - } - -// Destructor -CSatSActiveWrapper::~CSatSActiveWrapper() - { - LOG( SIMPLE, "SATENGINE: CSatSActiveWrapper::~CSatSActiveWrapper calling" ) - - if ( iTimer ) - { - iTimer->Cancel(); - delete iTimer; - } - - LOG( SIMPLE, "SATENGINE: CSatSActiveWrapper::~CSatSActiveWrapper exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSActiveWrapper::RequestStatus -// ----------------------------------------------------------------------------- -// -TRequestStatus& CSatSActiveWrapper::RequestStatus() - { - LOG( DETAILED, "SATENGINE: CSatSActiveWrapper::RequestStatus calling" ) - - TInt retries( 0 ); - while ( IsActive() && ( retries++ < KWaitTimes ) ) - { - // If this wrapper is already active, wait little bit - After( KShortWait ); - } - LOG2( DETAILED, "SATENGINE: CSatSActiveWrapper::RequestStatus retries: %d", - retries ) - // Double check. If still active, cancel - if ( IsActive() ) - { - LOG( SIMPLE, "SATENGINE: CSatSActiveWrapper::RequestStatus active" ) - CancelWrapper(); - } - - LOG( DETAILED, "SATENGINE: CSatSActiveWrapper::RequestStatus exiting" ) - return iStatus; - } -// ----------------------------------------------------------------------------- -// CSatSActiveWrapper::SetActiveAndWait -// ----------------------------------------------------------------------------- -// -TInt CSatSActiveWrapper::SetActiveAndWait() - { - LOG( DETAILED, "SATENGINE: CSatSActiveWrapper::SetActiveAndWait calling" ) - - TInt returnValue( KErrInUse ); - if ( !IsActive() && !iWait.IsStarted() ) - { - LOG( DETAILED, - "SATENGINE: CSatSActiveWrapper::SetActiveAndWait setActiveAndWait" ) - SetActive(); - iWait.Start(); // Blocks until request is complete or cancelled - returnValue = iStatus.Int(); - } - - LOG( DETAILED, "SATENGINE: CSatSActiveWrapper::SetActiveAndWait exiting" ) - return returnValue; - } - -// ----------------------------------------------------------------------------- -// CSatSActiveWrapper::After -// ----------------------------------------------------------------------------- -void CSatSActiveWrapper::After( - const TTimeIntervalMicroSeconds32& aDelay, - const TTimeIntervalMicroSeconds32& aInterval ) - { - LOG( SIMPLE, "SATENGINE: CSatSActiveWrapper::After calling" ) - - if ( !iAfterWait.IsStarted() ) - { - LOG( SIMPLE, "SATENGINE: CSatSActiveWrapper::After start iAfterWait" ) - TRAP_IGNORE( ( iTimer = CPeriodic::NewL( EPriorityStandard ) ) ) - iTimer->Start( aDelay, aInterval, TCallBack( DelayCallBack, this ) ); - iAfterWait.Start(); - - delete iTimer; - iTimer = NULL; - } - - LOG( SIMPLE, "SATENGINE: CSatSActiveWrapper::After exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSActiveWrapper::DelayCallBack -// Timer call back function -// ----------------------------------------------------------------------------- -TInt CSatSActiveWrapper::DelayCallBack( TAny* aPtr ) - { - LOG( SIMPLE, "SATENGINE: CSatSActiveWrapper::DelayCallBack calling" ) - CSatSActiveWrapper* ptrThis = static_cast( aPtr ); - if ( ptrThis && ( ptrThis->iAfterWait.IsStarted() ) ) - { - LOG( SIMPLE, "SATENGINE: CSatSActiveWrapper::DelayCallBack stop \ - iAfterWait" ) - ptrThis->iAfterWait.AsyncStop(); - } - LOG( SIMPLE, "SATENGINE: CSatSActiveWrapper::DelayCallBack exiting" ) - return ( EFalse ); - } - -// ----------------------------------------------------------------------------- -// CSatSActiveWrapper::AddSubSessionL -// ----------------------------------------------------------------------------- -void CSatSActiveWrapper::CancelWrapper() - { - LOG( SIMPLE, "SATENGINE: CSatSActiveWrapper::CancelWrapper calling" ) - - // If pending for request, cancel active - if ( IsActive() ) - { - LOG( SIMPLE, - "SATENGINE: CSatSActiveWrapper::CancelWrapper cancel iWait" ) - // Calls DoCancel which cancels iWait - Cancel(); - } - else if ( iAfterWait.IsStarted() ) - { - LOG( SIMPLE, - "SATENGINE: CSatSActiveWrapper::CancelWrapper cancel timer" ) - // Cancels timer - iAfterWait.AsyncStop(); - } - else - { - LOG( SIMPLE, - "SATENGINE: CSatSActiveWrapper::CancelWrapper Wrapper not active" ) - } - - LOG( SIMPLE, "SATENGINE: CSatSActiveWrapper::CancelWrapper exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSActiveWrapper::Release -// ----------------------------------------------------------------------------- -void CSatSActiveWrapper::Release() - { - LOG( SIMPLE, "SATENGINE: CSatSActiveWrapper::Release calling-exiting" ) - delete this; - } - -// ----------------------------------------------------------------------------- -// CSatSActiveWrapper::RunL -// Synchronous request complete -// ----------------------------------------------------------------------------- -// -void CSatSActiveWrapper::RunL() - { - LOG( DETAILED, "SATENGINE: CSatSActiveWrapper::RunL calling" ) - - iWait.AsyncStop(); - - LOG( DETAILED, "SATENGINE: CSatSActiveWrapper::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSActiveWrapper::DoCancel -// Synchronous request complete -// ----------------------------------------------------------------------------- -// -void CSatSActiveWrapper::DoCancel() - { - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::DoCancel calling" ) - - iWait.AsyncStop(); - - LOG( SIMPLE, "SATENGINE: CSatBIPUtils::DoCancel exiting" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/Engine/src/std.cpp --- a/satengine/SatServer/Engine/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include "SatServerFactory.h" -#include "CSatSServer.h" -#include "SatLog.h" - -// ========================== OTHER EXPORTED FUNCTIONS ========================= - -// ----------------------------------------------------------------------------- -// Factory method for CSatSServer -// ----------------------------------------------------------------------------- -EXPORT_C CSatSServer* CreateSatServerL() - { - LOG( SIMPLE, "SATENGINE: CreateSatServerL calling-exiting" ) - return CSatSServer::NewL(); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/BWINS/SatEventMonitorsU.DEF --- a/satengine/SatServer/EventMonitors/BWINS/SatEventMonitorsU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,6 +0,0 @@ -EXPORTS - ?CancelMonitor@CSatEventMonitorHandler@@UAEXXZ @ 1 NONAME ; void CSatEventMonitorHandler::CancelMonitor(void) - ?CreateEventMonitorsL@TSatEventMonitorFactory@@SAPAV?$CArrayPtrFlat@VMSatEventMonitor@@@@AAVMSatEventMonitorUtils@@@Z @ 2 NONAME ; class CArrayPtrFlat * TSatEventMonitorFactory::CreateEventMonitorsL(class MSatEventMonitorUtils &) - ?UpdateMonitor@CSatEventMonitorHandler@@UAEHI@Z @ 3 NONAME ; int CSatEventMonitorHandler::UpdateMonitor(unsigned int) - ?IsMonitoringEvent@CSatEventMonitorHandler@@UAEHH@Z @ 4 NONAME ; int CSatEventMonitorHandler::IsMonitoringEvent(int) - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/EABI/SatEventMonitorsU.DEF --- a/satengine/SatServer/EventMonitors/EABI/SatEventMonitorsU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,29 +0,0 @@ -EXPORTS - _ZN23CSatEventMonitorHandler13CancelMonitorEv @ 1 NONAME - _ZN23CSatEventMonitorHandler13UpdateMonitorEj @ 2 NONAME - _ZN23TSatEventMonitorFactory20CreateEventMonitorsLER21MSatEventMonitorUtils @ 3 NONAME - _ZTI21CSatIdleScreenMonitor @ 4 NONAME ; ## - _ZTI21CSatSimRemovalMonitor @ 5 NONAME ; ## - _ZTI23CSatEventMonitorHandler @ 6 NONAME ; ## - _ZTI23CSatUserActivityMonitor @ 7 NONAME ; ## - _ZTI24CSatBrowserThreadMonitor @ 8 NONAME ; ## - _ZTI27CSatBIPChannelStatusMonitor @ 9 NONAME ; ## - _ZTI27CSatBIPDataAvailableMonitor @ 10 NONAME ; ## - _ZTI28CSatLanguageSelectionMonitor @ 11 NONAME ; ## - _ZTI29CSatBrowserTerminationMonitor @ 12 NONAME ; ## - _ZTV21CSatIdleScreenMonitor @ 13 NONAME ; ## - _ZTV21CSatSimRemovalMonitor @ 14 NONAME ; ## - _ZTV23CSatEventMonitorHandler @ 15 NONAME ; ## - _ZTV23CSatUserActivityMonitor @ 16 NONAME ; ## - _ZTV24CSatBrowserThreadMonitor @ 17 NONAME ; ## - _ZTV27CSatBIPChannelStatusMonitor @ 18 NONAME ; ## - _ZTV27CSatBIPDataAvailableMonitor @ 19 NONAME ; ## - _ZTV28CSatLanguageSelectionMonitor @ 20 NONAME ; ## - _ZTV29CSatBrowserTerminationMonitor @ 21 NONAME ; ## - _ZTI20CSatBrowserWSMonitor @ 22 NONAME ; ## - _ZTV20CSatBrowserWSMonitor @ 23 NONAME ; ## - _ZThn4_N23CSatEventMonitorHandler13CancelMonitorEv @ 24 NONAME ; ## - _ZThn4_N23CSatEventMonitorHandler13UpdateMonitorEj @ 25 NONAME ; ## - _ZN23CSatEventMonitorHandler17IsMonitoringEventEi @ 26 NONAME - _ZThn4_N23CSatEventMonitorHandler17IsMonitoringEventEi @ 27 NONAME ; ## - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/group/EventMonitors.mmp --- a/satengine/SatServer/EventMonitors/group/EventMonitors.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,59 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Project definition file for project EventMonitors -* -*/ - - -#include -#include -#include "../../inc/SatMacroes.h" - -TARGET SatEventMonitors.dll -TARGETTYPE dll -UID 0x1000008d 0x101F79FD - -CAPABILITY CAP_GENERAL_DLL -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE TSatEventMonitorFactory.cpp -SOURCE CSatEventMonitorHandler.cpp -SOURCE CSatSimRemovalMonitor.cpp -SOURCE CSatUserActivityMonitor.cpp -SOURCE CSatIdleScreenMonitor.cpp -SOURCE CSatBrowserTerminationMonitor.cpp -SOURCE csatbrowserwsmonitor.cpp -SOURCE CSatLanguageSelectionMonitor.cpp -SOURCE CSatBrowserThreadMonitor.cpp -SOURCE CSatBIPDataAvailableMonitor.cpp -SOURCE CSatBIPChannelStatusMonitor.cpp - -USERINCLUDE ../inc -USERINCLUDE ../../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE ../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY SatSystemState.lib -LIBRARY ws32.lib // For RWsSession -LIBRARY apgrfx.lib // For TApaTask -LIBRARY activitymanager.lib // For CActivityManager - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/group/bld.inf --- a/satengine/SatServer/EventMonitors/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,27 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project EventMonitors -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS - -PRJ_MMPFILES -EventMonitors.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/inc/CSatBIPChannelStatusMonitor.h --- a/satengine/SatServer/EventMonitors/inc/CSatBIPChannelStatusMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Monitor of channel status events. -* -*/ - - -#ifndef CSATBIPCHANNELSTATUSMONITOR_H -#define CSATBIPCHANNELSTATUSMONITOR_H - -// INCLUDES -#include "CSatEventMonitorHandler.h" -#include "MSatBIPChannelStatusObserver.h" - -// FORWARD DECLARATION -class MSatBIPEventNotifier; - -// CLASS DECLARATION - -/** -* Monitors ChannelStatus event from BIP Data channels -* -* @lib EventMonitors.lib -* @since Series 60 3.0 -*/ -class CSatBIPChannelStatusMonitor : public CSatEventMonitorHandler, - public MSatBIPChannelStatusObserver - { - public: // Constructor and destructor - - /** - * Two-phased constructor. - * @param aUtils Interface for Event monitor utils - */ - static CSatBIPChannelStatusMonitor* NewL( - MSatEventMonitorUtils& aUtils ); - - /** - * Destructor. - */ - virtual ~CSatBIPChannelStatusMonitor(); - - public: // From base class - - /** - * From CSatEventMonitorHandler Cancels event monitoring - */ - void DoCancelMonitor(); - - /** - * From MSatBIPChannelStatusObserver Notification of an event. - * @param aChannelId ID of the channel that started this event. - * @param aStatus Status that caused this event. - */ - void ChannelStatus( const TInt aChannelId, const TInt aStatus ); - - protected: // New functions - - /** - * From CSatEventMonitorHandler Starts event monitoring - * @return Error code indicating the status of starting the monitor - */ - TInt StartMonitor(); - - private: - - /** - * C++ default constructor. - * @param aUtils Interface for Event monitor utils - */ - CSatBIPChannelStatusMonitor( MSatEventMonitorUtils& aUtils ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // Indicates is this monitor active or not - TBool iIsActive; - - }; - -#endif // CSATBIPCHANNELSTATUSMONITOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/inc/CSatBIPDataAvailableMonitor.h --- a/satengine/SatServer/EventMonitors/inc/CSatBIPDataAvailableMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Monitor of data receiving event. -* -*/ - - -#ifndef CSATBIPDATAAVAILABLEMONITOR_H -#define CSATBIPDATAAVAILABLEMONITOR_H - -// INCLUDES -#include "CSatEventMonitorHandler.h" -#include "MSatBIPDataAvailableObserver.h" - -// FORWARD DECLARATION -class MSatBIPEventNotifier; - -// CLASS DECLARATION - -/** -* Monitors DataAvailable event from BIP Data channels -* -* @lib EventMonitors.lib -* @since Series 60 3.0 -*/ -class CSatBIPDataAvailableMonitor : public CSatEventMonitorHandler, - public MSatBIPDataAvailableObserver - { - public: // Constructor and destructor - - /** - * Two-phased constructor. - * @param aUtils Interface for Event monitor utils - */ - static CSatBIPDataAvailableMonitor* NewL( - MSatEventMonitorUtils& aUtils ); - - /** - * Destructor. - */ - virtual ~CSatBIPDataAvailableMonitor(); - - public: // From base class - - /** - * From CSatEventMonitorHandler Cancels event monitoring - */ - void DoCancelMonitor(); - - /** - * From MSatBIPDataAvailableObserver Notification of an event. - * @param aChannelId ID of the channel where the data is available. - * @param aLength Number of bytes available. - */ - void DataAvailable( const TInt aChannelId, const TInt aLength ); - - protected: // New functions - - /** - * From CSatEventMonitorHandler Starts event monitoring - * @return Error code indicating the status of starting the monitor - */ - TInt StartMonitor(); - - private: - - /** - * C++ default constructor. - * @param aUtils Interface for Event monitor utils - */ - CSatBIPDataAvailableMonitor( MSatEventMonitorUtils& aUtils ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // Indicates is this monitor active or not - TBool iIsActive; - - }; - -#endif // CSATBIPDATAAVAILABLEMONITOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/inc/CSatBrowserTerminationMonitor.h --- a/satengine/SatServer/EventMonitors/inc/CSatBrowserTerminationMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,110 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Monitors browser termination. -* -*/ - - -#ifndef CSATBROWSERTERMINATIONMONITOR_H -#define CSATBROWSERTERMINATIONMONITOR_H - -// INCLUDES -#include -#include "msatbrowserwsobserver.h" -#include "CSatEventMonitorHandler.h" - -// FORWARD DECLARATION -class CSatBrowserWSMonitor; - -// CLASS DECLARATION - -/** -* Monitors browser termination. -* -* @lib EventMonitors.lib -* @since Series 60 3.0 -*/ -class CSatBrowserTerminationMonitor : public MSatBrowserWSObserver, - public CSatEventMonitorHandler - { - public: // Constructor and destructor - - /** - * Two-phased constructor. - * @param aUtils Event monitor utils interface - */ - static CSatBrowserTerminationMonitor* NewL( - MSatEventMonitorUtils& aUtils ); - - /** - * Destructor. - */ - virtual ~CSatBrowserTerminationMonitor(); - - public: // From base class - - /** - * From CSatEventMonitorHandler Cancels event monitoring - */ - void DoCancelMonitor(); - - /** - * This function is called when browser's thread has actually died. - * @param aCause The cause for the browser termination. - */ - void NotifyBrowserTerminated( - const RSat::TBrowserTerminationCause aCause ); - - protected: // From CTimer - - /** - * From CActive. - */ - void RunL(); - - /** - * From CActive, implements the cancel protocol. - */ - void DoCancel(); - - protected: // From CSatEventMonitorHandler - - /** - * From CSatEventMonitorHandler Starts event monitoring - * @return Error code indicating the status of starting the monitor - */ - TInt StartMonitor(); - - private: - - /** - * C++ default constructor. - * @param aUtils Event monitor utils interface - */ - CSatBrowserTerminationMonitor( MSatEventMonitorUtils& aUtils ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // Window session termination monitor. - CSatBrowserWSMonitor* iWSMonitor; - }; - -#endif // CSATBROWSERTERMINATIONMONITOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/inc/CSatBrowserThreadMonitor.h --- a/satengine/SatServer/EventMonitors/inc/CSatBrowserThreadMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,114 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Monitors browser's thread death. -* -*/ - - -#ifndef CSATBROWSERTHREADMONITOR_H -#define CSATBROWSERTHREADMONITOR_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class MSatBrowserThreadObserver; - -// CLASS DECLARATION - -/** -* Monitors the terminating of the browser and informs the observer when -* the browser is terminated. -* -* @lib EventMonitors.lib -* @since Series 60 3.0 -*/ - -class CSatBrowserThreadMonitor : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aThread The thread of the browser. - */ - static CSatBrowserThreadMonitor* NewL( - const RThread& aThread ); - - /** - * Destructor. - */ - virtual ~CSatBrowserThreadMonitor(); - - public: // New functions - - /** - * Starts Browser termination monitor. - * @param aObserver Observer for browser termination. - */ - void StartMonitor( - MSatBrowserThreadObserver* aObserver ); - - /** - * Cancels event monitoring - */ - void DoCancelMonitor(); - - protected: // Functions from base classes - - /** - * From CActive, handles the request completion. - */ - void RunL(); - - /** - * From CActive, implements the cancel protocol. - */ - void DoCancel(); - - private: // Constructors - - /** - * C++ default constructor. - * @param aMonitor Active object for the start of the browser. - * @param aThread The thread of the browser. - */ - CSatBrowserThreadMonitor( - const RThread& aThread ); - - /** - * Fetch application exit cause. - * @return Exit cause. - */ - RSat::TBrowserTerminationCause ExitCause() const; - - private: - - /** - * Starts browser termination monitor. - */ - void Start(); - - private: // Data - - // Active object for starting browser. - MSatBrowserThreadObserver* iObserver; - - // The thread of the browser. - RThread iThread; - }; - -#endif // CSATBROWSERTHREADMONITOR_H - -// End of File \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/inc/CSatEventMonitorHandler.h --- a/satengine/SatServer/EventMonitors/inc/CSatEventMonitorHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Base class for event monitors -* -*/ - - - -#ifndef CSATEVENTMONITORHANDLER_H -#define CSATEVENTMONITORHANDLER_H - -// INCLUDES -#include -#include -#include "MSatEventMonitor.h" - -// FORWARD DECLARATIONS -class MSatEventMonitorUtils; - - -// CLASS DECLARATION - -/** -* Base class for Event monitors. Responsible for -* starting and cancelling event monitoring and to inform -* Event observers of an event occurrence. -* -* @lib EventMonitors.lib -* @since Series 60 3.0 -*/ -class CSatEventMonitorHandler : public CBase, - public MSatEventMonitor - { - public: // Constructor and destructor - - /** - * C++ default constructor. - * @param aUtils Interface for Event monitor utils. - */ - CSatEventMonitorHandler( MSatEventMonitorUtils& aUtils ); - - /** - * Destructor. - */ - virtual ~CSatEventMonitorHandler(); - - public: // From base class - - /** - * From MSatEventMonitor Cancels event monitoring - */ - IMPORT_C void CancelMonitor(); - - /** - * From MSatEventMonitor Updates monitors state. - * This function call starts or cancels monitor - * @param aEvents A list of events to be monitored. If this monitors event - * is not on the list, this monitor is cancelled. - * @return TInt An error code indicating update status - */ - IMPORT_C TInt UpdateMonitor( TUint aEvents ); - - /** - * From MSatEventMonitor Checks is this event monitor monitoring - * particular event. - * @param aEvent Event to check against - * @return ETrue if aEvent is the same event this is monitoring - */ - IMPORT_C TBool IsMonitoringEvent( const TInt aEvent ); - - protected: // New functions - - /** - * Starts event monitoring - * @return An error code indicating monitor start status - */ - virtual TInt StartMonitor() = 0; - - /** - * Cancels event monitoring - */ - virtual void DoCancelMonitor() = 0; - - /** - * Base class constructor - * @param aEvent Monitor ID from the derived event monitor. - */ - void BaseConstructL( MSatEventMonitor::TEvent aEvent ); - - /** - * Passes event information to SatEngine when monitored event occurs. - * @param aIntArg An extra argument. Not all monitors use this. - * @param aSecArg An extra argument. Used if needed. - */ - void EventOccured( - TInt aIntArg = -1, - TInt aSecArg = -1 - ); - - protected: // Data - - // Event container. Link to SatEngine - MSatEventMonitorUtils& iEventUtils; - - private: - - // Derived monitor's event - RSat::TEventList iEvent; - - // Indicates is derived monitor SimRemovalMonitor - TBool iIsSimRemovalMonitor; - - // Indicaties is SimRemovalMonitor active - TBool iSimRemovalMonitorActive; - - }; - -#endif // CSATEVENTMONITORHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/inc/CSatIdleScreenMonitor.h --- a/satengine/SatServer/EventMonitors/inc/CSatIdleScreenMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Monitor of idle screen availability. -* -*/ - - - -#ifndef CSATIDLESCREENMONITOR_H -#define CSATIDLESCREENMONITOR_H - -// INCLUDES -#include "MSatSystemStateObserver.h" -#include "CSatEventMonitorHandler.h" - -// CLASS DECLARATION -class MSatSystemStateChangeNotifier; - -/** -* Monitors idle screen state and informs SAT Engine if idle screen is available -* -* @lib EventMonitors.lib -* @since Series 60 3.0 -*/ -class CSatIdleScreenMonitor : public CSatEventMonitorHandler, - public MSatSystemStateObserver - { - public: // Constructor and destructor - - /** - * Two-phased constructor. - * @param aUtils Interface for Event monitor utils - */ - static CSatIdleScreenMonitor* NewL( - MSatEventMonitorUtils& aUtils ); - - /** - * Destructor. - */ - virtual ~CSatIdleScreenMonitor(); - - public: // From base class - - /** - * From CSatEventMonitorHandler Cancels event monitoring - */ - void DoCancelMonitor(); - - /** - * From MSatSystemStateObserver Notifies that system state changed. - */ - void StateChanged(); - - protected: // New functions - - /** - * From CSatEventMonitorHandler Starts event monitoring - * @return Error code indicating the status of starting the monitor - */ - TInt StartMonitor(); - - private: - - /** - * C++ default constructor. - * @param aUtils Interface for Event monitor utils - */ - CSatIdleScreenMonitor( MSatEventMonitorUtils& aUtils ); - - // ConstructL - void ConstructL(); - - private: // Data - - // P&S change notifier - MSatSystemStateChangeNotifier* iPSNotifier; - - }; - -#endif // CSATIDLESCREENMONITOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/inc/CSatLanguageSelectionMonitor.h --- a/satengine/SatServer/EventMonitors/inc/CSatLanguageSelectionMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Monitor of language selection -* -*/ - - -#ifndef CSATLANGUAGESELECTIONMONITOR_H -#define CSATLANGUAGESELECTIONMONITOR_H - -// INCLUDES -#include "MSatSystemStateObserver.h" -#include "CSatEventMonitorHandler.h" - -// FORWARD DECLARATIONS -class MSatSystemStateChangeNotifier; - -// CLASS DECLARATION - -/** -* Monitors language selection events. -* -* @lib EventMonitors.lib -* @since Series 60 3.0 -*/ -class CSatLanguageSelectionMonitor : public CSatEventMonitorHandler, - public MSatSystemStateObserver - { - public: // Constructor and destructor - - /** - * Two-phased constructor. - * @param aUtils Interface for Event monitor utils - */ - static CSatLanguageSelectionMonitor* NewL( - MSatEventMonitorUtils& aUtils ); - - /** - * Destructor. - */ - virtual ~CSatLanguageSelectionMonitor(); - - public: // From base class - - /** - * From CSatEventMonitorHandler Cancels event monitoring - */ - void DoCancelMonitor(); - - /** - * From MSatSystemStateObserver Notifies that system state changed. - * @param aValue ID of the selected language. - */ - void StateChanged( const TInt aValue ); - - protected: // New functions - - /** - * From CSatEventMonitorHandler Starts event monitoring - * @return Error code indicating the status of starting the monitor - */ - TInt StartMonitor(); - - private: - - /** - * C++ default constructor. - * @param aUtils Interface for Event monitor utils - */ - CSatLanguageSelectionMonitor( MSatEventMonitorUtils& aUtils ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // CentRep change notifier - MSatSystemStateChangeNotifier* iPSNotifier; - - }; - -#endif // CSATLANGUAGESELECTIONMONITOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/inc/CSatSimRemovalMonitor.h --- a/satengine/SatServer/EventMonitors/inc/CSatSimRemovalMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Monitor of SIM card removal -* -*/ - - -#ifndef CSATSIMREMOVALMONITOR_H -#define CSATSIMREMOVALMONITOR_H - -// INCLUDES -#include "MSatSystemStateObserver.h" -#include "CSatEventMonitorHandler.h" - -// FORWARD DECLARATION -class MSatSystemStateChangeNotifier; - -// CLASS DECLARATION - -/** -* Monitors SIM removal state and informs SAT Engine if SIM gets removed. -* -* @lib EventMonitors.lib -* @since Series 60 3.0 -*/ -class CSatSimRemovalMonitor : public CSatEventMonitorHandler, - public MSatSystemStateObserver - { - public: // Constructor and destructor - - /** - * Two-phased constructor. - * @param aUtils Interface for Event monitor utils - */ - static CSatSimRemovalMonitor* NewL( - MSatEventMonitorUtils& aUtils ); - - /** - * Destructor. - */ - virtual ~CSatSimRemovalMonitor(); - - public: // From base class - - /** - * From CSatEventMonitorHandler Cancels event monitoring - */ - void DoCancelMonitor(); - - /** - * From MSatSystemStateObserver Notifies that system state changed. - */ - void StateChanged(); - - protected: // New functions - - /** - * From CSatEventMonitorHandler Starts event monitoring - * @return Error code indicating the status of starting the monitor - */ - TInt StartMonitor(); - - private: - - /** - * C++ default constructor. - * @param aUtils Interface for Event monitor utils - */ - CSatSimRemovalMonitor( MSatEventMonitorUtils& aUtils ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // P&S change notifier - MSatSystemStateChangeNotifier* iPSNotifier; - - }; - -#endif // CSATSIMREMOVALMONITOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/inc/CSatUserActivityMonitor.h --- a/satengine/SatServer/EventMonitors/inc/CSatUserActivityMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Monitor of user activity -* -*/ - - -#ifndef CSATUSERACTIVITYMONITOR_H -#define CSATUSERACTIVITYMONITOR_H - -#include -#include "CSatEventMonitorHandler.h" - -/** -* Monitors user activity and informs SAT Engine if there -* is no user activity in certain time. -* -* @lib EventMonitors.lib -* @since Series 60 3.0 -*/ -class CSatUserActivityMonitor : public CSatEventMonitorHandler - { - public: // Constructor and destructor - - /** - * Two-phased constructor. - * @param aUtils Interface for Event monitor utils - */ - static CSatUserActivityMonitor* NewL( - MSatEventMonitorUtils& aUtils ); - - /** - * Destructor. - */ - virtual ~CSatUserActivityMonitor(); - - public: // From base class - - /** - * From CSatEventMonitorHandler Cancels event monitoring - */ - void DoCancelMonitor(); - - protected: // New functions - - /** - * From CSatEventMonitorHandler Starts event monitoring - * @return Error code indicating the status of starting the monitor - */ - TInt StartMonitor(); - - private: - - /** - * Cancels monitoring of user activity. - */ - void Cancel(); - - /** - * C++ default constructor. - * @param aUtils Interface for Event monitor utils - */ - CSatUserActivityMonitor( MSatEventMonitorUtils& aUtils ); - - // ConstructL - void ConstructL(); - - /** - * Starts activity manager for user actions. - */ - void StartActivityManagerL(); - - /** - * Called when user has been - * passive for a pre-defined period - * @param aPtr Pointer to creator, not currently used - * @return Completing result value - */ - static TInt DispatchUserInactive( TAny* /* aPtr */ ); - - /** - * Called when user does something - * @param aPtr Pointer to creator - * @return Completing result value - */ - static TInt DispatchUserActive( TAny* aPtr ); - - private: // Data - - // Activity manager to follow user activity. - CUserActivityManager* iActivityManager; - // Indicates is this monitor active - TBool iMonitoring; - }; - -#endif // CSATUSERACTIVITYMONITOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/inc/csatbrowserwsmonitor.h --- a/satengine/SatServer/EventMonitors/inc/csatbrowserwsmonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -/* -* Copyright (c) 2002-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: Monitors browser window session termination. -* -*/ - - -#ifndef CSATBROWSERWSMONITOR_H -#define CSATBROWSERWSMONITOR_H - -// INCLUDES -#include -#include "CSatEventMonitorHandler.h" -#include "msatbrowserthreadobserver.h" -#include "msatbrowserwsobserver.h" - -// FORWARD DECLARATION -class CSatBrowserThreadMonitor; -class MSatBrowserWSObserver; - -// CLASS DECLARATION - -/** - * Monitors browser termination. - * - * @lib EventMonitors.lib - * @since Series 60 3.1 - */ -class CSatBrowserWSMonitor : public MSatBrowserThreadObserver, - public CActive - { -public: - - /** - * Two-phased constructor. - */ - static CSatBrowserWSMonitor* NewL(); - - /** - * Destructor. - */ - virtual ~CSatBrowserWSMonitor(); - - /** - * From CSatEventMonitorHandler Starts event monitoring - * @param Browser termination observer. - * @return Error code indicating the status of starting the monitor - */ - TInt StartMonitor( - MSatBrowserWSObserver* aObserver ); - - /** - * This function is called when browser's thread has actually died. - * @param aCause The cause for the browser termination. - */ - void NotifyBrowserTerminated( - const RSat::TBrowserTerminationCause aCause ); - -// From base class CActive - - /** - * From CSatEventMonitorHandler Cancels event monitoring - */ - void DoCancelMonitor(); - -protected: - -// From base class CActive - - /** - * From CActive. - */ - void RunL(); - - /** - * From CActive, implements the cancel protocol. - */ - void DoCancel(); - -private: - - /** - * C++ default constructor. - */ - CSatBrowserWSMonitor(); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - /** - * Start to monitor Browser termination. - */ - void Start(); - - /** - * Creates a window group and hides it from the UI. - */ - void CreateWGL(); - -private: // Data - - /** - * Thread death monitor - */ - CSatBrowserThreadMonitor* iThreadMonitor; - - /** - * Indicates is window group created or not - */ - TBool iWGCreated; - - /** - * Browser termination observer. - */ - MSatBrowserWSObserver* iObserver; - - /** - * Window group - */ - RWindowGroup iWg; - - /** - * Window session - */ - RWsSession iWsSession; - - }; - -#endif // CSATBROWSERWSMONITOR_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/inc/msatbrowserthreadobserver.h --- a/satengine/SatServer/EventMonitors/inc/msatbrowserthreadobserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Observer for browser termination. -* -*/ - - -#ifndef MSATBROWSERTHREADOBSERVER_H -#define MSATBROWSERTHREADOBSERVER_H - -#include - -/** - * Observer for browser termination. - * - * @lib EventMonitors.lib - * @since Series 60 3.1 - */ -class MSatBrowserThreadObserver - { - -public: - - /** - * Two-phased constructor. - * @param aUtils Event monitor utils interface - */ - MSatBrowserThreadObserver() {}; - - /** - * Destructor. - */ - virtual ~MSatBrowserThreadObserver() {}; - - /** - * Notification of browser termination. - * @param aCause The cause for the browser termination. - */ - virtual void NotifyBrowserTerminated( - const RSat::TBrowserTerminationCause aCause ) = 0; - -private: - - /** - * Prohibit copy constructor if not deriving from CBase. - */ - MSatBrowserThreadObserver( const MSatBrowserThreadObserver& ); - - /** - * Prohibit assigment operator if not deriving from CBase. - */ - MSatBrowserThreadObserver& operator=( const MSatBrowserThreadObserver& ); - - }; - -#endif // MSATBROWSERTHREADOBSERVER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/inc/msatbrowserwsobserver.h --- a/satengine/SatServer/EventMonitors/inc/msatbrowserwsobserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,67 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Observer for browser termination. -* -*/ - - -#ifndef MSATBROWSERWSOBSERVER_H -#define MSATBROWSERWSOBSERVER_H - -#include - -/** - * Observer for browser termination. - * - * @lib EventMonitors.lib - * @since Series 60 3.1 - */ -class MSatBrowserWSObserver - { - -public: - - /** - * Two-phased constructor. - * @param aUtils Event monitor utils interface - */ - MSatBrowserWSObserver() {}; - - /** - * Destructor. - */ - virtual ~MSatBrowserWSObserver() {}; - - /** - * This function is called when browser's thread has actually died. - * @param aCause The cause for the browser termination. - */ - virtual void NotifyBrowserTerminated( - const RSat::TBrowserTerminationCause aCause ) = 0; - -private: - - /** - * Prohibit copy constructor if not deriving from CBase. - */ - MSatBrowserWSObserver( const MSatBrowserWSObserver& ); - - /** - * Prohibit assigment operator if not deriving from CBase. - */ - MSatBrowserWSObserver& operator=( const MSatBrowserWSObserver& ); - - }; - -#endif // MSATBROWSERWSOBSERVER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/src/CSatBIPChannelStatusMonitor.cpp --- a/satengine/SatServer/EventMonitors/src/CSatBIPChannelStatusMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,150 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Monitor for Channel status events -* -*/ - - -// INCLUDE FILES -#include "CSatBIPChannelStatusMonitor.h" -#include "MSatEventMonitorUtils.h" -#include "MSatBIPEventNotifier.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== -// ----------------------------------------------------------------------------- -// CSatBIPChannelStatusMonitor::CSatBIPChannelStatusMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatBIPChannelStatusMonitor::CSatBIPChannelStatusMonitor( - MSatEventMonitorUtils& aUtils ) : - CSatEventMonitorHandler( aUtils ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::\ - CSatBIPChannelStatusMonitor calling-exiting" ) - } - -// Destructor -CSatBIPChannelStatusMonitor::~CSatBIPChannelStatusMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::\ - ~CSatBIPChannelStatusMonitor calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPChannelStatusMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatBIPChannelStatusMonitor* CSatBIPChannelStatusMonitor::NewL( - MSatEventMonitorUtils& aUtils ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::NewL calling" ) - - CSatBIPChannelStatusMonitor* self = - new ( ELeave ) CSatBIPChannelStatusMonitor( aUtils ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatBIPChannelStatusMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatBIPChannelStatusMonitor::ConstructL() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::ConstructL calling" ) - - // Create base class and give this monitors event as a parameter - BaseConstructL( MSatEventMonitor::EChannelStatus ); - iIsActive = EFalse; - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPChannelStatusMonitor::DoCancelMonitor -// Cancels monitor. -// ----------------------------------------------------------------------------- -// -void CSatBIPChannelStatusMonitor::DoCancelMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::\ - DoCancelMonitor calling" ) - - if ( iIsActive ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::\ - DoCancelMonitor Canceling monitor" ) - // Call MSatBIPEventNotifier.CancelChannelStatus - iEventUtils.BipNotifier().CancelChannelStatus(); - } - - LOG( SIMPLE, "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::\ - DoCancelMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPChannelStatusMonitor::StartMonitor -// Starts monitor. -// ----------------------------------------------------------------------------- -// -TInt CSatBIPChannelStatusMonitor::StartMonitor() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::StartMonitor calling" ) - - if ( !iIsActive ) - { - LOG( NORMAL, "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::\ - StartMonitor Activating monitor" ) - // Call MSatBIPEventNotifier.NotifyChannelStatus - iEventUtils.BipNotifier().NotifyChannelStatus( this ); - } - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::StartMonitor exiting" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSatBIPChannelStatusMonitor::ChannelStatus -// Called when data is received -// ----------------------------------------------------------------------------- -// -void CSatBIPChannelStatusMonitor::ChannelStatus( - const TInt aChannelId, const TInt aStatus ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::ChannelStatus calling" ) - - // Send BIP Event. - EventOccured( aChannelId, aStatus ); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPChannelStatusMonitor::ChannelStatus exiting" ) - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/src/CSatBIPDataAvailableMonitor.cpp --- a/satengine/SatServer/EventMonitors/src/CSatBIPDataAvailableMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,150 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Monitor for Data available -* -*/ - - -// INCLUDE FILES -#include "CSatBIPDataAvailableMonitor.h" -#include "MSatEventMonitorUtils.h" -#include "MSatBIPEventNotifier.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== -// ----------------------------------------------------------------------------- -// CSatBIPDataAvailableMonitor::CSatBIPDataAvailableMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatBIPDataAvailableMonitor::CSatBIPDataAvailableMonitor( - MSatEventMonitorUtils& aUtils ) : - CSatEventMonitorHandler( aUtils ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::\ - CSatBIPDataAvailableMonitor calling-exiting" ) - } - -// Destructor -CSatBIPDataAvailableMonitor::~CSatBIPDataAvailableMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::\ - ~CSatBIPDataAvailableMonitor calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataAvailableMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatBIPDataAvailableMonitor* CSatBIPDataAvailableMonitor::NewL( - MSatEventMonitorUtils& aUtils ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::NewL calling" ) - - CSatBIPDataAvailableMonitor* self = - new( ELeave ) CSatBIPDataAvailableMonitor( aUtils ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataAvailableMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatBIPDataAvailableMonitor::ConstructL() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::ConstructL calling" ) - - // Create base class and give this monitors event as a parameter - BaseConstructL( MSatEventMonitor::EDataAvailable ); - iIsActive = EFalse; - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataAvailableMonitor::DoCancelMonitor -// Cancels monitor. -// ----------------------------------------------------------------------------- -// -void CSatBIPDataAvailableMonitor::DoCancelMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::\ - DoCancelMonitor calling" ) - - if ( iIsActive ) - { - LOG( NORMAL, "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::\ - DoCancelMonitor Canceling monitor" ) - // Call MSatBIPEventNotifier.CancelDataAvailable - iEventUtils.BipNotifier().CancelDataAvailable(); - } - - LOG( SIMPLE, "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::\ - DoCancelMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataAvailableMonitor::StartMonitor -// Starts monitor. -// ----------------------------------------------------------------------------- -// -TInt CSatBIPDataAvailableMonitor::StartMonitor() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::StartMonitor calling" ) - - if ( !iIsActive ) - { - LOG( NORMAL, "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::\ - StartMonitor Activating monitor" ) - // Call MSatBIPEventNotifier.NotifyDataAvailable - iEventUtils.BipNotifier().NotifyDataAvailable( this ); - } - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::StartMonitor exiting" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSatBIPDataAvailableMonitor::DataAvailable -// Called when data is received -// ----------------------------------------------------------------------------- -// -void CSatBIPDataAvailableMonitor::DataAvailable( const TInt aChannelId, - const TInt aLength ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::DataAvailable calling" ) - - // Inform SAT Engine that data is available. - EventOccured( aChannelId, aLength ); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBIPDataAvailableMonitor::DataAvailable exiting" ) - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/src/CSatBrowserTerminationMonitor.cpp --- a/satengine/SatServer/EventMonitors/src/CSatBrowserTerminationMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,158 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Monitor for browser termination -* -*/ - - -// INCLUDE FILES -#include "csatbrowserwsmonitor.h" -#include "CSatBrowserTerminationMonitor.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== -// ----------------------------------------------------------------------------- -// CSatBrowserTerminationMonitor::CSatBrowserTerminationMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatBrowserTerminationMonitor::CSatBrowserTerminationMonitor( - MSatEventMonitorUtils& aUtils ) : - CSatEventMonitorHandler( aUtils ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserTerminationMonitor::\ - CSatBrowserTerminationMonitor calling-exiting" ) - } - -// Destructor -CSatBrowserTerminationMonitor::~CSatBrowserTerminationMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserTerminationMonitor::\ - ~CSatBrowserTerminationMonitor calling" ) - - if ( iWSMonitor ) - { - iWSMonitor->DoCancelMonitor(); - delete iWSMonitor; - iWSMonitor = NULL; - } - - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserTerminationMonitor::\ - ~CSatBrowserTerminationMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserTerminationMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatBrowserTerminationMonitor* CSatBrowserTerminationMonitor::NewL( - MSatEventMonitorUtils& aUtils ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserTerminationMonitor::NewL calling" ) - - CSatBrowserTerminationMonitor* self = - new ( ELeave ) CSatBrowserTerminationMonitor( aUtils ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( /*self*/ ); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserTerminationMonitor::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatBrowserTerminationMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatBrowserTerminationMonitor::ConstructL() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserTerminationMonitor::ConstructL calling" ) - - // Create base class and give this monitors event as a parameter. - BaseConstructL( MSatEventMonitor::EBrowserTerminated ); - - // Create Windows session monitor. - iWSMonitor = CSatBrowserWSMonitor::NewL(); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserTerminationMonitor::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserTerminationMonitor::DoCancelMonitor -// ----------------------------------------------------------------------------- -// -void CSatBrowserTerminationMonitor::DoCancelMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserTerminationMonitor::\ - DoCancelMonitor calling" ) - - iWSMonitor->DoCancelMonitor(); - - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserTerminationMonitor::\ - DoCancelMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserTerminationMonitor::StartMonitor -// ----------------------------------------------------------------------------- -// -TInt CSatBrowserTerminationMonitor::StartMonitor() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserTerminationMonitor::StartMonitor calling" ) - - if ( !iWSMonitor->IsActive() ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserTerminationMonitor::StartMonitor \ - StartMonitor" ) - iWSMonitor->StartMonitor( this ); - } - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserTerminationMonitor::StartMonitor exiting" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSatBrowserTerminationMonitor::NotifyBrowserTerminated -// Sends event download notification to SAT Engine. -// ----------------------------------------------------------------------------- -// -void CSatBrowserTerminationMonitor::NotifyBrowserTerminated( - const RSat::TBrowserTerminationCause aCause ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserTerminationMonitor::BrowserTerminated \ - calling" ) - - // Send cause to SAT Engine - EventOccured( aCause ); - - // Restart the monitor - StartMonitor(); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserTerminationMonitor::NotifyBrowserTerminated\ - exiting" ) - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/src/CSatBrowserThreadMonitor.cpp --- a/satengine/SatServer/EventMonitors/src/CSatBrowserThreadMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,236 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Monitors browser's thread death. -* -*/ - - -// INCLUDE FILES -#include -#include -#include "msatbrowserthreadobserver.h" -#include "CSatBrowserThreadMonitor.h" -#include "SatLog.h" - - -// ================= MEMBER FUNCTIONS ========================================== - -// ----------------------------------------------------------------------------- -// CSatBrowserThreadMonitor::CSatBrowserThreadMonitor -// The class constructor -// ----------------------------------------------------------------------------- -// -CSatBrowserThreadMonitor::CSatBrowserThreadMonitor( - const RThread& aThread ) : - CActive( EPriorityStandard ), - iThread( aThread ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserThreadMonitor::CSatBrowserThreadMonitor \ - calling" ) - - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserThreadMonitor::CSatBrowserThreadMonitor \ - exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSBrowserTerminationMonitor::NewL -// Two-phased constructor -// ----------------------------------------------------------------------------- -// -CSatBrowserThreadMonitor* CSatBrowserThreadMonitor::NewL( - const RThread& aThread ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserThreadMonitor::NewL calling" ) - - CSatBrowserThreadMonitor* self = - new( ELeave )CSatBrowserThreadMonitor( aThread ); - - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserThreadMonitor::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatBrowserThreadMonitor::~CSatBrowserThreadMonitor -// Destructor -// ----------------------------------------------------------------------------- -// -CSatBrowserThreadMonitor::~CSatBrowserThreadMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserThreadMonitor::\ - ~CSatBrowserThreadMonitor calling" ) - - // Cancel any outstanding requests. - Cancel(); - iThread.Close(); - - iObserver = NULL; - - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserThreadMonitor::\ - ~CSatBrowserThreadMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserThreadMonitor::StartMonitor -// Starts the handler. -// ----------------------------------------------------------------------------- -// -void CSatBrowserThreadMonitor::StartMonitor( - MSatBrowserThreadObserver* aObserver ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserThreadMonitor::StartMonitor calling" ) - - iObserver = aObserver; - - Start(); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserThreadMonitor::StartMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserThreadMonitor::Start -// Starts the handler. -// ----------------------------------------------------------------------------- -// -void CSatBrowserThreadMonitor::Start() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserThreadMonitor::Start calling" ) - - // Just in case. - Cancel(); - - // Monitor changes only in Browser Thread. - iThread.Logon( iStatus ); - SetActive(); - - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserThreadMonitor::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserThreadMonitor::DoCancelMonitor -// ----------------------------------------------------------------------------- -// -void CSatBrowserThreadMonitor::DoCancelMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserThreadMonitor::\ - DoCancelMonitor calling" ) - - Cancel(); - - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserThreadMonitor::\ - DoCancelMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserThreadMonitor::RunL -// Handles the command. -// ----------------------------------------------------------------------------- -// -void CSatBrowserThreadMonitor::RunL() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserThreadMonitor::RunL calling" ) - - const TExitType exitType( iThread.ExitType() ); - - // Check whether the thread is alive. - if ( EExitPending == exitType ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserThreadMonitor::RunL() | \ - iThread.ExitType = EExitPending , renew the request" ) - // Renew the request. - Start(); - } - // Thread has exited - else - { - LOG2( SIMPLE, "SATEVENTMONITORS: CSatBrowserThreadMonitor::RunL() | \ - Thread has exited with exit code %i", exitType ) - - // Why did the browser exit. - RSat::TBrowserTerminationCause cause( ExitCause() ); - - // Call the event monitor with the cause of the thread termination. - iObserver->NotifyBrowserTerminated( cause ); - } - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserThreadMonitor::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserThreadMonitor::DoCancel -// Cancels the pending request. -// ----------------------------------------------------------------------------- -// -void CSatBrowserThreadMonitor::DoCancel() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserThreadMonitor::DoCancel calling" ) - - // No longer monitor this thread. - iThread.LogonCancel( iStatus ); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserThreadMonitor::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserThreadMonitor::ExitCause -// Why did the application close. -// ----------------------------------------------------------------------------- -// -RSat::TBrowserTerminationCause CSatBrowserThreadMonitor::ExitCause() const - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserThreadMonitor::ExitCause calling" ) - - TExitType exitType = iThread.ExitType(); - RSat::TBrowserTerminationCause terminationCause; - LOG2( SIMPLE, - "SATEVENTMONITORS: CSatBrowserThreadMonitor::ExitCause exitType: %d", - exitType ) - switch ( exitType ) - { - // The thread has ended as a result of a kill. - // i.e. Kill() has been called on the RThread. - case EExitKill: - { - terminationCause = RSat::EUserTermination; - break; - } - - // The thread has been panicked. - case EExitPanic: - { - terminationCause = RSat::EErrorTermination; - break; - } - - // The thread ended for unknown reasons. - default: - { - terminationCause = RSat::EUnknownCause; - break; - } - } - - LOG2( SIMPLE, "SATEVENTMONITORS: CSatBrowserThreadMonitor::\ - ExitCause exiting with value: %d", terminationCause ) - return terminationCause; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/src/CSatEventMonitorHandler.cpp --- a/satengine/SatServer/EventMonitors/src/CSatEventMonitorHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,258 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Base class for event monitors -* -*/ - - -// INCLUDE FILES -#include "CSatEventMonitorHandler.h" -#include "MSatEventMonitorUtils.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== -// ----------------------------------------------------------------------------- -// CSatEventMonitorHandler::CSatEventMonitorHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatEventMonitorHandler::CSatEventMonitorHandler( - MSatEventMonitorUtils& aUtils ) : - iEventUtils( aUtils ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - CSatEventMonitorHandler calling-exiting" ) - } - -// Destructor -CSatEventMonitorHandler::~CSatEventMonitorHandler() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - ~CSatEventMonitorHandler calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorHandler::BaseConstructL -// Constructor of this class. -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorHandler::BaseConstructL( MSatEventMonitor::TEvent aEvent ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - BaseConstructL calling" ) - - iIsSimRemovalMonitor = EFalse; - iSimRemovalMonitorActive = EFalse; - - // Resolve correct event - switch ( aEvent ) - { - case MSatEventMonitor::EUserActivity: - { - LOG( NORMAL, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - BaseConstructL User activity" ) - iEvent = RSat::KUserActivity; - break; - } - - case MSatEventMonitor::EIdleScreenAvailable: - { - LOG( NORMAL, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - BaseConstructL Idle Screen available" ) - iEvent = RSat::KIdleScreenAvailable; - break; - } - - case MSatEventMonitor::ELanguageSelection: - { - LOG( NORMAL, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - BaseConstructL Language selection" ) - iEvent = RSat::KLanguageSelection; - break; - } - - case MSatEventMonitor::ESimRemoved: - { - LOG( NORMAL, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - BaseConstructL SIM removal" ) - // There is no event for sim removal event. - // The observer of events should cancel all monitors - // if sim is removed. - iIsSimRemovalMonitor = ETrue; - break; - } - - case MSatEventMonitor::EBrowserTerminated: - { - LOG( NORMAL, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - BaseConstructL Browser termination" ) - iEvent = RSat::KBrowserTermination; - break; - } - - case MSatEventMonitor::EDataAvailable: - { - LOG( NORMAL, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - BaseConstructL Data available" ) - iEvent = RSat::KDataAvailable; - break; - } - - case MSatEventMonitor::EChannelStatus: - { - LOG( NORMAL, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - BaseConstructL Channel status" ) - iEvent = RSat::KChannelStatus; - break; - } - - default: - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - BaseConstructL No implementation" ) - } - } - - LOG( SIMPLE, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - BaseConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorHandler::CancelMonitor -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void CSatEventMonitorHandler::CancelMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - CancelMonitor calling" ) - - DoCancelMonitor(); - - LOG( SIMPLE, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - CancelMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorHandler::UpdateMonitor -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt CSatEventMonitorHandler::UpdateMonitor( - TUint aEvents ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - UpdateMonitor calling" ) - - TInt errCode = KErrNone; - - LOG2( DETAILED, "SATEVENTMONITORS: CSatEventMonitorHandler::aEvents = %d", - aEvents ) - LOG2( DETAILED, "SATEVENTMONITORS: CSatEventMonitorHandler::iEvent = %d", - iEvent ) - - // There is no specific event ID for SIM removal monitor, - // so we have to check this different than others - if ( iIsSimRemovalMonitor ) - { - LOG( NORMAL, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - IsSimRemovalMonitor" ) - - // If events list is not empty, start - // SIM removal monitor. Otherwise cancel it. - if ( aEvents != 0 ) - { - LOG( NORMAL, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - IsSimRemovalMonitor - Events list is not empty" ) - // Start SIM removal monitor only if it is not already active - if ( !iSimRemovalMonitorActive ) - { - LOG( NORMAL, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - IsSimRemovalMonitor - Start SIM removal monitor" ) - errCode = StartMonitor(); - iSimRemovalMonitorActive = ETrue; - } - } - else - { - LOG( NORMAL, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - IsSimRemovalMonitor - Cancel monitor" ) - CancelMonitor(); - iSimRemovalMonitorActive = EFalse; - } - } - - // Check is derived monitor in list - else if ( aEvents & iEvent ) - { - LOG( NORMAL, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - UpdateMonitor Starting monitor" ) - // Monitor found, start monitor - errCode = StartMonitor(); - } - else - { - LOG( NORMAL, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - UpdateMonitor Cancelling monitor" ) - // Monitor not in list, cancel monitor - CancelMonitor(); - } - - LOG2( SIMPLE, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - UpdateMonitor exiting with value: %d", errCode ) - return errCode; - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorHandler::IsMonitoringEvent -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool CSatEventMonitorHandler::IsMonitoringEvent( const TInt aEvent ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - IsMonitoringEvent calling-exiting" ) - return ( aEvent == iEvent ); - } - -// ----------------------------------------------------------------------------- -// CSatEventMonitorHandler::EventOccured -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatEventMonitorHandler::EventOccured( TInt aIntArg, TInt aSecArg ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - EventOccured calling" ) - - // Check is this SimRemoval monitor. - if ( iIsSimRemovalMonitor ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - EventOccured iIsSimRemovalMonitor true" ) - // Yes, Inform observer that SIM is removed - iEventUtils.SimRemoved(); - } - else - { - // No, Inform normal event occurrence - iEventUtils.EventDownload( iEvent, aIntArg, aSecArg ); - } - - LOG( SIMPLE, "SATEVENTMONITORS: CSatEventMonitorHandler::\ - EventOccured exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/src/CSatIdleScreenMonitor.cpp --- a/satengine/SatServer/EventMonitors/src/CSatIdleScreenMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Monitor for idle screen availability. -* -*/ - - -// INCLUDE FILES -#include "TSatSystemStateFactory.h" -#include "MSatSystemStateChangeNotifier.h" -#include "CSatIdleScreenMonitor.h" -#include "SatLog.h" - - -// ============================ MEMBER FUNCTIONS =============================== -// ----------------------------------------------------------------------------- -// CSatIdleScreenMonitor::CSatIdleScreenMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatIdleScreenMonitor::CSatIdleScreenMonitor( - MSatEventMonitorUtils& aUtils ) : - CSatEventMonitorHandler( aUtils ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatIdleScreenMonitor::\ - CSatIdleScreenMonitor calling-exiting" ) - } - -// Destructor -CSatIdleScreenMonitor::~CSatIdleScreenMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS:CSatIdleScreenMonitor::\ - ~CSatIdleScreenMonitor calling" ) - - delete iPSNotifier; - - LOG( SIMPLE, "SATEVENTMONITORS:CSatIdleScreenMonitor::\ - ~CSatIdleScreenMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatIdleScreenMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatIdleScreenMonitor* CSatIdleScreenMonitor::NewL( - MSatEventMonitorUtils& aUtils ) - { - LOG( SIMPLE, "SATEVENTMONITORS:CSatIdleScreenMonitor::NewL calling" ) - - CSatIdleScreenMonitor* self = new( ELeave ) CSatIdleScreenMonitor( aUtils ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATEVENTMONITORS:CSatIdleScreenMonitor::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatIdleScreenMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatIdleScreenMonitor::ConstructL() - { - LOG( SIMPLE, "SATEVENTMONITORS:CSatIdleScreenMonitor::\ - ConstructL calling" ) - - // Create base class and give this monitors event as a parameter - BaseConstructL( MSatEventMonitor::EIdleScreenAvailable ); - iPSNotifier = - TSatSystemStateFactory::CreateIdleModeChangeNotifierL( *this ); - - LOG( SIMPLE, "SATEVENTMONITORS:CSatIdleScreenMonitor::\ - ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatIdleScreenMonitor::DoCancelMonitor -// Cancels monitor. -// ----------------------------------------------------------------------------- -// -void CSatIdleScreenMonitor::DoCancelMonitor() - { - LOG( SIMPLE, - "SATEVENTMONITORS:CSatIdleScreenMonitor::DoCancelMonitor calling" ) - - iPSNotifier->CancelNotify(); - - LOG( SIMPLE, - "SATEVENTMONITORS:CSatIdleScreenMonitor::DoCancelMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatIdleScreenMonitor::StartMonitor -// Starts monitor. -// ----------------------------------------------------------------------------- -// -TInt CSatIdleScreenMonitor::StartMonitor() - { - LOG( SIMPLE, - "SATEVENTMONITORS:CSatIdleScreenMonitor::StartMonitor calling" ) - - // Cancel first, it might be activated already - DoCancelMonitor(); - - // Now start it again - TRAPD( err, iPSNotifier->NotifyChangeL() ); - - LOG2( SIMPLE, "SATEVENTMONITORS:CSatIdleScreenMonitor::\ - StartMonitor exiting with code: %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CSatIdleScreenMonitor::StateChanged -// Called when idle screen is available. -// ----------------------------------------------------------------------------- -// -void CSatIdleScreenMonitor::StateChanged() - { - LOG( SIMPLE, - "SATEVENTMONITORS:CSatIdleScreenMonitor::StateChanged calling" ) - - // Inform SAT Engine that idle screen is available. - EventOccured(); - - LOG( SIMPLE, - "SATEVENTMONITORS:CSatIdleScreenMonitor::StateChanged exiting" ) - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/src/CSatLanguageSelectionMonitor.cpp --- a/satengine/SatServer/EventMonitors/src/CSatLanguageSelectionMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Monitor for SIM removal -* -*/ - - -// INCLUDE FILES -#include "TSatSystemStateFactory.h" -#include "MSatSystemStateChangeNotifier.h" -#include "MSatEventMonitorUtils.h" -#include "CSatLanguageSelectionMonitor.h" -#include "SatLog.h" - -// CONSTANTS -const TInt KSecond( 1000 ); - -// ============================ MEMBER FUNCTIONS =============================== -// ----------------------------------------------------------------------------- -// CSatLanguageSelectionMonitor::CSatLanguageSelectionMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatLanguageSelectionMonitor::CSatLanguageSelectionMonitor( - MSatEventMonitorUtils& aUtils ) : - CSatEventMonitorHandler( aUtils ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatLanguageSelectionMonitor::\ - CSatLanguageSelectionMonitor calling-exiting" ) - } - -// Destructor -CSatLanguageSelectionMonitor::~CSatLanguageSelectionMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatLanguageSelectionMonitor::\ - ~CSatLanguageSelectionMonitor calling" ) - - delete iPSNotifier; - - LOG( SIMPLE, "SATEVENTMONITORS: CSatLanguageSelectionMonitor::\ - ~CSatLanguageSelectionMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatLanguageSelectionMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatLanguageSelectionMonitor* CSatLanguageSelectionMonitor::NewL( - MSatEventMonitorUtils& aUtils ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatLanguageSelectionMonitor::NewL calling" ) - - CSatLanguageSelectionMonitor* self = - new( ELeave ) CSatLanguageSelectionMonitor( aUtils ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatLanguageSelectionMonitor::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatLanguageSelectionMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatLanguageSelectionMonitor::ConstructL() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatLanguageSelectionMonitor::ConstructL calling" ) - - // Create base class and give this monitors event as a parameter - BaseConstructL( MSatEventMonitor::ELanguageSelection ); - iPSNotifier = - TSatSystemStateFactory::CreateLanguageSelectionChangeNotifierL( *this ); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatLanguageSelectionMonitor::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatLanguageSelectionMonitor::DoCancelMonitor -// Cancels monitor. -// ----------------------------------------------------------------------------- -// -void CSatLanguageSelectionMonitor::DoCancelMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatLanguageSelectionMonitor::\ - DoCancelMonitor calling" ) - - iPSNotifier->CancelNotify(); - iEventUtils.WriteLanguageSelectionTime( KErrNone ); - - LOG( SIMPLE, "SATEVENTMONITORS: CSatLanguageSelectionMonitor::\ - DoCancelMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatLanguageSelectionMonitor::StartMonitor -// Starts monitor. -// ----------------------------------------------------------------------------- -// -TInt CSatLanguageSelectionMonitor::StartMonitor() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatLanguageSelectionMonitor::StartMonitor calling" ) - - // Cancel first, it might be activated already - DoCancelMonitor(); - - // Now start - TRAPD( err, iPSNotifier->NotifyChangeL() ); - iEventUtils.WriteLanguageSelectionTime( KSecond ); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatLanguageSelectionMonitor::StartMonitor exiting" ) - return err; - } - -// ----------------------------------------------------------------------------- -// CSatLanguageSelectionMonitor::StateChanged -// Called when SIM is removed. -// ----------------------------------------------------------------------------- -// -void CSatLanguageSelectionMonitor::StateChanged( const TInt aValue ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatLanguageSelectionMonitor::StateChanged calling" ) - - // Inform SAT Engine that language is been changed. - EventOccured( aValue ); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatLanguageSelectionMonitor::StateChanged exiting" ) - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/src/CSatSimRemovalMonitor.cpp --- a/satengine/SatServer/EventMonitors/src/CSatSimRemovalMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,144 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Monitor for SIM removal -* -*/ - - -// INCLUDE FILES -#include "TSatSystemStateFactory.h" -#include "MSatSystemStateChangeNotifier.h" -#include "CSatSimRemovalMonitor.h" -#include "SatLog.h" - - -// ============================ MEMBER FUNCTIONS =============================== -// ----------------------------------------------------------------------------- -// CSatSimRemovalMonitor::CSatSimRemovalMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatSimRemovalMonitor::CSatSimRemovalMonitor( - MSatEventMonitorUtils& aUtils ) : - CSatEventMonitorHandler( aUtils ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatSimRemovalMonitor::\ - CSatSimRemovalMonitor calling-exiting" ) - } - -// Destructor -CSatSimRemovalMonitor::~CSatSimRemovalMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatSimRemovalMonitor::\ - ~CSatSimRemovalMonitor calling" ) - - delete iPSNotifier; - - LOG( SIMPLE, "SATEVENTMONITORS: CSatSimRemovalMonitor::\ - ~CSatSimRemovalMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSimRemovalMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatSimRemovalMonitor* CSatSimRemovalMonitor::NewL( - MSatEventMonitorUtils& aUtils ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatSimRemovalMonitor::NewL calling" ) - - CSatSimRemovalMonitor* self = new( ELeave ) CSatSimRemovalMonitor( aUtils ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATEVENTMONITORS: CSatSimRemovalMonitor::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatSimRemovalMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatSimRemovalMonitor::ConstructL() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatSimRemovalMonitor::ConstructL calling" ) - - // Create base class and give this monitors event as a parameter - BaseConstructL( MSatEventMonitor::ESimRemoved ); - - iPSNotifier = - TSatSystemStateFactory::CreateSimStatusChangeNotifierL( *this ); - - LOG( SIMPLE, "SATEVENTMONITORS: CSatSimRemovalMonitor::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSimRemovalMonitor::DoCancelMonitor -// Cancels monitor. -// ----------------------------------------------------------------------------- -// -void CSatSimRemovalMonitor::DoCancelMonitor() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatSimRemovalMonitor::DoCancelMonitor calling" ) - - iPSNotifier->CancelNotify(); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatSimRemovalMonitor::DoCancelMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatSimRemovalMonitor::StartMonitor -// Starts monitor. -// ----------------------------------------------------------------------------- -// -TInt CSatSimRemovalMonitor::StartMonitor() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatSimRemovalMonitor::StartMonitor calling" ) - - // Cancel first. It might be activated already - DoCancelMonitor(); - - // Now start it again. - TRAPD( err, iPSNotifier->NotifyChangeL() ); - - LOG2( SIMPLE, "SATEVENTMONITORS: CSatSimRemovalMonitor::StartMonitor \ - exiting with value: %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CSatSimRemovalMonitor::StateChanged -// Called when SIM is removed. -// ----------------------------------------------------------------------------- -// -void CSatSimRemovalMonitor::StateChanged() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatSimRemovalMonitor::StateChanged calling" ) - - // Inform SAT Engine that SIM status state has changed. - EventOccured(); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatSimRemovalMonitor::StateChanged exiting" ) - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/src/CSatUserActivityMonitor.cpp --- a/satengine/SatServer/EventMonitors/src/CSatUserActivityMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,249 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Monitor for user activity -* -*/ - - -// INCLUDE FILES -#include "CSatUserActivityMonitor.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatUserActivityMonitor::CSatUserActivityMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatUserActivityMonitor::CSatUserActivityMonitor( - MSatEventMonitorUtils& aUtils ) : - CSatEventMonitorHandler( aUtils ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatUserActivityMonitor::\ - CSatUserActivityMonitor calling" ) - - iActivityManager = NULL; - - LOG( SIMPLE, "SATEVENTMONITORS: CSatUserActivityMonitor::\ - CSatUserActivityMonitor exiting" ) - } - -// Destructor -CSatUserActivityMonitor::~CSatUserActivityMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatUserActivityMonitor::\ - ~CSatUserActivityMonitor calling" ) - - Cancel(); - - if ( iActivityManager ) - { - delete iActivityManager; - iActivityManager = NULL; - } - - LOG( SIMPLE, "SATEVENTMONITORS: CSatUserActivityMonitor::\ - ~CSatUserActivityMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatUserActivityMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatUserActivityMonitor* CSatUserActivityMonitor::NewL( - MSatEventMonitorUtils& aUtils ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatUserActivityMonitor::NewL calling" ) - - CSatUserActivityMonitor* self = - new( ELeave ) CSatUserActivityMonitor( aUtils ); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATEVENTMONITORS: CSatUserActivityMonitor::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatUserActivityMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatUserActivityMonitor::ConstructL() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatUserActivityMonitor::\ - ConstructL calling" ) - - // Create base class and give this monitors event as a parameter - BaseConstructL( MSatEventMonitor::EUserActivity ); - iMonitoring = EFalse; - - LOG( SIMPLE, "SATEVENTMONITORS: CSatUserActivityMonitor::\ - ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatUserActivityMonitor::StartActivityManagerL -// Called when user has been inactive for a pre-defined time period -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatUserActivityMonitor::StartActivityManagerL() - { - LOG( SIMPLE,"SATEVENTMONITORS: \ - CSatUserActivityMonitor::StartActivityManag calling" ) - - // Delete activity manager if it exists - if ( iActivityManager ) - { - LOG( SIMPLE,"SATEVENTMONITORS: \ - CSatUserActivityMonitor::StartActivityManag iActivityManager true" ) - iActivityManager->Cancel(); - delete iActivityManager; - iActivityManager = NULL; - } - - iMonitoring = ETrue; - - iActivityManager = CUserActivityManager::NewL( EPriorityNormal ); - iActivityManager->Start( - TTimeIntervalSeconds( 1 ), - TCallBack( DispatchUserInactive, this ), - TCallBack( DispatchUserActive, this ) ); - - // Changes checking immediatelly activity, - // activity before exceeding one second. - iActivityManager->SetInactivityTimeout( TTimeIntervalSeconds( 0 ) ); - - LOG( SIMPLE, "SATEVENTMONITORS: \ - CSatUserActivityMonitor::StartActivityManagerL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatUserActivityMonitor::DispatchUserInactive -// Called when user has been inactive for a pre-defined time period -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CSatUserActivityMonitor::DispatchUserInactive( TAny* /* aPtr */ ) - { - LOG( SIMPLE, "SATEVENTMONITORS: \ - CSatUserActivityMonitor::DispatchUserInactive calling/exiting" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSatUserActivityMonitor::DispatchUserActive -// Called when user does something -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CSatUserActivityMonitor::DispatchUserActive( TAny* aPtr ) - { - LOG( SIMPLE, "SATEVENTMONITORS: \ - CSatUserActivityMonitor::DispatchUserActive calling" ) - - TInt retVal( KErrNone ); - - if ( aPtr ) - { - LOG( SIMPLE, "SATEVENTMONITORS: \ - CSatUserActivityMonitor::DispatchUserActive aPtr true" ) - CSatUserActivityMonitor* ptrThis = - static_cast( aPtr ); - if ( ptrThis->iMonitoring ) - { - LOG( SIMPLE, "SATEVENTMONITORS: \ - CSatUserActivityMonitor::DispatchUserActive ptrThis->iMonitoring" ) - // Notify observer and set flag off, no more monitoring. - ptrThis->EventOccured(); - ptrThis->iMonitoring = EFalse; - } - else - { - retVal = KErrCancel; - } - } - LOG2( SIMPLE, "SATEVENTMONITORS: CSatUserActivityMonitor::\ - DispatchUserActive exiting, retVal: %d", retVal ) - return retVal; - } - -// ----------------------------------------------------------------------------- -// CSatUserActivityMonitor::DoCancelMonitor -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatUserActivityMonitor::DoCancelMonitor() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatUserActivityMonitor::DoCancelMonitor calling" ) - - Cancel(); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatUserActivityMonitor::DoCancelMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatUserActivityMonitor::StartMonitor -// Starts monitoring the user activity. The real start of user actitivity -// monitoring starts in RunL, after call of Inactivity( 0 ), which causes run of -// RunL immediatly. The inacativity call is needed to reset the user activity -// timers in User class. -// ----------------------------------------------------------------------------- -// -TInt CSatUserActivityMonitor::StartMonitor() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatUserActivityMonitor::StartMonitor calling" ) - - // Starts activity manager. - TRAPD( err, StartActivityManagerL() ); - - LOG2( SIMPLE, - "SATEVENTMONITORS: CSatUserActivityMonitor::StartMonitor exiting,\ - err: %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// CSatUserActivityMonitor::Cancel -// Cancels user activity monitor. -// If activity manager is active, cancels request -// and deletes activity manager. -// ----------------------------------------------------------------------------- -// -void CSatUserActivityMonitor::Cancel() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatUserActivityMonitor::Cancel calling" ) - - if ( iActivityManager ) - { - LOG( DETAILED, - "SATEVENTMONITORS: CSatUAMon::Cancel AM Cancel call" ) - iActivityManager->Cancel(); - - delete iActivityManager; - iActivityManager = NULL; - } - - LOG( SIMPLE, "SATEVENTMONITORS: CSatUserActivityMonitor::Cancel exiting" ) - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/src/TSatEventMonitorFactory.cpp --- a/satengine/SatServer/EventMonitors/src/TSatEventMonitorFactory.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,118 +0,0 @@ -/* -* Copyright (c) 2002-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: Factory for event monitors -* -*/ - - -// INCLUDE FILES -#include "TSatEventMonitorFactory.h" -#include "MSatEventMonitor.h" -#include "CSatSimRemovalMonitor.h" -#include "CSatUserActivityMonitor.h" -#include "CSatIdleScreenMonitor.h" -#include "CSatLanguageSelectionMonitor.h" -#include "CSatBrowserTerminationMonitor.h" -#include "CSatBIPDataAvailableMonitor.h" -#include "CSatBIPChannelStatusMonitor.h" -#include "SatLog.h" - -// ============================ LOCAL FUNCTIONS ================================ - -// ----------------------------------------------------------------------------- -// CleanupEventMonitors -// Remove and destroy items from the specified array. -// @param aArray An array whose items need to be removed and destroyed. -// ----------------------------------------------------------------------------- -// -LOCAL_C void CleanupEventMonitors( TAny* aArray ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CleanupEventMonitors calling" ) - - CArrayPtrFlat* array = - static_cast< CArrayPtrFlat< MSatEventMonitor >* >(aArray); - array->ResetAndDestroy(); - - LOG( SIMPLE, "SATEVENTMONITORS: CleanupEventMonitors exiting" ) - } - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TSatEventMonitorFactory::CreateEventMonitorsL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C CArrayPtrFlat* TSatEventMonitorFactory:: - CreateEventMonitorsL( MSatEventMonitorUtils& aUtils ) - { - LOG( SIMPLE, "SATEVENTMONITORS: TSatEventMonitorFactory::\ - CreateEventMonitorsL calling" ) - - CArrayPtrFlat* array = - new( ELeave ) CArrayPtrFlat( 1 ); - CleanupStack::PushL( TCleanupItem(CleanupEventMonitors, array) ); - - MSatEventMonitor* eventMonitor = NULL; - // Add event monitors - eventMonitor = - CSatSimRemovalMonitor::NewL( aUtils ); - CleanupStack::PushL( eventMonitor ); - array->AppendL( eventMonitor ); - CleanupStack::Pop( eventMonitor ); - - eventMonitor = - CSatUserActivityMonitor::NewL( aUtils ); - CleanupStack::PushL( eventMonitor ); - array->AppendL( eventMonitor ); - CleanupStack::Pop( eventMonitor ); - - eventMonitor = - CSatIdleScreenMonitor::NewL( aUtils ); - CleanupStack::PushL( eventMonitor ); - array->AppendL( eventMonitor ); - CleanupStack::Pop( eventMonitor ); - - eventMonitor = - CSatLanguageSelectionMonitor::NewL( aUtils ); - CleanupStack::PushL( eventMonitor ); - array->AppendL( eventMonitor ); - CleanupStack::Pop( eventMonitor ); - - eventMonitor = - CSatBrowserTerminationMonitor::NewL( aUtils ); - CleanupStack::PushL( eventMonitor ); - array->AppendL( eventMonitor ); - CleanupStack::Pop( eventMonitor ); - - eventMonitor = - CSatBIPDataAvailableMonitor::NewL( aUtils ); - CleanupStack::PushL( eventMonitor ); - array->AppendL( eventMonitor ); - CleanupStack::Pop( eventMonitor ); - - eventMonitor = - CSatBIPChannelStatusMonitor::NewL( aUtils ); - CleanupStack::PushL( eventMonitor ); - array->AppendL( eventMonitor ); - CleanupStack::Pop( eventMonitor ); - - CleanupStack::Pop( array ); - - LOG( SIMPLE, "SATEVENTMONITORS: TSatEventMonitorFactory::\ - CreateEventMonitorsL exiting" ) - return array; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/EventMonitors/src/csatbrowserwsmonitor.cpp --- a/satengine/SatServer/EventMonitors/src/csatbrowserwsmonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,324 +0,0 @@ -/* -* Copyright (c) 2002-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: Monitor for browser termination -* -*/ - - -// INCLUDE FILES -#include -#include -#include //KWmlcHandler -#include "CSatBrowserThreadMonitor.h" -#include "csatbrowserwsmonitor.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatBrowserWSMonitor::CSatBrowserWSMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatBrowserWSMonitor::CSatBrowserWSMonitor() : - CActive( CActive::EPriorityStandard ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::CSatBrowserWSMonitor calling" ) - - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::CSatBrowserWSMonitor exiting" ) - } - -// Destructor -CSatBrowserWSMonitor::~CSatBrowserWSMonitor() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::~CSatBrowserWSMonitor calling" ) - - // Cancel any outstanding requests. - Cancel(); - - if ( iThreadMonitor ) - { - iThreadMonitor->DoCancelMonitor(); - delete iThreadMonitor; - iThreadMonitor = NULL; - } - - iObserver = NULL; - - iWg.Close(); - iWsSession.Close(); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::~CSatBrowserWSMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserWSMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatBrowserWSMonitor* CSatBrowserWSMonitor::NewL() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::NewL calling" ) - - CSatBrowserWSMonitor* self = - new ( ELeave ) CSatBrowserWSMonitor(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( /*self*/ ); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::NewL exiting" ) - return self; - } - -// ----------------------------------------------------------------------------- -// CSatBrowserWSMonitor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatBrowserWSMonitor::ConstructL() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::ConstructL calling" ) - // Window session is created when event is requested - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserWSMonitor::DoCancelMonitor -// ----------------------------------------------------------------------------- -// -void CSatBrowserWSMonitor::DoCancelMonitor() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserWSMonitor::\ - DoCancelMonitor calling" ) - - Cancel(); - - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserWSMonitor::\ - DoCancelMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserWSMonitor::StartMonitor -// ----------------------------------------------------------------------------- -// -TInt CSatBrowserWSMonitor::StartMonitor( - MSatBrowserWSObserver* aObserver ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::StartMonitor calling" ) - TInt err( KErrNone ); - - if ( !iWGCreated ) - { - // First time called, create needed services - LOG( SIMPLE,"SATEVENTMONITORS: CSatBrowserWSMonitor::StartMonitor \ - connect to WsSession " ) - err = iWsSession.Connect(); - if ( KErrNone == err ) - { - // Creates a window group - TRAP( err, CreateWGL() ); - } - } - - iObserver = aObserver; - - if ( !err ) - { - // All fine, start monitoring - Start(); - } - - LOG2( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::StartMonitor exiting err=%d",\ - err ) - - return err; - } - -// ----------------------------------------------------------------------------- -// CSatBrowserWSMonitor::Start -// ----------------------------------------------------------------------------- -// -void CSatBrowserWSMonitor::Start() - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserWSMonitor::Start calling" ) - - Cancel(); - - // It migth be null already - if ( iThreadMonitor ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::Start iThreadMonitor true" ) - delete iThreadMonitor; - iThreadMonitor = NULL; - } - - iWsSession.EventReady( &iStatus ); - SetActive(); - - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserWSMonitor::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserWSMonitor::RunL -// Checks is the WML Browser launched and creates browser thread monitor to -// monitor browsers thread death. -// ----------------------------------------------------------------------------- -// -void CSatBrowserWSMonitor::RunL() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::RunL calling" ) - - // Get the status of this object. - const TInt errCode( iStatus.Int() ); - LOG2( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::RunL errCode: %d", - errCode ) - if ( KErrNone == errCode ) - { - // UID Code for WML Browser in S60. - const TUid uidWmlBrowser( TUid::Uid( KWmlcHandler ) ); - TWsEvent event; - iWsSession.GetEvent( event ); - TApaTaskList taskList( iWsSession ); - - if ( taskList.FindApp( uidWmlBrowser ).Exists() ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::RunL task exists" ) - const TApaTask task = taskList.FindApp( uidWmlBrowser ); - const TThreadId threadID = task.ThreadId(); - RThread thread; - User::LeaveIfError ( thread.Open( threadID, EOwnerProcess ) ); - - // Create Browser thread monitor. - iThreadMonitor = CSatBrowserThreadMonitor::NewL( thread ); - - // Call the active object to monitor for this threads death. - iThreadMonitor->StartMonitor( this ); - } - else - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::RunL start" ) - // Renew the request. - Start(); - } - } - else if ( KErrCancel != errCode ) - { - // Renew the request. - Start(); - } - else - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::RunL cancelled" ) - } - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserWSMonitor::DoCancel -// ----------------------------------------------------------------------------- -// -void CSatBrowserWSMonitor::DoCancel() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::DoCancel calling" ) - - if ( iThreadMonitor ) - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::DoCancel iThreadMonitor true" ) - iThreadMonitor->DoCancelMonitor(); - } - - // Cancel the outstanding request. - iWsSession.EventReadyCancel(); - - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserWSMonitor::NotifyBrowserTerminated -// Sends event download notification to SAT Engine. -// ----------------------------------------------------------------------------- -// -void CSatBrowserWSMonitor::NotifyBrowserTerminated( - const RSat::TBrowserTerminationCause aCause ) - { - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserWSMonitor::\ - NotifyBrowserTerminated calling" ) - - // Notify termination to observer. - iObserver->NotifyBrowserTerminated( aCause ); - - LOG( SIMPLE, "SATEVENTMONITORS: CSatBrowserWSMonitor::\ - NotifyBrowserTerminated exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatBrowserWSMonitor::CreateWGL -// Creates a window group and hides it form the UI. -// ----------------------------------------------------------------------------- -// -void CSatBrowserWSMonitor::CreateWGL() - { - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::CreateWGL calling" ) - - // -1 means the window will never be visible. - const TInt KWindowGroupPriority( -1 ); - - RWindowGroup wg( iWsSession ); - // Make a handle from the address of window group obj. - User::LeaveIfError( wg.Construct( reinterpret_cast( &wg ) ) ); - // Enable group changed events. - User::LeaveIfError( wg.EnableGroupChangeEvents() ); - - // Get the ordinal pos of this window group. - const TInt ordPos( wg.OrdinalPosition() ); - // Set SAT so its never shown in the UI. - wg.SetOrdinalPosition( ordPos , KWindowGroupPriority ); - - // Needs to be a member variable. Must be closed in destructor. - // Otherwise can't monitor what has been opened. - iWg = wg; - - // Set SAT Server hidden now. - iWsSession.Flush(); - iWGCreated = ETrue; - LOG( SIMPLE, - "SATEVENTMONITORS: CSatBrowserWSMonitor::CreateWGL exiting" ) - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/BMARM/SATCLIENTU.DEF --- a/satengine/SatServer/SatClient/BMARM/SATCLIENTU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -EXPORTS - __13RSatUiSession @ 1 NONAME R3UNUSED ; RSatUiSession::RSatUiSession(void) - Cancel__C11RSatRefresh @ 2 NONAME R3UNUSED ; RSatRefresh::Cancel(void) const - Close__11RSatRefresh @ 3 NONAME R3UNUSED ; RSatRefresh::Close(void) - Close__13RSatUiSession @ 4 NONAME R3UNUSED ; RSatUiSession::Close(void) - ConnectL__11RSatSession @ 5 NONAME R3UNUSED ; RSatSession::ConnectL(void) - KillServer__C13RSatUiSession @ 6 NONAME R3UNUSED ; RSatUiSession::KillServer(void) const - NotifyFileChangeL__11RSatRefresh @ 7 NONAME R3UNUSED ; RSatRefresh::NotifyFileChangeL(void) - OpenL__11RSatRefreshR11RSatSession @ 8 NONAME R3UNUSED ; RSatRefresh::OpenL(RSatSession &) - Panic__C13RSatUiSession15TSatClientPanic @ 9 NONAME R3UNUSED ; RSatUiSession::Panic(TSatClientPanic) const - RegisterL__13RSatUiSessionR11RSatSessionP14MSatUiObserver @ 10 NONAME R3UNUSED ; RSatUiSession::RegisterL(RSatSession &, MSatUiObserver *) - Unregister__13RSatUiSession @ 11 NONAME R3UNUSED ; RSatUiSession::Unregister(void) - Version__C11RSatSession @ 12 NONAME R3UNUSED ; RSatSession::Version(void) const - Version__C13RSatUiSession @ 13 NONAME R3UNUSED ; RSatUiSession::Version(void) const - __11RSatRefreshR19MSatRefreshObserver @ 14 NONAME R3UNUSED ; RSatRefresh::RSatRefresh(MSatRefreshObserver &) - __11RSatSession @ 15 NONAME R3UNUSED ; RSatSession::RSatSession(void) - Adapter__C13RSatUiSession @ 16 NONAME R3UNUSED ; RSatUiSession::Adapter(void) const - __8RSatIcon @ 17 NONAME R3UNUSED ; RSatIcon::RSatIcon(void) - Close__8RSatIcon @ 18 NONAME R3UNUSED ; RSatIcon::Close(void) - CodingScheme__C12TSatIconInfo @ 19 NONAME R3UNUSED ; TSatIconInfo::CodingScheme(void) const - GetIconInfoL__C8RSatIconUcRt6RArray1Z12TSatIconInfo @ 20 NONAME R3UNUSED ; RSatIcon::GetIconInfoL(unsigned char, RArray &) const - GetIconL__C8RSatIconRC12TSatIconInfo @ 21 NONAME R3UNUSED ; RSatIcon::GetIconL(TSatIconInfo const &) const - IconSize__C12TSatIconInfo @ 22 NONAME R3UNUSED ; TSatIconInfo::IconSize(void) const - OpenL__8RSatIconR11RSatSession @ 23 NONAME R3UNUSED ; RSatIcon::OpenL(RSatSession &) - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/BMARM/SATSERVERU.DEF --- a/satengine/SatServer/SatClient/BMARM/SATSERVERU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -EXPORTS - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/BMARM/SATSHELLCNTRLU.DEF --- a/satengine/SatServer/SatClient/BMARM/SATSHELLCNTRLU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,7 +0,0 @@ -EXPORTS - AddSatUiL__19CSatShellControllerR7TDesC16 @ 1 NONAME R3UNUSED ; CSatShellController::AddSatUiL(TDesC16 &) - BringSatUiToForeground__19CSatShellController @ 2 NONAME R3UNUSED ; CSatShellController::BringSatUiToForeground(void) - LaunchSatUiL__19CSatShellController @ 3 NONAME R3UNUSED ; CSatShellController::LaunchSatUiL(void) - NewL__19CSatShellController @ 4 NONAME R3UNUSED ; CSatShellController::NewL(void) - RemoveSatUiL__19CSatShellController @ 5 NONAME R3UNUSED ; CSatShellController::RemoveSatUiL(void) - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/BWINS/SATCLIENTU.DEF --- a/satengine/SatServer/SatClient/BWINS/SATCLIENTU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -EXPORTS - ??0RSatRefresh@@QAE@AAVMSatRefreshObserver@@@Z @ 1 NONAME ; RSatRefresh::RSatRefresh(class MSatRefreshObserver &) - ??0RSatService@@QAE@XZ @ 2 NONAME ; RSatService::RSatService(void) - ??0RSatSession@@QAE@XZ @ 3 NONAME ; RSatSession::RSatSession(void) - ?Cancel@RSatRefresh@@QBEXXZ @ 4 NONAME ; void RSatRefresh::Cancel(void) const - ?Close@RSatRefresh@@QAEXXZ @ 5 NONAME ; void RSatRefresh::Close(void) - ?Close@RSatService@@QAEXXZ @ 6 NONAME ; void RSatService::Close(void) - ?CodingScheme@TSatIconInfo@@QBE?AW4TCodingScheme@1@XZ @ 7 NONAME ; enum TSatIconInfo::TCodingScheme TSatIconInfo::CodingScheme(void) const - ?ConnectL@RSatSession@@QAEXXZ @ 8 NONAME ; void RSatSession::ConnectL(void) - ?DataLength@TSatIconInfo@@QBEGXZ @ 9 NONAME ; unsigned short TSatIconInfo::DataLength(void) const - ?FileIdentifier@TSatIconInfo@@QBEGXZ @ 10 NONAME ; unsigned short TSatIconInfo::FileIdentifier(void) const - ?GetIconInfoL@RSatService@@QBEXEAAV?$RArray@VTSatIconInfo@@@@@Z @ 11 NONAME ; void RSatService::GetIconInfoL(unsigned char, class RArray &) const - ?GetIconL@RSatService@@QBEPAVCFbsBitmap@@ABVTSatIconInfo@@@Z @ 12 NONAME ; class CFbsBitmap * RSatService::GetIconL(class TSatIconInfo const &) const - ?GetSetupIdleModeTextL@RSatService@@QAEHAAPAVHBufC16@@AAW4TSatIconQualifier@1@AAE@Z @ 13 NONAME ; int RSatService::GetSetupIdleModeTextL(class HBufC16 * &, enum RSatService::TSatIconQualifier &, unsigned char &) - ?IconSize@TSatIconInfo@@QBE?AVTSize@@XZ @ 14 NONAME ; class TSize TSatIconInfo::IconSize(void) const - ?NotifyFileChangeL@RSatRefresh@@QAEXABV?$TBuf16@$0PC@@@@Z @ 15 NONAME ; void RSatRefresh::NotifyFileChangeL(class TBuf16<242> const &) - ?NotifyFileChangeL@RSatRefresh@@QAEXXZ @ 16 NONAME ; void RSatRefresh::NotifyFileChangeL(void) - ?NotifySetupIdleModeTextChange@RSatService@@QAEHAAVTRequestStatus@@@Z @ 17 NONAME ; int RSatService::NotifySetupIdleModeTextChange(class TRequestStatus &) - ?NotifySetupIdleModeTextChangeCancel@RSatService@@QAEXXZ @ 18 NONAME ; void RSatService::NotifySetupIdleModeTextChangeCancel(void) - ?Offset@TSatIconInfo@@QBEGXZ @ 19 NONAME ; unsigned short TSatIconInfo::Offset(void) const - ?OpenL@RSatRefresh@@QAEXABVRSatSession@@@Z @ 20 NONAME ; void RSatRefresh::OpenL(class RSatSession const &) - ?OpenL@RSatService@@QAEXABVRSatSession@@@Z @ 21 NONAME ; void RSatService::OpenL(class RSatSession const &) - ?RefreshEFRead@RSatRefresh@@QBEXH@Z @ 22 NONAME ; void RSatRefresh::RefreshEFRead(int) const - ?SetIdleModeTextResponse@RSatService@@QBEXABW4TSATIdleResult@1@@Z @ 23 NONAME ; void RSatService::SetIdleModeTextResponse(enum RSatService::TSATIdleResult const &) const - ?Version@RSatSession@@QBE?AVTVersion@@XZ @ 24 NONAME ; class TVersion RSatSession::Version(void) const - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/EABI/SatClientU.DEF --- a/satengine/SatServer/SatClient/EABI/SatClientU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,33 +0,0 @@ -EXPORTS - _ZN11RSatRefresh17NotifyFileChangeLERK6TBuf16ILi242EE @ 1 NONAME - _ZN11RSatRefresh17NotifyFileChangeLEv @ 2 NONAME - _ZN11RSatRefresh5CloseEv @ 3 NONAME - _ZN11RSatRefresh5OpenLERK11RSatSession @ 4 NONAME - _ZN11RSatRefreshC1ER19MSatRefreshObserver @ 5 NONAME - _ZN11RSatRefreshC2ER19MSatRefreshObserver @ 6 NONAME - _ZN11RSatService21GetSetupIdleModeTextLERP7HBufC16RNS_17TSatIconQualifierERh @ 7 NONAME - _ZN11RSatService29NotifySetupIdleModeTextChangeER14TRequestStatus @ 8 NONAME - _ZN11RSatService35NotifySetupIdleModeTextChangeCancelEv @ 9 NONAME - _ZN11RSatService5CloseEv @ 10 NONAME - _ZN11RSatService5OpenLERK11RSatSession @ 11 NONAME - _ZN11RSatServiceC1Ev @ 12 NONAME - _ZN11RSatServiceC2Ev @ 13 NONAME - _ZN11RSatSession8ConnectLEv @ 14 NONAME - _ZN11RSatSessionC1Ev @ 15 NONAME - _ZN11RSatSessionC2Ev @ 16 NONAME - _ZNK11RSatRefresh13RefreshEFReadEi @ 17 NONAME - _ZNK11RSatRefresh6CancelEv @ 18 NONAME - _ZNK11RSatService12GetIconInfoLEhR6RArrayI12TSatIconInfoE @ 19 NONAME - _ZNK11RSatService23SetIdleModeTextResponseERKNS_14TSATIdleResultE @ 20 NONAME - _ZNK11RSatService8GetIconLERK12TSatIconInfo @ 21 NONAME - _ZNK11RSatSession7VersionEv @ 22 NONAME - _ZNK12TSatIconInfo10DataLengthEv @ 23 NONAME - _ZNK12TSatIconInfo12CodingSchemeEv @ 24 NONAME - _ZNK12TSatIconInfo14FileIdentifierEv @ 25 NONAME - _ZNK12TSatIconInfo6OffsetEv @ 26 NONAME - _ZNK12TSatIconInfo8IconSizeEv @ 27 NONAME - _ZTI18CSatRefreshMonitor @ 28 NONAME ; ## - _ZTI23CSatAllowRefreshMonitor @ 29 NONAME ; ## - _ZTV18CSatRefreshMonitor @ 30 NONAME ; ## - _ZTV23CSatAllowRefreshMonitor @ 31 NONAME ; ## - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/group/SatClient.mmp --- a/satengine/SatServer/SatClient/group/SatClient.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,58 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project SatClient -* -*/ - - -#include -#include -#include "../../inc/SatMacroes.h" - -TARGET SatClient.dll -TARGETTYPE dll -UID 0x1000008d 0x1000A834 - -CAPABILITY CAP_CLIENT_DLL -VENDORID VID_DEFAULT - -#ifdef ENABLE_SAT_LOGGING -EPOCSTACKSIZE 0x4000 // Logging needs more stack than default 8 kilos. -#endif - -SOURCEPATH ../src -SOURCE RSatSession.cpp -SOURCE CSatRefreshMonitor.cpp -SOURCE RSatRefresh.cpp -SOURCE CSatAllowRefreshMonitor.cpp -SOURCE rsatservice.cpp -SOURCE TSatIconInfo.cpp -SOURCE csatpluginmonitor.cpp - -USERINCLUDE ../inc -USERINCLUDE ../../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE ../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etelsat.lib -LIBRARY bafl.lib -LIBRARY fbscli.lib -LIBRARY CentralRepository.lib // For Central Repository - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/group/bld.inf --- a/satengine/SatServer/SatClient/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,24 +0,0 @@ -/* -* Copyright (c) 2002-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: Build information file for project SatClient -* -*/ - -PRJ_PLATFORMS -DEFAULT - -PRJ_MMPFILES -SatClient.mmp - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/inc/CSatAllowRefreshMonitor.h --- a/satengine/SatServer/SatClient/inc/CSatAllowRefreshMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,124 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Waits for the refresj query notification -* -*/ - - - -#ifndef CSATALLOWREFRESHMONITOR_H -#define CSATALLOWREFRESHMONITOR_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class RSatRefresh; - -// CLASS DECLARATION - -/** -* Active object to wait the refresh query notification. -* -* @lib SatClient.lib -* @since 2.6 -*/ -class CSatAllowRefreshMonitor : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aObserver Observer for refresh query. - * @param aRefresh Refresh sub-session. - */ - static CSatAllowRefreshMonitor* NewL( - MSatRefreshObserver& aObserver, - RSatRefresh& aRefresh ); - - /** - * Destructor. - */ - virtual ~CSatAllowRefreshMonitor(); - - public: // New functions - - /** - * Set files to be observed. - * @since 3.0 - * @param aObservedFiles List of files to be observed for refresh. - */ - void ObserveFiles( const TSatRefreshFiles& aObservedFiles ); - - /** - * Starts waiting for the refresh query. - */ - void Start(); - - protected: // Functions from base classes - - /** - * From CActive - */ - void RunL(); - - /** - * From CActive - * @param aStatus Request status. - */ - TInt RunError( TInt aError ); - - /** - * From CActive - */ - void DoCancel(); - - private: - - /** - * C++ default constructor. - */ - CSatAllowRefreshMonitor( - MSatRefreshObserver& aObserver, - RSatRefresh& aRefresh ); - - private: - - // Notified when query comes. - MSatRefreshObserver& iObserver; - - // Refresh sub-sesion. - RSatRefresh& iRefresh; - - // Changing files - TSatRefreshFiles iChangingFiles; - - // Package of chaning files. - TPckg iChangingFilesPckg; - - // Observed files - TSatRefreshFiles iObservedFiles; - - // Refresh type. - TSatRefreshType iType; - - // Refresh type package. - TPckg iTypePckg; - - }; - -#endif // CSATALLOWREFRESHMONITOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/inc/CSatRefreshMonitor.h --- a/satengine/SatServer/SatClient/inc/CSatRefreshMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,109 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Active object to monitor the refresh event. -* -*/ - - - -#ifndef CSATREFRESHMONITOR_H -#define CSATREFRESHMONITOR_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class RSatRefresh; - -// CLASS DECLARATION - -/** -* Active object for monitoring the refresh event. -* -* @lib SatClient -* @since 2.6 -*/ -class CSatRefreshMonitor : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aRefresh Refresh sub-session. - * @param aObserver Observer for refresh event. - */ - static CSatRefreshMonitor* NewL( - RSatRefresh& aRefresh, - MSatRefreshObserver& aObserver ); - - /** - * Destructor. - */ - virtual ~CSatRefreshMonitor(); - - public: // New functions - - /** - * Starts to monitor the refresh event. - * @since 2.6 - */ - void Start(); - - protected: // Functions from Base classes. - - /** - * From CActive. - */ - void RunL(); - - /** - * From CActive. - */ - void DoCancel(); - - private: - - /** - * C++ default constructor. - * @param aRefresh Refresh sub-session. - * @param aObserver Observer for refresh event. - */ - CSatRefreshMonitor( - RSatRefresh& aRefresh, - MSatRefreshObserver& aObserver ); - - private: // Data - // Observer - MSatRefreshObserver& iObserver; - - // Refresh sub session. - RSatRefresh& iRefresh; - - // Changed files - TSatRefreshFiles iChangedFiles; - - // Changed files package. - TPckg iChangedFilesPckg; - - // Refresh type. - TSatRefreshType iType; - - // Refresh type package. - TPckg iTypePckg; - }; - -#endif // CSATREFRESHMONITOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/inc/csatpluginmonitor.h --- a/satengine/SatServer/SatClient/inc/csatpluginmonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,136 +0,0 @@ -/* -* 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: Monitor the set up idle mote text P&S key. -* -*/ - - - -#ifndef CSATPLUGINMONITOR_H -#define CSATPLUGINMONITOR_H - -// INCLUDES -#include // For monitor the P&S key - -// CLASS DECLARATION -NONSHARABLE_CLASS( CSatPluginMonitor ) : public CActive - { - public: // Constructors and destructor - - /** - * Part of the two phased constuction - * - * @return Pointer to the created CSatPluginMonitor object - */ - static CSatPluginMonitor* NewL(); - - /** - * Destructor - */ - virtual ~CSatPluginMonitor(); - - public: // New function - - /** - * Start monitor the P&S key. - * - * @since 5.1 - * @param aStatus Request to be completed on update. - * @return Error code indicating the status of starting the monitor. - */ - TInt Start( TRequestStatus& aStatus ); - - /** - * Get idle mode text via P&S key. - * - * @since 5.1 - * @param aText the idle mode text. - * @return Error code indicating the status of GetIdleModeText. - */ - TInt GetIdleModeText( HBufC*& aText ); - - /** - * Get idle mode icon qualifier via P&S key. - * - * @since 5.1 - * @param aIconQualifier the idle mode icon qualifier. - * @return Error code indicating the status of GetIdleModeIconQualifier. - */ - TInt GetIdleModeIconQualifier( TInt& aIconQualifier ); - - /** - * Get idle mode icon id via P&S key. - * - * @since 5.1 - * @param aRecordNumber the icon mode icon id. - * @return Error code indicating the status of GetIdleModeIconId. - */ - TInt GetIdleModeIconId( TInt& aRecordNumber ); - - protected: // Functions from CActive - - /** - * From CActive. - * - * Handles the request completion. - */ - void RunL(); - - /** - * From CActive. - * - * Implements the cancel protocol. - */ - void DoCancel(); - - /** - * From CActive - * - * Handles a leave occurring in the request completion event - * handler RunL() - * @param aError Leave from RunL(). - * @return Error code - */ - TInt RunError( TInt aError ); - - private: // Constructors - - /** - * Part of the two phased construction - */ - void ConstructL(); - - /** - * Constructor to use in the object creation. - * Initializes the necessary data. - */ - CSatPluginMonitor(); - - private: // data - - /** - * Reference of idle application TRequestStatus. - * Notify the idle application when P&S key changed. - * - * Not own - */ - TRequestStatus* iIdleAppStatus; - - /** - * For monitor the P&S key. - */ - RProperty iIdleMode; - }; - -#endif // CSATPLUGINMONITOR_H \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/src/CSatAllowRefreshMonitor.cpp --- a/satengine/SatServer/SatClient/src/CSatAllowRefreshMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,207 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Active object for waiting the refresh query, -* -*/ - - - -// INCLUDE FILES -#include "CSatAllowRefreshMonitor.h" -#include "msatrefreshobserver.h" -#include "rsatrefresh.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatAllowRefreshMonitor::CSatAllowRefreshMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatAllowRefreshMonitor::CSatAllowRefreshMonitor( - MSatRefreshObserver& aObserver, - RSatRefresh& aRefresh ) : - CActive( CActive::EPriorityStandard ), - iObserver( aObserver ), - iRefresh( aRefresh ), - iChangingFiles(), - iChangingFilesPckg( iChangingFiles ), - iObservedFiles(), - iType( ERefreshTypeNotSet ), - iTypePckg( iType ) - { - LOG( SIMPLE, - "SATCLIENT: CSatAllowRefreshMonitor::CSatAllowRefreshMonitor calling" ) - - CActiveScheduler::Add( this ); - iObservedFiles.Zero(); - - LOG( SIMPLE, - "SATCLIENT: CSatAllowRefreshMonitor::CSatAllowRefreshMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatAllowRefreshMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatAllowRefreshMonitor* CSatAllowRefreshMonitor::NewL( - MSatRefreshObserver& aObserver, - RSatRefresh& aRefresh ) - { - LOG( SIMPLE, "SATCLIENT: CSatAllowRefreshMonitor::NewL calling" ) - - CSatAllowRefreshMonitor* self = - new ( ELeave ) CSatAllowRefreshMonitor( aObserver, aRefresh ); - - LOG( SIMPLE, "SATCLIENT: CSatAllowRefreshMonitor::NewL exiting" ) - return self; - } - -// Destructor -CSatAllowRefreshMonitor::~CSatAllowRefreshMonitor() - { - LOG( SIMPLE, - "SATCLIENT: CSatAllowRefreshMonitor::~CSatAllowRefreshMonitor calling" ) - - Cancel(); - iObservedFiles.Zero(); - - LOG( SIMPLE, - "SATCLIENT: CSatAllowRefreshMonitor::~CSatAllowRefreshMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatAllowRefreshMonitor::ObserveFiles -// Set files to be observed. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatAllowRefreshMonitor::ObserveFiles( - const TSatRefreshFiles& aObservedFiles ) - { - LOG( SIMPLE, "SATCLIENT: CSatAllowRefreshMonitor::ObserveFiles calling" ) - - iObservedFiles.Zero(); - - // Add list of observed files if given. - TInt observeFileCount( aObservedFiles.Length() ); - LOG2( SIMPLE, - "SATCLIENT: CSatAllowRefreshMonitor::ObserveFiles observeFileCount: %d", - observeFileCount ) - for ( TInt fileIndex = 0; fileIndex < observeFileCount; fileIndex++ ) - { - iObservedFiles.Append( aObservedFiles[ fileIndex ] ); - } - - LOG( SIMPLE, "SATCLIENT: CSatAllowRefreshMonitor::ObserveFiles exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatAllowRefreshMonitor::Start -// Starts the waiting of notification. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatAllowRefreshMonitor::Start() - { - LOG( SIMPLE, "SATCLIENT: CSatAllowRefreshMonitor::Start calling" ) - - if ( !IsActive() ) - { - LOG( SIMPLE, "SATCLIENT: CSatAllowRefreshMonitor::Start not Active" ) - iChangingFiles.Zero(); - - // Add list of observed files if given. - TInt observeFileCount( iObservedFiles.Length() ); - LOG2( SIMPLE, - "SATCLIENT: CSatAllowRefreshMonitor::Start observeFileCount: %d", - observeFileCount ) - for ( TInt fileIndex = 0; fileIndex < observeFileCount; fileIndex++ ) - { - iChangingFiles.Append( iObservedFiles[ fileIndex ] ); - } - - iRefresh.NotifyAllowRefresh( iTypePckg, iChangingFilesPckg, iStatus ); - SetActive(); - } - - LOG( SIMPLE, "SATCLIENT: CSatAllowRefreshMonitor::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatAllowRefreshMonitor::RunL -// Notifies the observer for the refresh query. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatAllowRefreshMonitor::RunL() - { - LOG( SIMPLE, "SATCLIENT: CSatAllowRefreshMonitor::RunL calling" ) - const TInt err( iStatus.Int() ); - - LOG2( SIMPLE, "SATCLIENT: CSatAllowRefreshMonitor::RunL, error: %i", err ) - - if ( KErrNone == err ) - { - const TBool response = iObserver.AllowRefresh( iType, iChangingFiles ); - iRefresh.AllowRefreshL( response ); - Start(); - } - else if ( KErrInUse != err && - KErrServerTerminated != err && - KErrCancel != err ) - { - Start(); - } - - LOG( SIMPLE, "SATCLIENT: CSatAllowRefreshMonitor::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatAllowRefreshMonitor::RunError -// Handles refresh monitor error. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CSatAllowRefreshMonitor::RunError( TInt aError ) - { - LOG2( SIMPLE, - "SATCLIENT: CSatAllowRefreshMonitor::RunError calling, error: %i", - aError ) - - iRefresh.CancelNotifyAllowRefresh( aError ); - - LOG( SIMPLE, "SATCLIENT: CSatAllowRefreshMonitor::RunError exiting" ) - return KErrNone; - } - -// ----------------------------------------------------------------------------- -// CSatAllowRefreshMonitor::DoCancels -// Cancels the notfication. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatAllowRefreshMonitor::DoCancel() - { - LOG( SIMPLE, "SATCLIENT: CSatAllowRefreshMonitor::DoCancel calling" ) - - iRefresh.CancelNotifyAllowRefresh(); - - LOG( SIMPLE, "SATCLIENT: CSatAllowRefreshMonitor::DoCancel exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/src/CSatRefreshMonitor.cpp --- a/satengine/SatServer/SatClient/src/CSatRefreshMonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,153 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Active object for monitoring the refresh event. -* -*/ - - - -// INCLUDE FILES -#include -#include - -#include "CSatRefreshMonitor.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatRefreshMonitor::CSatRefreshMonitor -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatRefreshMonitor::CSatRefreshMonitor( - RSatRefresh& aRefresh, - MSatRefreshObserver& aObserver ) : - CActive( CActive::EPriorityStandard ), - iObserver( aObserver ), - iRefresh( aRefresh ), - iChangedFiles(), - iChangedFilesPckg( iChangedFiles ), - iType( ERefreshTypeNotSet ), - iTypePckg( iType ) - { - LOG( SIMPLE, "SATCLIENT: CSatRefreshMonitor::CSatRefreshMonitor calling" ) - - CActiveScheduler::Add( this ); - - LOG( SIMPLE, "SATCLIENT: CSatRefreshMonitor::CSatRefreshMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatRefreshMonitor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatRefreshMonitor* CSatRefreshMonitor::NewL( - RSatRefresh& aRefresh, - MSatRefreshObserver& aObserver ) - { - LOG( SIMPLE, "SATCLIENT: CSatRefreshMonitor::NewL calling" ) - - CSatRefreshMonitor* self = - new ( ELeave ) CSatRefreshMonitor( aRefresh, aObserver ); - - LOG( SIMPLE, "SATCLIENT: CSatRefreshMonitor::NewL exiting" ) - return self; - } - -// Destructor -CSatRefreshMonitor::~CSatRefreshMonitor() - { - LOG( SIMPLE, "SATCLIENT: CSatRefreshMonitor::~CSatRefreshMonitor calling" ) - - Cancel(); - - LOG( SIMPLE, "SATCLIENT: CSatRefreshMonitor::~CSatRefreshMonitor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatRefreshMonitor::Start -// Starts monitoring the refresh event. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatRefreshMonitor::Start() - { - LOG( SIMPLE, "SATCLIENT: CSatRefreshMonitor::Start calling" ) - - if ( !IsActive() ) - { - LOG( SIMPLE, "SATCLIENT: CSatRefreshMonitor::Start set active" ) - iRefresh.NotifyRefresh( iTypePckg, iChangedFilesPckg, iStatus ); - SetActive(); - } - - LOG( SIMPLE, "SATCLIENT: CSatRefreshMonitor::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatRefreshMonitor::RunL -// Notifies the observer about refresh event. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatRefreshMonitor::RunL() - { - LOG( SIMPLE, "SATCLIENT: CSatRefreshMonitor::RunL calling" ) - const TInt err( iStatus.Int() ); - - if ( KErrNone == err ) - { - iObserver.Refresh( iType, iChangedFiles ); - Start(); - } - else if ( KErrInUse == err ) - { - LOG( SIMPLE, "SATCLIENT: Attempt to restart, cancelled" ) - } - else if ( KErrServerTerminated == err ) - { - LOG( SIMPLE, "SATCLIENT: Server terminated" ) - } - else if ( KErrCancel != err ) - { - LOG2( SIMPLE, "SATCLIENT: RunL error: %i", err ) - Start(); - } - else - { - LOG( SIMPLE, "SATCLIENT: Cancelled" ) - } - - LOG( SIMPLE, "SATCLIENT: CSatRefreshMonitor::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatRefreshMonitor::DoCancel -// Cancels the request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatRefreshMonitor::DoCancel() - { - LOG( SIMPLE, "SATCLIENT: CSatRefreshMonitor::DoCancel calling" ) - - iRefresh.CancelNotifyRefresh(); - - LOG( SIMPLE, "SATCLIENT: CSatRefreshMonitor::DoCancel exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/src/RSatRefresh.cpp --- a/satengine/SatServer/SatClient/src/RSatRefresh.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,349 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Refresh notification sub-session. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "SatSOpcodes.h" -#include "CSatAllowRefreshMonitor.h" -#include "CSatRefreshMonitor.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RSatRefresh::RSatRefresh -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C RSatRefresh::RSatRefresh( MSatRefreshObserver& aObserver ) : - RSubSessionBase(), - iObserver( aObserver ), - iAllowMonitor( NULL ), - iRefreshMonitor( NULL ) - { - } - -// ----------------------------------------------------------------------------- -// RSatRefresh::OpenL -// Connects a sub-session to SatServer. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatRefresh::OpenL( const RSatSession& aSession ) - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::OpenL calling" ) - - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, - "SATCLIENT: RSatRefresh::OpenL UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - TIpcArgs arguments( 0, 0, 0, 0 ); - User::LeaveIfError( - CreateSubSession( aSession, ESatSOpenRefreshSubSession, arguments ) ); - - LOG( SIMPLE, "SATCLIENT: RSatRefresh::OpenL exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatRefresh::Close -// Closes the sub-session -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatRefresh::Close() - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::Close calling" ) - - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, - "SATCLIENT: RSatRefresh::Close UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - delete iRefreshMonitor; - delete iAllowMonitor; - - iRefreshMonitor = NULL; - iAllowMonitor = NULL; - - CloseSubSession( ESatSCloseRefreshSubSession ); - - LOG( SIMPLE, "SATCLIENT: RSatRefresh::Close exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatRefresh::NotifyFileChangeL -// Starts monitoring refresh events. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatRefresh::NotifyFileChangeL() - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::NotifyFileChangeL calling" ) - - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, - "SATCLIENT: RSatRefresh::NotifyFileChangeL UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - if ( !iAllowMonitor ) - { - LOG( SIMPLE, - "SATCLIENT: RSatRefresh::NotifyFileChangeL iAllowMonitor false" ) - iAllowMonitor = CSatAllowRefreshMonitor::NewL( iObserver, *this ); - iAllowMonitor->Start(); - } - else - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::NotifyFileChangeL, \ - re-start allowMonitor" ) - TSatRefreshFiles empty; - iAllowMonitor->ObserveFiles( empty ); - iAllowMonitor->Start(); - } - - if ( !iRefreshMonitor ) - { - LOG( SIMPLE, - "SATCLIENT: RSatRefresh::NotifyFileChangeL iRefreshMonitor false" ) - iRefreshMonitor = CSatRefreshMonitor::NewL( *this, iObserver ); - iRefreshMonitor->Start(); - } - else - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::NotifyFileChangeL, \ - re-start RefreshMonitor" ) - iRefreshMonitor->Start(); - } - - LOG( SIMPLE, "SATCLIENT: RSatRefresh::NotifyFileChangeL exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatRefresh::NotifyFileChangeL -// Starts monitoring refresh events. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatRefresh::NotifyFileChangeL( - const TSatRefreshFiles& aObservedFiles ) - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::NotifyFileChangeL(1) calling" ) - - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, - "SATCLIENT: RSatRefresh::NotifyFileChangeL(1) UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - if ( !iAllowMonitor ) - { - LOG( SIMPLE, - "SATCLIENT: RSatRefresh::NotifyFileChangeL(1) iAllowMonitor false" ) - iAllowMonitor = CSatAllowRefreshMonitor::NewL( iObserver, *this ); - iAllowMonitor->ObserveFiles( aObservedFiles ); - iAllowMonitor->Start(); - } - else - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::NotifyFileChangeL(1), \ - re-start allowMonitor" ) - iAllowMonitor->ObserveFiles( aObservedFiles ); - iAllowMonitor->Start(); - } - - if ( !iRefreshMonitor ) - { - LOG( SIMPLE, - "SATCLIENT: RSatRefresh::NotifyFileChangeL(1) iRefreshMonitor false" ) - iRefreshMonitor = CSatRefreshMonitor::NewL( *this, iObserver ); - iRefreshMonitor->Start(); - } - else - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::NotifyFileChangeL(1), \ - re-start RefreshMonitor" ) - iRefreshMonitor->Start(); - } - - LOG( SIMPLE, "SATCLIENT: RSatRefresh::NotifyFileChangeL(1) exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatRefresh::RefreshEFRead -// Indicates client's refresh actions complete. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatRefresh::RefreshEFRead( TBool aAdditionEFRead ) const - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::RefreshEFRead calling" ) - - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, - "SATCLIENT: RSatRefresh::RefreshEFRead UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - TPckg additionEFReadPckg( aAdditionEFRead ); - TIpcArgs arguments( &additionEFReadPckg ); - - SendReceive( ESatSRefreshEFRead, arguments ); - - LOG( SIMPLE, "SATCLIENT: RSatRefresh::RefreshEFRead exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatRefresh::Cancel -// Cancels both requests. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatRefresh::Cancel() const - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::Cancel calling" ) - - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, - "SATCLIENT: RSatRefresh::Cancel UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - CancelNotifyAllowRefresh(); - CancelNotifyRefresh(); - - LOG( SIMPLE, "SATCLIENT: RSatRefresh::Cancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatRefresh::NotifyAllowRefresh -// Issues the request to be notified when refresh query is made. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RSatRefresh::NotifyAllowRefresh( - TPckg& aType, - TPckg& aChangingFiles, - TRequestStatus& aStatus ) const - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::NotifyAllowRefresh calling" ) - - TIpcArgs arguments( &aChangingFiles, &aType ); - SendReceive( ESatSNotifyAllowRefresh, arguments, aStatus ); - - LOG( SIMPLE, "SATCLIENT: RSatRefresh::NotifyAllowRefresh exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatRefresh::AllowRefreshL -// Sends client's response. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RSatRefresh::AllowRefreshL( TBool aAllow ) const - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::AllowRefreshL calling" ) - - TPckg allowPckg( aAllow ); - TIpcArgs arguments( &allowPckg ); - User::LeaveIfError( SendReceive( ESatSRefreshAllowed, arguments ) ); - - LOG( SIMPLE, "SATCLIENT: RSatRefresh::AllowRefreshL exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatRefresh::CancelNotifyAllowRefresh -// Cancels the request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RSatRefresh::CancelNotifyAllowRefresh( TInt aError ) const - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::CancelNotifyAllowRefresh calling" ) - - if ( iAllowMonitor ) - { - LOG( SIMPLE, - "SATCLIENT: RSatRefresh::CancelNotifyAllowRefresh iAllowMonitor true" ) - TIpcArgs arguments( aError ); - SendReceive( ESatSNotityAllowRefreshCancel, arguments ); - } - - LOG( SIMPLE, "SATCLIENT: RSatRefresh::CancelNotifyAllowRefresh exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatRefresh::NotifyRefresh -// Issues the request to be notified when refresh is made. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RSatRefresh::NotifyRefresh( - TPckg& aType, - TPckg& aChangedFiles, - TRequestStatus& aStatus ) const - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::NotifyRefresh calling" ) - - TIpcArgs arguments( &aChangedFiles, &aType ); - SendReceive( ESatSNotifyRefresh, arguments, aStatus ); - - LOG( SIMPLE, "SATCLIENT: RSatRefresh::NotifyRefresh exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatRefresh::CancelNotifyRefresh -// Cancels the request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RSatRefresh::CancelNotifyRefresh() const - { - LOG( SIMPLE, "SATCLIENT: RSatRefresh::CancelNotifyRefresh calling" ) - - if ( iRefreshMonitor ) - { - LOG( SIMPLE, - "SATCLIENT: RSatRefresh::CancelNotifyAllowRefresh iRefreshMonitor \ - true" ) - TIpcArgs arguments( 0 ); - SendReceive( ESatSCancelNotifyRefresh, arguments ); - } - - LOG( SIMPLE, "SATCLIENT: RSatRefresh::CancelNotifyRefresh exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/src/RSatSession.cpp --- a/satengine/SatServer/SatClient/src/RSatSession.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,133 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Session class to connect SatServer. -* -*/ - - -#include -#include "SatSOpcodes.h" -#include "SatServerFactory.h" -#include "SatLog.h" - -_LIT( KSatSessionMtx, "SATSESSIONMTX" ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RSatSession::RSatSession -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C RSatSession::RSatSession() : - RSessionBase() - { - LOG( SIMPLE, "SATCLIENT: RSatSession::RSatSession calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatSession::ConnectL -// Connects to SatServer. -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatSession::ConnectL() - { - LOG( SIMPLE, "SATCLIENT: RSatSession::ConnectL calling" ) - - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, - "SATCLIENT: RSatSession::ConnectL UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - RMutex sessionStartMutex; - TInt createErr( sessionStartMutex.CreateGlobal( KSatSessionMtx ) ); - if ( createErr ) - { - TInt openErr( sessionStartMutex.OpenGlobal( KSatSessionMtx ) ); - User::LeaveIfError( openErr ); - LOG( SIMPLE, "SATCLIENT: Opened SATSESSIONMTX" ) - } - - LOG( SIMPLE, "SATCLIENT: Asking ownership of SATSESSIONMTX" ) - sessionStartMutex.Wait(); - LOG( SIMPLE, "SATCLIENT: Got ownership of SATSESSIONMTX" ) - - // Create new session for SatServer. - TInt error( CreateSession( KSatServerName, Version(), KSatMessageSlots ) ); - - // Server may not be fully started, so let's retry after synchronization. - if ( KErrNone != error ) - { - LOG2( SIMPLE, - "SATCLIENT: RSatSession::ConnectL CreateSession %d", error ) - - // Starts a new process, loading SAT Server. - TBuf<1> arguments; - RProcess satProcess; - - if ( KErrNone == satProcess.Create( KSatServerNameAndPath, arguments ) ) - { - TRequestStatus rendezvousStatus; - - satProcess.Rendezvous( rendezvousStatus ); - satProcess.Resume(); - User::WaitForRequest( rendezvousStatus ); - LOG2( SIMPLE, - "SATCLIENT: RSatSession::ConnectL Rendezvous %d", - rendezvousStatus.Int() ) - satProcess.Close(); - } - - // Retry session creation. - error = CreateSession( KSatServerName, - Version(), KSatMessageSlots ); - LOG2( DETAILED, - "SATCLIENT: RSatSession::ConnectL CreateSession %d", - error ) - } - - LOG( SIMPLE, "SATCLIENT: Releasing ownership of SATSESSIONMTX" ) - sessionStartMutex.Signal(); - sessionStartMutex.Close(); - User::LeaveIfError( error ); - - LOG( SIMPLE, "SATCLIENT: RSatSession::ConnectL exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatSession::Version -// Returns the version of this API. -// ----------------------------------------------------------------------------- -// -EXPORT_C TVersion RSatSession::Version() const - { - LOG( SIMPLE, "SATCLIENT: RSatSession::Version calling-exiting" ) - - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, - "SATCLIENT: RSatSession::Version UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - return TVersion( - KSatServerMajorVersionNumber, - KSatServerMinorVersionNumber, - KSatServerBuildVersionNumber ); - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/src/TSatIconInfo.cpp --- a/satengine/SatServer/SatClient/src/TSatIconInfo.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,180 +0,0 @@ -/* -* Copyright (c) 2002-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: Capsulates the icon info from the SIM. -* -*/ - - -// INCLUDE FILES -#include -#include - -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// TSatIconInfo::TSatIconInfo -// C++ default constructor can NOT contain any code, that -// might leave. -// The aIconDescription has to be in following format: (ETSI TS 131 102 V4.10.0) -// 1 byte: Icon width -// 2 byte: Icon height -// 3 byte: Image coding scheme -// 4 byte: High byte of file identifier -// 5 byte: Low byte of file identifier. -// 6 byte: High byte of offset of the icon in EF. -// 7 byte: Low byte of offset of the icon in EF. -// 8 byte: High byte of icon length. -// 9 byte: Low byte of icon lenght. -// ----------------------------------------------------------------------------- -// - -TSatIconInfo::TSatIconInfo() : - iSize(), - iCodingScheme( static_cast( 0 ) ), - iFileIdentifier( 0 ), - iOffset( 0 ), - iLength( 0 ) - { - LOG( SIMPLE, "SATCLIENT: TSatIconInfo::TSatIconInfo calling-exits" ) - } - -// ----------------------------------------------------------------------------- -// TSatIconInfo::IconSize -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TSize TSatIconInfo::IconSize() const - { - LOG( SIMPLE, "SATCLIENT: TSatIconInfo::IconSize calling-exits" ) - return iSize; - } - -// ----------------------------------------------------------------------------- -// TSatIconInfo::CodingScheme -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TSatIconInfo::TCodingScheme TSatIconInfo::CodingScheme() const - { - LOG( SIMPLE, "SATCLIENT: TSatIconInfo::CodingScheme calling-exits" ) - return iCodingScheme; - } - -// ----------------------------------------------------------------------------- -// TSatIconInfo::FileIdentifier -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TUint16 TSatIconInfo::FileIdentifier() const - { - LOG2( SIMPLE, - "SATCLIENT: TSatIconInfo::FileIdentifier calling-exits, iFileIdentifier: %i", - iFileIdentifier ) - return iFileIdentifier; - } - -// ----------------------------------------------------------------------------- -// TSatIconInfo::Offset -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TUint16 TSatIconInfo::Offset() const - { - LOG2( SIMPLE, - "SATCLIENT: TSatIconInfo::Offset calling-exits, iOffset: %i", - iOffset ) - return iOffset; - } - -// ----------------------------------------------------------------------------- -// TSatIconInfo::DataLength -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TUint16 TSatIconInfo::DataLength() const - { - LOG2( SIMPLE, - "SATCLIENT: TSatIconInfo::DataLength calling-exits, iLength: %i", - iLength ) - return iLength; - } - -// ----------------------------------------------------------------------------- -// TSatIconInfo::SetIconSize -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatIconInfo::SetIconSize( const TSize aIconSize ) - { - LOG3( SIMPLE, - "SATCLIENT: TSatIconInfo::SetIconSize calling-exits aIconSize: x=%i, y=%i", - aIconSize.iWidth, aIconSize.iHeight ) - iSize = aIconSize; - } - -// ----------------------------------------------------------------------------- -// TSatIconInfo::SetCodingScheme -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatIconInfo::SetCodingScheme( const TCodingScheme aCodingScheme ) - { - LOG2( SIMPLE, - "SATCLIENT: TSatIconInfo::SetCodingScheme calling-exits, aCodingScheme: %i", - aCodingScheme ) - iCodingScheme = aCodingScheme; - } - -// ----------------------------------------------------------------------------- -// TSatIconInfo::SetFileIdentifier -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatIconInfo::SetFileIdentifier( const TUint16 aFileIdentifier ) - { - LOG2( SIMPLE, - "SATCLIENT: TSatIconInfo::SetFileIdentifier calling-exits, aFileIdentifier: %i", - aFileIdentifier ) - iFileIdentifier = aFileIdentifier; - } - -// ----------------------------------------------------------------------------- -// TSatIconInfo::SetOffset -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatIconInfo::SetOffset( const TUint16 aOffset) - { - LOG2( SIMPLE, - "SATCLIENT: TSatIconInfo::SetOffset calling-exiting, aOffset: %i", - aOffset ) - iOffset = aOffset; - } - -// ----------------------------------------------------------------------------- -// TSatIconInfo::SetDataLength -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void TSatIconInfo::SetDataLength( const TUint16 aDataLength ) - { - LOG2( SIMPLE, - "SATCLIENT: TSatIconInfo::SetDataLength calling-exiting aDataLength: %i", - aDataLength ) - iLength = aDataLength; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/src/csatpluginmonitor.cpp --- a/satengine/SatServer/SatClient/src/csatpluginmonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,236 +0,0 @@ -/* -* 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: Monitor the set up idle mote text P&S key. -* -*/ - - -#include -#include -#include // For monitor the P&S key - -#include "csatpluginmonitor.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave -// ----------------------------------------------------------------------------- -// -CSatPluginMonitor* CSatPluginMonitor::NewL() - { - LOG( SIMPLE, "CSatPluginMonitor::NewL calling" ) - - CSatPluginMonitor* self = new ( ELeave ) CSatPluginMonitor(); - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "CSatPluginMonitor::NewL exits" ) - return self; - } -// ----------------------------------------------------------------------------- -// Destructor -// Cancels and deletes -// all the dynamic content -// ----------------------------------------------------------------------------- -// -CSatPluginMonitor::~CSatPluginMonitor() - { - LOG( SIMPLE, "CSatPluginMonitor::~CSatPluginMonitor calling" ) - iIdleAppStatus = NULL; - Cancel(); - iIdleMode.Close(); - LOG( SIMPLE, "CSatPluginMonitor::~CSatPluginMonitor exits" ) - } - -// ----------------------------------------------------------------------------- -// Start monitor the P&S key. -// ----------------------------------------------------------------------------- -// -TInt CSatPluginMonitor::Start( TRequestStatus& aStatus ) - { - LOG( SIMPLE, "CSatPluginMonitor::StartMonitor calling" ) - TInt err ( KErrNotReady ); - - if ( !iIdleAppStatus && !IsActive() ) - { - aStatus = KRequestPending; - iIdleAppStatus = &aStatus; - iIdleMode.Subscribe( iStatus ); - SetActive(); - err = KErrNone; - LOG( DETAILED, "CSatPluginMonitor::StartMonitor subscribe the P&S key" ) - } - - LOG2( SIMPLE, "CSatPluginMonitor::StartMonitor exits, err: %d", err ) - return err; - } - -// ----------------------------------------------------------------------------- -// Get idle mode text -// ----------------------------------------------------------------------------- -// -TInt CSatPluginMonitor::GetIdleModeText( HBufC*& aText ) - { - LOG( SIMPLE, "CSatPluginMonitor::GetIdleModeText calling" ) - TInt err ( KErrNoMemory ); - - // Make the function no-leave. - aText = HBufC::New( RSat::KIdleModeTextMaxSize ); - if( aText ) - { - TPtr txtPtr( aText->Des() ); - err = RProperty::Get( KPSUidSatServerInternal, - KSatIdleModeText, - txtPtr ); - if ( KErrNone != err ) - { - delete aText; - aText = NULL; - } - } - LOG2( SIMPLE, - "SATCLIENT::GetSetupIdleModeTextL text exits, error: %i", - err ) - return err; - } - -// ----------------------------------------------------------------------------- -// Get idle mode icon qualifier -// ----------------------------------------------------------------------------- -// -TInt CSatPluginMonitor::GetIdleModeIconQualifier( TInt& aIconQualifier ) - { - LOG( SIMPLE, "CSatPluginMonitor::GetIdleModeIconQualifier calling" ) - TInt err( KErrNone ); - err = RProperty::Get( KPSUidSatServerInternal, - KSatIdleModeTextIconQualifier, - aIconQualifier ); - LOG2( DETAILED, - "SATCLIENT::GetSetupIdleModeTextL iconQualifier error: %i", - err ) - LOG2( SIMPLE, - "SATCLIENT::GetSetupIdleModeTextL exits, iconQualifier: %i", - aIconQualifier ) - return err; - } - -// ----------------------------------------------------------------------------- -// Get idle mode icon id -// ----------------------------------------------------------------------------- -// -TInt CSatPluginMonitor::GetIdleModeIconId( TInt& aRecordNumber ) - { - LOG( SIMPLE, "CSatPluginMonitor::GetIdleModeIconId calling" ) - TInt err( KErrNone ); - err = RProperty::Get( KPSUidSatServerInternal, - KSatIdleModeTextIconId, - aRecordNumber ); - LOG2( DETAILED, - "SATCLIENT::GetIdleModeIconId icon id error: %i", - err ) - LOG2( SIMPLE, - "SATCLIENT: RSatService:GetIdleModeIconId exits, id: %i", - aRecordNumber ) - - return err; - } - - -// ----------------------------------------------------------------------------- -// Handles the request completion. -// ----------------------------------------------------------------------------- -// -void CSatPluginMonitor::RunL() - { - LOG2( SIMPLE, "SATCLIENT::CSatPluginMonitor::RunL calling, \ - iIdleAppStatus: %i", iIdleAppStatus ) - - if ( iIdleAppStatus ) - { - // Complete the request. - User::RequestComplete( iIdleAppStatus, iStatus.Int() ); - LOG2( DETAILED, "CSatPluginMonitor::RunL error: %i", iStatus.Int() ); - - iIdleAppStatus = NULL; - } - - LOG( SIMPLE, "SATCLIENT::CSatPluginMonitor::RunL exits" ) - } - -// ----------------------------------------------------------------------------- -// Cancels the pending request -// ----------------------------------------------------------------------------- -// -void CSatPluginMonitor::DoCancel() - { - LOG( SIMPLE, "CSatPluginMonitor::DoCancel calling" ) - if ( iIdleAppStatus ) - { - User::RequestComplete( iIdleAppStatus, KErrCancel ); - iIdleMode.Cancel(); - - iIdleAppStatus = NULL; - } - LOG( SIMPLE, "CSatPluginMonitor::DoCancel exits" ) - } - -// ----------------------------------------------------------------------------- -// Handles a leave occurring in the request completion event handler RunL() -// ----------------------------------------------------------------------------- -// -TInt CSatPluginMonitor::RunError( TInt aError ) - { - LOG2( SIMPLE, "CSatPluginMonitor::RunError calling, error: %i", aError ) - if ( iIdleAppStatus ) - { - // Complete the request. - User::RequestComplete( iIdleAppStatus, aError ); - iIdleMode.Cancel(); - - iIdleAppStatus = NULL; - } - LOG( SIMPLE, "CSatPluginMonitor::RunError exits" ) - return aError; - } -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave -// ----------------------------------------------------------------------------- -// -void CSatPluginMonitor::ConstructL() - { - LOG( SIMPLE, "CSatPluginMonitor::ConstructL calling" ) - - TInt err = iIdleMode.Attach( KPSUidSatServerInternal, - KSatIdleModeTextIconQualifier ); - LOG2( DETAILED, "CSatPluginMonitor::ConstructL err: %i, exits", err ) - - User::LeaveIfError( err ); - } - -// ----------------------------------------------------------------------------- -// Default constructor -// ----------------------------------------------------------------------------- -// -CSatPluginMonitor::CSatPluginMonitor() : - CActive( EPriorityStandard ) - { - LOG( SIMPLE, "CSatPluginMonitor::ConstructL calling" ) - CActiveScheduler::Add( this ); - LOG( SIMPLE, "CSatPluginMonitor::ConstructL exits" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatClient/src/rsatservice.cpp --- a/satengine/SatServer/SatClient/src/rsatservice.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,582 +0,0 @@ -/* -* Copyright (c) 2002-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: Sub-session for accessing icon data in SIM. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include -#include -#include -#include - -#include "tsatinternaliconinfo.h" -#include "SatSOpcodes.h" -#include "SatLog.h" -#include "SATPrivateCRKeys.h" -#include "csatpluginmonitor.h" - -// CONSTANTS -// Length of the one icon info, -// defined in chapter 4.6.1.1 ETSI TS 131 102 V4.10.0 (2003-09) -const TInt KInfoLength = 9; -const TInt KMaxIconSizeNotRead = -1; - -// Icon description must follow ETSI TS 131 102 V4.10.0 specification -const TUint8 KBitsInByte( 8 ); -const TUint8 KIconWidth( 0 ); -const TUint8 KIconHeigth( 1 ); -const TUint8 KImageCodingScheme( 2 ); -const TUint8 KHighFileId( 3 ); -const TUint8 KLowFileId( 4 ); -const TUint8 KHighIconOffset( 5 ); -const TUint8 KLowIconOffset( 6 ); -const TUint8 KHighIconLength( 7 ); -const TUint8 KLowIconLength( 8 ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RSatService::RSatService -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C RSatService::RSatService() : - RSubSessionBase(), - iMaxIconDataSize( KMaxIconSizeNotRead ) - { - } - -// ----------------------------------------------------------------------------- -// RSatService::OpenL -// Connects a sub-session to SatServer. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatService::OpenL( const RSatSession& aSession ) - { - LOG( SIMPLE, "SATCLIENT: RSatService::OpenL calling" ) - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, - "SATCLIENT: RSatService::OpenL UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - const TIpcArgs args( TIpcArgs::ENothing ); - User::LeaveIfError( - CreateSubSession( aSession, ESatSOpenIconSubSession, args ) ); - - TInt err( KErrNone ); - CRepository* repository = NULL; - - // Which UID to monitor. - TRAP( err, repository = CRepository::NewL( KCRUidSatServer ); ); - LOG2( SIMPLE, - "SATCLIENT: RSatService::OpenL: new CRepository err: %d", - err ) - - if ( repository ) - { - err = repository->StartTransaction( - CRepository::EReadWriteTransaction ); - LOG2( SIMPLE, - "SATCLIENT: RSatService::OpenL StartTransaction err: %d", - err ) - if ( KErrNone == err ) - { - err = repository->Get( KSatMaxIconDataSize, iMaxIconDataSize ); - LOG2( SIMPLE, - "SATCLIENT: RSatService::OpenL: GetMaxIconDataSize err: %d", - err ) - } - - LOG2( SIMPLE, - "SATCLIENT: RSatService::OpenL Iconsize limit:%d", - iMaxIconDataSize ) - - delete repository; - repository = NULL; - } - - // Monitor the idle mode text - iSatPluginMonitor = CSatPluginMonitor::NewL(); - - LOG( SIMPLE, "SATCLIENT: RSatService::OpenL exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatService::Close -// Closes the sub-session -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatService::Close() - { - LOG( SIMPLE, "SATCLIENT: RSatService::Close calling" ) - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, - "SATCLIENT: RSatService::Close UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - delete iSatPluginMonitor; - iSatPluginMonitor = NULL; - CloseSubSession( ESatSCloseIconSubSession ); - - LOG( SIMPLE, "SATCLIENT: RSatService::Close exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatService::NotifySetupIdleModeTextChange -// Get notified of idle mode text change. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TInt RSatService::NotifySetupIdleModeTextChange( - TRequestStatus& aStatus ) - { - TInt err( KErrNotReady ); - LOG( SIMPLE, - "SATCLIENT: RSatService::NotifySetupIdleModeTextChange calling" ) - - // New the SATMonitor to monitor the P&S key. - // IsActive checked also here to avoid a Codescanner warning. - if ( iSatPluginMonitor && !iSatPluginMonitor->IsActive() ) - { - err = iSatPluginMonitor->Start( aStatus ); - } - LOG( SIMPLE, - "SATCLIENT: RSatService::NotifySetupIdleModeTextChange exiting" ) - - return err; - } - -// ----------------------------------------------------------------------------- -// RSatService::NotifySetupIdleModeTextChangeCancel -// Cancel notified of idle mode text change. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatService::NotifySetupIdleModeTextChangeCancel() - { - LOG( SIMPLE, - "SATCLIENT: RSatService::NotifySetupIdleModeTextChangeCancel calling" ) - - if ( iSatPluginMonitor ) - { - iSatPluginMonitor->Cancel(); - } - - LOG( SIMPLE, - "SATCLIENT: RSatService::NotifySetupIdleModeTextChangeCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatService::GetSetupIdleModeTextL -// Get text after bootup -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool RSatService::GetSetupIdleModeTextL( HBufC*& aText, - TSatIconQualifier& aIconQualifier, - TUint8& aRecordNumber ) - { - LOG( SIMPLE, "SATCLIENT: RSatService::GetSetupIdleModeTextL calling" ) - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, "SATCLIENT: RSatService::GetSetupIdleModeTextL \ - UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - TBool ret ( ETrue ); - TSatIconQualifier satIconQualifier( ESatIconNoIcon ); - TUint8 satRecordNumber( NULL ); - TInt iconQualifier( KSatIdleIconQInit ); - TInt recordNumber( KErrNotFound ); - - // 1. Read icon qualifier, icon id and text - if ( iSatPluginMonitor ) - { - LOG( SIMPLE, "SATCLIENT: RSatService::GetSetupIdleModeTextL read key" ) - TInt result = - iSatPluginMonitor->GetIdleModeIconQualifier( iconQualifier ); - - // Read icon id. - if ( KSatIdleIconQNoIcon != iconQualifier ) - { - result = iSatPluginMonitor->GetIdleModeIconId( recordNumber ); - } - // Read the text on default. - result = iSatPluginMonitor->GetIdleModeText( aText ); - - } - - // 2. Convert icon qualifier. - // Form enum TSatIdleModeTextIconQualifierValue defined in - // satinternalpskeys.h to enum TSatIconQualifier defined in rsatservice.h - // NOTE: the value are different. - switch ( iconQualifier ) - { - case KSatIdleIconQInit: // go through - case KSatIdleIconQNoIcon: - { - satIconQualifier = RSatService::ESatIconNoIcon; - break; - } - case KSatIdleIconQSelfExplanatory: - { - satIconQualifier = RSatService::ESatIconSelfExplanatory; - break; - } - case KSatIdleIconQNotSelfExplanatory: - { - satIconQualifier = RSatService::ESatIconNotSelfExplanatory; - break; - } - default: - { - satIconQualifier = RSatService::ESatIconNoIcon; - break; - } - } - - // 3. Convert icon id - if ( 0 <= recordNumber ) - { - // The PS key is published in TInt, and the value in etelsat.h is TUint8 - // the revode number have to be cast to TUint8 - satRecordNumber = static_cast( recordNumber ); - LOG2( SIMPLE, "SATCLIENT: RSatService::GetSetupIdleModeTextL\ - convert icon id: %i", satRecordNumber ) - } - else - { - satIconQualifier = RSatService::ESatIconNoIcon; - satRecordNumber = NULL; - } - - // 4. Inspect icon qualifier, icon id and text. - if ( RSatService::ESatIconNoIcon == satIconQualifier) - { - LOG( SIMPLE, - "SATCLIENT: RSatService::GetSetupIdleModeTextL ESatIconNoIcon" ) - aIconQualifier = ESatIconNoIcon; - aRecordNumber = NULL; - } - else if ( RSatService::ESatIconNotSelfExplanatory == satIconQualifier && - !aText ) - { - LOG( SIMPLE, - "SATCLIENT: RSatService::GetSetupIdleModeTextL \ - ESatIconNotSelfExplanatory but no text" ) - User::LeaveIfError( KErrNotFound ); - } - else - { - aIconQualifier = satIconQualifier; - aRecordNumber = satRecordNumber; - } - - LOG( SIMPLE, "SATCLIENT: RSatService::GetSetupIdleModeTextL exiting" ) - return ret; - } - - -// ----------------------------------------------------------------------------- -// RSatService::GetIconInfoL -// Sends aRecordNumber to SatServer and waits for the icon informations. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatService::GetIconInfoL( - TUint8 aRecordNumber, - RIconEf& aIconEf ) const - { - LOG( SIMPLE, "SATCLIENT: RSatService::GetIconInfoL calling" ) - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, - "SATCLIENT: RSatService::GetIconInfoL UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - // Inform client that icons are not supported at all - if ( 0 >= iMaxIconDataSize ) - { - LOG( SIMPLE, "SATCLIENT:M RSatService::GetIconInfoL KErrNotSupported" ) - User::Leave( KErrNotSupported ); - } - - TPckgC recordNumberPckg( aRecordNumber ); - RSat::TIcon iconEf; - TPckg iconEfPckg( iconEf ); - - const TIpcArgs args( &recordNumberPckg, &iconEfPckg ); - - // Get the icon info - const TInt error( SendReceive( ESatSGetIconInfo, args ) ); - - LOG2( SIMPLE, "SATCLIENT: RSatService::GetIconInfo with error %i", error ) - User::LeaveIfError( error ); - - // Check that data is valid. - CheckInfoValidityL( iconEf ); - - if ( 0 < iconEf.Length() ) - { - LOG( SIMPLE, - "SATCLIENT: RSatService::GetIconInfoL iconEf.Length() > 0" ) - const TInt infoCount( iconEf[0] ); - LOG2( SIMPLE, - "SATCLIENT: RSatService::GetIconInfo infoCount: %i", infoCount ) - for ( TInt i = 0; i < infoCount; i++ ) - { - // Icon info is 9 bytes long and first byte is number of - // icon info descriptors. - const TInt KStart( i * KInfoLength + 1 ); - - // Extract the info and append to aIconEf. - const TPtrC8 info( iconEf.Mid( KStart, KInfoLength ) ); - - TSatIconInfo satIconInfo; - SetIconInfoL( satIconInfo, info ); - aIconEf.AppendL( satIconInfo ); - } - - } - - LOG( SIMPLE, "SATCLIENT: RSatService::GetIconInfoL exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatService::GetIconL -// Sends icon information to SatServer and waits the icon bitmap handle. -// SatServer is notified when the bitmap is duplicated, so that server knows -// that it can free the bitmap. If the server does not get the notification -// of bitmap duplication then server will free the bitmap when next -// icon is fetched. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C CFbsBitmap* RSatService::GetIconL( - const TSatIconInfo& aIconInfo ) const - { - LOG( SIMPLE, "SATCLIENT: RSatService::GetIconL calling" ) - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, - "SATCLIENT: RSatService::GetIconL UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - CFbsBitmap* bitmap = NULL; - - // Icon data size is checked - // If under or same as the maximum size, icon is fetched - // Otherwise null is returned. - if ( ( aIconInfo.DataLength() <= iMaxIconDataSize ) ) - { - LOG( SIMPLE, "SATCLIENT: RSatService::GetIconL icon fetch started" ) - TInt bitmapHandle( 0 ); - TPckg bitmapHandlePckg( bitmapHandle ); - - TSatInternalIconInfo interIconInfo; - TSatInternalIconInfoPckg interIconPckg( interIconInfo ); - FillInternalIconInfo( aIconInfo, interIconInfo ); - - - TIpcArgs args( &interIconPckg, &bitmapHandlePckg ); - - // Fetch the handle of the icon. - User::LeaveIfError( SendReceive( ESatSGetIconInstance, args ) ); - - // Duplicate the bitmap and notify server that bitmap is duplicated. - // After the duplication the bitmap is owned by the client. - args.Set( 0, TIpcArgs::ENothing ); - args.Set( 1, TIpcArgs::ENothing ); - bitmap = new( ELeave )CFbsBitmap(); - CleanupStack::PushL( bitmap ); - User::LeaveIfError( bitmap->Duplicate( bitmapHandle ) ); - User::LeaveIfError( Send( ESatSIconInstanceGot, args ) ); - CleanupStack::Pop( bitmap ); - LOG( SIMPLE, "SATCLIENT: RSatService::GetIconL icon fetch exit" ) - } - - LOG( SIMPLE, "SATCLIENT: RSatService::GetIconL exiting" ) - return bitmap; - } - -// ----------------------------------------------------------------------------- -// RSatService::SetIdleModeTextResponse -// Sends SetUpIdleModeText response to Server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatService::SetIdleModeTextResponse( - const TSATIdleResult& aResult ) const - { - LOG( SIMPLE, "SATCLIENT: RSatService::SetIdleModeTextResponse calling" ) - - #ifdef ENABLE_SAT_LOGGING - RProcess test; - LOG2( SIMPLE, "SATCLIENT: RSatService::SetIdleModeTextResponse \ - UID of calling process: 0x%x", - test.SecureId().iId ) - test.Close(); - #endif - - TInt responseValue( aResult ); - - // Build IPC package - const TIpcArgs args( responseValue ); - - // Send the SetUpIdleMode response - TInt err = SendReceive( ESatSIdleModeResponse, args ); - LOG2( SIMPLE, - "SATCLIENT: RSatService::SetIdleModeTextResponse error while sending \ - response to SAT Engine: %d", err ) - LOG( SIMPLE, "SATCLIENT: RSatService::SetIdleModeTextResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatService::CheckDataValidityL -// Checks that data is valid. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RSatService::CheckInfoValidityL( const TDesC8& aIconEf ) const - { - LOG( SIMPLE, "SATCLIENT: RSatService::CheckInfoValidityL calling" ) - - TInt err( KErrCorrupt ); - TInt realLength( aIconEf.Length() ); - TInt requiredLength( aIconEf[0] * KInfoLength + 1 ); - - LOG2( SIMPLE, - "SATCLIENT: RSatService::CheckInfoValidityL realLength=%d", - realLength ) - LOG2( SIMPLE, - "SATCLIENT: RSatService::CheckInfoValidityL requiredLength=%d", - requiredLength ) - - // The length can be more than required, but the lenght has to be - // at least required length. - if ( 0 < realLength && realLength >= requiredLength ) - { - err = KErrNone; - } - User::LeaveIfError( err ); - - LOG( SIMPLE, "SATCLIENT: RSatService::CheckInfoValidityL exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatService::SetIconInfo -// Set aIconSatData to TSatIconInfo. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RSatService::SetIconInfoL( TSatIconInfo& aContainer, - const TDesC8& aIconSatData ) const - { - LOG( SIMPLE, "SATCLIENT: RSatService::SetIconInfo calling" ) - TInt err( KErrCorrupt ); - - if ( KLowIconLength <= aIconSatData.Size() ) - { - LOG( SIMPLE, "SATCLIENT: RSatService::SetIconInfo valid descriptor" ) - - TUint16 integer( 0 ); - TSize size( 0, 0 ); - - // 1. icon size - size.SetSize( aIconSatData[KIconWidth], aIconSatData[KIconHeigth] ); - aContainer.SetIconSize( size ); - - // 2. code scheme - aContainer.SetCodingScheme( static_cast( - aIconSatData[KImageCodingScheme] ) ); - - // 3. file identifier - // High byte - integer = static_cast( - aIconSatData[KHighFileId] << KBitsInByte ); - // Low byte - integer |= aIconSatData[KLowFileId]; - aContainer.SetFileIdentifier( integer ); - - // 4. offset - // High byte - integer = static_cast( - aIconSatData[KHighIconOffset] << KBitsInByte ); - // Low byte - integer |= aIconSatData[KLowIconOffset]; - aContainer.SetOffset( integer ); - - // 5. length - // High byte - integer = static_cast( - aIconSatData[KHighIconLength] << KBitsInByte ); - // Low byte - integer |= aIconSatData[KLowIconLength]; - aContainer.SetDataLength( integer ); - err = KErrNone; - } - User::LeaveIfError( err ); - LOG( SIMPLE, "SATCLIENT: RSatService::SetIconInfo exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatService::llInternalIconInfo -// Convert TSatIconinfo to TSatInternalIconInfo. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RSatService::FillInternalIconInfo( const TSatIconInfo& aIconInfo, - TSatInternalIconInfo& aInternalIconInfo ) const - { - LOG( SIMPLE, "SATCLIENT: RSatService::FillInternalIconInfo calling" ) - - // Fill the fields - aInternalIconInfo.iWidth = aIconInfo.IconSize().iWidth; - aInternalIconInfo.iHeight = aIconInfo.IconSize().iHeight; - if ( TSatIconInfo::EBasic == aIconInfo.CodingScheme() ) - { - aInternalIconInfo.iCodingScheme = TSatInternalIconInfo::EBasic; - } - else - { - aInternalIconInfo.iCodingScheme = TSatInternalIconInfo::EColor; - } - aInternalIconInfo.iFileIdentifier = aIconInfo.FileIdentifier(); - aInternalIconInfo.iOffset = aIconInfo.Offset(); - aInternalIconInfo.iLength = aIconInfo.DataLength(); - - LOG( SIMPLE, "SATCLIENT: RSatService::FillInternalIconInfo exit" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/bwins/SatInternalClientu.def --- a/satengine/SatServer/SatInternalClient/bwins/SatInternalClientu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,12 +0,0 @@ -EXPORTS - ??0RSatUiSession@@QAE@XZ @ 1 NONAME ; RSatUiSession::RSatUiSession(void) - ?Adapter@RSatUiSession@@QBEPAVMSatUiAdapter@@XZ @ 2 NONAME ; class MSatUiAdapter * RSatUiSession::Adapter(void) const - ?Close@RSatUiSession@@QAEXXZ @ 3 NONAME ; void RSatUiSession::Close(void) - ?CreateRequest@RSatUiSession@@QBEXHABVTIpcArgs@@@Z @ 4 NONAME ; void RSatUiSession::CreateRequest(int, class TIpcArgs const &) const - ?CreateRequest@RSatUiSession@@QBEXHABVTIpcArgs@@AAVTRequestStatus@@@Z @ 5 NONAME ; void RSatUiSession::CreateRequest(int, class TIpcArgs const &, class TRequestStatus &) const - ?KillServer@RSatUiSession@@QBEXXZ @ 6 NONAME ; void RSatUiSession::KillServer(void) const - ?Panic@RSatUiSession@@QBEXW4TSatClientPanic@@@Z @ 7 NONAME ; void RSatUiSession::Panic(enum TSatClientPanic) const - ?RegisterL@RSatUiSession@@QAEXABVRSatSession@@PAVMSatUiObserver@@@Z @ 8 NONAME ; void RSatUiSession::RegisterL(class RSatSession const &, class MSatUiObserver *) - ?SatUiObserver@RSatUiSession@@QAEPAVMSatUiObserver@@XZ @ 9 NONAME ; class MSatUiObserver * RSatUiSession::SatUiObserver(void) - ?Version@RSatUiSession@@QBE?AVTVersion@@XZ @ 10 NONAME ; class TVersion RSatUiSession::Version(void) const - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/eabi/SatInternalClientu.def --- a/satengine/SatServer/SatInternalClient/eabi/SatInternalClientu.def Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -EXPORTS - _ZN13RSatUiSession13SatUiObserverEv @ 1 NONAME - _ZN13RSatUiSession5CloseEv @ 2 NONAME - _ZN13RSatUiSession9RegisterLERK11RSatSessionP14MSatUiObserver @ 3 NONAME - _ZN13RSatUiSessionC1Ev @ 4 NONAME - _ZN13RSatUiSessionC2Ev @ 5 NONAME - _ZNK13RSatUiSession10KillServerEv @ 6 NONAME - _ZNK13RSatUiSession13CreateRequestEiRK8TIpcArgs @ 7 NONAME - _ZNK13RSatUiSession13CreateRequestEiRK8TIpcArgsR14TRequestStatus @ 8 NONAME - _ZNK13RSatUiSession5PanicE15TSatClientPanic @ 9 NONAME - _ZNK13RSatUiSession7AdapterEv @ 10 NONAME - _ZNK13RSatUiSession7VersionEv @ 11 NONAME - _ZTI17CSatCEventHandler @ 12 NONAME ; ## - _ZTI17CSatCQueryHandler @ 13 NONAME ; ## - _ZTI18CSatCNotifyHandler @ 14 NONAME ; ## - _ZTI20CSatCGetInkeyHandler @ 15 NONAME ; ## - _ZTI20CSatCGetInputHandler @ 16 NONAME ; ## - _ZTI20CSatCPlayToneHandler @ 17 NONAME ; ## - _ZTI21CSatCCommandProcessor @ 18 NONAME ; ## - _ZTI21CSatCSetUpMenuHandler @ 19 NONAME ; ## - _ZTI22CSatCSelectItemHandler @ 20 NONAME ; ## - _ZTI23CSatCDisplayTextHandler @ 21 NONAME ; ## - _ZTI25CSatCActiveCommandHandler @ 22 NONAME ; ## - _ZTV17CSatCEventHandler @ 23 NONAME ; ## - _ZTV17CSatCQueryHandler @ 24 NONAME ; ## - _ZTV18CSatCNotifyHandler @ 25 NONAME ; ## - _ZTV20CSatCGetInkeyHandler @ 26 NONAME ; ## - _ZTV20CSatCGetInputHandler @ 27 NONAME ; ## - _ZTV20CSatCPlayToneHandler @ 28 NONAME ; ## - _ZTV21CSatCCommandProcessor @ 29 NONAME ; ## - _ZTV21CSatCSetUpMenuHandler @ 30 NONAME ; ## - _ZTV22CSatCSelectItemHandler @ 31 NONAME ; ## - _ZTV23CSatCDisplayTextHandler @ 32 NONAME ; ## - _ZTV25CSatCActiveCommandHandler @ 33 NONAME ; ## - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/group/bld.inf --- a/satengine/SatServer/SatInternalClient/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,30 +0,0 @@ -/* -* 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: Build information file for project SatInternalClient -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_MMPFILES -satinternalclient.mmp - -PRJ_EXPORTS -../inc/RSatUiSession.h |../../../../inc/rsatuisession.h -../inc/MSatUiObserver.h |../../../../inc/msatuiobserver.h -../inc/MSatUiAdapter.h |../../../../inc/msatuiadapter.h - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/group/satinternalclient.mmp --- a/satengine/SatServer/SatInternalClient/group/satinternalclient.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/* -* 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: Project definition file for project SatClient -* -*/ - - -#include -#include -#include "../../inc/SatMacroes.h" - -TARGET SatInternalClient.dll -TARGETTYPE dll -UID 0x1000008d 0x200194F8 - -CAPABILITY CAP_CLIENT_DLL -VENDORID VID_DEFAULT - -#ifdef ENABLE_SAT_LOGGING -EPOCSTACKSIZE 0x4000 // Logging needs more stack than default 8 kilos. -#endif - -SOURCEPATH ../src - -SOURCE RSatUiSession.cpp -SOURCE CSatCCommandProcessor.cpp -SOURCE CSatCDisplayTextHandler.cpp -SOURCE CSatCGetInkeyHandler.cpp -SOURCE CSatCGetInputHandler.cpp -SOURCE CSatCSetUpMenuHandler.cpp -SOURCE CSatCPlayToneHandler.cpp -SOURCE CSatCSelectItemHandler.cpp -SOURCE CSatCActiveCommandHandler.cpp -SOURCE CSatCQueryHandler.cpp -SOURCE CSatCEventHandler.cpp -SOURCE CSatCNotifyHandler.cpp - -USERINCLUDE ../inc -USERINCLUDE ../../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE ../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY satengine.lib -LIBRARY etelsat.lib -LIBRARY bafl.lib -LIBRARY fbscli.lib -LIBRARY CentralRepository.lib // For Central Repository -LIBRARY SatClient.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/CSatCActiveCommandHandler.h --- a/satengine/SatServer/SatInternalClient/inc/CSatCActiveCommandHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,107 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* active commands. -* -*/ - - -#ifndef CSATCACTIVECOMMANDHANDLER_H -#define CSATCACTIVECOMMANDHANDLER_H - -// INCLUDES -#include -#include -#include "MSatUiAdapter.h" - -// FORWARD DECLARATIONS - -class RSatUiSession; - -// CLASS DECLARATION - -/** - * This class handles end user -initiated commands. - * It is derived from an abstract interface (MSatUiAdapter) so that - * the implementation is not exposed to the user of this class. - * - * @lib SatClient.lib - * @since Series 60 2.6 - */ -class CSatCActiveCommandHandler : public CBase, public MSatUiAdapter - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSat A pointer to a session (does not take ownership). - */ - static CSatCActiveCommandHandler* NewL( RSatUiSession* aSat ); - - /** - * Destructor. - */ - virtual ~CSatCActiveCommandHandler(); - - public: // New functions - - /** - * From MSatUiAdapter - * - * Menu Selection active command handling. - * @param aMenuItem The index of the selected menu item (starts from 0). - * @param aHelpRequested A flag indicating whether help was req'd. - */ - void MenuSelection( - TInt aMenuItem, - TBool aHelpRequested ); - - /** - * From MSatUiAdapter - * - * Session terminanation active command handling. - * @param aType The type of termination - */ - void SessionTerminated( TInt8 aType ); - - private: // Constructors - - /** - * C++ default constructor. - * @param aSat A pointer to a session (does not take ownership). - */ - CSatCActiveCommandHandler( RSatUiSession* aSat ); - - private: // Data - - /** - * Reference to the Sat API - */ - RSatUiSession* iSession; - - /** - * The data structure for the command data - */ - RSat::TMenuSelectionV1 iMenuSelectionData; - - /** - * The data package for IPC - */ - RSat::TMenuSelectionV1Pckg iMenuSelectionPckg; - - }; - -#endif // CSATCACTIVECOMMANDHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/CSatCCommandProcessor.h --- a/satengine/SatServer/SatInternalClient/inc/CSatCCommandProcessor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,161 +0,0 @@ -/* -* Copyright (c) 2002-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: This file contains the client command processor class that is -* responsible for the active objects needed to maintain that -* connection. -* -*/ - - - -#ifndef CSATCCOMMANDPROCESSOR_H -#define CSATCCOMMANDPROCESSOR_H - -// INCLUDES -#include - -#include "CSatCDisplayTextHandler.h" -#include "CSatCGetInkeyHandler.h" -#include "CSatCGetInputHandler.h" -#include "CSatCSetUpMenuHandler.h" -#include "CSatCSelectItemHandler.h" -#include "CSatCPlayToneHandler.h" -#include "CSatCActiveCommandHandler.h" -#include "CSatCEventHandler.h" -#include "CSatCQueryHandler.h" -#include "CSatCNotifyHandler.h" - -// FORWARD DECLARATIONS -class RSatUiSession; - -// CLASS DECLARATION - -/** - * This class is the container for all command handlers. - * The class, owned by the session objects, initializes and starts all - * of the active objects which are part of the Sat Client API. - * - * @lib SatClient.lib - * @since Series 60 2.6 - */ -class CSatCCommandProcessor : public CBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSession A pointer to a session (does not take ownership). - */ - static CSatCCommandProcessor* NewL( RSatUiSession* aSession ); - - /** - * Destructor. - */ - virtual ~CSatCCommandProcessor(); - - public: // New functions - - /** - * Starts the active objects. - */ - void Start(); - - /** - * Returns a pointer to the object that implements set up menu command - * handler object. - * @return The set up menu command handler object pointer. - */ - CSatCSetUpMenuHandler* SetUpMenuHandler(); - - /** - * Returns a pointer to a active command handler object. - * @return The active command handler object pointer. - */ - CSatCActiveCommandHandler* ActiveCommandHandler(); - - private: // Constructors - - /** - * C++ default constructor. - * @param aSession A pointer to a session (does not take ownership). - */ - CSatCCommandProcessor( RSatUiSession* aSession ); - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL(); - - private: // Data - - /** - * The Sat Client Session. - */ - RSatUiSession* iSession; - - /** - * The Display Text command handler. - */ - CSatCDisplayTextHandler* iDisplayTextHandler; - - /** - * The Get Inkey command handler. - */ - CSatCGetInkeyHandler* iGetInkeyHandler; - - /** - * The Get Input command handler. - */ - CSatCGetInputHandler* iGetInputHandler; - - /** - * The Set Up Menu command handler. - */ - CSatCSetUpMenuHandler* iSetUpMenuHandler; - - /** - * The Select Item command handler. - */ - CSatCSelectItemHandler* iSelectItemHandler; - - /** - * The Play Tone command handler. - */ - CSatCPlayToneHandler* iPlayToneHandler; - - /** - * Handler for various server-side events. - */ - CSatCEventHandler* iEventHandler; - - /** - * Handler for various end-user queries. - */ - CSatCQueryHandler* iQueryHandler; - - /** - * Notification handler - */ - CSatCNotifyHandler* iNotifyHandler; - - /** - * The handler for all user-initiated commands. - */ - CSatCActiveCommandHandler* iActiveCommandHandler; - - }; - -#endif // CSATCCOMMANDPROCESSOR_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/CSatCDisplayTextHandler.h --- a/satengine/SatServer/SatInternalClient/inc/CSatCDisplayTextHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,131 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* Display Text proactive command. -* -*/ - - - -#ifndef CSATCDISPLAYTEXTHANDLER_H -#define CSATCDISPLAYTEXTHANDLER_H - -// INCLUDES -#include -#include - -#include "SatSTypes.h" - -// FORWARD DECLARATIONS -class RSatUiSession; - -// CLASS DECLARATION - -/** - * The active object handler for the Display Text command. - * Processes the received data and passes it on to the session client. - * - * @lib SatClient.lib - * @since Series 60 2.6 - */ -class CSatCDisplayTextHandler : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSat A pointer to a session (does not take ownership). - */ - static CSatCDisplayTextHandler* NewL( RSatUiSession* aSat ); - - /** - * Destructor. - */ - virtual ~CSatCDisplayTextHandler(); - - public: // New functions - - /** - * Starts listening for the Sat command. - */ - void Start(); - - protected: // Functions from base classes - - /** - * From CActive - * Handles the request completion. - */ - void RunL(); - - /** - * From CActive - * Implements the cancel protocol. - */ - void DoCancel(); - - private: // Constructors - - /** - * C++ default constructor. - * @param aPriority The priority of this active object. - * @param aSat A pointer to a session (does not take ownership). - */ - CSatCDisplayTextHandler( - TInt aPriority, - RSatUiSession* aSat ); - - private: // New functions - - /** - * Examine the client response. - * @param sResponse response data - * @param aRequestedIconDisplayed Informs if icon is not used - */ - void ExamineClientResponse( - TSatUiResponse sResponse, - TBool aRequestedIconDisplayed ); - - private: // Data - - /** - * Reference to the Sat API - */ - RSatUiSession* iSession; - - /** - * The data structure for the command data - */ - TSatDisplayTextV1 iDisplayTextData; - - /** - * The data package for IPC - */ - TSatDisplayTextV1Pckg iDisplayTextPckg; - - /** - * The response data structure - */ - RSat::TDisplayTextRspV1 iDisplayTextRsp; - - /** - * The response package for IPC - */ - RSat::TDisplayTextRspV1Pckg iDisplayTextRspPckg; - - }; - -#endif // CSATCDISPLAYTEXTHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/CSatCEventHandler.h --- a/satengine/SatServer/SatInternalClient/inc/CSatCEventHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for various events related to those SIM -* Application Toolkit proactive commands that simply indicate -* that an action occured at the server. -* -*/ - - - -#ifndef CSATCEVENTHANDLER_H -#define CSATCEVENTHANDLER_H - -// INCLUDES -#include -#include -#include "SatSTypes.h" - -// FORWARD DECLARATIONS - -class RSatUiSession; - -// CLASS DECLARATION - -/** - * This class notifies the client about various server-side events. - * The events in question are start/end of call, start/end of SIM refresh, - * SS send and SIM session end. - * - * @lib SatClient.lib - * @since Series 60 2.6 - */ -class CSatCEventHandler : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSat A pointer to a session (does not take ownership). - */ - static CSatCEventHandler* NewL( RSatUiSession* aSat ); - - /** - * Destructor. - */ - virtual ~CSatCEventHandler(); - - public: // New functions - - /** - * Starts listening for the Sat command. - */ - void Start(); - - protected: // Functions from base classes - - /** - * From CActive - * - * Handles the request completion. - */ - void RunL(); - - /** - * From CActive - * - * Implements the cancel protocol. - */ - void DoCancel(); - - private: // Constructors - - /** - * C++ default constructor. - * @param aPriority The priority of this active object. - * @param aSat A pointer to a session (does not take ownership). - */ - CSatCEventHandler( - TInt aPriority, - RSatUiSession* aSat ); - - private: // Data - - /** - * Reference to the Sat API - */ - RSatUiSession* iSession; - - /** - * The data structure for the command data - */ - TSatEventV1 iEventData; - - /** - * The data package for IPC - */ - TSatEventV1Pckg iEventPckg; - }; - -#endif // CSATCEVENTHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/CSatCGetInkeyHandler.h --- a/satengine/SatServer/SatInternalClient/inc/CSatCGetInkeyHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,147 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit Get Inkey -* proactive command. -* -*/ - - - -#ifndef CSATCGETINKEYHANDLER_H -#define CSATCGETINKEYHANDLER_H - -// INCLUDES -#include -#include "etelsat.h" - -// FORWARD DECLARATIONS -class RSatUiSession; - -// CLASS DECLARATION - -/** - * This is the Get Inkey command active object handler. - * The class receives command data from ETel, processes it and - * passes it on to the user. Following that, the response is encoded and - * sent back to ETel. - * - * @lib SatClient.lib - * @since Series 60 2.6 - */ -class CSatCGetInkeyHandler : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSat A pointer to a session (does not take ownership). - */ - static CSatCGetInkeyHandler* NewL( RSatUiSession* aSat ); - - /** - * Destructor. - */ - virtual ~CSatCGetInkeyHandler(); - - public: // New functions - - /** - * Starts listening for the Sat command. - */ - void Start(); - - protected: // Functions from base classes - - /** - * From CActive - * - * Handles the request completion. - */ - void RunL(); - - /** - * From CActive - * - * Implements the cancel protocol. - */ - void DoCancel(); - - private: // Constructors - - /** - * C++ default constructor. - * @param aPriority The priority of this active object. - * @param aSat A pointer to a session (does not take ownership). - */ - CSatCGetInkeyHandler( - TInt aPriority, - RSatUiSession* aSat ); - - private: // New functions - - /** - * Examine the client response. - * @param aResponse Client response data - * @param aCharacter User input - * @param aRequestedIconDisplayed Informs if icon is not used - */ - void ExamineClientResponse( - TSatUiResponse aResponse, - const TChar& aCharacter, - TBool aRequestedIconDisplayed ); - - /** - * Return given duration in seconds. - * @return Return given duration in seconds. - */ - TUint DurationInTenthOfSeconds() const; - - /** - * Convert seconds to duration. - * @param aDurationInSeconds Duration in seconds - */ - void TenthOfSecondsToDuration( TUint aDurationInSeconds ); - - private: // Data - - /** - * Reference to the Sat API - */ - RSatUiSession* iSession; - - /** - * The data structure for the command data - */ - RSat::TGetInkeyV2 iGetInkeyData; - - /** - * The data package for IPC - */ - RSat::TGetInkeyV2Pckg iGetInkeyPckg; - - /** - * The response data structure - */ - RSat::TGetInkeyRspV2 iGetInkeyRsp; - - /** - * The response package for IPC - */ - RSat::TGetInkeyRspV2Pckg iGetInkeyRspPckg; - - }; - -#endif // CSATCGETINKEYHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/CSatCGetInputHandler.h --- a/satengine/SatServer/SatInternalClient/inc/CSatCGetInputHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,146 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit Get Input -* proactive command. -* -*/ - - - -#ifndef CSATCGETINPUTHANDLER_H -#define CSATCGETINPUTHANDLER_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS - -class RSatUiSession; - -// CLASS DECLARATION - -/** - * This is the Get Input command active object handler. - * The class receives command data from ETel, processes it and - * passes it on to the user. Following that, the response is encoded and - * sent back to ETel. - * - * @lib SatClient.lib - * @since Series 60 2.6 - */ -class CSatCGetInputHandler : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSat A pointer to a session (does not take ownership). - */ - static CSatCGetInputHandler* NewL( RSatUiSession* aSat ); - - /** - * Destructor. - */ - virtual ~CSatCGetInputHandler(); - - public: // New functions - - /** - * Starts listening for the Sat command. - */ - void Start(); - - private: - - /** - * Converts USAT character set to SAT character set type. - * @param aCharacterSet USAT character set - * @return SAT character set. - */ - TSatCharacterSet ConvertCharacterSet( - const RSat::TGetInputRspFormat& aCharacterSet ) const; - - protected: // Functions from base classes - - /** - * From CActive - * - * Handles the request completion. - */ - void RunL(); - - /** - * From CActive - * - * Implements the cancel protocol. - */ - void DoCancel(); - - private: // Constructors - - /** - * C++ default constructor. - * @param aPriority The priority of this active object. - * @param aSat A pointer to a session (does not take ownership). - */ - CSatCGetInputHandler( - TInt aPriority, - RSatUiSession* aSat ); - - private: // New functions - - /** - * Examine the client response. - * @param aResponse Client response data - * @param aInputText User input - * @param aRequestedIconDisplayed Informs if icon is not used - */ - void ExamineClientResponse( - TSatUiResponse aResponse, - const TDes& aInputText, - TBool aRequestedIconDisplayed ); - - private: // Data - - /** - * Reference to the Sat API - */ - RSatUiSession* iSession; - - /** - * The data structure for the command data - */ - RSat::TGetInputV1 iGetInputData; - - /** - * The data package for IPC - */ - RSat::TGetInputV1Pckg iGetInputPckg; - - /** - * The data structure for the response data - */ - RSat::TGetInputRspV1 iGetInputRsp; - - /** - * The response package for IPC - */ - RSat::TGetInputRspV1Pckg iGetInputRspPckg; - - }; - -#endif // CSATCGETINPUTHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/CSatCNotifyHandler.h --- a/satengine/SatServer/SatInternalClient/inc/CSatCNotifyHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for various notifications related to -* those SIM Application Toolkit proactive commands that -* uses notifications to inform user about their actions. -* -*/ - - - -#ifndef CSATCNOTIFYHANDLER_H -#define CSATCNOTIFYHANDLER_H - -// INCLUDES -#include -#include -#include "SatSTypes.h" - -// FORWARD DECLARATIONS -class RSatUiSession; - -// CLASS DECLARATION - -/** - * This is the active object handler for various end-user notifications. - * - * @lib SatClient.lib - * @since Series 60 3.1 - */ -class CSatCNotifyHandler : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSat A pointer to a session (does not take ownership). - */ - static CSatCNotifyHandler* NewL( RSatUiSession* aSat ); - - /** - * Destructor. - */ - virtual ~CSatCNotifyHandler(); - - public: // New functions - - /** - * Starts listening for the Sat command. - */ - void Start(); - - protected: // Functions from base classes - - /** - * From CActive - * - * Handles the request completion. - */ - void RunL(); - - /** - * From CActive - * - * Implements the cancel protocol. - */ - void DoCancel(); - - private: // Constructors - - /** - * C++ default constructor. - * @param aPriority The priority of this active object. - * @param aSat A pointer to a session (does not take ownership). - */ - CSatCNotifyHandler( - TInt aPriority, - RSatUiSession* aSat ); - - private: // Data - - /** - * Reference to the Sat API - */ - RSatUiSession* iSession; - - /** - * The data structure for the command data - */ - TSatNotificationV1 iNotifyData; - - /** - * The data package for IPC - */ - TSatNotificationV1Pckg iNotifyPckg; - - /** - * The response data structure - */ - TSatNotificationRspV1 iNotifyRsp; - - /** - * The response package for IPC - */ - TSatNotificationRspV1Pckg iNotifyRspPckg; - - }; - -#endif // CSATCNOTIFYHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/CSatCPlayToneHandler.h --- a/satengine/SatServer/SatInternalClient/inc/CSatCPlayToneHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,142 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* Play Tone proactive command. -* -*/ - - -#ifndef CSATCPLAYTONEHANDLER_H -#define CSATCPLAYTONEHANDLER_H - -// INCLUDES -#include -#include - -// CONSTANTS - -// Number of microseconds in a minute. -const TInt64 KSatCMicroSecondsInMinute = 60*1000000; - -// Number of microseconds in a seconds. -const TInt64 KSatCMicroSecondsInSecond = 1000000; - -// Number of microseconds in one tenth of a seconds. -const TInt64 KSatCMicroSecondsInOneTenthSecond = 100000; - -// FORWARD DECLARATIONS - -class RSatUiSession; - -// CLASS DECLARATION - -/** - * This is the Play Tone command active object handler. - * - * @lib SatClient.lib - * @since Series 60 2.6 - */ -class CSatCPlayToneHandler : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSat A pointer to a session (does not take ownership). - */ - static CSatCPlayToneHandler* NewL( RSatUiSession* aSat ); - - /** - * Destructor. - */ - virtual ~CSatCPlayToneHandler(); - - public: // New functions - - /** - * Starts listening for the Sat command. - */ - void Start(); - - protected: // Functions from base classes - - /** - * From CActive - * - * Handles the request completion. - */ - void RunL(); - - /** - * From CActive - * - * Implements the cancel protocol. - */ - void DoCancel(); - - private: // Constructors - - /** - * C++ default constructor. - * @param aPriority The priority of this active object. - * @param aSat A pointer to a session (does not take ownership). - */ - - CSatCPlayToneHandler( - TInt aPriority, - RSatUiSession* aSat ); - - private: // New functions - - /** - * Examine the client response. - * @param aResponse Client response data - * @param aRequestedIconDisplayed Informs if icon is not used - */ - void ExamineClientResponse( - TSatUiResponse aResponse, - TBool aRequestedIconDisplayed ); - - private: // Data - - /** - * Reference to the Sat API - */ - RSatUiSession* iSession; - - /** - * The data structure for the command data - */ - RSat::TPlayToneV2 iPlayToneData; - - /** - * The data package for IPC - */ - RSat::TPlayToneV2Pckg iPlayTonePckg; - - /** - * The data structure for the response data - */ - RSat::TPlayToneRspV1 iPlayToneRsp; - - /** - * The response package for IPC - */ - RSat::TPlayToneRspV1Pckg iPlayToneRspPckg; - - }; - -#endif // CSATCPLAYTONEHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/CSatCQueryHandler.h --- a/satengine/SatServer/SatInternalClient/inc/CSatCQueryHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,121 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for various query requests related to -* those SIM Application Toolkit proactive commands that -* require user permissions to complete their actions. -* -*/ - - - -#ifndef CSATCQUERYHANDLER_H -#define CSATCQUERYHANDLER_H - -// INCLUDES -#include -#include -#include "SatSTypes.h" - -// FORWARD DECLARATIONS -class RSatUiSession; - -// CLASS DECLARATION - -/** - * This is the active object handler for various end-user queries. - * - * @lib SatClient.lib - * @since Series 60 2.6 - */ -class CSatCQueryHandler : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSat A pointer to a session (does not take ownership). - */ - static CSatCQueryHandler* NewL( RSatUiSession* aSat ); - - /** - * Destructor. - */ - virtual ~CSatCQueryHandler(); - - public: // New functions - - /** - * Starts listening for the Sat command. - */ - void Start(); - - protected: // Functions from base classes - - /** - * From CActive - * - * Handles the request completion. - */ - void RunL(); - - /** - * From CActive - * - * Implements the cancel protocol. - */ - void DoCancel(); - - private: // Constructors - - /** - * C++ default constructor. - * @param aPriority The priority of this active object. - * @param aSat A pointer to a session (does not take ownership). - */ - CSatCQueryHandler( - TInt aPriority, - RSatUiSession* aSat ); - - private: // Data - - /** - * Reference to the Sat API - */ - RSatUiSession* iSession; - - /** - * The data structure for the command data - */ - TSatQueryV1 iQueryData; - - /** - * The data package for IPC - */ - TSatQueryV1Pckg iQueryPckg; - - /** - * The response data structure - */ - TSatQueryRspV1 iQueryRsp; - - /** - * The response package for IPC - */ - TSatQueryRspV1Pckg iQueryRspPckg; - - }; - -#endif // CSATCQUERYHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/CSatCSelectItemHandler.h --- a/satengine/SatServer/SatInternalClient/inc/CSatCSelectItemHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,136 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* Select Item proactive command. -* -*/ - - - -#ifndef CSATCSELECTITEMHANDLER_H -#define CSATCSELECTITEMHANDLER_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class RSatUiSession; - -// CLASS DECLARATION - -/** - * This is the Select Item command active object handler. - * The class processes data from ETel SAT API and passes it on to - * the client. The selection made by the end-user is passed back to ETel. - * - * @lib SatClient.lib - * @since Series 60 2.6 - */ -class CSatCSelectItemHandler : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSat A pointer to a session (does not take ownership). - */ - static CSatCSelectItemHandler* NewL( RSatUiSession* aSat ); - - /** - * Destructor. - */ - virtual ~CSatCSelectItemHandler(); - - public: // New functions - - /** - * Starts listening for the Sat command. - */ - void Start(); - - protected: // Functions from base classes - - /** - * From CActive - * - * Handles the request completion. - */ - void RunL(); - - /** - * From CActive - * - * Implements the cancel protocol. - */ - void DoCancel(); - - private: // Constructors - - /** - * C++ default constructor. - * @param aPriority The priority of this active object. - * @param aSat A pointer to a session (does not take ownership). - */ - CSatCSelectItemHandler( - TInt aPriority, - RSatUiSession* aSat ); - - private: // New functions - - /** - * Examine the client response. - * @param aResponse Client response data - * @param aSelection User selection - * @param aRequestedIconDisplayed Informs if icon is not used - * @param aDefaultItemIdFound informs if default item is found - * from item list - */ - void ExamineClientResponse( - TSatUiResponse aResponse, - TUint8 aSelection, - TBool aRequestedIconDisplayed, - TBool aDefaultItemIdFound ); - - private: // Data - - /** - * Reference to the Sat API - */ - RSatUiSession* iSession; - - /** - * The data structure for the command data - */ - RSat::TSelectItemV2 iSelectItemData; - - /** - * The data package for IPC - */ - RSat::TSelectItemV2Pckg iSelectItemPckg; - - /** - * The data structure for the response data - */ - RSat::TSelectItemRspV1 iSelectItemRsp; - - /** - * The response package for IPC - */ - RSat::TSelectItemRspV1Pckg iSelectItemRspPckg; - }; - -#endif // CSATCSELECTITEMHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/CSatCSetUpMenuHandler.h --- a/satengine/SatServer/SatInternalClient/inc/CSatCSetUpMenuHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,132 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* Set Up Menu proactive command. -* -*/ - - - -#ifndef CSATCSETUPMENUHANDLER_H -#define CSATCSETUPMENUHANDLER_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class RSatUiSession; - -// CLASS DECLARATION - -/** - * This is the Set Up Menu command active object handler. - * The class processes data from ETel SAT API and passes it on to - * the client. The selection made by the end-user is passed back to ETel. - * - * @lib SatClient.lib - * @since Series 60 2.6 - */ -class CSatCSetUpMenuHandler : public CActive - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aSat A pointer to a session (does not take ownership). - */ - static CSatCSetUpMenuHandler* NewL( RSatUiSession* aSat ); - - /** - * Destructor. - */ - virtual ~CSatCSetUpMenuHandler(); - - public: // New functions - - /** - * Starts listening for the Sat command. - */ - void Start(); - - /** - * Returns a pointer to the object that implements old the command data - * object. - * @return The set up menu command handler object pointer. - */ - RSat::TSetUpMenuV2 OldSetUpMenuData() const; - - protected: // Functions from base classes - - /** - * From CActive - * - * Handles the request completion. - */ - void RunL(); - - /** - * From CActive - * - * Implements the cancel protocol. - */ - void DoCancel(); - - private: // Constructors - - /** - * C++ default constructor. - * @param aPriority The priority of this active object. - * @param aSat A pointer to a session (does not take ownership). - */ - CSatCSetUpMenuHandler( TInt aPriority, RSatUiSession* aSat ); - - private: // Data - - /** - * Reference to the Sat API - */ - RSatUiSession* iSession; - - /** - * The data structure for the command data - */ - RSat::TSetUpMenuV2 iSetUpMenuData; - - /** - * The data structure for old the command data - * Used for envelope menu selection - */ - RSat::TSetUpMenuV2 iOldSetUpMenuData; - - /** - * The data package for IPC - */ - RSat::TSetUpMenuV2Pckg iSetUpMenuPckg; - - /** - * The data structure for the response data - */ - RSat::TSetUpMenuRspV1 iSetUpMenuRsp; - - /** - * The response package for IPC - */ - RSat::TSetUpMenuRspV1Pckg iSetUpMenuRspPckg; - - }; - -#endif // CSATCSETUPMENUHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/MSatUiAdapter.h --- a/satengine/SatServer/SatInternalClient/inc/MSatUiAdapter.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* Copyright (c) 2002-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: The adapter interface for the Sat Client. Used by clients to -* send envelope commands to SIM applications. -* -*/ - - - -#ifndef MSATUIADAPTER_H -#define MSATUIADAPTER_H - -// INCLUDES -#include -#include - -// CLASS DECLARATION - -/** - * An abstract adapter interface. - * Use to send SAT envelope commands to the SIM. - * - * @lib SatClient.lib - * @since Series 60 2.0 - */ -class MSatUiAdapter - { - - public: // New functions - - /** - * Response to the Set Up Menu command. - * @param aMenuItem The selected menu item. - * @param aHelpRequested Indicates whether help was requested. - */ - virtual void MenuSelection( - TInt aMenuItem, - TBool aHelpRequested ) = 0; - - virtual void SessionTerminated( TInt8 aType ) = 0; - - }; - -#endif // MSATUIADAPTER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/MSatUiObserver.h --- a/satengine/SatServer/SatInternalClient/inc/MSatUiObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,437 +0,0 @@ -/* -* Copyright (c) 2002-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: The observer interface for the Sat Client. Register a -* concrete impl of this to receive SAT events from the session -* object. -* -*/ - - -#ifndef MSATUIOBSERVER_H -#define MSATUIOBSERVER_H - -#include -#include -#include // for descriptor arrays -#include - -/** - * The UI response codes, enumerations values are from ETSI 11.14 specification. - */ -enum TSatUiResponse - { - ESatFailure = -1, // OOM or other error - ESatSuccess = 0x00, // success - ESatSuccessToneNotPlayed = 0x09, // Warning and game tones are - // disabled from current profile - ESatSessionTerminatedByUser = 0x10, // user exited the app - ESatBackwardModeRequestedByUser = 0x11, // user pressed back - ESatNoResponseFromUser = 0x12, // no response from user - EHelpRequestedByUser = 0x13, // help request from the UI - EPCmdNotAcceptedByUser = 0x22, - ESatCmdDataNotUnderstood = 0x32 - }; - -/** - * Tone values are dictated by ETSI 11.14. - * Use by the SAT Play Tone command. - */ - -enum TSatTone - { - ESatToneNotSet = -1, - ESatDialTone = 0x01, - ESatCalledSubscriberBusy = 0x02, - ESatCongestion = 0x03, - ESatRadioPathAcknowledge = 0x04, - ESatRadioPathNotAvailableCallDropped = 0x05, - ESatErrorSpecialInfo = 0x06, - ESatCallWaitingTone = 0x07, - ESatRingingTone = 0x08, - ESatGeneralBeep = 0x10, - ESatPositiveTone = 0x11, - ESatNegativeTone = 0x12, - ESatUserSelectedToneIncomingSpeech = 0x13, - ESatUserSelectedToneIncomingSms = 0x14 - }; - -enum TSatAlphaIdStatus - { - ESatAlphaIdNotNull, - ESatAlphaIdNull, - ESatAlphaIdNotProvided - }; - -/** - * ControlResult can be used e.g. to supply - * Call Control / MO Short Message Control result - * from SIM to UI Client - */ - -enum TSatControlResult - { - ESatAllowedNoModification, - ESatNotAllowed, - ESatAllowedWithModifications - }; - -/** - * The SAT next action indicators, localized by the UI. - * Values commented out will not be used, with accordance to ETSI 11.14. - */ - -enum TSatAction - { - //ESatNoAction = 0x00, - //ESatRefreshAction = 0x01, - //ESatMoreTimeAction = 0x02, - //ESatPollIntervalAction = 0x03, - //ESatPollingOffAction = 0x04, - //ESatSetUpEventListAction = 0x05, - ESatSetUpCallAction = 0x10, - ESatSendSsAction = 0x11, - ESatSendUssdAction = 0x12, - ESatSendSmAction = 0x13, - //ESatSendDtmfAction = 0x14, - ESatLaunchBrowserAction = 0x15, - ESatPlayToneAction = 0x20, - ESatDisplayTextAction = 0x21, - ESatGetInkeyAction = 0x22, - ESatGetInputAction = 0x23, - ESatSelectItemAction = 0x24, - ESatSetUpMenuAction = 0x25, - //ESatProvideLocalInformationAction = 0x26, - //ESatTimerManagementAction = 0x27, - ESatSetUpIdleModeTextAction = 0x28, - ESatPerformCardApduAction = 0x30, - ESatPowerOnCardAction = 0x31, - ESatPowerOffCardAction = 0x32, - ESatGetReaderStatusAction = 0x33, - //ESatRunAtCommandAction = 0x34, - ESatEndOfSimSession = 0x81 - }; - -/** - * The SAT input commands' data formats. - */ -enum TSatCharacterSet - { - ESatDigitOnly, - ESatCharSmsDefaultAlphabet, - ESatCharUcs2Alphabet, - ESatYesNo - }; - -/** - * Dictates how the icons should be used. - */ -enum TSatIconQualifier - { - ESatIconQualifierNotSet,// Icon qualifier is not set - ESatENoIconId, // Icon qualifier not present - ESatSelfExplanatory, // Icon qualifier is self explanatory - // (to display instead of the alpha id or text - // string) - ESatNotSelfExplanatory // Icon qualifier is not self explanatory - // (to display along the alpha id or text string) - }; - -/** - * Identifies the quering command - */ -enum TSatSQueryCommand - { - ESatSSendSmQuery, - ESatSSendSsQuery, - ESatSSendUssdQuery, - ESatSRefreshQuery, - ESatSLaunchBrowserQuery, - ESatOpenChannelQuery, - ESatSSetUpCallQuery - }; - -/** - * Identifies the notification command - */ -enum TSatSNotifyCommand - { - ESatSSendDataNotify, - ESatSReceiveDataNotify, - ESatSCloseChannelNotify, - ESatSMoSmControlNotify, - ESatSCallControlNotify, - ESatSSendSsNotify, - ESatSSendUssdNotify, - ESatSSendDtmfNotify, - ESatSSendSmsNotify - }; - -/** - * The icon id struct. - */ -struct TSatIconId - { - TUint8 iIdentifier; // Identifies the EF_IMG in SIM. - TSatIconQualifier iIconQualifier; - }; - -/** - * Specifies whether soft keys is the preferred selection mode or not. - */ -enum TSatSelectionPreference - { - ESatSelectionPreferenceNotSet, - ESatNoSelectionPreference, - ESatSoftKeyPreferred - }; - -enum TSatBIPCommandIdentifier - { - ESendDataIdentier, - EReceiveDataIdentifier, - ECloseChannelIdentifier - }; - -enum TSatSessionTerminationType - { - ESessionCancel, - EEndKeyUsed - }; - -// Codes for event notifications. -enum TSatSEvent - { - ESatSRefreshStartEvent, - ESatSRefreshEndEvent, - ESatSSmEndEvent, - ESatSClearScreenEvent, - ESatSCloseSatUiAppEvent, - ESatSsEndEvent, - ESatSsErrorEvent, - ESatSDtmfEndEvent - }; - -enum TSatSEventStatus - { - ESatEventNone, - ESatEventCompleteOk, - ESatEventFailure, - ESatEventCancel - }; - -/** - * An abstract observer interface. - * Register to receive SAT events from the session object. - * - * @lib SatClient.lib - * @since Series 60 2.0 - */ -class MSatUiObserver - { - public: // New functions - - /** - * Notification of the SAT Display Text command. - * @param aText The text string to be displayed. - * @param aSimApplicationName Sim Application name - * @param aIconId The id of icon. - * @param aRequestedIconDisplayed Informs if icon is not used. - * @param aSustainedText Indicates is this text sustained ie. no timers - * used if ETrue. - * @param aDuration Duration for showing the text - * @param aWaitUserToClear Indication if user is needed to clear - * message - * @return The response of the UI to this command. - */ - virtual TSatUiResponse DisplayTextL( - const TDesC& aText, - const TDesC& aSimApplicationName, - const TSatIconId& aIconId, - TBool& aRequestedIconDisplayed, - const TBool aSustainedText, - const TTimeIntervalSeconds aDuration, - const TBool aWaitUserToClear ) = 0; - - /** - * Notification of the SAT Get Inkey command. - * @param aText The query text. - * @param aCharacterSet The character range allowed. - * @param aInput The input character. - * @param aHelpIsAvailable indicates if help can be requested. - * @param aIconId The id of icon. - * @param aRequestedIconDisplayed Informs if icon is not used. - * @param aDuration Duration for showing the dialog. - * @param aImmediateDigitResponse Indication if Immediate digit response - * is needed. - * @return The response of the UI to this command. - */ - virtual TSatUiResponse GetInkeyL( - const TDesC& aText, - const TSatCharacterSet aCharacterSet, - TChar& aInput, - const TBool aHelpIsAvailable, - const TSatIconId& aIconId, - TBool& aRequestedIconDisplayed, - TUint& aDuration, - const TBool aImmediateDigitResponse ) = 0; - - /** - * Notification of the SAT Get Input command. - * @param aText The query text. - * @param aCharacterSet The character range allowed. - * @param aInput The input string. - * @param aMaxLength The maximum length of the input allowed. - * @param aMinLength The minimum length of the input allowed. - * @param aHideInput A flag indicating if the input should be hidden. - * @param aHelpIsAvailable indicates if help can be requested. - * @param aIconId The id of icon. - * @param aRequestedIconDisplayed Informs if icon is not used. - * @return The response of the UI to this command. - */ - virtual TSatUiResponse GetInputL( - const TDesC& aText, - const TSatCharacterSet aCharacterSet, - TDes& aInput, - const TInt aMinLength, - const TInt aMaxLength, - const TBool aHideInput, - const TBool aHelpIsAvailable, - const TSatIconId& aIconId, - TBool& aRequestedIconDisplayed ) = 0; - - /** - * Notification of the SAT Set Up Menu command. - * @param aText The query text. - * @param aMenuItems The array of menu item captions. - * @param aMenuItemNextActions The array of menu item next action - * indicator captions. - * @param aHelpIsAvailable indicates if help can be requested. - * @param aIconId The id of icon. - * @param aMenuIcons List of icon identifiers for menu items. - * @param aIconListQualifier Indicates how to use icons in the icon - * list. - * @param aSelectionPreference Specifies is the soft keys preferred. - * @return The response of the UI to this command. - */ - virtual TSatUiResponse SetUpMenuL( - const TDesC& aText, - const MDesCArray& aMenuItems, - const CArrayFixFlat* aMenuItemNextActions, - const TBool aHelpIsAvailable, - const TSatIconId& aIconId, - const CArrayFixFlat* aMenuIcons, - const enum TSatIconQualifier aIconListQualifier, - const enum TSatSelectionPreference aSelectionPreference ) = 0; - - /** - * Notification of the SAT Select Item command. - * @param aText The query text. - * @param aMenuItems The array of menu item captions. - * @param aMenuItemNextActions The array of menu item next action - * indicator codes. - * @param aDefaultItem The item selected by default. - * @param aSelection The item index selected by the user. - * @param aHelpIsAvailable indicates if help can be requested. - * @param aIconId The id of title icon. - * @param aMenuIcons List of icon identifiers for menu items. - * @param aIconListQualifier Indicates how to use icons in the icon - * list. - * @param aRequestedIconDisplayed Informs if icon is not used. - * @param aSelectionPreference Specifies is the soft keys preferred. - * @return The response of the UI to this command. - */ - virtual TSatUiResponse SelectItemL( - const TDesC& aText, - const MDesCArray& aMenuItems, - const CArrayFixFlat* aMenuItemNextActions, - const TInt aDefaultItem, TUint8& aSelection, - const TBool aHelpIsAvailable, - const TSatIconId& aIconId, - const CArrayFixFlat* aMenuIcons, - const enum TSatIconQualifier aIconListQualifier, - TBool& aRequestedIconDisplayed, - const enum TSatSelectionPreference aSelectionPreference ) = 0; - - /** - * Notification of the SAT Play Tone command. - * @param aText The text to be displayed. - * @param aTone The tone to be played. - * @param aDuration The duration of the tone to be played. - * @param aIconId The id of icon. - * @param aRequestedIconDisplayed Informs if icon is not used. - * @return The response of the UI to this command. - */ - virtual TSatUiResponse PlayTone( - const TDesC& aText, - const TSatTone aTone, - const TTimeIntervalMicroSeconds aDuration, - const TSatIconId& aIconId, - TBool& aRequestedIconDisplayed ) = 0; - - - /** - * General confirmation request - * @param aCommandId ID of the quering command - * @param aAlphaIdStatus Alpha Identifier status - * @param aText The text to be displayed. - * @param aAdditionalText Additional text to be used in queries. - * @param aActionAccepted Indicates whether the command was accepted. - * @param aIconId The id of icon. - * @param aRequestedIconDisplayed Informs if icon is not used. - * @param aTerminatedByUser Informs if end key is used. - */ - virtual void ConfirmCommand( - const TSatSQueryCommand aCommandId, - const TSatAlphaIdStatus aAlphaIdStatus, - const TDesC& aText, - const TDesC& aAdditionalText, - TBool& aActionAccepted, - const TSatIconId& aIconId, - TBool& aRequestedIconDisplayed, - TBool& aTerminatedByUser ) = 0; - - /** - * General notification - * @param aCommandId ID of the notifying command - * @param aAlphaIdStatus Alpha Identifier status - * @param aText Alpha Identifier - * @param aIconId The id of icon. - * @param aRequestedIconDisplayed Informs if icon is not used. - * @param aControlResult Control result of the MoSm and CallControl - * @return The response of the UI to this command. - */ - virtual TSatUiResponse Notification( - const TSatSNotifyCommand aCommandId, - const TSatAlphaIdStatus aAlphaIdStatus, - const TDesC& aText, - const TSatIconId& aIconId, - TBool& aRequestedIconDisplayed, - const TSatControlResult aControlResult ) = 0; - - /** - * General event notification. Used for example to tell UI that command - * has completed its execution. - * @param aEventId, identifies the event - * @param aEventStatus, status of the event, used as additional info for - * the event - * @param aError, possible error code that may affect on event handling. - * This is also used as additional info - */ - virtual void EventNotification( - const TSatSEvent aEventId, - const TSatSEventStatus aEventStatus, - const TInt aError ) = 0; - }; - -#endif // MSATUIOBSERVER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/inc/RSatUiSession.h --- a/satengine/SatServer/SatInternalClient/inc/RSatUiSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,182 +0,0 @@ -/* -* Copyright (c) 2002-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: The UI Client API of the SAT Server. -* -*/ - - - -#ifndef RSATUISESSION_H -#define RSATUISESSION_H - -// INCLUDES -#include - -// CONSTANTS - -// The name of the SatClient module for panic purposes -_LIT( KSatCliName, "SatClient" ); - -// DATA TYPES - -// The Sat Client Panic codes -enum TSatClientPanic - { - ESatInvalidResponse, - ESatSetUpMenuFailure, - ESelectedItemOutOfRange - }; - -// FORWARD DECLARATIONS - -class MSatUiObserver; -class MSatUiAdapter; -class CSatCCommandProcessor; -class CSatCDisplayTextHandler; -class RSatSession; - -// CLASS DECLARATION - -/** - * UI sub-session to SatServer. - * Use this to register your event observer object. - * - * @lib SatClient.lib - * @since Series 60 2.0 - */ - -class RSatUiSession : public RSubSessionBase - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - IMPORT_C RSatUiSession(); - - public: // New functions - - /** - * Registers the listener object for SAT events and connects to - * the Sat Server. - * @param aSat - * @param aObserver The observer. - */ - IMPORT_C void RegisterL( - const RSatSession& aSatSession, - MSatUiObserver* aObserver ); - - /** - * Returns a pointer to the object that implements the UI - * adapter interface. - * @return The adapter object pointer. - */ - IMPORT_C MSatUiAdapter* Adapter() const; - - /** - * Unregisters the listener object and disconnects from the server. - */ - void Unregister(); - - /** - * The client API version - * @return The version of the current API. - */ - IMPORT_C TVersion Version() const; - - /** - * Panics the client application - * @param aReason The reason code. - */ - IMPORT_C void Panic( TSatClientPanic aReason ) const; - - /** - * Shuts down the server. Active in development use only. - */ - IMPORT_C void KillServer() const; - - /** - * Create and send service request message to SAT server. - * @param aFunction Service request id. - * @param aArgs Service request arguments. - * @param aStatus Service request status. - */ - IMPORT_C void CreateRequest( - TInt aFunction, - const TIpcArgs& aArgs, - TRequestStatus& aStatus ) const; - - /** - * Create and send service request message to SAT server. - * @param aFunction Service request id. - * @param aArgs Service request arguments. - */ - IMPORT_C void CreateRequest( - TInt aFunction, - const TIpcArgs& aArgs ) const; - - /** - * Returns a pointer to the object that implements client observer - * object that receives SAT commands - * @return The client observer object pointer. - */ - IMPORT_C MSatUiObserver* SatUiObserver(); - - /** - * Returns a pointer to the object that implements Processor agent for - * SAT commands. - * @return The command processor object pointer. - */ - CSatCCommandProcessor* CommandProcessor(); - - public: // Functions from base classes - - /** - * From RHandleBase - * - * Close the handle. - */ - IMPORT_C void Close(); - - private: - - // Prohibited copy constructor. - RSatUiSession( const RSatUiSession& ); - - // Prohibited assigment operator. - RSatUiSession& operator= ( const RSatUiSession& ); - - /** - * Checks if the server is started. - * @return Interger value, is server started or not. - */ - TBool IsServerStarted() const; - - private: // Data - - /** - * Processor agent for SAT commands - */ - CSatCCommandProcessor* iCommandProcessor; - - /** - * The client observer object that receives SAT commands. - */ - MSatUiObserver* iSatUiObserver; - - }; - -#endif // RSATUISESSION_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/src/CSatCActiveCommandHandler.cpp --- a/satengine/SatServer/SatInternalClient/src/CSatCActiveCommandHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,162 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* active commands. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "RSatUiSession.h" -#include "MSatUiAdapter.h" -#include "CSatCActiveCommandHandler.h" -#include "CSatCCommandProcessor.h" -#include "SatSOpcodes.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatCActiveCommandHandler::CSatCActiveCommandHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatCActiveCommandHandler::CSatCActiveCommandHandler( - RSatUiSession* aSession ) : - iSession( aSession ), - iMenuSelectionData(), - iMenuSelectionPckg( iMenuSelectionData ) - { - } - -// ----------------------------------------------------------------------------- -// CSatCActiveCommandHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCActiveCommandHandler* CSatCActiveCommandHandler::NewL( - RSatUiSession* aSat ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCActiveCommandHandler::NewL calling" ) - - // Perform construction - CSatCActiveCommandHandler* self = - new ( ELeave ) CSatCActiveCommandHandler( aSat ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCActiveCommandHandler::NewL exiting" ) - return self; - } - -// Destructor -CSatCActiveCommandHandler::~CSatCActiveCommandHandler() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCActiveCommandHandler::~CSatCActiveCommandHandler calling" ) - iSession = NULL; - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCActiveCommandHandler::~CSatCActiveCommandHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCActiveCommandHandler::MenuSelection -// Sends the Menu Selection Active command -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCActiveCommandHandler::MenuSelection( - TInt aMenuItem, - TBool aHelpRequested ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCActiveCommandHandler::MenuSelection calling" ) - - // Empty the IPC data - RSat::TMenuSelectionV1 menuSelection; - iMenuSelectionData = menuSelection; - - // Map the index into correct item ID. - RSat::TItem item; - iSession->CommandProcessor()->SetUpMenuHandler()-> - OldSetUpMenuData().GetItem( static_cast( aMenuItem + 1 ), item ); - - // Set the item ID of the selected item. - iMenuSelectionData.iItemId = item.iItemId; - - // Set the help request identifier. - iMenuSelectionData.iHelp = RSat::EHelpNotRequested; - if ( aHelpRequested ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCActiveCommandHandler::MenuSelection aHelpRequested" ) - iMenuSelectionData.iHelp = RSat::EHelpRequested; - } - - // Perform a synchronous service request. - TIpcArgs arguments( &iMenuSelectionPckg ); - iSession->CreateRequest( ESatSActiveMenuSelection, arguments ); - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCActiveCommandHandler::MenuSelection exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCActiveCommandHandler::SessionTerminated -// Sends the Session Terminated Active command -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCActiveCommandHandler::SessionTerminated( TInt8 aType ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCActiveCommandHandler::SessionTerminated calling" ) - TSatTermination termination; - //lint -e{603} termination used through terminationPckg. - TSatTerminationPckg terminationPckg ( termination ); - - switch ( aType ) - { - case ESessionCancel: - { - termination.type = ETerminatedByCancel; - TIpcArgs arguments( &terminationPckg ); - iSession->CreateRequest( ESatSSessionTerminated, arguments ); - LOG( SIMPLE, "SATINTERNALCLIENT: Terminated by cancel" ) - break; - } - - case EEndKeyUsed: - { - termination.type = ETerminatedByEndKey; - TIpcArgs arguments( &terminationPckg ); - iSession->CreateRequest( ESatSSessionTerminated, arguments ); - LOG( SIMPLE, "SATINTERNALCLIENT: Terminated by end key" ) - break; - } - - default: - { - LOG( SIMPLE, "SATINTERNALCLIENT: Not terminated" ) - break; - } - } - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCActiveCommandHandler::SessionTerminated exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/src/CSatCCommandProcessor.cpp --- a/satengine/SatServer/SatInternalClient/src/CSatCCommandProcessor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,161 +0,0 @@ -/* -* Copyright (c) 2002-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: This file contains the client command processor class -* that is responsible for the active objects needed to -* maintain that connection. -* -*/ - - - -// INCLUDE FILES -#include -#include "CSatCCommandProcessor.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatCCommandProcessor::CSatCCommandProcessor -// C++ default constructor cannot contain any code that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatCCommandProcessor::CSatCCommandProcessor( - RSatUiSession* aSession ) : - iSession( aSession ) - { - } - -// ----------------------------------------------------------------------------- -// CSatCCommandProcessor::ConstructL -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatCCommandProcessor::ConstructL() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCCommandProcessor::ConstructL calling" ) - - // All the command handlers are constructed here. - iDisplayTextHandler = CSatCDisplayTextHandler::NewL( iSession ); - iGetInkeyHandler = CSatCGetInkeyHandler::NewL( iSession ); - iGetInputHandler = CSatCGetInputHandler::NewL( iSession ); - iSetUpMenuHandler = CSatCSetUpMenuHandler::NewL( iSession ); - iSelectItemHandler = CSatCSelectItemHandler::NewL( iSession ); - iPlayToneHandler = CSatCPlayToneHandler::NewL( iSession ); - iActiveCommandHandler = CSatCActiveCommandHandler::NewL( iSession ); - iEventHandler = CSatCEventHandler::NewL( iSession ); - iQueryHandler = CSatCQueryHandler::NewL( iSession ); - iNotifyHandler = CSatCNotifyHandler::NewL( iSession ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCCommandProcessor::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCCommandProcessor::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCCommandProcessor* CSatCCommandProcessor::NewL( - RSatUiSession* aSession ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCCommandProcessor::NewL calling" ) - - // Perform two-phase construction. - CSatCCommandProcessor* self = - new ( ELeave ) CSatCCommandProcessor( aSession ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCCommandProcessor::NewL exiting" ) - return self; - } - -// Destructor -CSatCCommandProcessor::~CSatCCommandProcessor() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCCommandProcessor::~CSatCCommandProcessor calling" ) - - // All the event handlers are deleted here. - delete iDisplayTextHandler; - delete iGetInkeyHandler; - delete iGetInputHandler; - delete iSetUpMenuHandler; - delete iSelectItemHandler; - delete iPlayToneHandler; - delete iActiveCommandHandler; - delete iEventHandler; - delete iQueryHandler; - delete iNotifyHandler; - - iSession = NULL; - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCCommandProcessor::~CSatCCommandProcessor exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCCommandProcessor::Start -// Starts the active objects -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCCommandProcessor::Start() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCCommandProcessor::Start calling" ) - - // Start all the event handlers - iDisplayTextHandler->Start(); - iGetInkeyHandler->Start(); - iGetInputHandler->Start(); - iSetUpMenuHandler->Start(); - iSelectItemHandler->Start(); - iPlayToneHandler->Start(); - iQueryHandler->Start(); - iNotifyHandler->Start(); - iEventHandler->Start(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCCommandProcessor::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCCommandProcessor::SetUpMenuHandler -// Returns a pointer to a Set Up menu command handler object. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CSatCSetUpMenuHandler* CSatCCommandProcessor::SetUpMenuHandler() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCCommandProcessor::SetUpMenuHandler calling-exiting" ) - return iSetUpMenuHandler; - } - -// ----------------------------------------------------------------------------- -// CSatCCommandProcessor::ActiveCommandHandler -// Returns a pointer to a active command handler object. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CSatCActiveCommandHandler* CSatCCommandProcessor::ActiveCommandHandler() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCCommandProcessor::ActiveCommandHandler calling-exiting" ) - return iActiveCommandHandler; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/src/CSatCDisplayTextHandler.cpp --- a/satengine/SatServer/SatInternalClient/src/CSatCDisplayTextHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,284 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* Display Text proactive command. -* -*/ - - -#include -#include "RSatUiSession.h" -#include "MSatUiObserver.h" -#include "CSatCDisplayTextHandler.h" -#include "SatSOpcodes.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatCDisplayTextHandler::CSatCDisplayTextHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatCDisplayTextHandler::CSatCDisplayTextHandler( - TInt aPriority, - RSatUiSession* aSession ) : - CActive( aPriority ), iSession( aSession ), - iDisplayTextData(), - iDisplayTextPckg( iDisplayTextData ), - iDisplayTextRsp(), - iDisplayTextRspPckg( iDisplayTextRsp ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCDisplayTextHandler::CSatCDisplayTextHandler calling" ) - - CActiveScheduler::Add( this ); // add to active scheduler - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCDisplayTextHandler::CSatCDisplayTextHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCDisplayTextHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCDisplayTextHandler* CSatCDisplayTextHandler::NewL( - RSatUiSession* aSat ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCDisplayTextHandler::NewL calling" ) - - // Perform construction. - CSatCDisplayTextHandler* self = - new ( ELeave ) CSatCDisplayTextHandler( EPriorityLow, aSat ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCDisplayTextHandler::NewL exiting" ) - return self; - } - -// Destructor -CSatCDisplayTextHandler::~CSatCDisplayTextHandler() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCDisplayTextHandler::~CSatCDisplayTextHandler calling" ) - - // Cancel any outstanding requests. - Cancel(); - iSession = NULL; - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCDisplayTextHandler::~CSatCDisplayTextHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCDisplayTextHandler::Start -// Starts the handler. -// ----------------------------------------------------------------------------- -// -void CSatCDisplayTextHandler::Start() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCDisplayTextHandler::Start calling" ) - - // Empty the IPC data - TSatDisplayTextV1 temp; - iDisplayTextData = temp; - RSat::TDisplayTextRspV1 temp2; - iDisplayTextRsp = temp2; - - // Request Display Text notifications. - TIpcArgs arguments( &iDisplayTextPckg ); - - // Pass the Display Text IPC package - iSession->CreateRequest( ESatSProactiveDisplayText, arguments, iStatus ); - - // Set this handler to active so that it can receive requests. - SetActive(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCDisplayTextHandler::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCDisplayTextHandler::RunL -// Handles the command. -// ----------------------------------------------------------------------------- -// -void CSatCDisplayTextHandler::RunL() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCDisplayTextHandler::RunL calling" ) - - // Check the status of the asnychronous operation - if ( KErrNone != iStatus.Int() ) - { - LOG2( - SIMPLE, - "SATINTERNALCLIENT: CSatCDisplayTextHandler::RunL exiting, error: %d", - iStatus.Int() ) - - // Renew the request - Start(); - } - else - { - // Has to be casted to TInt before casting to TSatIconQualifier, because - // gcc warns about the direct cast. - const struct TSatIconId iconId = { iDisplayTextData.iIconId.iIdentifier, - static_cast( - static_cast( iDisplayTextData.iIconId.iQualifier ) ) }; - - // This will contain EFalse if requested icon is not displayed. - TBool requestedIconDisplayed( ETrue ); - - // Indicator if user is expected to clear the message - TBool waitUserToClear( ETrue ); - - if ( RSat::EClearAfterDelay == iDisplayTextData.iClearScreen ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCDisplayTextHandler::RunL EClearAfterDelay" ) - waitUserToClear = EFalse; - } - - // Notify the registered client and save the response. - TSatUiResponse response; - response = iSession->SatUiObserver()->DisplayTextL( - iDisplayTextData.iText, - iDisplayTextData.iSimApplicationName, - iconId, - requestedIconDisplayed, - iDisplayTextData.iSustainedText, - iDisplayTextData.iDuration, - waitUserToClear ); - - // This command never has any additional information. - iDisplayTextRsp.iInfoType = RSat::KNoAdditionalInfo; - iDisplayTextRsp.iAdditionalInfo.Zero(); - - iDisplayTextRsp.SetPCmdNumber( iDisplayTextData.iPCmdNumber ); - - // Examine the client response. - ExamineClientResponse( - response, requestedIconDisplayed ); - - // Pass the Display Text response IPC package. - TIpcArgs arguments( &iDisplayTextRspPckg ); - - // Perform the IPC data transfer. - iSession->CreateRequest( ESatSProactiveDisplayTextResponse, arguments ); - - // Renew the service request. - Start(); - } - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCDisplayTextHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCDisplayTextHandler::ExamineClientResponse -// Examine the client response. -// ----------------------------------------------------------------------------- -// -void CSatCDisplayTextHandler::ExamineClientResponse( - TSatUiResponse aResponse, - TBool aRequestedIconDisplayed ) - { - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCDisplayTextHandler::ExamineClientResponse calling,\ - aResponse: %x", aResponse ) - - switch ( aResponse ) - { - case ESatSuccess: - { - // Convert terminal rsp if icon used - RSat::TPCmdResult result( RSat::KSuccess ); - RSat::TIconQualifier iconQualifier( - iDisplayTextData.iIconId.iQualifier ); - - if ( !aRequestedIconDisplayed ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCDisplayTextHandler::ExamineClientResponse \ - aRequestedIconDisplayed false" ) - if ( iconQualifier == RSat::ESelfExplanatory || - iconQualifier == RSat::ENotSelfExplanatory ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCDisplayTextHandler::ExamineClientResponse \ - IconNotDisplayed" ) - result = RSat::KSuccessRequestedIconNotDisplayed; - } - } - - iDisplayTextRsp.iGeneralResult = result; - break; - } - - case ESatFailure: - { - iDisplayTextRsp.iInfoType = RSat::KMeProblem; - iDisplayTextRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iDisplayTextRsp.iAdditionalInfo.SetLength( 1 ); - iDisplayTextRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - break; - } - - case ESatSessionTerminatedByUser: - { - iDisplayTextRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; - break; - } - - case ESatBackwardModeRequestedByUser: - { - iDisplayTextRsp.iGeneralResult = - RSat::KBackwardModeRequestedByUser; - break; - } - - case ESatNoResponseFromUser: - { - iDisplayTextRsp.iGeneralResult = RSat::KNoResponseFromUser; - break; - } - - // No help is ever supplied with this command - case EHelpRequestedByUser: - case EPCmdNotAcceptedByUser: - case ESatCmdDataNotUnderstood: - default: - { - iSession->Panic( ESatInvalidResponse ); - break; - } - } - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCDisplayTextHandler::ExamineClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCDisplayTextHandler::DoCancel -// Cancels the pending request. -// ----------------------------------------------------------------------------- -// -void CSatCDisplayTextHandler::DoCancel() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCDisplayTextHandler::DoCancel calling" ) - - // Complete the request with cancel code. - TRequestStatus* requestStatus = &iStatus; - User::RequestComplete( requestStatus, KErrCancel ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCDisplayTextHandler::DoCancel exiting" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/src/CSatCEventHandler.cpp --- a/satengine/SatServer/SatInternalClient/src/CSatCEventHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,174 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for various events related to -* those SIM Application Toolkit proactive commands that -* simply indicate that an action occured at the server. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "RSatUiSession.h" -#include "MSatUiObserver.h" -#include "CSatCEventHandler.h" -#include "SatSOpcodes.h" -#include "SatSTypes.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatCEventHandler::CSatCEventHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1769, 1403} Can not be initialized. -CSatCEventHandler::CSatCEventHandler( - TInt aPriority, - RSatUiSession* aSession ) : - CActive( aPriority ), - iSession( aSession ), - iEventData(), - iEventPckg( iEventData ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCEventHandler::CSatCEventHandler calling" ) - - // Add to active scheduler. - CActiveScheduler::Add( this ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCEventHandler::CSatCEventHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCEventHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCEventHandler* CSatCEventHandler::NewL( - RSatUiSession* aSat ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCEventHandler::NewL calling" ) - - // Perform construction. - CSatCEventHandler* self = - new ( ELeave ) CSatCEventHandler( EPriorityLow, aSat ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCEventHandler::NewL exiting" ) - return self; - } - -// Destructor -CSatCEventHandler::~CSatCEventHandler() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCEventHandler::~CSatCEventHandler calling" ) - - // Cancel any outstanding requests. - Cancel(); - iSession = NULL; - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCEventHandler::~CSatCEventHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCEventHandler::Start -// Starts the handler. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCEventHandler::Start() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCEventHandler::Start calling" ) - - // Request notifications about various server-side events. - TIpcArgs arguments( &iEventPckg ); - iSession->CreateRequest( ESatSProactiveEvent, arguments, iStatus ); - - // Set this handler to active so that it can receive requests. - SetActive(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCEventHandler::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCEventHandler::RunL -// Handles the command. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCEventHandler::RunL() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCEventHandler::RunL calling" ) - - // Check the status of the asnychronous operation - if ( KErrNone != iStatus.Int() ) - { - LOG2( - SIMPLE, - "SATINTERNALCLIENT: CSatCEventHandler::RunL exiting, error: %d", - iStatus.Int() ) - - // Renew the request - Start(); - - return; - } - - // Send event to UI - iSession->SatUiObserver()->EventNotification( - iEventData.iEvent, - iEventData.iStatus, - iEventData.iError ); - - if ( ESatSCloseSatUiAppEvent == iEventData.iEvent ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCEventHandler::RunL close ui" ) - // Close UI - CBaActiveScheduler::Exit(); - } - - - // Pass the Event response IPC package. - TIpcArgs arguments( &iEventPckg ); - - // Perform the IPC data transfer. - iSession->CreateRequest( ESatSProactiveEventResponse, arguments ); - - // Renew the service request. - Start(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCEventHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCEventHandler::DoCancel -// Cancels the pending request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCEventHandler::DoCancel() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCEventHandler::DoCancel calling" ) - - // Complete the request with cancel code. - TRequestStatus* requestStatus = &iStatus; - User::RequestComplete( requestStatus, KErrCancel ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCEventHandler::DoCancel exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/src/CSatCGetInkeyHandler.cpp --- a/satengine/SatServer/SatInternalClient/src/CSatCGetInkeyHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,503 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* Get Inkey proactive command. -* -*/ - - -#include -#include "RSatUiSession.h" -#include "MSatUiObserver.h" -#include "CSatCGetInkeyHandler.h" -#include "SatSOpcodes.h" -#include "SatLog.h" - -const TInt KTenthOfSecondsInMinute( 600 ); -const TInt8 KSecond( 10 ); -const TUint8 KHalfSecond( 5 ); -const TInt KHalfMinute( 300 ); -const TUint8 KByteMax( 255 ); - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatCGetInkeyHandler::CSatCGetInkeyHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatCGetInkeyHandler::CSatCGetInkeyHandler( - TInt aPriority, - RSatUiSession* aSession ) : - CActive( aPriority ), - iSession( aSession ), - iGetInkeyData(), - iGetInkeyPckg( iGetInkeyData ), - iGetInkeyRsp(), - iGetInkeyRspPckg( iGetInkeyRsp ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::CSatCGetInkeyHandler calling" ) - - // Add to active scheduler. - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::CSatCGetInkeyHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCGetInkeyHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCGetInkeyHandler* CSatCGetInkeyHandler::NewL( - RSatUiSession* aSat ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInkeyHandler::NewL calling" ) - - // Perform construction. - CSatCGetInkeyHandler* self = - new ( ELeave ) CSatCGetInkeyHandler( EPriorityLow, aSat ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInkeyHandler::NewL exiting" ) - return self; - } - -// Destructor -CSatCGetInkeyHandler::~CSatCGetInkeyHandler() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::~CSatCGetInkeyHandler calling" ) - - // Cancel any outstanding requests. - Cancel(); - iSession = NULL; - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::~CSatCGetInkeyHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCGetInkeyHandler::Start -// Starts the handler. -// ----------------------------------------------------------------------------- -// -void CSatCGetInkeyHandler::Start() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInkeyHandler::Start calling" ) - - // Empty the IPC data - RSat::TGetInkeyV2 temp; - iGetInkeyData = temp; - RSat::TGetInkeyRspV2 temp2; - iGetInkeyRsp = temp2; - - // Request Get Inkey notifications. - TIpcArgs arguments( &iGetInkeyPckg ); - - // Pass the Get Inkey IPC package. - iSession->CreateRequest( ESatSProactiveGetInkey, arguments, iStatus ); - - // Set this handler to active so that it can receive requests. - SetActive(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInkeyHandler::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCGetInkeyHandler::RunL -// Handles the command. -// ----------------------------------------------------------------------------- -// -void CSatCGetInkeyHandler::RunL() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInkeyHandler::RunL calling" ) - - // Check the status of the asnychronous operation - if ( KErrNone != iStatus.Int() ) - { - LOG2( - SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::RunL exiting, error: %d", - iStatus.Int() ) - - // Renew the request - Start(); - - return; - } - - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::RunL iGetInkeyData.iRspFormat: %d", - iGetInkeyData.iRspFormat ) - // Set the character set parameter. - TSatCharacterSet characterSet = ESatCharSmsDefaultAlphabet; - if ( RSat::EDigitOnly == iGetInkeyData.iRspFormat ) - { - characterSet = ESatDigitOnly; - } - else if ( RSat::ECharSmsDefaultAlphabet == iGetInkeyData.iRspFormat ) - { - characterSet = ESatCharSmsDefaultAlphabet; - } - else if ( RSat::ECharUcs2Alphabet == iGetInkeyData.iRspFormat ) - { - characterSet = ESatCharUcs2Alphabet; - } - else if ( RSat::EYesNo == iGetInkeyData.iRspFormat ) - { - characterSet = ESatYesNo; - } - else - { - characterSet = ESatCharSmsDefaultAlphabet; - } - - // This will contain user input. - TChar character; - - // Indicates whether help is available - TBool helpIsAvailable( EFalse ); - if ( RSat::EHelpAvailable == iGetInkeyData.iHelp ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::RunL HelpAvailable" ) - helpIsAvailable = ETrue; - } - - // Has to be casted to TInt before casting to TSatIconQualifier, because - // GCC warns about the direct cast. - const struct TSatIconId iconId = { iGetInkeyData.iIconId.iIdentifier, - static_cast( - static_cast( iGetInkeyData.iIconId.iQualifier ) ) }; - - // This will contain EFalse if requested icon is not displayed. - // And if icon is displayed, it contains ETrue. - TBool requestedIconDisplayed( EFalse ); - - TUint duration( 0 ); - TUint8 timeUnit( iGetInkeyData.iDuration.iTimeUnit ); - - // check if duration data is available. - if ( ( RSat::ENoDurationAvailable != timeUnit ) && - ( RSat::ETimeUnitNotSet != timeUnit ) && - iGetInkeyData.iDuration.iNumOfUnits ) - { - // The resolution of a timer is tenth of second. - duration = DurationInTenthOfSeconds(); - LOG2( SIMPLE, "SATINTERNALCLIENT: CSatCGetInkeyHandler duration %i", - duration ) - } - - TBool immediateDigitResponse( EFalse ); - if ( RSat::EImmediateDigitRsp == iGetInkeyData.iMode ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::RunL EImmediateDigitRsp" ) - immediateDigitResponse = ETrue; - } - - // Notify the registered client and save the response. - TSatUiResponse response = iSession->SatUiObserver()->GetInkeyL( - iGetInkeyData.iText, - characterSet, character, helpIsAvailable, - iconId, requestedIconDisplayed, - duration, immediateDigitResponse - ); - - // If duration exists set duration value in response - if ( duration && - ( ESatSuccess == response || ESatNoResponseFromUser == response ) ) - { - TenthOfSecondsToDuration( duration ); - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler duration in response %i", - iGetInkeyRsp.iDuration.iNumOfUnits ) - } - - // Use the same format in the response as it is in the input. - iGetInkeyRsp.iRspFormat = iGetInkeyData.iRspFormat; - - // By default, this command does not have additional information. - iGetInkeyRsp.iInfoType = RSat::KNoAdditionalInfo; - iGetInkeyRsp.iAdditionalInfo.Zero(); - - iGetInkeyRsp.SetPCmdNumber( iGetInkeyData.PCmdNumber() ); - - // Examine the client response. - ExamineClientResponse( - response, character, requestedIconDisplayed ); - - // Pass the Get Inkey response package. - TIpcArgs arguments( &iGetInkeyRspPckg ); - - // Perform the IPC data transfer. - iSession->CreateRequest( ESatSProactiveGetInkeyResponse, arguments ); - - // Renew the service request. - Start(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInkeyHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCGetInkeyHandler::ExamineClientResponse -// Examine the client response. -// ----------------------------------------------------------------------------- -// -void CSatCGetInkeyHandler::ExamineClientResponse( - TSatUiResponse aResponse, - const TChar& aCharacter, - TBool aRequestedIconDisplayed ) - { - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::ExamineClientResponse calling,\ - aResponse: %x", aResponse ) - - // Examine the client response. - switch ( aResponse ) - { - case ESatSuccess: - { - // Convert terminal rsp if icon used - RSat::TPCmdResult result( RSat::KSuccess ); - RSat::TIconQualifier iconQualifier( - iGetInkeyData.iIconId.iQualifier ); - - if ( !aRequestedIconDisplayed ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::ExamineClientResponse \ - aRequestedIconDisplayed false" ) - if ( iconQualifier == RSat::ESelfExplanatory || - iconQualifier == RSat::ENotSelfExplanatory ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::ExamineClientResponse \ - IconNotDisplayed" ) - result = RSat::KSuccessRequestedIconNotDisplayed; - } - } - - iGetInkeyRsp.iGeneralResult = result; - - // If GetInkey is type of YesNo, aCharacter is 0 if user selects NO - if ( aCharacter || ( RSat::EYesNo == iGetInkeyData.iRspFormat ) ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::ExamineClientResponse \ - set AdditionalInfo" ) - // Change the additional information type - iGetInkeyRsp.iInfoType = RSat::KTextString; - - // Save the character input by the user - iGetInkeyRsp.iAdditionalInfo.Append( aCharacter ); - } - else - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::ExamineClientResponse \ - no AdditionalInfo" ) - // Otherwise, just return the response. - iGetInkeyRsp.iInfoType = RSat::KNoAdditionalInfo; - } - break; - } - case ESatFailure: - { - iGetInkeyRsp.iInfoType = RSat::KMeProblem; - iGetInkeyRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iGetInkeyRsp.iAdditionalInfo.SetLength( 1 ); - iGetInkeyRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - break; - } - case ESatSessionTerminatedByUser: - { - iGetInkeyRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; - break; - } - case ESatBackwardModeRequestedByUser: - { - iGetInkeyRsp.iGeneralResult = - RSat::KBackwardModeRequestedByUser; - break; - } - case ESatNoResponseFromUser: - { - iGetInkeyRsp.iGeneralResult = RSat::KNoResponseFromUser; - break; - } - case EHelpRequestedByUser: - { - iGetInkeyRsp.iGeneralResult = RSat::KHelpRequestedByUser; - break; - } - case EPCmdNotAcceptedByUser: - case ESatCmdDataNotUnderstood: - default: - { - iSession->Panic( ESatInvalidResponse ); - break; - } - } - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::ExamineClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCGetInkeyHandler::DoCancel -// Cancels the pending request. -// ----------------------------------------------------------------------------- -// -void CSatCGetInkeyHandler::DoCancel() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInkeyHandler::DoCancel calling" ) - - // Complete the request with cancel code. - TRequestStatus* requestStatus = &iStatus; - User::RequestComplete( requestStatus, KErrCancel ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInkeyHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCGetInkeyHandler::DurationInTenthOfSeconds -// Return duration in seconds. -// ----------------------------------------------------------------------------- -// -TUint CSatCGetInkeyHandler::DurationInTenthOfSeconds() const - { - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::DurationInTenthOfSeconds calling,\ - iGetInkeyData.iDuration.iTimeUnit: %d",iGetInkeyData.iDuration.iTimeUnit ) - TUint duration( 0 ); - - switch ( iGetInkeyData.iDuration.iTimeUnit ) - { - case RSat::EMinutes: - { - duration = - iGetInkeyData.iDuration.iNumOfUnits * KTenthOfSecondsInMinute; - break; - } - case RSat::ESeconds: - { - duration = iGetInkeyData.iDuration.iNumOfUnits * KSecond; - break; - } - case RSat::ETenthsOfSeconds: - { - duration = iGetInkeyData.iDuration.iNumOfUnits; - break; - } - default: - { - //duration is 0 - break; - } - } - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::DurationInTenthOfSeconds exiting,\ - duration: %d", duration ) - return duration; - } - -// ----------------------------------------------------------------------------- -// CSatCGetInkeyHandler::TenthOfSecondsToDuration -// Convert second to duration. -// ----------------------------------------------------------------------------- -// -void CSatCGetInkeyHandler::TenthOfSecondsToDuration( - TUint aDuration ) - { - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::TenthOfSecondsToDuration calling,\ - iGetInkeyData.iDuration.iTimeUnit: %d",iGetInkeyData.iDuration.iTimeUnit ) - switch ( iGetInkeyData.iDuration.iTimeUnit ) - { - case RSat::EMinutes: - { - iGetInkeyRsp.iDuration.iTimeUnit = RSat::EMinutes; - - // Make Roundup - TUint numOfUnits( - ( aDuration + KHalfMinute ) / KTenthOfSecondsInMinute ); - - if ( KByteMax >= numOfUnits ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::TenthOfSecondsToDuration \ - EMinutes KByteMax >= numOfUnits" ) - iGetInkeyRsp.iDuration.iNumOfUnits = - static_cast( numOfUnits ); - } - else - { - iGetInkeyRsp.iDuration.iNumOfUnits = KByteMax; - } - - break; - } - case RSat::ESeconds: - { - iGetInkeyRsp.iDuration.iTimeUnit = RSat::ESeconds; - - // Make Roundup - TUint numOfUnits( - ( aDuration + KHalfSecond ) / KSecond ); - - if ( KByteMax >= numOfUnits ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::TenthOfSecondsToDuration \ - ESeconds KByteMax >= numOfUnits" ) - iGetInkeyRsp.iDuration.iNumOfUnits = - static_cast( numOfUnits ); - } - else - { - iGetInkeyRsp.iDuration.iNumOfUnits = KByteMax; - } - - break; - } - case RSat::ETenthsOfSeconds: - { - iGetInkeyRsp.iDuration.iTimeUnit = RSat::ETenthsOfSeconds; - if ( KByteMax >= aDuration ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::TenthOfSecondsToDuration \ - ETenthsOfSeconds KByteMax >= aDuration" ) - iGetInkeyRsp.iDuration.iNumOfUnits = - static_cast( aDuration ); - } - else - { - iGetInkeyRsp.iDuration.iNumOfUnits = KByteMax; - } - - break; - } - default: - { - break; - } - } - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInkeyHandler::TenthOfSecondsToDuration exiting" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/src/CSatCGetInputHandler.cpp --- a/satengine/SatServer/SatInternalClient/src/CSatCGetInputHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,357 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* Get Input proactive command. -* -*/ - - -#include -#include "RSatUiSession.h" -#include "MSatUiObserver.h" -#include "CSatCGetInputHandler.h" -#include "SatSOpcodes.h" -#include "SatSTypes.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatCGetInputHandler::CSatCGetInputHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatCGetInputHandler::CSatCGetInputHandler( - TInt aPriority, - RSatUiSession* aSession ) : - CActive( aPriority ), - iSession( aSession ), - iGetInputData(), - iGetInputPckg( iGetInputData ), - iGetInputRsp(), - iGetInputRspPckg( iGetInputRsp ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInputHandler::CSatCGetInputHandler calling" ) - - // Add to active scheduler. - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInputHandler::CSatCGetInputHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCGetInputHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCGetInputHandler* CSatCGetInputHandler::NewL( - RSatUiSession* aSat ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInputHandler::NewL calling" ) - - // Perform construction. - CSatCGetInputHandler* self = - new ( ELeave ) CSatCGetInputHandler( EPriorityLow, aSat ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInputHandler::NewL exiting" ) - return self; - } - -// Class destructor. -CSatCGetInputHandler::~CSatCGetInputHandler() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInputHandler::~CSatCGetInputHandler calling" ) - - // Cancel any outstanding requests. - Cancel(); - - iSession = NULL; - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInputHandler::~CSatCGetInputHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCGetInputHandler::Start -// Starts the handler. -// ----------------------------------------------------------------------------- -// -void CSatCGetInputHandler::Start() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInputHandler::Start calling" ) - - // Empty the IPC data - RSat::TGetInputV1 temp; - iGetInputData = temp; - RSat::TGetInputRspV1 temp2; - iGetInputRsp = temp2; - - // Request Get Input notification. - TIpcArgs arguments( &iGetInputPckg ); - - // Pass the Get Input IPC package. - iSession->CreateRequest( ESatSProactiveGetInput, arguments, iStatus ); - - // Set this handler to active so that it can receive requests. - SetActive(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInputHandler::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCGetInputHandler::ConvertCharacterSet -// Converts USAT character set to SAT character set type. -// ----------------------------------------------------------------------------- -// -TSatCharacterSet CSatCGetInputHandler::ConvertCharacterSet( - const RSat::TGetInputRspFormat& aCharacterSet ) const - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInputHandler::ConvertCharacterSet calling" ) - - TSatCharacterSet charSet( ESatCharSmsDefaultAlphabet ); - - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInputHandler::ConvertCharacterSet aCharacterSet: %d", - aCharacterSet ) - - if ( ( RSat::EDigitOnlyUnpacked == aCharacterSet ) || - ( RSat::EDigitOnlyPacked == aCharacterSet ) ) - { - charSet = ESatDigitOnly; - } - else if ( aCharacterSet == RSat::EUcs2Alphabet ) - { - charSet = ESatCharUcs2Alphabet; - } - else - { - charSet = ESatCharSmsDefaultAlphabet; - } - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInputHandler::ConvertCharacterSet exiting" ) - return charSet; - } - -// ----------------------------------------------------------------------------- -// CSatCGetInputHandler::RunL -// Handles the command. -// ----------------------------------------------------------------------------- -// -void CSatCGetInputHandler::RunL() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInputHandler::RunL calling" ) - - // Check the status of the asnychronous operation - if ( KErrNone != iStatus.Int() ) - { - LOG2( - SIMPLE, - "SATINTERNALCLIENT: CSatCGetInputHandler::RunL exiting, error: %d", - iStatus.Int() ) - - // Renew the request - Start(); - - return; - } - - // Determine the character set. - const TSatCharacterSet characterSet( - ConvertCharacterSet( iGetInputData.iRspFormat ) ); - - // Determine whether user input should be hidden or not. - TBool hideInput( EFalse ); - if ( RSat::EHideUserInput == iGetInputData.iInputDisplayOption ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInputHandler::RunL EHideUserInput" ) - hideInput = ETrue; - } - - // This will contain user input. - TBuf inputText( iGetInputData.iDefaultText ); - - // Indicates whether help is available - TBool helpIsAvailable( EFalse ); - if ( RSat::EHelpAvailable == iGetInputData.iHelp ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInputHandler::RunL EHelpAvailable" ) - helpIsAvailable = ETrue; - } - - // Has to be casted to TInt before casting to TSatIconQualifier, because - // GCC warns about the direct cast. - const struct TSatIconId iconId = { iGetInputData.iIconId.iIdentifier, - static_cast( - static_cast( iGetInputData.iIconId.iQualifier ) ) }; - - // This will contain EFalse if requested icon is not displayed. - // And if icon is displayed, it contains ETrue. - TBool requestedIconDisplayed( EFalse ); - - // Notify the registered client and save the response. - TSatUiResponse response = iSession->SatUiObserver()->GetInputL( - iGetInputData.iText, - characterSet, inputText, iGetInputData.iRspLength.iMinRspLength, - iGetInputData.iRspLength.iMaxRspLength, hideInput, - helpIsAvailable, iconId, requestedIconDisplayed ); - - // Use the same format in the response as it is in the input. - iGetInputRsp.iRspFormat = iGetInputData.iRspFormat; - - // By default, this command does not have additional information. - iGetInputRsp.iInfoType = RSat::KNoAdditionalInfo; - iGetInputRsp.iAdditionalInfo.Zero(); - - iGetInputRsp.SetPCmdNumber( iGetInputData.PCmdNumber() ); - - // Examine the client response. - ExamineClientResponse( - response, inputText, requestedIconDisplayed ); - - // Pass the Get Input response package. - TIpcArgs arguments( &iGetInputRspPckg ); - - // Perform the IPC data transfer. - iSession->CreateRequest( ESatSProactiveGetInputResponse, arguments ); - - // Renew the service request. - Start(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInputHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCGetInputHandler::ExamineClientResponse -// Examine the client response. -// ----------------------------------------------------------------------------- -// -void CSatCGetInputHandler::ExamineClientResponse( - TSatUiResponse aResponse, - const TDes& aInputText, - TBool aRequestedIconDisplayed ) - { - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInputHandler::ExamineClientResponse calling,\ - aResponse: %d", aResponse ) - - // Examine the client response. - switch ( aResponse ) - { - case ESatSuccess: - { - - // Convert terminal rsp if icon used - RSat::TPCmdResult result( RSat::KSuccess ); - RSat::TIconQualifier iconQualifier( - iGetInputData.iIconId.iQualifier ); - - if ( !aRequestedIconDisplayed ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInputHandler::ExamineClientResponse \ - aRequestedIconDisplayed false" ) - if ( iconQualifier == RSat::ESelfExplanatory || - iconQualifier == RSat::ENotSelfExplanatory ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInputHandler::ExamineClientResponse \ - IconNotDisplayed" ) - result = RSat::KSuccessRequestedIconNotDisplayed; - } - } - - iGetInputRsp.iGeneralResult = result; - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInputHandler::ExamineClientResponse length \ - of aInputText: %d", aInputText.Length() ) - // Change the additional information type - if ( aInputText.Length() > 0 ) - { - iGetInputRsp.iInfoType = RSat::KTextString; - - // Save the character input by the user - iGetInputRsp.iAdditionalInfo.Append( aInputText ); - } - break; - } - - // Otherwise, just return the response. - case ESatFailure: - { - iGetInputRsp.iInfoType = RSat::KMeProblem; - iGetInputRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iGetInputRsp.iAdditionalInfo.SetLength( 1 ); - iGetInputRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - break; - } - - case ESatSessionTerminatedByUser: - { - iGetInputRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; - break; - } - - case ESatBackwardModeRequestedByUser: - { - iGetInputRsp.iGeneralResult = - RSat::KBackwardModeRequestedByUser; - break; - } - - case ESatNoResponseFromUser: - { - iGetInputRsp.iGeneralResult = RSat::KNoResponseFromUser; - break; - } - - case EHelpRequestedByUser: - { - iGetInputRsp.iGeneralResult = RSat::KHelpRequestedByUser; - break; - } - - case EPCmdNotAcceptedByUser: - case ESatCmdDataNotUnderstood: - default: - { - iSession->Panic( ESatInvalidResponse ); - break; - } - } - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCGetInputHandler::ExamineClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCGetInputHandler::DoCancel -// Cancels the pending request. -// ----------------------------------------------------------------------------- -// -void CSatCGetInputHandler::DoCancel() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInputHandler::DoCancel calling" ) - - // Complete the request with cancel code. - TRequestStatus* requestStatus = &iStatus; - User::RequestComplete( requestStatus, KErrCancel ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCGetInputHandler::DoCancel exiting" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/src/CSatCNotifyHandler.cpp --- a/satengine/SatServer/SatInternalClient/src/CSatCNotifyHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,218 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for various notifications related to -* those SIM Application Toolkit proactive commands that -* uses notifications to inform user about their actions. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "RSatUiSession.h" -#include "MSatUiObserver.h" -#include "SatSOpcodes.h" -#include "CSatCNotifyHandler.h" -#include "SatLog.h" - -// CONSTANTS - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatCNotifyHandler::CSatCNotifyHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized, harmless. -CSatCNotifyHandler::CSatCNotifyHandler( - TInt aPriority, - RSatUiSession* aSession ) : - CActive( aPriority ), - iSession( aSession ), - iNotifyData(), - iNotifyPckg( iNotifyData ), - iNotifyRsp(), - iNotifyRspPckg( iNotifyRsp ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCNotifyHandler::CSatCNotifyHandler calling" ) - - // Add to active scheduler. - CActiveScheduler::Add( this ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCNotifyHandler::CSatCNotifyHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCNotifyHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCNotifyHandler* CSatCNotifyHandler::NewL( - RSatUiSession* aSat ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCNotifyHandler::NewL calling" ) - - // Perform construction. - CSatCNotifyHandler* self = - new ( ELeave ) CSatCNotifyHandler( EPriorityLow, aSat ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCNotifyHandler::NewL exiting" ) - return self; - } - -// Destructor -CSatCNotifyHandler::~CSatCNotifyHandler() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCNotifyHandler::~CSatCNotifyHandler calling" ) - - // Cancel any outstanding requests. - Cancel(); - iSession = NULL; - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCNotifyHandler::~CSatCNotifyHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCNotifyHandler::Start -// Starts the handler. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCNotifyHandler::Start() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCNotifyHandler::Start calling" ) - - // Empty the IPC data - TSatNotificationV1 temp; - iNotifyData = temp; - TSatNotificationRspV1 temp2; - temp2.iAccepted = EFalse; - temp2.iCommand = ESatSSendDataNotify; - iNotifyRsp = temp2; - - // Request notification. - TIpcArgs arguments( &iNotifyPckg ); - - // Pass the notification IPC package. - iSession->CreateRequest( ESatSProactiveNotification, arguments, iStatus ); - - // Set this handler to active so that it can receive requests. - SetActive(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCNotifyHandler::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCNotifyHandler::RunL -// Handles the command. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCNotifyHandler::RunL() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCNotifyHandler::RunL calling" ) - - // Check the status of the asnychronous operation - if ( KErrNone != iStatus.Int() ) - { - LOG2( - SIMPLE, - "SATINTERNALCLIENT: CSatCNotifyHandler::RunL error: %d", - iStatus.Int() ) - - // Renew the request - Start(); - } - - else - { - // This will contain the result of the user query. - TBool userQuery( ETrue ); - - // This will contain EFalse if requested icon is not displayed. - // And if icon is displayed, it contains ETrue. - TBool requestedIconDisplayed( EFalse ); - - // This will contain the result that has the user pressed end key. - TBool terminatedByUser( EFalse ); - - // Has to be casted to TInt before casting to TSatIconQualifier, because - // GCC warns about the direct cast. - const struct TSatIconId iconId = - { - iNotifyData.iIconId.iIdentifier, - static_cast( - static_cast( - iNotifyData.iIconId.iIconQualifier ) ) - }; - - // Send notification to UI - TSatUiResponse response = iSession->SatUiObserver()->Notification( - iNotifyData.iCommand, - iNotifyData.iAlphaIdStatus, - iNotifyData.iText, - iconId, - requestedIconDisplayed, - iNotifyData.iControlResult ); - - // Check response - if ( ESatSuccess != response ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCNotifyHandler::RunL ESatSuccess != response" ) - terminatedByUser = ETrue; - } - - // Indicate SAT Server that notification is complete - iNotifyRsp.iCommand = iNotifyData.iCommand; - iNotifyRsp.iRequestedIconDisplayed = requestedIconDisplayed; - iNotifyRsp.iSessionTerminatedByUser = terminatedByUser; - iNotifyRsp.iAccepted = userQuery; - - // Pass the notification response IPC package. - TIpcArgs arguments( &iNotifyRspPckg ); - - // Perform the IPC data transfer. - iSession->CreateRequest( ESatSProactiveNotificationResponse, arguments ); - - Start(); - } - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCNotifyHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCNotifyHandler::DoCancel -// Cancels the pending request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCNotifyHandler::DoCancel() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCNotifyHandler::DoCancel calling" ) - - // Complete the request with cancel code. - TRequestStatus* requestStatus = &iStatus; - User::RequestComplete( requestStatus, KErrCancel ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCNotifyHandler::DoCancel exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/src/CSatCPlayToneHandler.cpp --- a/satengine/SatServer/SatInternalClient/src/CSatCPlayToneHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,324 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* Play Tone proactive command. -* -*/ - - -#include -#include "RSatUiSession.h" -#include "MSatUiObserver.h" -#include "SatSOpcodes.h" -#include "CSatCPlayToneHandler.h" -#include "SatLog.h" - -// Used when Play tone doesn't contain duration. -const TInt KSatPtDefaultDuration = 5; - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatCPlayToneHandler::CSatCPlayToneHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatCPlayToneHandler::CSatCPlayToneHandler( - TInt aPriority, - RSatUiSession* aSession ) : - CActive( aPriority ), - iSession( aSession ), - iPlayToneData(), - iPlayTonePckg( iPlayToneData ), - iPlayToneRsp(), - iPlayToneRspPckg( iPlayToneRsp ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCPlayToneHandler::CSatCPlayToneHandler calling" ) - - // Add to active scheduler. - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCPlayToneHandler::CSatCPlayToneHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCPlayToneHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCPlayToneHandler* CSatCPlayToneHandler::NewL( - RSatUiSession* aSat ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCPlayToneHandler::NewL calling" ) - - // Perform the construction. - CSatCPlayToneHandler* self = - new ( ELeave ) CSatCPlayToneHandler( EPriorityLow, aSat ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCPlayToneHandler::NewL exiting" ) - return self; - } - -// Destructor -CSatCPlayToneHandler::~CSatCPlayToneHandler() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCPlayToneHandler::~CSatCPlayToneHandler calling" ) - // Cancel any outstanding requests. - - Cancel(); - iSession = NULL; - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCPlayToneHandler::~CSatCPlayToneHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCPlayToneHandler::Start -// Starts the handler. -// ----------------------------------------------------------------------------- -// -void CSatCPlayToneHandler::Start() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCPlayToneHandler::Start calling" ) - - // Empty the IPC data - RSat::TPlayToneV2 temp; - iPlayToneData = temp; - RSat::TPlayToneRspV1 temp2; - iPlayToneRsp = temp2; - - // Request Play Tone notification. - TIpcArgs arguments( &iPlayTonePckg ); - - // Pass the Play Tone IPC package. - iSession->CreateRequest( ESatSProactivePlayTone, arguments, iStatus ); - - // Set this handler to active so that it can receive requests. - SetActive(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCPlayToneHandler::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCPlayToneHandler::RunL -// Handles the command. -// ----------------------------------------------------------------------------- -// -void CSatCPlayToneHandler::RunL() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCPlayToneHandler::RunL calling" ) - - // Check the status of the asnychronous operation - if ( KErrNone != iStatus.Int() ) - { - LOG2( - SIMPLE, - "SATINTERNALCLIENT: CSatCPlayToneHandler::RunL exiting, error: %d", - iStatus.Int() ) - - // Renew the request - Start(); - - return; - } - - // Determine the play duration. - TTimeIntervalMicroSeconds interval( static_cast( 0 ) ); - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCPlayToneHandler::RunL \ - iPlayToneData.iDuration.iTimeUnit: %d",iPlayToneData.iDuration.iTimeUnit ) - switch ( iPlayToneData.iDuration.iTimeUnit ) - { - case RSat::EMinutes: - { - TInt64 temp1( - static_cast( iPlayToneData.iDuration.iNumOfUnits ) ); - TInt64 temp2( KSatCMicroSecondsInMinute ); - interval = temp1 * temp2; - break; - } - case RSat::ESeconds: - { - interval = iPlayToneData.iDuration.iNumOfUnits * - KSatCMicroSecondsInSecond; - break; - } - case RSat::ETenthsOfSeconds: - { - interval = iPlayToneData.iDuration.iNumOfUnits * - KSatCMicroSecondsInOneTenthSecond; - break; - } - case RSat::ETimeUnitNotSet: - case RSat::ENoDurationAvailable: - { - // We are defaulting to 5 seconds in S60 - interval = KSatPtDefaultDuration * - KSatCMicroSecondsInSecond; - break; - } - default: - { - LOG( SIMPLE, "SATINTERNALCLIENT: Unexpected time unit" ) - } - } - // Set the type of tone to be played. - // Cannot use static_cast directly because of GCC - TSatTone dialTone( static_cast( - static_cast( iPlayToneData.iTone ) ) ); - - // Has to be casted to TInt before casting to TSatIconQualifier, because - // GCC warns about the direct cast. - const struct TSatIconId iconId = { iPlayToneData.iIconId.iIdentifier, - static_cast( - static_cast( iPlayToneData.iIconId.iQualifier ) ) }; - - // This will contain EFalse if requested icon is not displayed. - // And if icon is displayed, it contains ETrue. - TBool requestedIconDisplayed( EFalse ); - - // Notify the registered client and save the response. - TSatUiResponse response = iSession->SatUiObserver()->PlayTone( - iPlayToneData.iAlphaId.iAlphaId, dialTone, interval, - iconId, requestedIconDisplayed ); - - // This command never has any additional information. - iPlayToneRsp.iInfoType = RSat::KNoAdditionalInfo; - iPlayToneRsp.iAdditionalInfo.Zero(); - - iPlayToneRsp.SetPCmdNumber( iPlayToneData.PCmdNumber() ); - - // Examine the client response. - ExamineClientResponse( - response, requestedIconDisplayed ); - - // Pass the Play Tone response IPC package. - TIpcArgs arguments( &iPlayToneRspPckg ); - - // Perform the IPC data transfer. - iSession->CreateRequest( ESatSProactivePlayToneResponse, arguments ); - - // Renew the request - Start(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCPlayToneHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCPlayToneHandler::ExamineClientResponse -// Examine the client response. -// ----------------------------------------------------------------------------- -// -void CSatCPlayToneHandler::ExamineClientResponse( - TSatUiResponse aResponse, - TBool aRequestedIconDisplayed ) - { - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCPlayToneHandler::ExamineClientResponse calling,\ - aResponse: %x", aResponse ) - - // Examine the client response. - switch ( aResponse ) - { - case ESatSuccess: - case ESatSuccessToneNotPlayed: // for future use, - // specified in ETSI spec but not currently implemented in etelsat. - { - // Convert terminal rsp if icon used - RSat::TPCmdResult result( RSat::KSuccess ); - RSat::TIconQualifier iconQualifier( - iPlayToneData.iIconId.iQualifier ); - - if ( !aRequestedIconDisplayed ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCPlayToneHandler::ExamineClientResponse \ - aRequestedIconDisplayed false" ) - if ( iconQualifier == RSat::ESelfExplanatory || - iconQualifier == RSat::ENotSelfExplanatory ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCPlayToneHandler::ExamineClientResponse \ - IconNotDisplayed" ) - result = RSat::KSuccessRequestedIconNotDisplayed; - } - } - - iPlayToneRsp.iGeneralResult = result; - break; - } - case ESatFailure: - { - iPlayToneRsp.iInfoType = RSat::KMeProblem; - iPlayToneRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iPlayToneRsp.iAdditionalInfo.SetLength( 1 ); - iPlayToneRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - break; - } - case ESatSessionTerminatedByUser: - { - iPlayToneRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; - break; - } - case ESatBackwardModeRequestedByUser: - { - iPlayToneRsp.iGeneralResult = - RSat::KBackwardModeRequestedByUser; - break; - } - case ESatNoResponseFromUser: - { - iPlayToneRsp.iGeneralResult = RSat::KNoResponseFromUser; - break; - } - case ESatCmdDataNotUnderstood: - { - iPlayToneRsp.iGeneralResult = RSat::KCmdDataNotUnderstood; - iPlayToneRsp.iInfoType = RSat::KNoAdditionalInfo; - iPlayToneRsp.iAdditionalInfo.Zero(); - break; - } - // No help is ever available with this command. - case EHelpRequestedByUser: - case EPCmdNotAcceptedByUser: - default: - { - iSession->Panic( ESatInvalidResponse ); - break; - } - } - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCPlayToneHandler::ExamineClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCPlayToneHandler::DoCancel -// Cancels the pending request. -// ----------------------------------------------------------------------------- -// -void CSatCPlayToneHandler::DoCancel() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCPlayToneHandler::DoCancel calling" ) - - // Complete the request with cancel code. - TRequestStatus* requestStatus = &iStatus; - User::RequestComplete( requestStatus, KErrCancel ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCPlayToneHandler::DoCancel exiting" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/src/CSatCQueryHandler.cpp --- a/satengine/SatServer/SatInternalClient/src/CSatCQueryHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,206 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for various query requests related to -* those SIM Application Toolkit proactive commands that require -* user permissions to complete their actions. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "RSatUiSession.h" -#include "MSatUiObserver.h" -#include "SatSOpcodes.h" -#include "CSatCQueryHandler.h" -#include "SatLog.h" - -// CONSTANTS - -// This will contain the Window Group Id of SAT UI -const TInt KSatUiWgId = -1; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatCQueryHandler::CSatCQueryHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -//lint -e{1403, 1769} Can not be initialized, harmless. -CSatCQueryHandler::CSatCQueryHandler( - TInt aPriority, - RSatUiSession* aSession ) : - CActive( aPriority ), - iSession( aSession ), - iQueryData(), - iQueryPckg( iQueryData ), - iQueryRsp(), - iQueryRspPckg( iQueryRsp ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCQueryHandler::CSatCQueryHandler calling" ) - - // Add to active scheduler. - CActiveScheduler::Add( this ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCQueryHandler::CSatCQueryHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCQueryHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCQueryHandler* CSatCQueryHandler::NewL( - RSatUiSession* aSat ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCQueryHandler::NewL calling" ) - - // Perform construction. - CSatCQueryHandler* self = - new ( ELeave ) CSatCQueryHandler( EPriorityLow, aSat ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCQueryHandler::NewL exiting" ) - return self; - } - -// Destructor -CSatCQueryHandler::~CSatCQueryHandler() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCQueryHandler::~CSatCQueryHandler calling" ) - - // Cancel any outstanding requests. - Cancel(); - iSession = NULL; - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCQueryHandler::~CSatCQueryHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCQueryHandler::Start -// Starts the handler. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCQueryHandler::Start() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCQueryHandler::Start calling" ) - - // Empty the IPC data - TSatQueryV1 temp; - iQueryData = temp; - TSatQueryRspV1 temp2; - temp2.iAccepted = EFalse; - temp2.iCommand = ESatSSendSmQuery; - iQueryRsp = temp2; - - // Request queries notification. - TIpcArgs arguments( &iQueryPckg ); - - // Pass the Query IPC package. - iSession->CreateRequest( ESatSProactiveQuery, arguments, iStatus ); - - // Set this handler to active so that it can receive requests. - SetActive(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCQueryHandler::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCQueryHandler::RunL -// Handles the command. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCQueryHandler::RunL() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCQueryHandler::RunL calling" ) - - // Check the status of the asnychronous operation - if ( KErrNone != iStatus.Int() ) - { - LOG2( - SIMPLE, - "SATINTERNALCLIENT: CSatCQueryHandler::RunL error: %d", - iStatus.Int() ) - - // Renew the request - Start(); - } - - else - { - // This will contain the result of the user query. - TBool userQuery( EFalse ); - - // This will contain EFalse if requested icon is not displayed. - // And if icon is displayed, it contains ETrue. - TBool requestedIconDisplayed( EFalse ); - - // This will contain the result that has the user pressed end key. - TBool terminatedByUser( EFalse ); - - // Use general configm function - iSession->SatUiObserver()->ConfirmCommand( - iQueryData.iCommand, - iQueryData.iAlphaIdStatus, - iQueryData.iQueryText, - iQueryData.iSimApplicationName, - userQuery, - iQueryData.iIconId, - requestedIconDisplayed, - terminatedByUser ); - - // Return the result of the query to the server. - iQueryRsp.iAccepted = userQuery; - iQueryRsp.iCommand = iQueryData.iCommand; - iQueryRsp.iWgId = KSatUiWgId; - iQueryRsp.iRequestedIconDisplayed = requestedIconDisplayed; - iQueryRsp.iSessionTerminatedByUser = terminatedByUser; - - // Pass the Query response IPC package. - TIpcArgs arguments( &iQueryRspPckg ); - - // Perform the IPC data transfer. - iSession->CreateRequest( ESatSProactiveQueryResponse, arguments ); - - Start(); - } - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCQueryHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCQueryHandler::DoCancel -// Cancels the pending request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCQueryHandler::DoCancel() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCQueryHandler::DoCancel calling" ) - - // Complete the request with cancel code. - TRequestStatus* requestStatus = &iStatus; - User::RequestComplete( requestStatus, KErrCancel ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCQueryHandler::DoCancel exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/src/CSatCSelectItemHandler.cpp --- a/satengine/SatServer/SatInternalClient/src/CSatCSelectItemHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,435 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* Select Item proactive command. -* -*/ - - -#include -#include -#include "RSatUiSession.h" -#include "MSatUiObserver.h" -#include "SatSOpcodes.h" -#include "CSatCSelectItemHandler.h" -#include "SatLog.h" - -const TInt8 KMenuItemPop( 3 ); - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// CSatCSelectItemHandler::CSatCSelectItemHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatCSelectItemHandler::CSatCSelectItemHandler( - TInt aPriority, - RSatUiSession* aSession ) : - CActive( aPriority ), - iSession( aSession ), - iSelectItemData(), - iSelectItemPckg( iSelectItemData ), - iSelectItemRsp(), - iSelectItemRspPckg( iSelectItemRsp ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::CSatCSelectItemHandler calling" ) - - // Add to active scheduler. - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::CSatCSelectItemHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCSelectItemHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCSelectItemHandler* CSatCSelectItemHandler::NewL( - RSatUiSession* aSat ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSelectItemHandler::NewL calling" ) - - // Perform the construction. - CSatCSelectItemHandler* self = - new ( ELeave ) CSatCSelectItemHandler( EPriorityLow, aSat ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSelectItemHandler::NewL exiting" ) - return self; - } - -// Destructor -CSatCSelectItemHandler::~CSatCSelectItemHandler() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::~CSatCSelectItemHandler calling" ) - - // Cancel any outstanding requests. - Cancel(); - iSession = NULL; - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::~CSatCSelectItemHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCSelectItemHandler::Start -// Starts the handler. -// ----------------------------------------------------------------------------- -// -void CSatCSelectItemHandler::Start() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSelectItemHandler::Start calling" ) - - // Empty the IPC data - RSat::TSelectItemV2 temp; - iSelectItemData = temp; - RSat::TSelectItemRspV1 temp2; - iSelectItemRsp = temp2; - - // Request Select Item notification. - TIpcArgs arguments( &iSelectItemPckg ); - - // Pass the Select Item IPC package. - iSession->CreateRequest( ESatSProactiveSelectItem, arguments, iStatus ); - - // Set this handler to active so that it can receive requests. - SetActive(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSelectItemHandler::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCSelectItemHandler::RunL -// Handles the command. -// ----------------------------------------------------------------------------- -// -void CSatCSelectItemHandler::RunL() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSelectItemHandler::RunL calling" ) - - // Check the status of the asnychronous operation - if ( KErrNone != iStatus.Int() ) - { - LOG2( - SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::RunL error: %d", - iStatus.Int() ) - - // Renew the request - Start(); - } - else - { - // Create the menu item array. - CDesC16ArrayFlat* menuItems = new( ELeave ) CDesC16ArrayFlat( 1 ); - CleanupStack::PushL( menuItems ); - - // Create the next action indicator array. - CArrayFixFlat* menuActions = - new( ELeave ) CArrayFixFlat( 1 ); - CleanupStack::PushL( menuActions ); - - // Create the menu item icon array. - CArrayFixFlat* menuIcons = - new( ELeave ) CArrayFixFlat( 1 ); - CleanupStack::PushL( menuIcons ); - - // Fetch all the menu items. - // Note that the indexing starts from 1 in SIM item lists. - // This is the default menu item. - TInt defaultItem( 0 ); - TBool defaultItemIdFound( EFalse ); - - const TInt numberOfItems( static_cast( - iSelectItemData.NumberOfItems() ) ); - - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::RunL numberOfItems: %d", - numberOfItems ) - for ( TInt currentItem = 1; currentItem <= numberOfItems; currentItem++ ) - { - RSat::TItem item; - TInt action; - TInt icon( KErrNotFound ); - - // Fetch all data for this index. - iSelectItemData.GetItem( static_cast( currentItem ), - item, action, icon ); - - if ( item.iItemId == iSelectItemData.iDefaultItemId ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::RunL has defaultItemId" ) - defaultItem = currentItem - 1; - defaultItemIdFound = ETrue; - } - - // Save the item name - menuItems->AppendL( item.iItemString ); - - // Save icon identifier. - // icon will be KErrNotFound (-1) if it is not present in the - // SAT menu. - menuIcons->AppendL( icon ); - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::RunL action: %d", action ) - if ( KErrNotFound != action ) - { - // Save the next action indicator, if found. - menuActions->AppendL( STATIC_CAST( TSatAction, action ) ); - } - } - - // Do not return partial comprehension response when - // default item is not set. - if ( !iSelectItemData.iDefaultItemId ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::RunL \ - iSelectItemData.iDefaultItemId false" ) - defaultItemIdFound = ETrue; - } - - // This will contain the user selection. - TUint8 selection; - - // Indicates whether help is available - TBool helpIsAvailable( EFalse ); - if ( iSelectItemData.iHelp == RSat::EHelpAvailable ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::RunL EHelpAvailable" ) - helpIsAvailable = ETrue; - } - - // Has to be casted to TInt before casting to TSatIconQualifier, - // because gcc warns about the direct cast. - const struct TSatIconId iconId = { iSelectItemData.iIconId.iIdentifier, - static_cast( - static_cast( iSelectItemData.iIconId.iQualifier ) ) }; - - const enum TSatIconQualifier iconListQualifier( - static_cast( - static_cast( iSelectItemData.iIconListQualifier ) ) ); - - const enum TSatSelectionPreference selectionPreference( - static_cast( - static_cast( iSelectItemData.iPreference ) ) ); - - // This will contain EFalse if requested icon is not displayed. - TBool requestedIconDisplayed( ETrue ); - - // About lint e64: - // Error in lint was MDesC8Array = CDesC16ArrayFlat, which - // is not the case. - // Notify the registered client and save the response. - //lint -e{64} - TSatUiResponse response = iSession->SatUiObserver()->SelectItemL( - iSelectItemData.iAlphaId.iAlphaId, - *menuItems, - menuActions, - defaultItem, - selection, - helpIsAvailable, - iconId, - menuIcons, - iconListQualifier, - requestedIconDisplayed, - selectionPreference ); - - // By default, this command does not have additional information. - iSelectItemRsp.iInfoType = RSat::KNoAdditionalInfo; - iSelectItemRsp.iAdditionalInfo.Zero(); - - // must use the same pcmd - iSelectItemRsp.SetPCmdNumber( iSelectItemData.PCmdNumber() ); - - // Examine the client response. - ExamineClientResponse( - response, selection, requestedIconDisplayed, defaultItemIdFound ); - - // Pass the Select Item response package. - TIpcArgs arguments( &iSelectItemRspPckg ); - - // Perform the IPC data transfer. - iSession->CreateRequest( ESatSProactiveSelectItemResponse, arguments ); - - // Destroy the array objects: menuIcons, menuActions, menuItems. - CleanupStack::PopAndDestroy( KMenuItemPop, menuItems ); - - // Renew the service request. - Start(); - } - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSelectItemHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCSelectItemHandler::ExamineClientResponse -// Examine the client response. -// ----------------------------------------------------------------------------- -// -void CSatCSelectItemHandler::ExamineClientResponse( - TSatUiResponse aResponse, - TUint8 aSelection, - TBool aRequestedIconDisplayed, - TBool aDefaultItemIdFound ) - { - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::ExamineClientResponse calling,\ - aResponse: %x", aResponse ) - - // Examine the client response. - switch ( aResponse ) - { - case ESatSuccess: - { - // Convert terminal rsp if icon used - RSat::TPCmdResult result( RSat::KSuccess ); - RSat::TIconQualifier iconQualifier( - iSelectItemData.iIconId.iQualifier ); - - //lint -e{961} Else block meaningless - if ( iSelectItemData.iDefaultItemId && !aDefaultItemIdFound ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::ExamineClientResponse \ - KPartialComprehension" ) - result = RSat::KPartialComprehension; - } - else if ( !aRequestedIconDisplayed ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::ExamineClientResponse \ - aRequestedIconDisplayed false" ) - if ( iconQualifier == RSat::ESelfExplanatory || - iconQualifier == RSat::ENotSelfExplanatory ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::ExamineClientResponse \ - IconNotDisplayed" ) - result = RSat::KSuccessRequestedIconNotDisplayed; - } - } - - iSelectItemRsp.iGeneralResult = result; - - // Change the additional information type. - iSelectItemRsp.iInfoType = RSat::KItemIdentifier; - - // Search for the correct item ID. - // Underflow not possible due to selection - // being of type TUint8 - if ( aSelection > iSelectItemData.NumberOfItems() - 1 ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::ExamineClientResponse \ - ESatSuccess ESelectedItemOutOfRange" ) - iSession->Panic( ESelectedItemOutOfRange ); - } - - // Get the item with the desired index. - RSat::TItem item; - iSelectItemData.GetItem( aSelection + 1, item ); - - // Save the index of the item selected by the user. - iSelectItemRsp.iAdditionalInfo.SetLength( 1 ); - iSelectItemRsp.iAdditionalInfo[0] = item.iItemId; - break; - } - // Otherwise, just return the response. - case ESatFailure: - { - iSelectItemRsp.iInfoType = RSat::KMeProblem; - iSelectItemRsp.iGeneralResult = RSat::KMeUnableToProcessCmd; - iSelectItemRsp.iAdditionalInfo.SetLength( 1 ); - iSelectItemRsp.iAdditionalInfo[0] = RSat::KNoSpecificMeProblem; - break; - } - case ESatSessionTerminatedByUser: - { - iSelectItemRsp.iGeneralResult = RSat::KPSessionTerminatedByUser; - break; - } - case ESatBackwardModeRequestedByUser: - { - iSelectItemRsp.iGeneralResult = - RSat::KBackwardModeRequestedByUser; - break; - } - case ESatNoResponseFromUser: - { - iSelectItemRsp.iGeneralResult = RSat::KNoResponseFromUser; - break; - } - case EHelpRequestedByUser: - { - iSelectItemRsp.iGeneralResult = RSat::KHelpRequestedByUser; - - // Change the additional information type. - iSelectItemRsp.iInfoType = RSat::KItemIdentifier; - - // Search for the correct item ID. - // Underflow not possible due to selection - // being of type TUint8 - if ( aSelection > iSelectItemData.NumberOfItems() - 1 ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::ExamineClientResponse \ - EHelpRequestedByUser ESelectedItemOutOfRange" ) - iSession->Panic( ESelectedItemOutOfRange ); - } - - // Get the item with the desired index. - RSat::TItem item; - iSelectItemData.GetItem( aSelection + 1, item ); - - // Save the index of the item selected by the user. - iSelectItemRsp.iAdditionalInfo.SetLength( 1 ); - iSelectItemRsp.iAdditionalInfo[0] = item.iItemId; - break; - } - case EPCmdNotAcceptedByUser: - case ESatCmdDataNotUnderstood: - default: - { - iSession->Panic( ESatInvalidResponse ); - break; - } - } - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSelectItemHandler::ExamineClientResponse exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCSelectItemHandler::DoCancel -// Cancels the pending request. -// ----------------------------------------------------------------------------- -// -void CSatCSelectItemHandler::DoCancel() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSelectItemHandler::DoCancel calling" ) - - // Complete the request with cancel code. - TRequestStatus* requestStatus = &iStatus; - User::RequestComplete( requestStatus, KErrCancel ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSelectItemHandler::DoCancel exiting" ) - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/src/CSatCSetUpMenuHandler.cpp --- a/satengine/SatServer/SatInternalClient/src/CSatCSetUpMenuHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,299 +0,0 @@ -/* -* Copyright (c) 2002-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: This is the handler for the SIM Application Toolkit -* Set Up Menu proactive command. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include "RSatUiSession.h" -#include "MSatUiObserver.h" -#include "SatSOpcodes.h" -#include "CSatCSetUpMenuHandler.h" -#include "SatLog.h" - -// CONSTANTS -const TInt8 KMenuItemPop( 3 ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatCSetUpMenuHandler::CSatCSetUpMenuHandler -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatCSetUpMenuHandler::CSatCSetUpMenuHandler( - TInt aPriority, - RSatUiSession* aSession ) : - CActive( aPriority ), - iSession( aSession ), - iSetUpMenuData(), - iSetUpMenuPckg( iSetUpMenuData ), - iSetUpMenuRsp(), - iSetUpMenuRspPckg( iSetUpMenuRsp ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSetUpMenuHandler::CSatCSetUpMenuHandler calling" ) - - // Add to active scheduler. - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSetUpMenuHandler::CSatCSetUpMenuHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCSetUpMenuHandler::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCSetUpMenuHandler* CSatCSetUpMenuHandler::NewL( - RSatUiSession* aSat ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSetUpMenuHandler::NewL calling" ) - - // Perform the construction. - CSatCSetUpMenuHandler* self = - new ( ELeave ) CSatCSetUpMenuHandler( EPriorityLow, aSat ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSetUpMenuHandler::NewL exiting" ) - return self; - } - -// Destructor -CSatCSetUpMenuHandler::~CSatCSetUpMenuHandler() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSetUpMenuHandler::~CSatCSetUpMenuHandler calling" ) - - // Cancel any outstanding requests. - Cancel(); - iSession = NULL; - - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSetUpMenuHandler::~CSatCSetUpMenuHandler exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCSetUpMenuHandler::Start -// Starts the handler. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// - -void CSatCSetUpMenuHandler::Start() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSetUpMenuHandler::Start calling" ) - - // Empty the IPC data - RSat::TSetUpMenuV2 temp; - iSetUpMenuData = temp; - RSat::TSetUpMenuRspV1 temp2; - iSetUpMenuRsp = temp2; - - // Request Set Up Menu notification. - TIpcArgs arguments( &iSetUpMenuPckg ); - - // Pass the Set Up Menu IPC package. - iSession->CreateRequest( ESatSProactiveSetUpMenu, arguments, iStatus ); - - // Set this handler to active so that it can receive requests. - SetActive(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSetUpMenuHandler::Start exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCSetUpMenuHandler::RunL -// Handles the command. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCSetUpMenuHandler::RunL() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSetUpMenuHandler::RunL calling" ) - - // Check the status of the asnychronous operation - if ( KErrNone != iStatus.Int() ) - { - LOG2( - SIMPLE, - "SATINTERNALCLIENT: CSatCSetUpMenuHandler::RunL exiting, error: %d", - iStatus.Int() ) - } - else - { - // Save the contents of the data for envelope Menu Selection. - iOldSetUpMenuData = iSetUpMenuData; - - // Create the menu item array. - CDesCArrayFlat* menuItems = new( ELeave ) CDesCArrayFlat( 1 ); - CleanupStack::PushL( menuItems ); - - // Create the next action indicator array. - CArrayFixFlat* menuActions = - new( ELeave ) CArrayFixFlat( 1 ); - CleanupStack::PushL( menuActions ); - - // Create the menu item icon array. - CArrayFixFlat* menuIcons = - new( ELeave ) CArrayFixFlat( 1 ); - CleanupStack::PushL( menuIcons ); - - // Fetch all the menu items. - // Note that the indexing starts from 1 in SIM item lists. - const TInt menuItemCount( - static_cast( iSetUpMenuData.NumberOfItems() ) ); - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCSetUpMenuHandler::RunL menuItemCount: %d", - menuItemCount ) - for ( TInt currentItem = 1; - currentItem <= menuItemCount; - currentItem++ ) - { - RSat::TItem item; - TInt action; - TInt icon( KErrNotFound ); - - // Fetch all data for this index. - iSetUpMenuData.GetItem( static_cast( currentItem ), - item, - action, - icon ); - - // Save the item name - menuItems->AppendL( item.iItemString ); - - // Save icon identifier. - // icon will be KErrNotFound (-1) if it is not present in the - // SAT menu. - menuIcons->AppendL( icon ); - - if ( KErrNotFound != action ) - { - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCSetUpMenuHandler::RunL action: %d", action ) - // Save the next action indicator, if found. - menuActions->AppendL( STATIC_CAST( TSatAction, action ) ); - } - } - - // Indicates whether help is available - TBool helpIsAvailable( EFalse ); - if ( RSat::EHelpAvailable == iSetUpMenuData.iHelp ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSetUpMenuHandler::RunL EHelpAvailable" ) - helpIsAvailable = ETrue; - } - - // Has to be casted to TInt before casting to TSatIconQualifier, - // because gcc warns about the direct cast. - const struct TSatIconId iconId = { iSetUpMenuData.iIconId.iIdentifier, - static_cast( - static_cast( iSetUpMenuData.iIconId.iQualifier ) ) }; - - const enum TSatIconQualifier iconListQualifier( - static_cast( - static_cast( iSetUpMenuData.iIconListQualifier ) ) ); - - const enum TSatSelectionPreference selectionPreference( - static_cast( - static_cast( iSetUpMenuData.iPreference ) ) ); - - // Notify the registered client and save the response. - TSatUiResponse response( - iSession->SatUiObserver()->SetUpMenuL( - iSetUpMenuData.iAlphaId.iAlphaId, - *menuItems, - menuActions, - helpIsAvailable, - iconId, - menuIcons, - iconListQualifier, - selectionPreference ) ); - - LOG2( SIMPLE, - "SATINTERNALCLIENT: CSatCSetUpMenuHandler::RunL response: %x", response ) - // Examine the client response. - switch ( response ) - { - case ESatSuccess: - { - break; - } - case ESatFailure: - { - iSession->Panic( ESatSetUpMenuFailure ); - break; - } - case ESatSessionTerminatedByUser: - case ESatBackwardModeRequestedByUser: - case ESatNoResponseFromUser: - case EHelpRequestedByUser: - case EPCmdNotAcceptedByUser: - case ESatCmdDataNotUnderstood: - default: - { - iSession->Panic( ESatInvalidResponse ); - break; - } - } - - // Destroy the array objects: menuIcons, menuActions, menuItems. - CleanupStack::PopAndDestroy( KMenuItemPop, menuItems ); - } - - // Renew the service request. - Start(); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSetUpMenuHandler::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCSetUpMenuHandler::DoCancel -// Cancels the pending request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCSetUpMenuHandler::DoCancel() - { - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSetUpMenuHandler::DoCancel calling" ) - - // Complete the request with cancel code. - TRequestStatus* requestStatus = &iStatus; - User::RequestComplete( requestStatus, KErrCancel ); - - LOG( SIMPLE, "SATINTERNALCLIENT: CSatCSetUpMenuHandler::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCSetUpMenuHandler::OldSetUpMenuData -// Returns a pointer to a old the command data object. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -RSat::TSetUpMenuV2 CSatCSetUpMenuHandler::OldSetUpMenuData() const - { - LOG( SIMPLE, - "SATINTERNALCLIENT: CSatCSetUpMenuHandler::OldSetUpMenuData calling-exiting" ) - return iOldSetUpMenuData; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatInternalClient/src/RSatUiSession.cpp --- a/satengine/SatServer/SatInternalClient/src/RSatUiSession.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,283 +0,0 @@ -/* -* Copyright (c) 2002-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: The UI Client API of the SAT Server. -* -*/ - - - -// INCLUDE FILES -#include -#include -#include - -#include "RSatUiSession.h" -#include "MSatUiObserver.h" -#include "MSatUiAdapter.h" -#include "SatSOpcodes.h" -#include "CSatCCommandProcessor.h" -#include "SatServerFactory.h" -#include "SatLog.h" - -// CONSTANTS - -#if defined( __WINS__ ) -const TInt KHeapMinSize = 0x10000; -const TInt KHeapMaxSize = 0x10000; -#endif - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// RSatUiSession::RSatUiSession -// Class constructor. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C RSatUiSession::RSatUiSession() : - RSubSessionBase(), - iCommandProcessor( NULL ), - iSatUiObserver( NULL ) - { - } - -// ----------------------------------------------------------------------------- -// RSatUiSession::RegisterL -// Registers a new client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatUiSession::RegisterL( - const RSatSession& aSession, - MSatUiObserver* aSatUiObserver ) - { - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::RegisterL calling" ) - - // If the server isn't already started, we can't do anything. - if ( !IsServerStarted() ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: RSatUiSession::RegisterL server not started" ) - User::Leave( KErrCouldNotConnect ); - } - - iSatUiObserver = aSatUiObserver; - iCommandProcessor = CSatCCommandProcessor::NewL( this ); - - // Connect to the server side session. - TIpcArgs arguments( 0 ); - User::LeaveIfError( - CreateSubSession( - aSession, - ESatSOpenUiSubSession, arguments ) ); - - // Start the handlers. - iCommandProcessor->Start(); - - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::RegisterL exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatUiSession::Adapter -// Returns a pointer to an adapter object. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C MSatUiAdapter* RSatUiSession::Adapter() const - { - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Adapter calling" ) - - if ( iCommandProcessor ) - { - MSatUiAdapter* satUiAdapter = iCommandProcessor->ActiveCommandHandler(); - - LOG( SIMPLE, - "SATINTERNALCLIENT: RSatUiSession::Adapter (iCommandProcessor) exiting" ) - return satUiAdapter; - } - - else - { - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Adapter exiting" ) - return NULL; - } - } - -// ----------------------------------------------------------------------------- -// RSatUiSession::Unregister -// Unregisters a client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void RSatUiSession::Unregister() - { - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Unregister calling" ) - - if ( iCommandProcessor ) - { - LOG( SIMPLE, - "SATINTERNALCLIENT: RSatUiSession::Unregister iCommandProcessor true" ) - delete iCommandProcessor; - iCommandProcessor = NULL; - } - - iSatUiObserver = NULL; - - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Unregister exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatUiSession::Version -// Returns the current version of the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C TVersion RSatUiSession::Version() const - { - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Version calling-exiting" ) - return TVersion( - KSatServerMajorVersionNumber, - KSatServerMinorVersionNumber, - KSatServerBuildVersionNumber ); - } - -// ----------------------------------------------------------------------------- -// RSatUiSession::Close -// Closes the server session. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatUiSession::Close() - { - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Close calling" ) - - Unregister(); - CloseSubSession( ESatSCloseUiSubSession ); - - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Close exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatUiSession::Panic -// Panics the client. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatUiSession::Panic( - TSatClientPanic aReason ) const - { - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::Panic" ) - - User::Panic( KSatCliName, aReason ); - } - -// ----------------------------------------------------------------------------- -// RSatUiSession::KillServer -// Kills the server. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatUiSession::KillServer() const - { - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::KillServer calling" ) - - // Use a dummy arguments table. - TIpcArgs arguments( 0 ); - - // Request the server shutdown. - SendReceive( ESatSShutdown, arguments ); - - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::KillServer exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatUiSession::IsServerStarted -// Checks if the server is already started. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TBool RSatUiSession::IsServerStarted() const - { - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::IsServerStarted calling" ) - - TFindServer findServer( KSatServerName ); - TFullName name; - TBool started = ( KErrNone == findServer.Next( name ) ); - - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::IsServerStarted exiting" ) - return started; - } - -// ----------------------------------------------------------------------------- -// RSatUiSession::CreateRequest -// Creates Send Receive request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatUiSession::CreateRequest( - TInt aFunction, - const TIpcArgs& aArgs, - TRequestStatus& aStatus ) const - { - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::CreateRequest calling" ) - - SendReceive( aFunction, aArgs, aStatus ); - - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::CreateRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatUiSession::CreateRequest -// Creates Send Receive request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C void RSatUiSession::CreateRequest( - TInt aFunction, - const TIpcArgs& aArgs ) const - { - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::CreateRequest calling" ) - - SendReceive( aFunction, aArgs ); - - LOG( SIMPLE, "SATINTERNALCLIENT: RSatUiSession::CreateRequest exiting" ) - } - -// ----------------------------------------------------------------------------- -// RSatUiSession::SatUiObserver -// Returns a pointer to a client observer object. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C MSatUiObserver* RSatUiSession::SatUiObserver() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: RSatUiSession::SatUiObserver calling-exiting" ) - return iSatUiObserver; - } - -// ----------------------------------------------------------------------------- -// RSatUiSession::CommandProcessor -// Returns a pointer to a command processor object. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -CSatCCommandProcessor* RSatUiSession::CommandProcessor() - { - LOG( SIMPLE, - "SATINTERNALCLIENT: RSatUiSession::CommandProcessor calling-exiting" ) - return iCommandProcessor; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatServer/BWINS/SATSERVERU.DEF --- a/satengine/SatServer/SatServer/BWINS/SATSERVERU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,3 +0,0 @@ -EXPORTS - ?WinsMain@@YAHPAX@Z @ 1 NONAME ; int __cdecl WinsMain(void *) - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatServer/EABI/SatServerU.DEF --- a/satengine/SatServer/SatServer/EABI/SatServerU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,2 +0,0 @@ -EXPORTS - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatServer/group/SatServer.mmp --- a/satengine/SatServer/SatServer/group/SatServer.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* Copyright (c) 2003-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: Project definition file for project SatServer -* -*/ - - -#include -#include -#include "../../inc/SatMacroes.h" - -TARGET SatServer.exe -TARGETTYPE exe -UID 0x1000008d 0x1000A833 -SECUREID 0x1000A833 - -CAPABILITY CAP_SERVER NetworkControl AllFiles -VENDORID VID_DEFAULT - -#ifdef ENABLE_SAT_LOGGING -EPOCSTACKSIZE 0x4000 // Logging needs more stack than default 8 kilos. -#endif - -TARGETPATH PROGRAMS_DIR - -#if defined( EABI ) -deffile ../EABI/ -#endif - -SOURCEPATH ../src -SOURCE std.cpp - -USERINCLUDE ../inc -USERINCLUDE ../../inc - -MW_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/ecom -SYSTEMINCLUDE ../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY SatEngine.lib - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatServer/group/bld.inf --- a/satengine/SatServer/SatServer/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -/* -* Copyright (c) 2003-2006 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: Build information file for project SatServer -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_MMPFILES -SatServer.mmp diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatServer/inc/SatSPanic.h --- a/satengine/SatServer/SatServer/inc/SatSPanic.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Declares panic function and panic codes for SatServer. -* -*/ - - - -#ifndef SATSPANIC_H -#define SATSPANIC_H - -// DATA TYPES -enum TSatSPanicCode - { - ESatSBadRequest, - ESatSBadDescriptor, - ESatSMainSchedulerError, - ESatSCreateServer, - ESatSStartServer, - ESatSCreateTrapCleanup, - ESatSNotImplementedYet, - ESatSNonNumericString, - ESatSCommandError, - ESatSUnsupportedEvent - }; - -// FUNCTION PROTOTYPES -void PanicSatServer( TSatSPanicCode aPanicCode ); - -#endif // SATSPANIC_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SatServer/src/std.cpp --- a/satengine/SatServer/SatServer/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: General functions -* -*/ - - -#include -#include -#include "SatServerFactory.h" -#include "CSatSScheduler.h" -#include "SatSPanic.h" -#include "SatLog.h" - -const TInt8 KInitServerPop( 2 ); -_LIT( KSatServerMtx, "SATSERVERMTX" ); - -// ======== LOCAL FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// PanicServer -// Panics the SatServer. -// ----------------------------------------------------------------------------- -// -void PanicServer( - TSatSPanicCode aPanicCode ) // Panic code - { - LOG( SIMPLE, "SATSERVER: PanicServer" ) - User::Panic( KSatServerPanic, aPanicCode ); - } - -// ----------------------------------------------------------------------------- -// InitServerL -// Initialises the SatServer. -// ----------------------------------------------------------------------------- -// -LOCAL_C void InitServerL() - { - LOG( SIMPLE, "SATSERVER: InitServerL calling" ) - - RMutex serverStartMutex; - TInt createErr( serverStartMutex.CreateGlobal( KSatServerMtx ) ); - if ( createErr ) - { - TInt openErr( serverStartMutex.OpenGlobal( KSatServerMtx ) ); - User::LeaveIfError( openErr ); - LOG( SIMPLE, "SATSERVER: Opened SATSERVERMTX" ) - } - - LOG( SIMPLE, "SATSERVER: Asking ownership of SATSERVERMTX" ) - serverStartMutex.Wait(); - LOG( SIMPLE, "SATSERVER: Got ownership of SATSERVERMTX" ) - - // create server - if one of this name does not already exist - TFindServer findSatServer( KSatServerName ); - TFullName pathName; - - // Search for the server. - if ( KErrNone != findSatServer.Next( pathName ) ) - { - // We don't already exist. - // Start scheduler and server. - CSatSScheduler* scheduler = new ( ELeave ) CSatSScheduler; - __ASSERT_ALWAYS( scheduler != - NULL, PanicServer( ESatSMainSchedulerError ) ); - - CleanupStack::PushL( scheduler ); - CActiveScheduler::Install( scheduler ); - - // Rename the thread. - User::RenameThread( KSatServerName ); - - // Create the server and connect to external interfaces. - CSatSServer* server = CreateSatServerL(); - CleanupStack::PushL( server ); - - // The scheduler needs access to the server instance. - //lint -e{613} scheduler cannot be null, due assertion in creation. - scheduler->SetServer( server ); - - // Call Rendezvous to improve startup time - RProcess::Rendezvous( KErrNone ); - - LOG( SIMPLE, - "SATSERVER: Releasing ownership of SATSERVERMTX, Starting.." ) - serverStartMutex.Signal(); - - // start fielding requests from clients - CActiveScheduler::Start(); - - // finished when the scheduler stops - CleanupStack::PopAndDestroy( KInitServerPop ); // scheduler, server - } - else - { - LOG( SIMPLE, - "SATSERVER: Releasing ownership of SATSERVERMTX, Already started" ) - serverStartMutex.Signal(); - } - serverStartMutex.Close(); - LOG( SIMPLE, "SATSERVER: InitServerL exiting" ) - } - -// ======== GLOBAL FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// E32Main implements the executable entry function. -// Target type of the SATServer module is EXE. -// Creates a cleanup stack and runs the server. -// ----------------------------------------------------------------------------- -// -GLDEF_C TInt E32Main() - { - __UHEAP_MARK; - - // Get a new clean-up stack. - CTrapCleanup* cleanup = CTrapCleanup::New(); - - // Initialize and run the server. - TRAPD( error, InitServerL() ); - __ASSERT_ALWAYS( !error, User::Panic( KSatSInitError, error ) ); - - // Destroy clean-up stack. - delete cleanup; - - __UHEAP_MARKEND; - // Not called unless server is already running. This server is always on - LOG( SIMPLE, "SATSERVER: E32Main exiting" ) - return KErrAlreadyExists; - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/BMARM/SATSYSTEMSTATEU.DEF --- a/satengine/SatServer/SystemState/BMARM/SATSYSTEMSTATEU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,4 +0,0 @@ -EXPORTS - CreateIdleModeChangeNotifierL__22TSatSystemStateFactoryR23MSatSystemStateObserver @ 1 NONAME R3UNUSED ; TSatSystemStateFactory::CreateIdleModeChangeNotifierL(MSatSystemStateObserver &) - CreateSystemStateL__22TSatSystemStateFactoryR12RMobilePhone @ 2 NONAME R3UNUSED ; TSatSystemStateFactory::CreateSystemStateL(RMobilePhone &) - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/BWINS/SATSYSTEMSTATEU.DEF --- a/satengine/SatServer/SystemState/BWINS/SATSYSTEMSTATEU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,9 +0,0 @@ -EXPORTS - ?CreateIdleModeChangeNotifierL@TSatSystemStateFactory@@SAPAVMSatSystemStateChangeNotifier@@AAVMSatSystemStateObserver@@@Z @ 1 NONAME ; class MSatSystemStateChangeNotifier * TSatSystemStateFactory::CreateIdleModeChangeNotifierL(class MSatSystemStateObserver &) - ?CreateLanguageSelectionChangeNotifierL@TSatSystemStateFactory@@SAPAVMSatSystemStateChangeNotifier@@AAVMSatSystemStateObserver@@@Z @ 2 NONAME ; class MSatSystemStateChangeNotifier * TSatSystemStateFactory::CreateLanguageSelectionChangeNotifierL(class MSatSystemStateObserver &) - ?CreateSIMAccessProfileChangeNotifierL@TSatSystemStateFactory@@SAPAVMSatSystemStateChangeNotifier@@AAVMSatSystemStateObserver@@@Z @ 3 NONAME ; class MSatSystemStateChangeNotifier * TSatSystemStateFactory::CreateSIMAccessProfileChangeNotifierL(class MSatSystemStateObserver &) - ?CreateSimStatusChangeNotifierL@TSatSystemStateFactory@@SAPAVMSatSystemStateChangeNotifier@@AAVMSatSystemStateObserver@@@Z @ 4 NONAME ; class MSatSystemStateChangeNotifier * TSatSystemStateFactory::CreateSimStatusChangeNotifierL(class MSatSystemStateObserver &) - ?CreateSystemStateL@TSatSystemStateFactory@@SAPAVMSatSystemState@@AAVMSatMultiModeApi@@@Z @ 5 NONAME ; class MSatSystemState * TSatSystemStateFactory::CreateSystemStateL(class MSatMultiModeApi &) - ?CreateProfileChangeNotifierL@TSatSystemStateFactory@@SAPAVMSatSystemStateChangeNotifier@@AAVMSatSystemStateObserver@@@Z @ 6 NONAME ; class MSatSystemStateChangeNotifier * TSatSystemStateFactory::CreateProfileChangeNotifierL(class MSatSystemStateObserver &) - ?CreateStartupChangeNotifierL@TSatSystemStateFactory@@SAPAVMSatSystemStateChangeNotifier@@AAVMSatSystemStateObserver@@@Z @ 7 NONAME ; class MSatSystemStateChangeNotifier * TSatSystemStateFactory::CreateStartupChangeNotifierL(class MSatSystemStateObserver &) - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/EABI/SatSystemStateU.DEF --- a/satengine/SatServer/SystemState/EABI/SatSystemStateU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,17 +0,0 @@ -EXPORTS - _ZN22TSatSystemStateFactory18CreateSystemStateLER16MSatMultiModeApi @ 1 NONAME - _ZN22TSatSystemStateFactory28CreateProfileChangeNotifierLER23MSatSystemStateObserver @ 2 NONAME - _ZN22TSatSystemStateFactory28CreateStartupChangeNotifierLER23MSatSystemStateObserver @ 3 NONAME - _ZN22TSatSystemStateFactory29CreateIdleModeChangeNotifierLER23MSatSystemStateObserver @ 4 NONAME - _ZN22TSatSystemStateFactory30CreateSimStatusChangeNotifierLER23MSatSystemStateObserver @ 5 NONAME - _ZN22TSatSystemStateFactory37CreateSIMAccessProfileChangeNotifierLER23MSatSystemStateObserver @ 6 NONAME - _ZN22TSatSystemStateFactory38CreateLanguageSelectionChangeNotifierLER23MSatSystemStateObserver @ 7 NONAME - _ZTI15CSatSystemState @ 8 NONAME ; ## - _ZTI20CSatPSChangeNotifier @ 9 NONAME ; ## - _ZTI24CSatCenRepChangeNotifier @ 10 NONAME ; ## - _ZTI27CSatNetworkRegStatusMonitor @ 11 NONAME ; ## - _ZTV15CSatSystemState @ 12 NONAME ; ## - _ZTV20CSatPSChangeNotifier @ 13 NONAME ; ## - _ZTV24CSatCenRepChangeNotifier @ 14 NONAME ; ## - _ZTV27CSatNetworkRegStatusMonitor @ 15 NONAME ; ## - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/group/SatSystemState.mmp --- a/satengine/SatServer/SystemState/group/SatSystemState.mmp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,56 +0,0 @@ -/* -* Copyright (c) 2002-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: Project definition file for project SatSystemState -* -*/ - - -#include -#include -#include "../../inc/SatMacroes.h" - -TARGET SatSystemState.dll -TARGETTYPE dll -UID 0x1000008d 0x1000f200 - -CAPABILITY CAP_GENERAL_DLL -VENDORID VID_DEFAULT - -SOURCEPATH ../src -SOURCE std.cpp -SOURCE CSatSystemState.cpp -SOURCE TSatSystemStateFactory.cpp -SOURCE CSatPSChangeNotifier.cpp -SOURCE CSatCenRepChangeNotifier.cpp -SOURCE csatnetworkregstatusmonitor.cpp - -USERINCLUDE ../inc -USERINCLUDE ../../inc - -// Application layer systeminclude is needed due P&S and CR keys provided by ProfileEngine -APP_LAYER_SYSTEMINCLUDE -SYSTEMINCLUDE /epoc32/include/connect -SYSTEMINCLUDE ../../../../inc // Domain telephony -SYSTEMINCLUDE ../../../inc // Subsystem satengine - -LIBRARY euser.lib -LIBRARY etel.lib -LIBRARY etelmm.lib -LIBRARY msgs.lib // For CMsvSession -LIBRARY smcm.lib // For CSmsNumber -LIBRARY centralrepository.lib // For Central Repository - -#ifdef ENABLE_SAT_LOGGING -LIBRARY flogger.lib -#endif diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/group/bld.inf --- a/satengine/SatServer/SystemState/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,23 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Build information file for project Systemstate -* -*/ - - -PRJ_PLATFORMS -DEFAULT - -PRJ_MMPFILES -SatSystemState.mmp diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/inc/CSatCenRepChangeNotifier.h --- a/satengine/SatServer/SystemState/inc/CSatCenRepChangeNotifier.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,155 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Notifies the changes in central repository values. -* -*/ - - - -#ifndef CSATCENREPCHANGENOTIFIER_H -#define CSATCENREPCHANGENOTIFIER_H - -// INCLUDES -#include -#include "MSatSystemStateChangeNotifier.h" - -// FORWARD DECLARATION -class MSatSystemStateObserver; -class CRepository; - -// CLASS DECLARATION - -/** -* Notifies the changes in central repository values. -* -* @lib SatSystemState -* @since Series 60 3.0 -*/ -class CSatCenRepChangeNotifier : public CActive, - public MSatSystemStateChangeNotifier - { - public: // Enums - - /** - * Identifier for the value type that is being observered. - */ - enum TCenRepTypes - { - // Type is TInt - ECRTypeInteger, - // Type is TReal - ECRTypeReal, - // Type is TDesC8 - ECRTypeDesC8, - // Type is TDesC16 - ECRTypeDesC16, - // Type not defined - ECRTypeUnknown - }; - - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aCenRepCategory This is the CR Category. - * @param aCenRepId CR value id to be listened. - * @param aObserver A class that is notified when value changes. - * @param aCenRepType Identifies the base type of the observered value, - * which can be TInt, TDesC or TReal. Default is Unknown. - */ - static CSatCenRepChangeNotifier* NewL( - const TUid& aCenRepCategory, - TUint32 aCenRepId, - MSatSystemStateObserver& aObserver, - TInt aCenRepType ); - - /** - * Destructor. - */ - virtual ~CSatCenRepChangeNotifier(); - - public: // Functions from base classes - - /** - * From MSatSystemStateChangeNotifier Request a notification of a - * change in system state. - */ - void NotifyChangeL(); - - /** - * From MSatSystemStateChangeNotifier Cancels the notification request. - */ - void CancelNotify(); - - protected: // Functions from base classes - - /** - * From CActive - */ - void DoCancel(); - - /** - * From CActive. - */ - void RunL(); - - private: // New methods - - /** - * Makes the request and activates the active object. - */ - void ActivateL(); - - private: - - /** - * C++ default constructor. - * @param aCenRepCategory This is the CR Category. - * @param aCenRepId CR value id to be listened. - * @param aObserver A class that is notified when value changes. - * @param aCenRepType Identifies the base type of the observered value - */ - CSatCenRepChangeNotifier( - const TUid& aCenRepCategory, - TUint32 aCenRepId, - MSatSystemStateObserver& aObserver, - TInt aCenRepType ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL(); - - private: // Data - - // Change observer. - MSatSystemStateObserver& iObserver; - - // Central repository class. - CRepository* iCenRepClient; - - // CenRep category - TUid iCenRepCategory; - - // CenRep value to listen - TUint32 iCenRepId; - - // CR value type - TInt iCenRepType; - - }; - -#endif // CSATCENREPCHANGENOTIFIER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/inc/CSatPSChangeNotifier.h --- a/satengine/SatServer/SystemState/inc/CSatPSChangeNotifier.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,137 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Notifies the changes in publish and suscripe properties. -* -*/ - - - -#ifndef CSATPSCHANGENOTIFIER_H -#define CSATPSCHANGENOTIFIER_H - -// INCLUDES -#include -#include -#include "MSatSystemStateChangeNotifier.h" - -// FORWARD DECLARATION -class MSatSystemStateObserver; - -// CLASS DECLARATION - -/** -* Notifies the changes in publish and suscripe properties. -* -* @lib SatSystemState -* @since Series 60 3.0 -*/ -class CSatPSChangeNotifier : public CActive, - public MSatSystemStateChangeNotifier - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aPropertyKey This is the P&S key. - * @param aPropertyValue Value of the P&S key. - * @param aObserver A class that is notified when value changes. - * @param aNotifyValue Defines the value that causes the notification. - */ - static CSatPSChangeNotifier* NewL( - const TUid& aPropertyKey, - TUint aPropertyValue, - MSatSystemStateObserver& aObserver, - TInt aNotifyValue = -1 ); - - /** - * Destructor. - */ - virtual ~CSatPSChangeNotifier(); - - public: // Functions from base classes - - /** - * From MSatSystemStateChangeNotifier Request a notification of a - * change in system state. - */ - void NotifyChangeL(); - - /** - * From MSatSystemStateChangeNotifier Cancels the notification request. - */ - void CancelNotify(); - - /** - * From MSatSystemStateChangeNotifier Gets the current value. - * @return Current value for earlier request. - */ - TInt GetValueInt(); - - protected: // Functions from base classes - - /** - * From CActive - */ - void DoCancel(); - - /** - * From CActive. - */ - void RunL(); - - private: // New methods - - /** - * Makes the request and activates the active object. - */ - void Activate(); - - private: - - /** - * C++ default constructor. - * @param aPropertyKey This is the P&S key. - * @param aPropertyValue Value of the P&S key. - * @param aObserver A class that is notified when value changes. - * @param aNotifyValue Defines the value that causes the notification. - */ - CSatPSChangeNotifier( - const TUid& aPropertyKey, - TUint aPropertyValue, - MSatSystemStateObserver& aObserver, - TInt aNotifyValue ); - - private: // Data - - // Change observer. - MSatSystemStateObserver& iObserver; - - // Publish & suscripe handle. - RProperty iPSClient; - - // Publish&Suscripe property key - TUid iPSKey; - - // Publish&Suscripe property value - TUint iPSValue; - - // Value of the property when observer should be notified - // If this is not set, the changed value is sent to observer - TInt iNotifyValue; - - }; - -#endif // CSATPSCHANGENOTIFIER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/inc/CSatSystemState.h --- a/satengine/SatServer/SystemState/inc/CSatSystemState.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,215 +0,0 @@ -/* -* Copyright (c) 2002-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: Provides system state information to SAT Server -* -*/ - - - -#ifndef CSATSYSTEMSTATE_H -#define CSATSYSTEMSTATE_H - -// INCLUDES -#include -#include -#include -#include "MSatSystemState.h" -#include "csatnetworkregstatusmonitor.h" - -// PREDEFINED CLASS -class MSatMultiModeApi; - -// CONSTANTS -const TInt KMaxSCANumberSize = 251; - -/** -* Accessors for system state information. -* -* @lib SatSystemState -* @since Series 60 3.0 -*/ -class CSatSystemState : public CBase, - public MSatSystemState, - public MMsvSessionObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aPhone Reference to mobile phone - */ - static MSatSystemState* NewL( MSatMultiModeApi& aPhone ); - - /** - * Destructor. - */ - virtual ~CSatSystemState(); - - public: // Functions from base classes - - /** - * From MSatSystemState Gets the network registrtaion status - * @return Mobile phone's registration status - */ - RMobilePhone::TMobilePhoneRegistrationStatus - GetNetworkRegistrationStatus(); - - /** - * From MSatSystemState Checks is call active. - * @return TBool indicating wether call is active or not - */ - TBool IsCallActive(); - - /** - * From MSatSystemState Checks is call active. - * @return TBool indicating wether call is coming or not - */ - TBool IsCallIncoming(); - - /** - * From MSatSystemState Gets SCA number from CommsDB and - * returns it. - * @return SCANumber from CommsDB. - */ - const TDesC& SCANumber(); - - /** - * From MSatSystemState Checks is phone in silent mode. - * @return TBool indicating wether phone is in silent mode - */ - TBool IsSilentMode(); - - /** - * From MSatSystemState Checks is phone in idle state. - * @return TBool indicating wether phone is in idle mode - */ - TBool IsPhoneInIdleStateL(); - - /** - * From MSatSystemState Checks is screen saver actived from idle. - * @return TBool indicating whether screen saver is actived from idle. - */ - TBool IsScreenSaverActivedFromIdle(); - - /** - * From MSatSystemState Sets time between language selection and reboot. - * @param aTime Time before reboot. - * @return KErrNone if time is set successfully. - */ - TInt WriteLanguageSelectionTime( - TInt aTime ); - - /** - * From MSatSystemState Puts proactive Idle Mode Text command data to - * shared data. - * @param aString Idle mode text string - * @param aIconId Idle mode text icon ID - * @param aIconQualifier Idle mode text icon qualifier - * @return KErrNone if setting data is OK - */ - TInt WriteSetIdleModeText( - const TDesC& aString, - TInt aIconId, - RSat::TIconQualifier aIconQualifier ); - - /** - * From MSatSystemState Checks is backup / restore process ongoing. - * @return TBool indicating is process ongoing or not. - */ - TBool IsBackupProcessOngoing(); - - /** - * From MSatSystemState Checks is ConfirmSatOperations on. - * @return TBool indicating is confirmation on or off. - */ - TBool IsConfirmSatOperationsOn(); - - /** - * From MSatSystemState Gets the display language from - * CentRep and returns it. - * @return ID indicating the selected language. - */ - TInt DisplayTextLanguage(); - - /** - * Checks is Bluetooth SIM Access Profile active - * @return ETrue if BT SAP is active - */ - TBool IsBtSapActive(); - - /** - * From MMsvSessionObserver Indicates an event has occurred from a - * Message Server session. - * @param aEvent Indicates the event type - * @param aArg1 Event type-specific argument value - * @param aArg2 Event type-specific argument value - * @param aArg3 Event type-specific argument value - */ - virtual void HandleSessionEventL( - TMsvSessionEvent /*aEvent*/, - TAny* /*aArg1*/, - TAny* /*aArg2*/, - TAny* /*aArg3*/) {}; - - /** - * From MSatSystemState Checks are phone warnings and game tones on. - * @return TBool indicating wether phone are warnings and game tone on. - */ - TBool IsWarningAndGameTonesOn(); - - private: - - /** - * C++ default constructor. - * @param aPhone Reference to mobile phone - */ - CSatSystemState( MSatMultiModeApi& aPhone ); - - /** - * By default Symbian 2nd phase constructor is private. - */ - void ConstructL( MSatMultiModeApi& aPhone ); - - /** - * Reads current Short Message Service Center Address. - * @param aAddress The reference for SCA number. - */ - void ReadCurrentSMSCL( TDes& aAddress ); - - /** - * Specifies an entry in the Message Server index. - * @param aSession The current message server session. - * @param aMtm The SMS messaging type module UID. - * @return The entry in the Message Server index. - */ - TMsvId ServiceForMTML( - CMsvSession& aSession, - const TUid& aMtm ) const; - - private: // Data - - // Network registration status monitor - CSatNetworkRegStatusMonitor* iNetworkRegStatusMonitor; - - // Descriptor for SCA number - TBuf iScaAddress; - - // Reference for MSatMultiModeApi - MSatMultiModeApi& iPhone; - - }; - -#endif // CSATSYSTEMSTATE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/inc/Panic.h --- a/satengine/SatServer/SystemState/inc/Panic.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Panic function -* -*/ - - - -#ifndef PANIC_H -#define PANIC_H - -// INCLUDES -#include - -// ENUM -enum TSatSystemStatePanic - { - ESatSystemStateAllReadyActive - }; - -void Panic( TSatSystemStatePanic aPanic ); - -#endif // PANIC_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/inc/csatnetworkregstatusmonitor.h --- a/satengine/SatServer/SystemState/inc/csatnetworkregstatusmonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,103 +0,0 @@ -/* -* Copyright (c) 2005-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: Network registration status monitor. -* -*/ - - - -#ifndef CSATNETWORKREGSTATUSMONITOR_H -#define CSATNETWORKREGSTATUSMONITOR_H - -#include -#include -#include -#include "msatmultimodeapi.h" - -/** - * Network registration status monitor - * - * Initiates asynchronous operation to get current network registration - * status. After it has been got, initiates monitor change of its value. - * - * @lib SystemState - * @since S60 v3.1 - */ -class CSatNetworkRegStatusMonitor : public CActive - { - -public: - - static CSatNetworkRegStatusMonitor* NewL( MSatMultiModeApi& aPhone ); - - virtual ~CSatNetworkRegStatusMonitor(); - - /** - * Activate network registration status monitor. - */ - void Start(); - - /** - * Fetch current network registration status. - * On error returns ERegistrationUnknown. - * - * @return Current network registration status. - */ - RMobilePhone::TMobilePhoneRegistrationStatus CurrentValue(); - -protected: - - /** - * From CActive - * Implements cancellation of an outstanding request. - */ - void DoCancel(); - - /** - * From CActive - * Handles an active object's request completion event. - */ - void RunL(); - -private: - - CSatNetworkRegStatusMonitor( MSatMultiModeApi& aPhone ); - -private: // data - - /** - * Current value of network registration status. - */ - RMobilePhone::TMobilePhoneRegistrationStatus iRegistrationStatus; - - /** - * iRegistrationStatus first value has not yet been got - * after starting this monitor. - */ - TBool iWaitingRegistrationStatus; - - /** - * Blocker for synchronous requests. - */ - CActiveSchedulerWait iWait; - - /** - * Phone instance. - * Not own. - */ - MSatMultiModeApi& iPhone; - - }; - -#endif // CSATNETWORKREGSTATUSMONITOR_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/src/CSatCenRepChangeNotifier.cpp --- a/satengine/SatServer/SystemState/src/CSatCenRepChangeNotifier.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,269 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Notifies the changes in central repository values. -* -*/ - - - -// INCLUDE FILES -#include -#include "CSatCenRepChangeNotifier.h" -#include "MSatSystemStateObserver.h" -#include "Panic.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatCenRepChangeNotifier::CSatCenRepChangeNotifier -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatCenRepChangeNotifier::CSatCenRepChangeNotifier( - const TUid& aCenRepCategory, - TUint32 aCenRepId, - MSatSystemStateObserver& aObserver, - TInt aCenRepType ) : - CActive( EPriorityStandard ), - iObserver( aObserver ), - iCenRepCategory( aCenRepCategory ), - iCenRepId( aCenRepId ), - iCenRepType( aCenRepType ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::\ - CSatCenRepChangeNotifier calling" ) - // Log parameters - LOG2( NORMAL, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::\ - CSatCenRepChangeNotifier Category: %d", aCenRepCategory ) - LOG2( NORMAL, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::\ - CSatCenRepChangeNotifier ID: %d", aCenRepId ) - LOG2( NORMAL, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::\ - CSatCenRepChangeNotifier Type: %d ", aCenRepType ) - - CActiveScheduler::Add( this ); - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::\ - CSatCenRepChangeNotifier exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCenRepChangeNotifier::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatCenRepChangeNotifier* CSatCenRepChangeNotifier::NewL( - const TUid& aCenRepCategory, - TUint32 aCenRepId, - MSatSystemStateObserver& aObserver, - TInt aCenRepType ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::NewL calling" ) - - CSatCenRepChangeNotifier* self = - new( ELeave ) CSatCenRepChangeNotifier( - aCenRepCategory, aCenRepId, aObserver, aCenRepType ); - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::NewL exiting" ) - return self; - } - - -// Destructor -CSatCenRepChangeNotifier::~CSatCenRepChangeNotifier() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::\ - ~CSatCenRepChangeNotifier calling" ) - - Cancel(); - if ( iCenRepClient ) - { - delete iCenRepClient; - iCenRepClient = NULL; - } - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::\ - ~CSatCenRepChangeNotifier exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCenRepChangeNotifier::ConstructL -// Creates central repository object. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCenRepChangeNotifier::ConstructL() - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatCenRepChangeNotifier::ConstructL calling" ) - - iCenRepClient = CRepository::NewL( iCenRepCategory ); - - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatCenRepChangeNotifier::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCenRepChangeNotifier::NotifyChangeL -// Issues notification request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCenRepChangeNotifier::NotifyChangeL() - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatCenRepChangeNotifier::NotifyChangeL calling" ) - - __ASSERT_ALWAYS( !IsActive(), Panic( ESatSystemStateAllReadyActive ) ); - ActivateL(); - - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatCenRepChangeNotifier::NotifyChangeL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCenRepChangeNotifier::CancelNotify -// Cancels outstanding request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCenRepChangeNotifier::CancelNotify() - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatCenRepChangeNotifier::CancelNotify calling" ) - - Cancel(); - - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatCenRepChangeNotifier::CancelNotify exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCenRepChangeNotifier::DoCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCenRepChangeNotifier::DoCancel() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::DoCancel calling" ) - - // Cancel all notifications. This causes notification mechanism to return - // KInvalidNotificationId in the RunL function, so it must be handled there. - iCenRepClient->NotifyCancelAll(); - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCenRepChangeNotifier::RunL -// Activates the request again and calls the observer. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCenRepChangeNotifier::RunL() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::RunL calling" ) - - // In CenRep CRepository returns the key for the changed value in iStatus. - const TUint32 cenRepId( iStatus.Int() ); - LOG2( NORMAL, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::RunL \ - iStatus: %d", iStatus.Int() ) - // Makes sure that all the changes are notified. - if ( KErrCancel != iStatus.Int() ) - { - ActivateL(); - } - - // Check that notification came from that ID we are observing. - if ( cenRepId == iCenRepId ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatCenRepChangeNotifier::RunL cenRepId == iCenRepId" ) - switch ( iCenRepType ) - { - case ECRTypeInteger: - { - TInt value; - iCenRepClient->Get( iCenRepId, value ); - LOG2( NORMAL, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::RunL \ - Notifying TInt value: %d", value ) - iObserver.StateChanged( value ); - break; - } - case ECRTypeReal: - { - TReal value; - iCenRepClient->Get( iCenRepId, value ); - LOG2( NORMAL, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::RunL \ - Notifying TReal value: %d", value ) - iObserver.StateChanged( value ); - break; - } - case ECRTypeDesC8: - { - TBuf8 value; - iCenRepClient->Get( iCenRepId, value ); - LOG( NORMAL, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::RunL \ - Notifying string value" ) - iObserver.StateChanged( value ); - break; - } - case ECRTypeDesC16: - { - TBuf16 value; - iCenRepClient->Get( iCenRepId, value ); - LOG( NORMAL, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::RunL \ - Notifying Unicode value" ) - iObserver.StateChanged( value ); - break; - } - case ECRTypeUnknown: - default: - { - LOG( NORMAL, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::RunL \ - Notifying without value" ) - // If type is not defined, call StateChanged without parameters - iObserver.StateChanged(); - break; - } - } - } - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatCenRepChangeNotifier::ActivateL -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatCenRepChangeNotifier::ActivateL() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::ActivateL calling" ) - - // This request notifies all changes in this category, not just the one we - // are observing. Thus we have to read the value from CenRep before - // notification. - User::LeaveIfError( iCenRepClient->NotifyRequest( iCenRepId, iStatus ) ); - SetActive(); - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatCenRepChangeNotifier::ActivateL exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/src/CSatPSChangeNotifier.cpp --- a/satengine/SatServer/SystemState/src/CSatPSChangeNotifier.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,228 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Notifies the changes in publish and suscripe properties. -* -*/ - - - -// INCLUDE FILES -#include "CSatPSChangeNotifier.h" -#include "MSatSystemStateObserver.h" -#include "Panic.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CSatPSChangeNotifier::CSatPSChangeNotifier -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatPSChangeNotifier::CSatPSChangeNotifier( - const TUid& aPropertyKey, - TUint aPropertyValue, - MSatSystemStateObserver& aObserver, - TInt aNotifyValue ) : - CActive( EPriorityStandard ), - iObserver( aObserver ), - iPSKey( aPropertyKey ), - iPSValue( aPropertyValue ), - iNotifyValue( aNotifyValue ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatPSChangeNotifier::CSatPSChangeNotifier calling" ) - // Log parameters - LOG2( NORMAL, - "SATSYSTEMSTATE: CSatPSChangeNotifier::CSatPSChangeNotifier PS Uid: %d", - aPropertyKey ) - LOG2( NORMAL, - "SATSYSTEMSTATE: CSatPSChangeNotifier::CSatPSChangeNotifier PS Key: %d", - aPropertyValue ) - LOG2( NORMAL, - "SATSYSTEMSTATE: CSatPSChangeNotifier::CSatPSChangeNotifier Needed \ - value: %d ", aNotifyValue ) - - CActiveScheduler::Add( this ); - - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatPSChangeNotifier::CSatPSChangeNotifier exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatPSChangeNotifier::NewL -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -CSatPSChangeNotifier* CSatPSChangeNotifier::NewL( - const TUid& aPropertyKey, - TUint aPropertyValue, - MSatSystemStateObserver& aObserver, - TInt aNotifyValue ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::NewL calling" ) - - CSatPSChangeNotifier* self = - new( ELeave ) CSatPSChangeNotifier( - aPropertyKey, aPropertyValue, aObserver, aNotifyValue ); - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::NewL exiting" ) - return self; - } - - -// Destructor -CSatPSChangeNotifier::~CSatPSChangeNotifier() - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatPSChangeNotifier::~CSatPSChangeNotifier calling" ) - - Cancel(); - iPSClient.Close(); - - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatPSChangeNotifier::~CSatPSChangeNotifier exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatPSChangeNotifier::NotifyChangeL -// Issues notification request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatPSChangeNotifier::NotifyChangeL() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::NotifyChangeL calling" ) - - __ASSERT_ALWAYS( !IsActive(), Panic( ESatSystemStateAllReadyActive ) ); - User::LeaveIfError( iPSClient.Attach( iPSKey, iPSValue ) ); - Activate(); - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::NotifyChangeL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatPSChangeNotifier::CancelNotify -// Cancels outstanding request. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatPSChangeNotifier::CancelNotify() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::CancelNotify calling" ) - - Cancel(); - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::CancelNotify exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatPSChangeNotifier::DoCancel -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatPSChangeNotifier::DoCancel() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::DoCancel calling" ) - - iPSClient.Cancel(); - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::DoCancel exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatPSChangeNotifier::RunL -// Activates the request again and calls the observer. -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatPSChangeNotifier::RunL() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::RunL calling" ) - // Makes sure that all the changes are notified. - LOG2( SIMPLE, "SATSYSTEMSTATE: Failed: %i", iStatus.Int() ) - if ( KErrNone == iStatus.Int() ) - { - NotifyChangeL(); - - // Check the value - TInt value = KNotifyValueNotSet; - - // Get the value from P&S - RProperty::Get( iPSKey, iPSValue, value ); - - // If notify value is set, check the value before notifying observer - if ( KNotifyValueNotSet != iNotifyValue ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::RunL \ - KNotifyValueNotSet != iNotifyValue" ) - // If changed P&S value is same as notify value, notify observer - if ( value == iNotifyValue ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::RunL \ - value == iNotifyValue" ) - iObserver.StateChanged(); - } - } - else - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::RunL \ - KNotifyValueNotSet == iNotifyValue" ) - // Notify value not specified -> Send the changed value - iObserver.StateChanged( value ); - } - } - else if ( KErrCancel == iStatus.Int() ) - { - Activate(); - } - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::RunL exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatPSChangeNotifier::Activate -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -void CSatPSChangeNotifier::Activate() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::Activate calling" ) - - iPSClient.Subscribe( iStatus ); - SetActive(); - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::Activate exiting" ) - } - -// ----------------------------------------------------------------------------- -// CSatPSChangeNotifier::GetValueInt -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -TInt CSatPSChangeNotifier::GetValueInt() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatPSChangeNotifier::GetValueInt calling" ) - - // Gets the value from P&S. - TInt value( KNotifyValueNotSet ); - RProperty::Get( iPSKey, iPSValue, value ); - - LOG2( SIMPLE, - "SATSYSTEMSTATE: CSatPSChangeNotifier::GetValueInt exiting %i", - value ) - return value; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/src/CSatSystemState.cpp --- a/satengine/SatServer/SystemState/src/CSatSystemState.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,762 +0,0 @@ -/* -* Copyright (c) 2002-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: Provides system state information to SAT Server -* -*/ - - - -#include -#include -#include -#include // Publish & Suscribe keys -#include // CRepository -#include -#include -#include -#include -#define Q_OS_SYMBIAN // needed to activate homescreendomainpskeys.h -#include - -// ****************************************************************** -// TODO: ScreensaverInternalPSKeys.h does no longer exist. -// Must find an alternative way to check screen locked state. -// #include -// ****************************************************************** -#include -#include -#include - -#include "SATInternalPSKeys.h" -#include "CSatSystemState.h" -#include "msatmultimodeapi.h" -#include "SatLog.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that -// might leave. -// ----------------------------------------------------------------------------- -// -CSatSystemState::CSatSystemState( MSatMultiModeApi& aPhone ) : iPhone( aPhone ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::CSatSystemState calling-exiting" ) - } - -// ----------------------------------------------------------------------------- -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CSatSystemState::ConstructL( MSatMultiModeApi& aPhone ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::ConstructL calling" ) - - // Define policies - TSecurityPolicy readPolicy( ECapabilityReadUserData ); - TSecurityPolicy writePolicy( ECapabilityWriteUserData ); - - TInt err( KErrNone ); - // Define properties in P&S for SetUpIdleModeTex command - err = RProperty::Define( KPSUidSatServerInternal, - KSatIdleModeText, - RProperty::ELargeText, - readPolicy, - writePolicy ); - LOG2( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ConstructL \ - Define KSatIdleModeText err: %i", err ) - - err = RProperty::Define( KPSUidSatServerInternal, - KSatIdleModeTextIconId, - RProperty::EInt, - readPolicy, - writePolicy ); - LOG2( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ConstructL \ - Define KSatIdleModeTextIconId err: %i", err ) - - err = RProperty::Define( KPSUidSatServerInternal, - KSatIdleModeTextIconQualifier, - RProperty::EInt, - readPolicy, - writePolicy ); - LOG2( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ConstructL \ - Define KSatIdleModeTextIconQualifier err: %i", err ) - - // Set default (empty) values - WriteSetIdleModeText( KNullDesC, KErrNotFound, RSat::ENoIconId ); - - err = RProperty::Define( KPSUidSatServer, - KSatLanguageSelectionTimeBeforeReboot, - RProperty::EInt, - readPolicy, - writePolicy ); - LOG2( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ConstructL \ - Define KSatLanguageSelectionTimeBeforeReboot err: %i", err ) - - // Create Network Registration Status Monitor. - iNetworkRegStatusMonitor = CSatNetworkRegStatusMonitor::NewL( aPhone ); - - // Start Network Registration Status Monitor. - iNetworkRegStatusMonitor->Start(); - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::ConstructL exiting" ) - } - -// ----------------------------------------------------------------------------- -// Two-phased constructor. -// ----------------------------------------------------------------------------- -// -MSatSystemState* CSatSystemState::NewL( MSatMultiModeApi& aPhone ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::NewL calling" ) - - CSatSystemState* self = new( ELeave ) CSatSystemState( aPhone ); - CleanupStack::PushL( self ); - self->ConstructL( aPhone ); - CleanupStack::Pop( self ); - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::NewL exiting" ) - return self; - } - - -// Destructor -CSatSystemState::~CSatSystemState() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::~CSatSystemState calling" ) - - delete iNetworkRegStatusMonitor; - iNetworkRegStatusMonitor = NULL; - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::~CSatSystemState exiting" ) - } - -// ----------------------------------------------------------------------------- -// Returns network registration status. -// ----------------------------------------------------------------------------- -// -RMobilePhone::TMobilePhoneRegistrationStatus - CSatSystemState::GetNetworkRegistrationStatus() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::\ - GetNetworkRegistrationStatus calling-exiting" ) - return iNetworkRegStatusMonitor->CurrentValue(); - } - -// ----------------------------------------------------------------------------- -// Checks current call status and returns true only if cuurent call status is -// voice call active. -// ----------------------------------------------------------------------------- -// -TBool CSatSystemState::IsCallActive() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsCallActive calling" ) - TInt callActiveState = EPSCTsyCallTypeNone; - - // Get current call status from P&S - const TInt errCode( RProperty::Get( - KPSUidCtsyCallInformation, - KCTsyCallType, - callActiveState ) ); - - // Check current call type - TBool result( - ( EPSCTsyCallTypeCSVoice == callActiveState ) && - ( KErrNone == errCode ) ); - - LOG2( - SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::IsCallActive exiting with value: %d", - result ) - return result; - } - -// ----------------------------------------------------------------------------- -// Checks current call state and returns true if phone is alerting or ringing. -// ----------------------------------------------------------------------------- -// -TBool CSatSystemState::IsCallIncoming() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsCallIncoming calling" ) - - // Using MSatMultiModeApi::IsCallIncoming to check call status instead of - // checking P&S key so that we can get the status on time - TBool result( iPhone.IsCallIncoming() ); - - LOG2( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsCallIncoming exiting \ - with value: %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// Gets the SMS Service center number and returns it. -// ----------------------------------------------------------------------------- -// -const TDesC& CSatSystemState::SCANumber() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::SCANumber calling" ) - - // Null possible previous SCA number - iScaAddress = KNullDesC; - TBuf address; - - TRAPD( err, ReadCurrentSMSCL( address ) ); - LOG2( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::SCANumber err: %d", err ) - // If any error occurs, return null string. - if ( KErrNone != err ) - { - address = KNullDesC; - } - - iScaAddress = address; - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::SCANumber exiting" ) - return iScaAddress; - } - -// ----------------------------------------------------------------------------- -// Method is used when the information of phones silent mode is needed. -// Returns true if silent mode is on and false otherwise. -// ----------------------------------------------------------------------------- -// -TBool CSatSystemState::IsSilentMode() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsSilentMode calling" ) - TBool result( EFalse ); - TInt silenceMode( -1 ); - CRepository* centRep( NULL ); - - TRAPD( err, centRep = CRepository::NewL( KCRUidProfileEngine ) ); - LOG2( SIMPLE, "SATSYSTEMSTATE:CSatSystemState::IsSilentMode\ - CRepository::NewL result: %i", err ) - if ( ( KErrNone == err ) && centRep ) - { - // Get the needed information from CentRep - centRep->Get( KProEngActiveMessageAlert, silenceMode ); - - // Delete CentRep - delete centRep; - - if ( 0 == silenceMode ) - { - LOG( SIMPLE, "SATSYSTEMSTATE:CSatSystemState::IsSilentMode\ - Silent mode" ) - result = ETrue; - } - } - - LOG2( - SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::IsSilentMode exiting with value: %d", - result ) - return result; - } - -// ----------------------------------------------------------------------------- -// Checks is phone in idle state. -// ----------------------------------------------------------------------------- -// -TBool CSatSystemState::IsPhoneInIdleStateL() - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsPhoneInIdleState calling" ) - TInt idleStatus(EHomeScreenIdleState) ; - - // Get the idle status from P&S - User::LeaveIfError( RProperty::Get( - KHsCategoryUid, - KHsCategoryStateKey, - idleStatus)); - // Returns true if phone in idle state. - const TBool result( EHomeScreenIdleState == idleStatus ); - - LOG2( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsPhoneInIdleState exiting \ - with value: %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// Checks is screen saver actived from idle. -// ----------------------------------------------------------------------------- -// -TBool CSatSystemState::IsScreenSaverActivedFromIdle() - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::IsScreenSaverActivedFromIdle calling" ) - TBool result( EFalse ); - - /* - // TODO: This method can no longer be used for checking screen saver status. - // Must find an alternative method. - - TInt screenSaverActive( -1 ); - - // Get the idle status from P&S - TInt err = RProperty::Get( KPSUidScreenSaver, - KScreenSaverActivatedFromIdle, screenSaverActive ); - - if ( KErrNone == err ) - { - // Returns true if screen saver is actived from idle. - if ( screenSaverActive ) - { - result = ETrue; - } - } - - LOG2( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState:: IsScreenSaverActivedFromIdle \ - err: %d", err ) - */ - - LOG2( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState:: \ - IsScreenSaverActivedFromIdle exiting with value: %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// Sets time between language selection and reboot. -// ----------------------------------------------------------------------------- -// -TInt CSatSystemState::WriteLanguageSelectionTime( - TInt aTime ) - { - LOG2( NORMAL, - "SATSYSTEMSTATE: CSatSystemState::WriteLanguageSelectionTime calling, \ - aTime: %d", aTime ) - TInt errorCode( KErrNone ); - - // Set SetUpIdleModeText string - errorCode = RProperty::Set( - KPSUidSatServer, - KSatLanguageSelectionTimeBeforeReboot, - aTime ); - LOG2( NORMAL, - "SATSYSTEMSTATE: CSatSystemState::WriteLanguageSelectionTime exiting, \ - errorCode: %d", errorCode ) - return errorCode; - } - -// ----------------------------------------------------------------------------- -// Writes idle mode text and icon ID to P&S. -// ----------------------------------------------------------------------------- -// -TInt CSatSystemState::WriteSetIdleModeText( - const TDesC& aString, - TInt aIconId, - RSat::TIconQualifier aIconQualifier ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::WriteSetIdleModeText calling" ) - LOG2( - NORMAL, - "SATSYSTEMSTATE: CSatSystemState::WriteSetIdleModeText ID: %d", - aIconId ) - TInt errorCode( KErrNone ); - - // Set SetUpIdleModeText string - errorCode = RProperty::Set( - KPSUidSatServerInternal, - KSatIdleModeText, - aString ); - LOG2( NORMAL, - "SATSYSTEMSTATE: CSatSystemState::WriteSetIdleModeText errorCode: %d", - errorCode ) - if ( KErrNone == errorCode ) - { - // Set SetUpIdleModeText icon - errorCode = RProperty::Set( - KPSUidSatServerInternal, - KSatIdleModeTextIconId, - aIconId ); - if ( KErrNone == errorCode ) - { - // Select qualifier value for icon. - TSatIdleModeTextIconQualifierValue qualifier( KSatIdleIconQInit ); - LOG2( NORMAL, - "SATSYSTEMSTATE: CSatSystemState::WriteSetIdleModeText \ - aIconQualifier: %d", aIconQualifier ) - switch ( aIconQualifier ) - { - // Icon not present. - case RSat::ENoIconId: - { - qualifier = KSatIdleIconQNoIcon; - break; - } - // Icon is self explanatory. Displayed instead text string. - case RSat::ESelfExplanatory: - { - qualifier = KSatIdleIconQSelfExplanatory; - break; - } - // Icon is not self explanatory. Displayed with text string. - case RSat::ENotSelfExplanatory: - { - qualifier = KSatIdleIconQNotSelfExplanatory; - break; - } - // Icon qualifier is not set. - case RSat::EIconQualifierNotSet: - default: - { - qualifier = KSatIdleIconQInit; - break; - } - } - - LOG2( NORMAL, - "SATSYSTEMSTATE: CSatSystemState::WriteSetIdleModeText \ - IconQualifier: %d", qualifier ) - - // Set qualifier for icon. - errorCode = RProperty::Set( - KPSUidSatServerInternal, - KSatIdleModeTextIconQualifier, - qualifier ); - } - } - - LOG2( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::WriteSetIdleModeText \ - exiting with value: %d", errorCode ) - return errorCode; - } - -// ----------------------------------------------------------------------------- -// Checks is backup process ongoing. -// ----------------------------------------------------------------------------- -// -TBool CSatSystemState::IsBackupProcessOngoing() - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::IsBackupProcessOngoing calling" ) - TInt backupState( conn::ENoBackup ); - - // Get the backup state from P&S - const TInt errCode( RProperty::Get( - KUidSystemCategory, - conn::KUidBackupRestoreKey, - backupState ) ); - - TBool result( - ( conn::ENoBackup != ( backupState & conn::KBackupIncTypeMask ) ) - && ( KErrNone == errCode ) ); - - LOG2( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::IsBackupProcessOngoing exiting \ - with value: %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CSatSystemState::IsConfirmSatOperationsOn -// ----------------------------------------------------------------------------- -// -TBool CSatSystemState::IsConfirmSatOperationsOn() - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::IsConfirmSatOperationsOn calling" ) - TBool result( EFalse ); - TInt confirmSatOperations( 0 ); - CRepository* centRep( NULL ); - - TRAPD( err, centRep = CRepository::NewL( KCRUidPersonalizationSettings ) ); - LOG2( SIMPLE, "SATSYSTEMSTATE: CentRep failed: %i", err ) - if ( ( KErrNone == err ) && centRep ) - { - // Get the needed information from CentRep - centRep->Get( KSettingsConfirmSatOperations, confirmSatOperations ); - - // Delete CentRep - delete centRep; - - if ( 1 == confirmSatOperations ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::IsConfirmSatOperationsOn \ - 1 == confirmSatOperations" ) - result = ETrue; - } - } - - LOG2( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::IsConfirmSatOperationsOn \ - exiting with value: %d", result ) - return result; - } - -// ----------------------------------------------------------------------------- -// CSatSystemState::DisplayTextLanguage -// ----------------------------------------------------------------------------- -// -TBool CSatSystemState::DisplayTextLanguage() - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::DisplayTextLanguage calling" ) - TInt selLanguage( 0 ); - CRepository* centRep( NULL ); - - // Create instance to CentRep - TRAPD( err, centRep = CRepository::NewL( KCRUidCommonEngineKeys ) ); - LOG2( SIMPLE, "SATSYSTEMSTATE: CentRep failed: %i", err ) - if ( ( KErrNone == err ) && centRep ) - { - // Get the needed information from CentRep - centRep->Get( KGSDisplayTxtLang, selLanguage ); - - // Delete CentRep - delete centRep; - } - - LOG2( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::DisplayTextLanguage \ - exiting with value: %d", selLanguage ) - return selLanguage; - } - -// ----------------------------------------------------------------------------- -// Checks is BT SAP active -// ----------------------------------------------------------------------------- -// -TBool CSatSystemState::IsBtSapActive() - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::IsBtSapActive calling" ) - TInt sapActive( EBTSapNotConnected ); - - // Get the backup state from P&S - const TInt errCode( RProperty::Get( - KPSUidBluetoothSapConnectionState, - KBTSapConnectionState, - sapActive ) ); - - LOG2( - SIMPLE, - "SATSYSTEMSTATE: RProperty::Get returned value: %i", errCode ) - - TBool result( ( ( EBTSapConnecting == sapActive ) || - ( EBTSapConnected == sapActive ) ) && - ( KErrNone == errCode ) ); - - LOG2( - SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::IsBtSapActive exiting with value: %i", - result ) - return result; - } - -// ----------------------------------------------------------------------------- -// Reads current SMS Center number. -// ----------------------------------------------------------------------------- -// -void CSatSystemState::ReadCurrentSMSCL( TDes& aAddress ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL calling" ) - - aAddress = KNullDesC; - TInt status( KErrNone ); - - // Open message server connection. - CMsvSession* msvSession = CMsvSession::OpenSyncL( *this ); - CleanupStack::PushL( msvSession ); - - CClientMtmRegistry* clientRegistry = - CClientMtmRegistry::NewL( *msvSession ); - - CleanupStack::PushL( clientRegistry ); - - // Get the account. - TInt serviceId( ServiceForMTML( *msvSession, KUidMsgTypeSMS ) ); - if ( KMsvUnknownServiceIndexEntryId != serviceId ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \ - KMsvUnknownServiceIndexEntryId != serviceId" ) - // Read the setting. - CSmsClientMtm* mtm = - static_cast( clientRegistry->NewMtmL( KUidMsgTypeSMS ) ); - CleanupStack::PushL( mtm ); - mtm->SwitchCurrentEntryL( serviceId ); - mtm->LoadMessageL(); - // Findout the number. - const CSmsSettings& settings = mtm->ServiceSettings(); - -#ifndef __HIDE_MESSAGING_API_V1__ - if ( settings.NumSCAddresses() != 0 ) - { - if ( settings.DefaultSC() < settings.NumSCAddresses() ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \ - settings.DefaultSC() < settings.NumSCAddresses()" ) - TPtrC addr = settings.SCAddress( settings.DefaultSC() ).Address(); - aAddress = addr; - } - else - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \ - others" ) - status = KErrOverflow; - } - } -#else - - if ( settings.ServiceCenterCount() != 0 ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \ - settings.ServiceCenterCount() != 0" ) - if ( settings.DefaultServiceCenter() < settings.ServiceCenterCount() ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \ - settings.DefaultServiceCenter() < \ - settings.ServiceCenterCount()" ) - TPtrC addr = settings.GetServiceCenter( - settings.DefaultServiceCenter() ).Address(); - aAddress = addr; - } - else - { - status = KErrOverflow; - } - } - -#endif - else - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \ - settings.ServiceCenterCount() == 0" ) - status = KErrNotFound; - } - - // Cleanup. - CleanupStack::PopAndDestroy( mtm ); - } - else - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL \ - KMsvUnknownServiceIndexEntryId == serviceId" ) - status = KErrNotFound; - } - - CleanupStack::PopAndDestroy( clientRegistry ); - CleanupStack::PopAndDestroy( msvSession ); - - if ( KErrNone != status ) - { - LOG2( NORMAL, - "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL leave: %d", - status ) - User::Leave( status ); - } - - LOG( NORMAL, "SATSYSTEMSTATE: CSatSystemState::ReadCurrentSMSCL exiting" ) - } - -// ----------------------------------------------------------------------------- -// Specifies an entry in the Message Server index. -// ----------------------------------------------------------------------------- -// -TMsvId CSatSystemState::ServiceForMTML( - CMsvSession& aSession, - const TUid& aMtm ) const - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatSystemState::ServiceForMTML calling" ) - - CMsvEntry* entry = aSession.GetEntryL( KMsvRootIndexEntryIdValue ); - CleanupStack::PushL( entry ); - TMsvId serviceId = KMsvUnknownServiceIndexEntryId; - LOG2( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ServiceForMTML count: %d", - entry->Count() ) - // Check are there any entries - if ( entry->Count() != 0 ) - { - entry->SetSortTypeL( - TMsvSelectionOrdering( KMsvGroupByType | KMsvGroupByStandardFolders, - EMsvSortByDetailsReverse, - ETrue ) ); - - const TMsvEntry* tentry; - for ( TInt cc( entry->Count() ); --cc >= 0; ) - { - tentry = &( *entry )[cc]; - if ( tentry->iMtm == aMtm ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ServiceForMTML \ - tentry->iMtm == aMtm" ) - if ( ( tentry->iType.iUid == KUidMsvServiceEntryValue ) && - ( tentry->Id() != KMsvLocalServiceIndexEntryIdValue ) ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ServiceForMTML \ - exit loop" ) - serviceId = tentry->Id(); - cc = 0; // To exit for-loop. Replaces break. - } - } - } - } - - CleanupStack::PopAndDestroy( entry ); - - LOG2( SIMPLE, - "SATSYSTEMSTATE: CSatSystemState::ServiceForMTML exiting with value: %d", - serviceId ) - return serviceId; - } - -// ----------------------------------------------------------------------------- -// Method is used when the information of phones warnings and game tone -// mode is needed. -// Returns true if silent mode is on and false otherwise. -// ----------------------------------------------------------------------------- -// -TBool CSatSystemState::IsWarningAndGameTonesOn() - { - LOG( SIMPLE, "SATSYSTEMSTATE: \ - CSatSystemState::IsWarningAndGameTonesOn calling" ) - - TBool modeOn( ETrue ); - CRepository* centRep( NULL ); - - TRAPD( err, centRep = CRepository::NewL( KCRUidProfileEngine ) ); - LOG2( SIMPLE, "SATSYSTEMSTATE: CentRep failed: %i", err ) - if ( ( KErrNone == err ) && centRep ) - { - // Get the needed information from CentRep - centRep->Get( KProEngActiveWarningTones, modeOn ); - - // Delete CentRep - delete centRep; - - } - - LOG2( - SIMPLE, - "SATSYSTEMSTATE: \ - CSatSystemState::IsWarningAndGameTonesOn exiting with value: %d", - modeOn ) - - return modeOn; - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/src/TSatSystemStateFactory.cpp --- a/satengine/SatServer/SystemState/src/TSatSystemStateFactory.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,183 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Provides SAT SystemState objects outside of this DLL -* -*/ - - -#include -#include -#define Q_OS_SYMBIAN // needed to activate homescreendomainpskeys.h -#include -#include -#include -#include -#include "TSatSystemStateFactory.h" -#include "CSatSystemState.h" -#include "msatmultimodeapi.h" -#include "CSatPSChangeNotifier.h" -#include "CSatCenRepChangeNotifier.h" -#include "SatLog.h" - - -// ======== MEMBER FUNCTIONS ======== - -// ----------------------------------------------------------------------------- -// (other items were commented in a header). -// ----------------------------------------------------------------------------- -// -EXPORT_C MSatSystemState* TSatSystemStateFactory::CreateSystemStateL( - MSatMultiModeApi& aPhone ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::CreateSystemStateL \ - calling" ) - - MSatSystemState* systemState = CSatSystemState::NewL( aPhone ); - - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::CreateSystemStateL \ - exiting" ) - return systemState; - } - -// ----------------------------------------------------------------------------- -// TSatSystemStateFactory::CreateIdleModeChangeNotifierL -// ----------------------------------------------------------------------------- -// -EXPORT_C MSatSystemStateChangeNotifier* - TSatSystemStateFactory::CreateIdleModeChangeNotifierL( - MSatSystemStateObserver& aObserver ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::\ - CreateIdleModeChangeNotifierL calling" ) - - MSatSystemStateChangeNotifier* ret = CSatPSChangeNotifier::NewL( - KHsCategoryUid, - KHsCategoryStateKey, - aObserver, - EHomeScreenIdleState ); - - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::\ - CreateIdleModeChangeNotifierL exiting" ) - return ret; - } - -// ----------------------------------------------------------------------------- -// TSatSystemStateFactory::CreateSimStatusChangeNotifierL -// ----------------------------------------------------------------------------- -// -EXPORT_C MSatSystemStateChangeNotifier* - TSatSystemStateFactory::CreateSimStatusChangeNotifierL( - MSatSystemStateObserver& aObserver ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::\ - CreateSimStatusChangeNotifierL calling" ) - - MSatSystemStateChangeNotifier* ret = CSatPSChangeNotifier::NewL( - KPSUidStartup, - KPSSimStatus, - aObserver, - ESimNotPresent ); - - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::\ - CreateSimStatusChangeNotifierL exiting" ) - return ret; - } - -// ----------------------------------------------------------------------------- -// TSatSystemStateFactory::CreateSIMAccessProfileChangeNotifierL -// ----------------------------------------------------------------------------- -// -EXPORT_C MSatSystemStateChangeNotifier* - TSatSystemStateFactory::CreateSIMAccessProfileChangeNotifierL( - MSatSystemStateObserver& aObserver ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::\ - CreateSIMAccessProfileChangeNotifier calling" ) - - MSatSystemStateChangeNotifier* ret = CSatPSChangeNotifier::NewL( - KPSUidBluetoothSapConnectionState, - KBTSapConnectionState, - aObserver, - KNotifyValueNotSet ); // No notify value specified - - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::\ - CreateSIMAccessProfileChangeNotifier exiting" ) - return ret; - } - -// ----------------------------------------------------------------------------- -// TSatSystemStateFactory::CreateStartupChangeChangeNotifierL -// ----------------------------------------------------------------------------- -// -EXPORT_C MSatSystemStateChangeNotifier* - TSatSystemStateFactory::CreateStartupChangeNotifierL( - MSatSystemStateObserver& aObserver ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::\ - CreateStartupChangeNotifierL calling" ) - - MSatSystemStateChangeNotifier* ret = CSatPSChangeNotifier::NewL( - KPSUidStartup, - KPSGlobalSystemState, - aObserver, - KNotifyValueNotSet ); - - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::\ - CreateStartupChangeNotifierL exiting" ) - return ret; - } - -// ----------------------------------------------------------------------------- -// TSatSystemStateFactory::CreateLanguageSelectionChangeNotifierL -// ----------------------------------------------------------------------------- -// -EXPORT_C MSatSystemStateChangeNotifier* - TSatSystemStateFactory::CreateLanguageSelectionChangeNotifierL( - MSatSystemStateObserver& aObserver ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::\ - CreateLanguageSelectionChangeNotifier calling" ) - - MSatSystemStateChangeNotifier* ret = CSatCenRepChangeNotifier::NewL( - KCRUidCommonEngineKeys, - KGSDisplayTxtLang, - aObserver, - CSatCenRepChangeNotifier::ECRTypeInteger ); - - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::\ - CreateLanguageSelectionChangeNotifier exiting" ) - return ret; - } - -// ----------------------------------------------------------------------------- -// TSatSystemStateFactory::CreateProfileChangeNotifierL -// ----------------------------------------------------------------------------- -// -EXPORT_C MSatSystemStateChangeNotifier* - TSatSystemStateFactory::CreateProfileChangeNotifierL( - MSatSystemStateObserver& aObserver ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::\ - CreateProfileChangeNotifierL calling" ) - - MSatSystemStateChangeNotifier* ret = CSatCenRepChangeNotifier::NewL( - KCRUidProfileEngine, - KProEngActiveProfile, - aObserver, - CSatCenRepChangeNotifier::ECRTypeInteger ); - - LOG( SIMPLE, "SATSYSTEMSTATE: TSatSystemStateFactory::\ - CreateProfileChangeNotifierL exiting" ) - return ret; - } diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/src/csatnetworkregstatusmonitor.cpp --- a/satengine/SatServer/SystemState/src/csatnetworkregstatusmonitor.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,226 +0,0 @@ -/* -* Copyright (c) 2007-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: Network registration status monitor. -* -*/ - - -#include "csatnetworkregstatusmonitor.h" -#include "SatLog.h" - -// ======== MEMBER FUNCTIONS ======== - -// --------------------------------------------------------------------------- -// C++ default constructor can NOT contain any code, that might leave. -// --------------------------------------------------------------------------- -// -CSatNetworkRegStatusMonitor::CSatNetworkRegStatusMonitor( - MSatMultiModeApi& aPhone ) : - CActive( CActive::EPriorityStandard ), - iRegistrationStatus( RMobilePhone::ERegistrationUnknown ), - iWaitingRegistrationStatus( EFalse ), - iPhone( aPhone ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: \ - CSatNetworkRegStatusMonitor::CSatNetworkRegStatusMonitor calling" ) - - // Add to active scheduler. - CActiveScheduler::Add( this ); - - LOG( SIMPLE, "SATSYSTEMSTATE: \ - CSatNetworkRegStatusMonitor::CSatNetworkRegStatusMonitor exiting" ) - } - -// --------------------------------------------------------------------------- -// Two-phased constructor. -// --------------------------------------------------------------------------- -// -CSatNetworkRegStatusMonitor* CSatNetworkRegStatusMonitor::NewL( - MSatMultiModeApi& aPhone ) - { - LOG( SIMPLE, "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::NewL calling" ) - - CSatNetworkRegStatusMonitor* self = - new( ELeave ) CSatNetworkRegStatusMonitor( aPhone ); - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::NewL exiting" ) - return self; - } - -// --------------------------------------------------------------------------- -// Destructor -// --------------------------------------------------------------------------- -// -CSatNetworkRegStatusMonitor::~CSatNetworkRegStatusMonitor() - { - LOG( SIMPLE, "SATSYSTEMSTATE: \ - CSatNetworkRegStatusMonitor::~CSatNetworkRegStatusMonitor calling" ) - - Cancel(); - - LOG( SIMPLE, "SATSYSTEMSTATE: \ - CSatNetworkRegStatusMonitor::~CSatNetworkRegStatusMonitor exiting" ) - } - -// --------------------------------------------------------------------------- -// Activate monitor. -// --------------------------------------------------------------------------- -// -void CSatNetworkRegStatusMonitor::Start() - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::Start calling" ) - -#ifndef SAT_USE_DUMMY_TSY - if ( !IsActive() ) - { - iRegistrationStatus = RMobilePhone::ERegistrationUnknown; - - iPhone.GetNetworkRegistrationStatus( iStatus, iRegistrationStatus ); - SetActive(); - iWaitingRegistrationStatus = ETrue; - LOG( SIMPLE, "SATSYSTEMSTATE: Started" ) - } -#else - iRegistrationStatus = RMobilePhone::ERegisteredOnHomeNetwork; - iWaitingRegistrationStatus = EFalse; - LOG( SIMPLE, "SATSYSTEMSTATE: Set for WINS Emulator" ) -#endif - - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::Start exiting" ) - } - -// --------------------------------------------------------------------------- -// Get current value of network registration status. -// --------------------------------------------------------------------------- -// -RMobilePhone::TMobilePhoneRegistrationStatus - CSatNetworkRegStatusMonitor::CurrentValue() - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::CurrentValue calling" ) - - // In case network registration notification failed on startup, we need to - // check it again, if not registered on home network and we are observing - // changes in registration status ( iWaitingRegistrationStatus == EFalse ) - if ( !iWaitingRegistrationStatus && - ( RMobilePhone::ERegisteredOnHomeNetwork != iRegistrationStatus && - RMobilePhone::ERegisteredRoaming != iRegistrationStatus ) ) - { - LOG( NORMAL, "Not registered -> Going to check value again" ) - Cancel(); // Cancel pending request... - Start(); // ... and start again - } - - // Wait, initial value has not yet been got. - if ( iWaitingRegistrationStatus ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::CurrentValue \ - iWaitingRegistrationStatus true" ) - if ( !iWait.IsStarted() ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::CurrentValue \ - start iWait" ) - iWait.Start(); - } - } - - LOG2( SIMPLE, - "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::CurrentValue exiting \ - (%d)", iRegistrationStatus ) - return iRegistrationStatus; - } - -// ----------------------------------------------------------------------------- -// CRegistrationMonitor::DoCancel -// ----------------------------------------------------------------------------- -// -void CSatNetworkRegStatusMonitor::DoCancel() - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::DoCancel calling" ) - - iPhone.CancelAsyncRequest( - EMobilePhoneNotifyNetworkRegistrationStatusChange ); - if ( iWait.IsStarted() ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::DoCancel stop iWait" ) - iWait.AsyncStop(); - } - - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::DoCancel exiting" ) - } - -// --------------------------------------------------------------------------- -// From class CActive. -// Marks status value valid and activates change notifier. -// --------------------------------------------------------------------------- -// -void CSatNetworkRegStatusMonitor::RunL() - { - const TInt status( iStatus.Int() ); // Asynchronous status - LOG2( SIMPLE, - "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::RunL calling (%d)", - status ) - - // Restart request - if ( KErrServerBusy == status ) - { - iPhone.GetNetworkRegistrationStatus( - iStatus, - iRegistrationStatus ); - SetActive(); - } - else if ( KErrCancel != status ) - { - // (Re)start observing - iPhone.NotifyNetworkRegistrationStatusChange( - iStatus, - iRegistrationStatus ); - SetActive(); - } - else - { - LOG( SIMPLE, " Request cancelled" ) - } - - // Still waiting first value after start. - if ( iWaitingRegistrationStatus ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::RunL \ - iWaitingRegistrationStatus true" ) - iWaitingRegistrationStatus = EFalse; - if ( iWait.IsStarted() ) - { - LOG( SIMPLE, - "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::RunL \ - stop iWait" ) - iWait.AsyncStop(); - } - } - - LOG2( SIMPLE, - "SATSYSTEMSTATE: NetworkRegistrationStatus updated: %d", - iRegistrationStatus ) - - LOG( SIMPLE, "SATSYSTEMSTATE: CSatNetworkRegStatusMonitor::RunL exiting" ) - } - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/SystemState/src/std.cpp --- a/satengine/SatServer/SystemState/src/std.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,35 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: General functions -* -*/ - - - -// INCLUDE FILES -#include -#include "Panic.h" -#include "SatLog.h" - -// CONSTANTS -_LIT( KSatSystemStatePanic, "SatSystemState" ); - -void Panic( TSatSystemStatePanic aPanic ) - { - LOG2( SIMPLE, "SATSYSTEMSTATE: Panic calling: %d", aPanic ) - User::Panic( KSatSystemStatePanic, aPanic ); - LOG( SIMPLE, "SATSYSTEMSTATE: Panic exiting" ) - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/conf/sat.confml Binary file satengine/SatServer/conf/sat.confml has changed diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/conf/sat_102078E1.crml Binary file satengine/SatServer/conf/sat_102078E1.crml has changed diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/group/SatServer_Stub.SIS Binary file satengine/SatServer/group/SatServer_Stub.SIS has changed diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/group/SatServer_Stub.pkg --- a/satengine/SatServer/group/SatServer_Stub.pkg Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +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: For packing satserver stub. -; -; Languages -&EN - -; Header -#{"satserver"}, (0x1000A833), 1, 0, 0, TYPE=SA - -; Localised Vendor name -%{"Nokia"} - -; Unique Vendor name -:"Nokia" - -; Files -""-"z:\sys\bin\SatServer.exe" -""-"z:\sys\bin\satengine.dll" -""-"z:\sys\bin\SatEventMonitors.dll" -""-"z:\sys\bin\SatClient.dll" -""-"z:\sys\bin\SatInternalClient.dll" -""-"z:\sys\bin\SatSystemState.dll" -""-"z:\sys\bin\CallControlCmd.dll" -""-"z:\sys\bin\CloseChannelCmd.dll" -""-"z:\sys\bin\DisplayTextCmd.dll" -""-"z:\sys\bin\GetChannelStatusCmd.dll" -""-"z:\sys\bin\GetInkeyCmd.dll" -""-"z:\sys\bin\GetInputCmd.dll" -""-"z:\sys\bin\LanguageNotificationCmd.dll" -""-"z:\sys\bin\LaunchBrowserCmd.dll" -""-"z:\sys\bin\MoSmControlCmd.dll" -""-"z:\sys\bin\OpenChannelCmd.dll" -""-"z:\sys\bin\PlayToneCmd.dll" -""-"z:\sys\bin\ProvideLocalInfoCmd.dll" -""-"z:\sys\bin\ReceiveDataCmd.dll" -""-"z:\sys\bin\RefreshCmd.dll" -""-"z:\sys\bin\RefreshRequiredCmd.dll" -""-"z:\sys\bin\SelectItemCmd.dll" -""-"z:\sys\bin\SendDataCmd.dll" -""-"z:\sys\bin\SendDtmfCmd.dll" -""-"z:\sys\bin\SendSmCmd.dll" -""-"z:\sys\bin\SendSsCmd.dll" -""-"z:\sys\bin\SendUssdCmd.dll" -""-"z:\sys\bin\SetUpCallCmd.dll" -""-"z:\sys\bin\SetUpEventListCmd.dll" -""-"z:\sys\bin\SetUpIdleModeTextCmd.dll" -""-"z:\sys\bin\SetUpMenuCmd.dll" -""-"z:\sys\bin\SimSessionEndCmd.dll" \ No newline at end of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/group/bld.inf --- a/satengine/SatServer/group/bld.inf Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,66 +0,0 @@ -/* -* Copyright (c) 2003-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: Build information file for project SatServer -* -*/ - - -#include - -PRJ_PLATFORMS -DEFAULT - -PRJ_EXPORTS -satserver_stub.sis /epoc32/data/z/system/install/SatServer_stub.sis -../rom/satserver.iby CORE_MW_LAYER_IBY_EXPORT_PATH( satserver.iby ) -../rom/SatServerResources.iby LANGUAGE_MW_LAYER_IBY_EXPORT_PATH( SatServerResources.iby ) - -// Generic configuration interface for component cenrep settings -../conf/sat.confml MW_LAYER_CONFML(sat.confml) -../conf/sat_102078E1.crml MW_LAYER_CRML(sat_102078E1.crml) - -#include "../SystemState/group/bld.inf" -#include "../EventMonitors/group/bld.inf" -#include "../Engine/group/bld.inf" -#include "../SatServer/group/bld.inf" -#include "../SatClient/group/bld.inf" -#include "../SatInternalClient/group/bld.inf" -#include "../Commands/ProvideLocalInfoCmd/group/bld.inf" -#include "../Commands/SelectItemCmd/group/bld.inf" -#include "../Commands/SetUpCallCmd/group/bld.inf" -#include "../Commands/SetUpMenuCmd/group/bld.inf" -#include "../Commands/SimSessionEndCmd/group/bld.inf" -#include "../Commands/SendSmCmd/group/bld.inf" -#include "../Commands/LaunchBrowserCmd/group/bld.inf" -#include "../Commands/PlayToneCmd/group/bld.inf" -#include "../Commands/MoSmControlCmd/group/bld.inf" -#include "../Commands/SendDtmfCmd/group/bld.inf" -#include "../Commands/GetInkeyCmd/group/bld.inf" -#include "../Commands/GetInputCmd/group/bld.inf" -#include "../Commands/SendSSCmd/group/bld.inf" -#include "../Commands/SendUSSDCmd/group/bld.inf" -#include "../Commands/SetUpIdleModeTextCmd/group/bld.inf" -#include "../Commands/CallControlCmd/group/bld.inf" -#include "../Commands/DisplayTextCmd/group/bld.inf" -#include "../Commands/RefreshCmd/group/bld.inf" -#include "../Commands/RefreshRequiredCmd/group/bld.inf" -#include "../Commands/SetUpEventListCmd/group/bld.inf" -#include "../Commands/LanguageNotificationCmd/group/bld.inf" -#include "../Commands/GetChannelStatusCmd/group/bld.inf" -#include "../Commands/CloseChannelCmd/group/bld.inf" -#include "../Commands/OpenChannelCmd/group/bld.inf" -#include "../Commands/SendDataCmd/group/bld.inf" -#include "../Commands/ReceiveDataCmd/group/bld.inf" - -PRJ_TESTMMPFILES diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/CSatCommandHandler.h --- a/satengine/SatServer/inc/CSatCommandHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,205 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Base class for SAT commands -* -*/ - -#ifndef CSATCOMMANDHANDLER_H -#define CSATCOMMANDHANDLER_H - -// INCLUDES -#include -#include -#include -#include "MSatUtils.h" -#include "MSatEventObserver.h" -#include "MSatCommand.h" - -// CLASS DECLARATION - -/** -* Base class for SAT commands. -* -* @lib SatServer -* @since Series 60 3.0 -*/ -class CSatCommandHandler : public CActive, public MSatEventObserver, - public MSatCommand - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * @param aImplUid Uid for derived class's plugin - * @param aUtils Utils interface - */ - static CSatCommandHandler* NewL( - const TUid& aImplUid, - MSatUtils* aUtils ); - - /** - * Destructor. - */ - IMPORT_C virtual ~CSatCommandHandler(); - - public: // New fucntions - - /** - * Start the waiting of SAT command from USAT API. - */ - IMPORT_C void Start(); - - /** - * Gives a panic. - * @param aCategory A category for this panic - * @param aReason Reason for this panic - */ - IMPORT_C void Panic( const TDesC& aCategory, TInt aReason ) const; - - /** - * Indicates is this command handler currently executing a command. - * @return ETrue if executing. - */ - IMPORT_C TBool IsCommandExecuting() const ; - - public: // Functions from base classes - - /** - * From MSatEventObserver Notification of event. - * @param aEvent An event that has been notified - */ - IMPORT_C void Event( TInt aEvent ); - - /** - * From MSatCommand Response from client. - * Default implementation will cause panic. - */ - IMPORT_C virtual void ClientResponse(); - - protected: // New functions - - /** - * Start of the command handling. Asks from derived class whether the - * command is allowed to execute by calling AllowCommand. - * If command is allowed to execute then the need of ui session - * is queried by calling NeedUiSession. If ui session is needed and - * its not available, ui is launcehd and this class registers itself - * to listen the event of ui launch. After the ui is launched, - * HandleCommand is called. If the derived class does not need the ui - * session or ui session is available, HandleCommand is called - * immediatly. - */ - IMPORT_C virtual void DoHandleCommand(); - - /** - * Derived class needs to make the request from USatApi. - * @param aStatus Status of request. - */ - virtual void IssueUSATRequest( TRequestStatus& aStatus ) = 0; - - /** - * Command has to check the state of the system and make the - * desision of allowing the command to perform. If desision - * is not to allow the command, then the terminal response has to - * sent from this method. - * @return TBool indicating is this command allowed or not - */ - virtual TBool CommandAllowed() = 0; - - /** - * Queries need of ui session in order to - * execute the command. If ui session is needed, the ui client - * launched and this class will register it self for the notification - * of ui request. - * @return ETrue if ui session is needed. - */ - virtual TBool NeedUiSession() = 0; - - /** - * Called when USAT API notifies that command - * data is available. - */ - virtual void HandleCommand() = 0; - - /** - * Called if launch of a Sat Ui application failed. - * Every derived class, which needs a ui session in order to - * execute command, needs to send a terminal - * response from this method. - */ - virtual void UiLaunchFailed() = 0; - - protected: - - /** - * Sends terminal response and renews the usat request of the command. - * @param aPCmd Identifies the command, which is sending - * terminal response. - * @param aRsp Terminal response data package. - */ - IMPORT_C void TerminalRsp( RSat::TPCmd aPCmd, const TDesC8& aRsp ); - - /** - * Calls SatSystemState's IsPhoneInIdleState if not using Dummy TSY, - * otherwise returns ETrue - * @return ETrue if using Dymmy TSY, otherwise asks status - * from SatSystemState and returns it. - */ - IMPORT_C TBool IsPhoneInIdleState(); - - protected: // From CActive - - /** - * From CActive base class - */ - IMPORT_C void RunL(); - - protected: - - /** - * C++ default constructor. - */ - IMPORT_C CSatCommandHandler(); - - /** - * By default Symbian 2nd phase constructor is private. - * @param aPtr Pointer to Utils interface - */ - IMPORT_C void BaseConstructL( MSatUtils* aPtr ); - - protected: // Data - - // Utils interface - MSatUtils* iUtils; - - // Indicates that command is pending for UI to launch - TBool iWaitingUiLaunch; - - private: // Data - - // Requiered attribute for the ECOM framework. - TUid iDtorIDKey; - - // Indicates is this command handler executing - TBool iIsExecuting; - - // Timer to get UI Launch notification released before - // starting to handle pending proactive command. - RTimer iDelayTimer; - - }; - -#endif // CSATCOMMANDHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/CSatSScheduler.h --- a/satengine/SatServer/inc/CSatSScheduler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: This is the active scheduler of the SAT Server. -* -*/ - - -#ifndef CSATSSCHEDULER_H -#define CSATSSCHEDULER_H - -// INCLUDE FILES -#include - -// FORWARD DECLARATIONS -class CSatSServer; - -// CLASS DECLARATION - -/** -* SAT Server includes a scheduler of it's own to simplify -* client request handling code. All active object leaves are -* handled in function Error(). The behaviour of Error() -* depends on whether there is an outstanding client request -* or not: it will tell the client the reason for inability -* to handle the client request. It will also panic the -* client if the descriptor passed to the server was malformed. -* Finally, a panic is raised if the error does not originate -* from the server itself. -* -* @lib SatEngine -* @since Series 60 3.0 -*/ - -class CSatSScheduler : public CActiveScheduler - { - public: // Constructors - - /** - * Default constructor - */ - IMPORT_C CSatSScheduler(); - - /** - * Gives a pointer of the current CSatSServer instance - * to the scheduler. - * @param aServer The current server pointer - */ - IMPORT_C void SetServer( CSatSServer* aServer ); - - public: // from CActiveScheduler - - /** - * Overridden to handle leaves in request functions and - * unexpected situations. - * @param aError Error code, see EPOC system documentation. - */ - void Error( TInt aError ) const; - - private: // prohibited operators and functions - - // Copy constructor - CSatSScheduler( const CSatSScheduler& ); - - // Assignment operator - CSatSScheduler& operator=( const CSatSScheduler& ); - - private: // data - - // Ref: server instance - CSatSServer* iServer; - }; - -#endif // CSATSSCHEDULER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatApi.h --- a/satengine/SatServer/inc/MSatApi.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,523 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: Interface for USat API. -* -*/ - - - -#ifndef MSATAPI_H -#define MSATAPI_H - -// INCLUDES -#include -#include - -// CLASS DECLARATION - -/** -* Interface for USat api. -* -* @lib SatEngine.lib -* @since Series 60 3.0 -*/ -class MSatApi - { - protected: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatApi() {}; - - /** - * Destructor. - */ - virtual ~MSatApi() {}; - - public: // New functions - - /** - * Issues SetUpMenu request. - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifySetUpMenu( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the setupmenu request. - */ - virtual void NotifySetUpMenuCancel() = 0; - - /** - * Issues SetUpCall request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifySetUpCall( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the SetUpCall request - */ - virtual void NotifySetUpCallCancel() = 0; - - /** - * Issues LangNotify request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyLanguageNotification( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the LangNotify request - */ - virtual void NotifyLanguageNotificationCancel() = 0; - - /** - * Issues the SelectItem request. - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifySelectItem( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the SelectItem request - */ - virtual void NotifySelectItemCancel() = 0; - - /** - * Issues the SendSm request. - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifySendSm( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the SendSm request. - */ - virtual void NotifySendSmCancel() = 0; - - /** - * Sends sm message. - * @param aStatus Request status - * @aData Data to be sent - * @aMsgReference Message reference. - */ - virtual void SendMessageNoLogging( - TRequestStatus& aStatus, - TDes8& aData, - TUint16& aMsgReference ) = 0; - - /** - * Cancels the send sm request. - */ - virtual void SendMessageNoLoggingCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyLaunchBrowser( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyLaunchBrowserCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyDisplayText( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyDisplayTextCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyGetInput( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyGetInputCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyGetInkey( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyGetInkeyCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyCallControl( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyCallControlCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyMoSmControl( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyMoSmControlCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifySetUpEventList( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifySetUpEventListCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifySetUpIdleModeText( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifySetUpIdleModeTextCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifySendDtmf( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifySendDtmfCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifySendSs( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifySendSsCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifySendUssd( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifySendUssdCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyPlayTone( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyPlayToneCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyRefreshRequired( - TRequestStatus& aStatus , - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyRefreshRequiredCancel() = 0; - - /** - * Respond to NotifyRefreshRequired. Replaces Terminal Rsp here. - * @param aPCkg Refresh required response package - */ - virtual void RefreshAllowed( const TDesC8& aPCkg ) = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyRefresh( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyRefreshCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - */ - virtual void NotifySimSessionEnd( TRequestStatus& aStatus ) = 0; - - /** - * Cancels the SimSessionEnd request - */ - virtual void NotifySimSessionEndCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyLocalInfo( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyLocalInfoCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyOpenChannel( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyOpenChannelCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyCloseChannel( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyCloseChannelCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyGetChannelStatus( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyGetChannelStatusCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifySendData( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifySendDataCancel() = 0; - - /** - * Issues the request - * @param aStatus Request status. - * @param aPCmd Command identifier and other relevant information - */ - virtual void NotifyReceiveData( - TRequestStatus& aStatus, - TDes8& aPCmd ) = 0; - - /** - * Cancels the request - */ - virtual void NotifyReceiveDataCancel() = 0; - - /** - * Sends menu selection to SIM. - * @param aMenuSelection Selected menu item - */ - virtual void SendMenuSelection( const TDes8& aMenuSelection ) = 0; - - /** - * Sends terminal response to SIM. - * @param aPCmd Proactive command, which is sending the Terminal Rsp. - * @param aPckg Packed data of terminal rsp. - */ - virtual void TerminalRsp( - RSat::TPCmd aPCmd, - const TDesC8& aPckg ) = 0; - - /** - * Gets the icon info from SIM. - * @param aReqStatus Request status. - * @param aRecordNumber Specifies the EF_IMG in SIM. - * @param aIconEf Contains the icon informations from SIM in returning - * of the method. - */ - virtual void GetIcon( - TRequestStatus& aReqStatus, - TUint8 aRecordNumber, - RSat::TIcon& aIconEf ) = 0; - - /** - * Gets the icon image. - * @param aReqStatus Request status. - * @param aInstanceInfo Informatio of the icon, which data is - * fetched from SIM. - * @param aInstance Contains the icon data from SIM in returning of the - * method. - */ - virtual void GetImageInstance( - TRequestStatus& aReqStatus, - const TDesC8& aInstanceInfo, - TDes8& aInstance ) = 0; - - /** - * Gets color lookup table of the icon. - * @param aReqStatus Request status. - * @param aInstanceNumber Image instance number. - * @param aOffset Offset of the clut. - * @param aClut Contains the Clut of the icon in returning of the - * method. - */ - virtual void GetClut( - TRequestStatus& aReqStatus, - TUint aInstanceNumber, - TUint aOffset, - TDes8& aClut ) = 0; - - /** - * Sends notify to SIM about some event using EventDownload. - * @param aReqStatus Request status. - * @param aSingleEvent Single event reported to SIM. - * @param aEventInfo Contains information of an event. - */ - virtual void EventDownload( - TRequestStatus& aReqStatus, - RSat::TEventList aSingleEvent, - const TDesC8& aEventInfo ) = 0; - - /** - * Indicates is RSat connected - * @return ETrue if RSat is connected - */ - virtual TBool IsRSatConnected() const = 0; - - /** - * Called when all the supported notifies are sent to TSY - * @return TInt from RSat - */ - virtual TInt UsatClientReadyIndication() = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatApi( const MSatApi& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatApi& operator=( const MSatApi& ); - - }; - -#endif // MSATAPI_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatApnHandler.h --- a/satengine/SatServer/inc/MSatApnHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -/* -* Copyright (c) 2002-2010 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: Interface for APN handler -* -*/ - - -#ifndef MSATAPNHANDLER_H -#define MSATAPNHANDLER_H - -// INCLUDES -#include -#include -#include -// CLASS DECLARATION - -/** -* Interface for APN operations with CMManager. -* -* @lib SatEngine -* @since S60 3.0 -*/ -class MSatApnHandler - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatApnHandler() {}; - - /** - * Destructor. - */ - virtual ~MSatApnHandler() {}; - - public: // New functions - - /** - * Locates APN from CMManager Session, creates new APN if not - * found, and returns IAP id and Network ID in referenced parameters - * @param aName Accesspoint to locate / create - * @param aUserLogin, User name in case new APN is needed - * @param aUserPwd, Password in case, new APN is needed - * @param aIapId, after completion, holds the IAP id of the APN - * @param aNwId, after completion, holds the Network id of the APN - * @param aApnCreated indicates is new APN created - * @param aPdpType, indicates whether the address type is IPv4 or IPv6 - * @param aLocalAddress, represents the Local Address provided by NAA - */ - virtual void GetApnInfoL( - const RSat::TAccessName& aName, - const RSat::TTextString& aUserLogin, - const RSat::TTextString& aUserPwd, - TUint32& aIapId, - TUint32& aNwId, - TBool& aApnCreated, - const RPacketContext::TProtocolType& aPdpType, - const TDesC8& aLocalAddress ) = 0; - - /** - * Deletes APN from connection method list with given APN ID. Note - * that aApnId is the same id that GetApnInfoL returns in aNwId. - * @param aApnId APN to delete - */ - virtual void DeleteApnL( TUint32 aApnId ) = 0; - - /** - * Find the default APN Id - * @param aPdpType, indicates the address type is IPv4 or IPv6 - * @return a default iap id - */ - virtual TUint32 FindDefaultApL( - const RPacketContext::TProtocolType& aPdpType ) = 0; - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatApnHandler( const MSatApnHandler& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatApnHandler& operator=( const MSatApnHandler& ); - - }; - -#endif // MSATAPNHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatBIPChannelStatusObserver.h --- a/satengine/SatServer/inc/MSatBIPChannelStatusObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Interface for ChannelStatus event observer. -* -*/ - - - -#ifndef MSATBIPCHANNELSTATUSOBSERVER_H -#define MSATBIPCHANNELSTATUSOBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Interface for ChannelStatus event observer. When ChannelStatus event occurs, the -* implementors of this class will be notified. However, this class must be send to -* MSatBIPEventNotifier to get the notification. -* -* @lib SatEngine -* @since Series 60 3.0 -*/ -class MSatBIPChannelStatusObserver - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatBIPChannelStatusObserver() {}; - - /** - * Destructor. - */ - virtual ~MSatBIPChannelStatusObserver() {}; - - public: // New functions - - /** - * Notification of an event. - * @param aChannelId ID of the channel that started this event. - * @param aStatus Status that caused this event. - */ - virtual void ChannelStatus( - const TInt aChannelId, - const TInt aStatus ) = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatBIPChannelStatusObserver( - const MSatBIPChannelStatusObserver& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatBIPChannelStatusObserver& - operator=( const MSatBIPChannelStatusObserver& ); - - }; - -#endif // MSATBIPCHANNELSTATUSOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatBIPDataAvailableObserver.h --- a/satengine/SatServer/inc/MSatBIPDataAvailableObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,75 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Interface for DataAvailable event observer. -* -*/ - - - -#ifndef MSATBIPDATAAVAILABLEOBSERVER_H -#define MSATBIPDATAAVAILABLEOBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Interface for DataAvailable event observer. When DataAvailable event occurs, the -* implementors of this class will be notified. However, this class must be send to -* MSatBIPEventNotifier to get the notification. -* -* @lib SatEngine -* @since Series 60 3.0 -*/ -class MSatBIPDataAvailableObserver - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatBIPDataAvailableObserver() {}; - - /** - * Destructor. - */ - virtual ~MSatBIPDataAvailableObserver() {}; - - public: // New functions - - /** - * Notification of an event. - * @param aChannelId ID of the channel where the data is available. - * @param aLength Number of bytes available - */ - virtual void DataAvailable( - const TInt aChannelId, - const TInt aLength ) = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatBIPDataAvailableObserver( - const MSatBIPDataAvailableObserver& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatBIPDataAvailableObserver& operator=( - const MSatBIPDataAvailableObserver& ); - - }; - -#endif // MSATBIPDATAAVAILABLEOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatBIPDataChannel.h --- a/satengine/SatServer/inc/MSatBIPDataChannel.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,173 +0,0 @@ -/* -* Copyright (c) 2002-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: Interface for BIP Data channel. -* -*/ - - - -#ifndef MSATBIPDATACHANNEL_H -#define MSATBIPDATACHANNEL_H - -// INCLUDES -#include -#include -#include // TExtendedConnPref - -// CLASS DECLARATION -class MSatSendDataObserver; -class MSatConnectionObserver; -/** -* Interface for BIP Data channel. -* -* @lib SatEngine -* @since Series 60 3.0 -*/ -class MSatBIPDataChannel - { - - public: // Structs - - // Contains all the information needed to establish connection. - // Parameters are common to all bearers - struct TSatBipConnectionInfo - { - RSat::TSimMeInterface iProtocol; // TCP or UDP, port number - RSat::TOtherAddress iDestination; // Dest. address, IPv4 or IPv6 - TUint16 iBufferSize; // Size of the receive buffer - TExtendedConnPref* iOverrideSet; // extended connection - RSat::TBearerParams iBearerParams; // QoS parameters - RSat::TOtherAddress iSource; // Local addr, IPv4 or IPv6 - TUint32 iCreatedApnId; // ID of the created APN - }; - - public: // New functions - - /** - * Sets up connection. Does not activate it yet. - * @param aConnParams includes all needed information to - * open the connection. - */ - virtual void SetupConnectionL( - const TSatBipConnectionInfo& aConnParams ) = 0; - - /** - * Activates connection. Connection information must be set before - * activating connection - * @param aObserver Observer of the connection - */ - virtual void ActivateConnectionL( - MSatConnectionObserver* aObserver ) = 0; - - /** - * From MSatBIPDataChannel Returns Negotiated bearer parameters - * @param aResult Output Negotiated bearer parameters - */ - virtual void GetNegotiatedQoSParams( - RSat::TBearerParams& aResult ) const = 0; - - /** - * Sends the data or stores it into a buffer for later send. - * @param aData Data to be send. - * @param aSendImmedeately Indicates whether to send immediately or - * store data to buffer for later send. - * @param aFreeBufferSize The number of bytes of empty size in the buffer - * @param aObserver Observer of the completion of data send. - * @return Error code indicating the status of the command execution. - */ - virtual TInt SendDataL( const TDes8& aData, - const TBool aSendImmediately, - TInt& aFreeBufferSize, - MSatSendDataObserver* aObserver ) = 0; - - /** - * Receives the data from the buffer. - * @param aData Data to receive. - * @param aBytesToRead The number of requested bytes to return - * @param aAvailableBytes Number of unread bytes left in the buffer. - * @return Error code indicating the status of the command execution. - */ - virtual TInt ReceiveDataL( TDes8& aData, - const TInt aBytesToRead, - TInt& aAvailableBytes ) = 0; - - /** - * Returns the ID of this data channel. - * @return ID of this channel. - */ - virtual TInt ChannelId() const = 0; - - /** - * Returns the ID of this data channel to ChannelStatus - * @return ID that can be placed to ChannelStatus - */ - virtual TUint8 ChannelStatusChannelId() const = 0; - - /** - * Returns the status of this channel. - * @return Status of this data channel - */ - virtual TInt Status() const = 0; - - /** - * Closes the connection and empties the buffers. - */ - virtual void CloseChannel() = 0; - - /** - * Cancels all actions. - */ - virtual void CancelAll() = 0; - - /** - * Indicates whether PDP contex is active or not. - * @return TBool indicating context activation. - */ - virtual TBool IsContextActive() const = 0; - - /** - * Returns connection information - * @return Connection information - */ - virtual const TSatBipConnectionInfo& ConnInfo() const = 0; - - /** - * Close udp socket. - */ - virtual void StopUdpSocket() = 0; - - /** - * Destructor. - */ - virtual ~MSatBIPDataChannel() {}; - - protected: // Constructors and destructor - - /** - * Constructor. - */ - MSatBIPDataChannel() {}; - - private: - - // Assign operator - MSatBIPDataChannel& operator=( const MSatBIPDataChannel& ); - - // Prohibit copy constructor if not deriving from CBase. - MSatBIPDataChannel( const MSatBIPDataChannel& ); - }; - -#endif // MSATBIPDATACHANNEL_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatBIPEventNotifier.h --- a/satengine/SatServer/inc/MSatBIPEventNotifier.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Notifier of the BIP Events. -* -*/ - - - -#ifndef MSATBIPEVENTNOTIFIER_H -#define MSATBIPEVENTNOTIFIER_H - -// INCLUDES -#include - -class MSatBIPChannelStatusObserver; -class MSatBIPDataAvailableObserver; - -// CLASS DECLARATION - -/** -* BIP Event notifier interface. Responsible to notify BIP Event observers -* about BIP Events. -* -* @lib SatEngine -* @since Series 60 3.0 -*/ -class MSatBIPEventNotifier - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatBIPEventNotifier() {}; - - /** - * Destructor. - */ - virtual ~MSatBIPEventNotifier() {}; - - public: // New functions - - /** - * Notification request for DataAvailable event. - * @param aObserver An observer of the event. - */ - virtual void NotifyDataAvailable( - MSatBIPDataAvailableObserver* aObserver ) = 0; - - /** - * Notification request for ChannelStatus event. - * @param aObserver An observer of the event. - */ - virtual void NotifyChannelStatus( - MSatBIPChannelStatusObserver* aObserver ) = 0; - - /** - * Cancels DataAvailable event notification request. - */ - virtual void CancelDataAvailable() = 0; - - /** - * Cancels ChannelStatus event notification request. - */ - virtual void CancelChannelStatus() = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatBIPEventNotifier( const MSatBIPEventNotifier& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatBIPEventNotifier& operator=( const MSatBIPEventNotifier& ); - - }; - -#endif // MSATBIPEVENTNOTIFIER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatBIPUtils.h --- a/satengine/SatServer/inc/MSatBIPUtils.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,181 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: BIP Utils interface for BIP proactive commands. -* -*/ - - - -#ifndef MSATBIPUTILS_H -#define MSATBIPUTILS_H - -// INCLUDES -#include -#include - -// CLASS DECLARATION -class MSatBIPDataChannel; -class MSatApnHandler; - -// CONSTANTS -// These constants are used by BIP related objects -// Used in terminal responses and DataAvailable envelope -const TInt KSatBIPMoreThanMaxSize = 0xFF; - -// The minimum size of receive buffer is 1500 bytes. -const TInt KSatBIPMinReceiveBufferSize = 0x5DC; - -// Maximum buffer size from SIM in OpenChannel command is 1500. -const TInt KSatBIPMaxBufferSize = 0x5DC; - -// Maximum size of one ReceiveCommand TerminalResponse -const TInt KSatBIPMaxResponseSize = 0xED; - -/** -* BIP Utils interface. Provides functionality to -* BIP proactive command handlers. -* -* @lib SatEngine -* @since Series 60 3.0 -*/ -class MSatBIPUtils - { - public: // Enums - - // These values can be used straigth in TerminalResponses - // additional info with KBearerIndepProtocolError - enum TSatBIPErrors - { - ESatBIPSuccess = 0x00, - ESatBIPNoChannelAvail = 0x01, - ESatBIPChannelClosed = 0x02, - ESatBIPChannelIdNotValid = 0x03, - ESatBIPReqBufSizeNotAvail = 0x04, - ESatBIPSecurityError = 0x05, - ESatBIPTransportLevelNotAvailable = 0x06, - ESatBIPRemoteDeviceNotReachable = 0x07, - ESatBIPServiceError = 0x08, - ESatBIPServiceIdUnknown = 0x09 - }; - - // This comes with OpenChannel command to identify the type - // of bearer in the data channel. - enum TSatBearerType - { - ESatDefault, /* Default bearer type */ - ESatGPRS, /* GPRS */ - ESatCSD /* CSD, Not supported */ - }; - - // Defines the possible channel IDs. The values should be the same as are in - // etelsat.h and these values can be used in functions. - enum TSatChannelId - { - ESatNoChannel = 0x00, - ESatChannel1 = 0x01, - ESatChannel2 = 0x02, - ESatChannel3 = 0x03, - ESatChannel4 = 0x04, - ESatChannel5 = 0x05, - ESatChannel6 = 0x06, - ESatChannel7 = 0x07 - }; - - // Supported status informations - enum TSatChannelStatus - { - ESatNoFurtherInformation = 0x00, - ESatLinkDropped = 0x05 - }; - - protected: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatBIPUtils() {}; - - /** - * Destructor. - */ - virtual ~MSatBIPUtils() {}; - - public: // New functions - - /** - * Creates new data channel and returns reference to it. - * @param aBearerType identifies the type of data channel to create. - * @param TSatBIPError code indicating the execution status. - * @return Pointer to created data channel - */ - virtual MSatBIPDataChannel* CreateChannelL( - const TSatBearerType aBearerType, - TInt& aErrCode ) = 0; - - /** - * Request to close specified data channel. - * @param aChannelId Identifies the channel to be closed. - * @return TSatBIPError code indicating the execution status. - */ - virtual TInt CloseChannel( const TInt aChannelId ) = 0; - - /** - * Request to open new data channel - * @param aChannelId Identifies the channel. - * @param aErrCode TSatBIPError code indicating the execution status. - * @return Pointer to requested data channel - */ - virtual MSatBIPDataChannel* DataChannel( const TInt aChannelId, - TInt& aErrCode ) = 0; - - /** - * Request to close specified data channel. - * @return Array containing all available data channels. - */ - virtual CArrayPtrFlat* DataChannels() = 0; - - /** - * Generates channel status object from given parameters to - * used in terminal responses. - * @param aChannelId Data channel identifier. - * @param aStatus Data channel's status. - * @return channel status object that can be put into terminal responses. - */ - virtual RSat::TChannelStatus GenerateChannelStatusL( - const TInt aChannelId, TInt aStatus ) = 0; - - /** - * Reference to APN handler - * @return Interface reference to CSatApnHandler - */ - virtual MSatApnHandler& ApnHandler() = 0; - - /** - * Status of the PDP Context - * @return ETrue, if there is active PDP Context - */ - virtual TBool IsContextActive() = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatBIPUtils( const MSatBIPUtils& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatBIPUtils& operator=( const MSatBIPUtils& ); - }; - -#endif // MSATBIPUTILS_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatCommand.h --- a/satengine/SatServer/inc/MSatCommand.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Command interface for use of ui session. -* -*/ - - - -#ifndef MSATCOMMAND_H -#define MSATCOMMAND_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Command interface. Offers accessors for command id and command data. -* -* @lib SatEngine -* @since Series 60 3.0 -*/ -class MSatCommand - { - public: // Enums - - enum TSatCmdId - { - ESetUpMenuCmdId, - ESetUpCallCmdId, - ESelectItemCmdId, - ESimSessionEndCmdId, - ESendSmCmdId, - ELaunchBrowserCmdId, - EDisplayTextCmdId, - EGetInputCmdId, - EGetInkeyCmdId, - ECallControlCmdId, - EMoSmControlCmdId, - ESetUpEventListCmdId, - ESetUpIdleModeTextCmdId, - ESendDtmfCmdId, - ESendSsCmdId, - ESendUssdCmdId, - EPlayToneCmdId, - ERefreshCmdId - }; - - protected: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatCommand() {}; - - /** - * Destructor. - */ - virtual ~MSatCommand() {}; - - public: // New functions - - /** - * Response from client. - */ - virtual void ClientResponse() = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatCommand( const MSatCommand& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatCommand& operator=( const MSatCommand& ); - - }; - -#endif // MSATCOMMAND_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatConnectionObserver.h --- a/satengine/SatServer/inc/MSatConnectionObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Interface for Connection observers. -* -*/ - - - -#ifndef MSATCONNECTIONOBSERVER_H -#define MSATCONNECTIONOBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Interface for Connection observers. These observers are notified, when -* connection is fully up, or an error occurs during connection stage. -* -* @lib SatEngine -* @since Series 60 3.0 -*/ -class MSatConnectionObserver - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatConnectionObserver() {}; - - /** - * Destructor. - */ - virtual ~MSatConnectionObserver() {}; - - public: // New functions - - /** - * Notification of connection stage - * @param aError Indicates the status of connection. - */ - virtual void ConnectionNotification( const TInt aError ) = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatConnectionObserver( const MSatConnectionObserver& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatConnectionObserver& operator=( const MSatConnectionObserver& ); - - }; - -#endif // MSATSENDDATAOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatEventMonitor.h --- a/satengine/SatServer/inc/MSatEventMonitor.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,94 +0,0 @@ -/* -* Copyright (c) 2002-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: Event monitor interface -* -*/ - - -#ifndef MSATEVENTMONITOR_H -#define MSATEVENTMONITOR_H - -// INCLUDES -#include -// CLASS DECLARATION - -/** -* Interface for event monitors. -* -* @lib EventMonitors.lib -* @since Series 60 3.0 -*/ -class MSatEventMonitor - { - public: // Enums - - // Monitored events - enum TEvent - { - EUserActivity, - EIdleScreenAvailable, - ELanguageSelection, - ESimRemoved, - EBrowserTerminated, - EDataAvailable, - EChannelStatus - }; - - public: // New functions - - /** - * Cancels event monitoring - */ - virtual void CancelMonitor() = 0; - - /** - * Updates monitors state. This function call starts or cancels monitor - * @param aEvents A list of events to be monitored. If this monitors event - * is not on the list, this monitor is cancelled. - * @return TInt An error code indicating update status - */ - virtual TInt UpdateMonitor( TUint aEvents ) = 0; - - /** - * Checks is this event monitor monitoring particular event - * @param aEvent Event to check against - * @return ETrue if aEvent is the same event this is monitoring - */ - virtual TBool IsMonitoringEvent( const TInt aEvent ) = 0; - - /** - * Destructor. - */ - virtual ~MSatEventMonitor() {}; - - protected: - - /** - * C++ default constructor. - */ - MSatEventMonitor() {}; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatEventMonitor( const MSatEventMonitor& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatEventMonitor& operator=( const MSatEventMonitor& ); - - }; - -#endif // MSATEVENTMONITOR_H - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatEventMonitorContainer.h --- a/satengine/SatServer/inc/MSatEventMonitorContainer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,88 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: API for container of event monitors -* -*/ - - - -#ifndef MSATEVENTMONITORCONTAINER_H -#define MSATEVENTMONITORCONTAINER_H - -// INCLUDES -#include -#include -// CLASS DECLARATION - -/** -* Interface for observing events. -* -* @lib SatEngine -* @since Series 60 3.0 -*/ -class MSatEventMonitorContainer - { - protected: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatEventMonitorContainer() {}; - - /** - * Destructor. - */ - virtual ~MSatEventMonitorContainer() {}; - - public: // New functions - - /** - * Updates monitors state. - * @param aEvents Events that should be monitored. - * @return KErrNone if all goes OK - */ - virtual TInt SetUpEventMonitors( TUint aEvents ) = 0; - - /** - * Cancels all monitors. - * @return KErrNone if all goes OK - */ - virtual TInt CancelAllMonitors() = 0; - - /** - * Solves language code. - * @param aLanguageId Resolved language ID - */ - virtual void LanguageSettingL( TInt& aLanguageId ) = 0; - - /** - * Gets the ISO639 language code. - * @param aId Language ID - * @param aText Language code can be read from this after function call. - */ - virtual void GetLanguageString( const TInt aId, TDes& aText ) = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatEventMonitorContainer( const MSatEventMonitorContainer& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatEventMonitorContainer& operator=( const MSatEventMonitorContainer& ); - - }; - -#endif // MSATEVENTMONITORCONTAINER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatEventMonitorUtils.h --- a/satengine/SatServer/inc/MSatEventMonitorUtils.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Interface for event monitor utils -* -*/ - - - -#ifndef MSATEVENTMONITORUTILS_H -#define MSATEVENTMONITORUTILS_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATION -class MSatBIPEventNotifier; - -// CLASS DECLARATION - -/** -* Interface for event monitors. -* -* @lib EventMonitors.lib -* @since Series 60 3.0 -*/ -class MSatEventMonitorUtils - { - public: // New functions - - /** - * Sends notify to SIM about some event using EventDownload command. - * @param aSingleEvent Single event reported to SIM. - * @param aFirstArg First argument interpreted according to type of event - * @param aSecArg Second argument interpreted according to type of event - */ - virtual void EventDownload( - RSat::TEventList aSingleEvent, - TInt aFirstArg, - TInt aSecArg ) = 0; - - /** - * Gives a reference to BIP Event notifier interface. - * @return A reference to BIP Event notifier interface. - */ - virtual MSatBIPEventNotifier& BipNotifier() = 0; - - /** - * Tells to observer that SIM is removed. Observer should cancel all - * monitors. - */ - virtual void SimRemoved() = 0; - - /** - * From MSatEventMonitorUtils - * Writes time between language selection and reboot. - * @param aTime Time before reboot. - * @return KErrNone if Language Selection Time is set. - */ - virtual TInt WriteLanguageSelectionTime( TInt aTime ) = 0; - - protected: // New functions - - /** - * Destructor. - */ - virtual ~MSatEventMonitorUtils() {}; - - /** - * C++ default constructor. - */ - MSatEventMonitorUtils() {}; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatEventMonitorUtils( const MSatEventMonitorUtils& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatEventMonitorUtils& operator=( const MSatEventMonitorUtils& ); - - }; - -#endif // MSATEVENTMONITORUTILS_H - -// End of file diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatEventObserver.h --- a/satengine/SatServer/inc/MSatEventObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,68 +0,0 @@ -/* -* Copyright (c) 2002-2004 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: Observer of events. -* -*/ - - - -#ifndef MSATEVENTOBSERVER_H -#define MSATEVENTOBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Interface for observing events. -* -* @lib SatEngine -* @since Series 60 3.0 -*/ -class MSatEventObserver - { - protected: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatEventObserver() {}; - - /** - * Destructor. - */ - virtual ~MSatEventObserver() {}; - - public: // New functions - - /** - * Notification of event. - * @param aEvent Identifies the event. - */ - virtual void Event( TInt aEvent ) = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatEventObserver( const MSatEventObserver& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatEventObserver& operator=( const MSatEventObserver& ); - - }; - -#endif // MSATEVENTOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatRefreshSubSession.h --- a/satengine/SatServer/inc/MSatRefreshSubSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Interface for refresh subsession. -* -*/ - - - -#ifndef MSATREFRESHSUBSESSION_H -#define MSATREFRESHSUBSESSION_H - -// INCLUDES -#include -#include - -// FORWARD DECLARATIONS -class MSatCommand; -class MSatReplyObserver; - -// CLASS DECLARATION - -/** -* Interface for refresh subsession. -* -* @lib SatEngine.lib -* @since Series S60 3.0 -*/ -class MSatRefreshSubSession - { - protected: - - /** - * C++ default constructor. - */ - MSatRefreshSubSession() {}; - - /** - * Destructor. - */ - virtual ~MSatRefreshSubSession() {}; - - public: // New functions - - /** - * Query for allowing the refresh - * @param aRefresh Refresh data. - */ - virtual void QueryClient( const RSat::TRefreshV2& aRefresh ) = 0; - - /** - * Refresh event. - * @param aRefresh Refresh data. - */ - virtual void NotifyClient( const RSat::TRefreshV2& aRefresh ) = 0; - - /** - * Refresh cancel event. - */ - virtual void NotifyClientCancel() = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatRefreshSubSession( const MSatRefreshSubSession& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatRefreshSubSession& operator=( const MSatRefreshSubSession& ); - - }; - -#endif // MSATREFRESHSUBSESSION_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatSSimSubscriberId.h --- a/satengine/SatServer/inc/MSatSSimSubscriberId.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: This is the handler for the SIM Application Toolkit -* to dedect the SIM card subscriber id. -* -*/ - - - -#ifndef MSATSSIMSUBSCRIBERID_H -#define MSATSSIMSUBSCRIBERID_H - -// INCLUDES -#include -#include - -// CLASS DECLARATION - -/** -* SIM Subscriber id handler interface. -* -* @lib SATEngine.lib -* @since Series 60 3.0 -*/ -class MSatSSimSubscriberId - { - public: // Constructors and destructor - - /* - * Destructor. - */ - virtual ~MSatSSimSubscriberId() {}; - - public: // New functions - - /** - * Starts listening for the SIM card subscriber id. - */ - virtual void Start() = 0; - - protected: - - /** - * Constructor. - */ - MSatSSimSubscriberId() {}; - - // Prohibit copy constructor if not deriving from CBase. - MSatSSimSubscriberId( const MSatSSimSubscriberId& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatSSimSubscriberId& operator=( const MSatSSimSubscriberId& ); - - }; - -#endif // MSATSSIMSUBSCRIBERID_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatSUiClientHandler.h --- a/satengine/SatServer/inc/MSatSUiClientHandler.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,97 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: MSatSUiClientHandler provides functions for some UI activity -* like LaunchUi -* -*/ - - - -#ifndef MSATSUICLIENTHANDLER_H -#define MSATSUICLIENTHANDLER_H - -// INCLUDES -#include - -// FORWARD DECLARATION -class MSatUiSession; -class MSatShellController; - -// CLASS DECLARATION - -/** -* Interface provides some activity conserning UI client -* -* @lib SatEngine.lib -* @since Series 60 3.0 -*/ -class MSatSUiClientHandler - { - - protected: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatSUiClientHandler() {}; - - /** - * Destructor. - */ - virtual ~MSatSUiClientHandler() {}; - - public: // New functions - - /** - * Gives pointer to ui session interface. If pointer is NULL, then - * ui session is not available. - * @return Pointer to ui session interface. - */ - virtual MSatUiSession* UiSession() = 0; - - /** - * Launches the SAT UI Client. - */ - virtual void LaunchSatUiL() = 0; - - /** - * Tells if user has started the ui client. - * @return ETrue if user has launched the ui client. - */ - virtual TBool UiLaunchedByUser() = 0; - - /** - * Gives pointer to MSatShellController. - * @return Pointer to sat shell controller. - */ - virtual MSatShellController& ShellController() = 0; - - /** - * Tells is UI closing - * @return Boolean value indicating is UI closing - */ - virtual TBool IsUiClosing() const = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatSUiClientHandler( const MSatSUiClientHandler& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatSUiClientHandler& operator=( const MSatSUiClientHandler& ); - }; - -#endif // MSATSUICLIENTHANDLER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatSendDataObserver.h --- a/satengine/SatServer/inc/MSatSendDataObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,73 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Interface for DataAvailable event observer. -* -*/ - - - -#ifndef MSATSENDDATAOBSERVER_H -#define MSATSENDDATAOBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Interface for DataAvailable event observer. When DataAvailable event occurs, the -* implementors of this class will be notified. However, this class must be send to -* MSatBIPEventNotifier to get the notification. -* -* @lib SatEngine -* @since Series 60 3.0 -*/ -class MSatSendDataObserver - { - public: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatSendDataObserver() {}; - - /** - * Destructor. - */ - virtual ~MSatSendDataObserver() {}; - - public: // New functions - - /** - * Notification of data has been sent - * @param aError Indicates the status of data sent. - * @param aLength Number of bytes sent - */ - virtual void DataSentNotification( - const TInt aError, - const TInt aLength ) = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatSendDataObserver( const MSatSendDataObserver& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatSendDataObserver& operator=( const MSatSendDataObserver& ); - - }; - -#endif // MSATSENDDATAOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatSystemState.h --- a/satengine/SatServer/inc/MSatSystemState.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,158 +0,0 @@ -/* -* Copyright (c) 2002-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: Accessor for system states. -* -*/ - - - -#ifndef MSATSYSTEMSTATE_H -#define MSATSYSTEMSTATE_H - -// INCLUDES -#include -#include -#include -#include - -// CLASS DECLARATION - -/** -* Accessors for system state. -* -* @lib SatSystemState.lib -* @since Series 60 3.0 -*/ -class MSatSystemState - { - public: // Constructors and destructor - - /* - * Destructor. - */ - virtual ~MSatSystemState() {}; - - public: // New functions - - /** - * Getter for NetworkRegistrationStatus - * @return Network registration status. - */ - virtual RMobilePhone::TMobilePhoneRegistrationStatus - GetNetworkRegistrationStatus() = 0; - - /** - * Checks is call active. - * @return ETrue if call is currently active. - */ - virtual TBool IsCallActive() = 0; - - /** - * Checks is call incoming. - * @return ETrue if call is incoming. - */ - virtual TBool IsCallIncoming() = 0; - - /** - * Gets the Service Center Address number. - * @return SCA number. - */ - virtual const TDesC& SCANumber() = 0; - - /** - * Checks whether the phone is in silent mode. - * @return Silent mode activated state. - */ - virtual TBool IsSilentMode() = 0; - - /** - * Checks whether the phone is in idle state. - * @return ETrue if phone is in idle mode. - */ - virtual TBool IsPhoneInIdleStateL() = 0; - - /** - * Checks whether the screen saver is actived from idle. - * @return ETrue if screen saver is actived from idle. - */ - virtual TBool IsScreenSaverActivedFromIdle() = 0; - - /** - * Sets time between language selection and reboot. - * @param aTime Time before reboot. - * @return KErrNone if time is set successfully. - */ - virtual TInt WriteLanguageSelectionTime( - TInt aTime ) = 0; - - /** - * Puts proactive Idle Mode Text command data to shared data - * @param aString Idle mode text string - * @param aIconId Idle mode text icon ID - * @param aIconQualifier Idle mode text icon qualifier - * @return KErrNone if setting data is OK - */ - virtual TInt WriteSetIdleModeText( - const TDesC& aString, - TInt aIconId, - RSat::TIconQualifier aIconQualifier ) = 0; - - /** - * Checks is backup / restore process ongoing. - * @return TBool indicating is process ongoing or not. - */ - virtual TBool IsBackupProcessOngoing() = 0; - - /** - * Checks is ConfirmSatOperations on. - * @return TBool indicating is confirmation on or off. - */ - virtual TBool IsConfirmSatOperationsOn() = 0; - - /** - * Gets the display language from CentRep and returns it. - * @return ID indicating the selected language. - */ - virtual TInt DisplayTextLanguage() = 0; - - /** - * Checks is Bluetooth SIM Access Profile active - * @return ETrue if BT SAP is active - */ - virtual TBool IsBtSapActive() = 0; - - /** - * Checks are phone warnings and game tones on. - * @return TBool indicating wether phone are warnings and game tone on. - */ - virtual TBool IsWarningAndGameTonesOn() = 0; - - protected: - - /** - * Constructor. - */ - MSatSystemState() {}; - - // Prohibit copy constructor if not deriving from CBase. - MSatSystemState( const MSatSystemState& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatSystemState& operator=( const MSatSystemState& ); - - }; - -#endif // MSATSYSTEMSTATE_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatSystemStateChangeNotifier.h --- a/satengine/SatServer/inc/MSatSystemStateChangeNotifier.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,86 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Interface for Publish and suscripe change notifier. -* -*/ - - - -#ifndef MSATSYSTEMSTATECHANGENOTIFIER_H -#define MSATSYSTEMSTATECHANGENOTIFIER_H - -// INCLUDES -#include - -// CONSTANTS -// Indicates that the observer doesn't want to specify any value, when it should -// be notified. In this case, the changed value is sent to observer -const TInt KNotifyValueNotSet = -1; - -// CLASS DECLARATION - -/** -* Change notifier for Publish & Subscribe. -* -* @lib SatSystemState -* @since Series 60 3.0 -*/ -class MSatSystemStateChangeNotifier - { - public: // Constructors and destructor - - /** - * Destructor. - */ - virtual ~MSatSystemStateChangeNotifier() {}; - - public: // New functions - - /** - * Request a notification of a change in system state. - * The request is standing as long as it is canceled. - */ - virtual void NotifyChangeL() = 0; - - /** - * Cancels the notification request. - */ - virtual void CancelNotify() = 0; - - /** - * Gets the current value. - * @return Current value for earlier request. - */ - virtual TInt GetValueInt() { return KNotifyValueNotSet; }; - - protected: // New functions - - /** - * C++ default constructor. - */ - MSatSystemStateChangeNotifier() {}; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatSystemStateChangeNotifier( const MSatSystemStateChangeNotifier& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatSystemStateChangeNotifier& operator=( const MSatSystemStateChangeNotifier& ); - - }; - -#endif // MSATSYSTEMSTATECHANGENOTIFIER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatSystemStateObserver.h --- a/satengine/SatServer/inc/MSatSystemStateObserver.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,91 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Observer for system state changes. -* -*/ - - - -#ifndef MSATSYSTEMSTATEOBSERVER_H -#define MSATSYSTEMSTATEOBSERVER_H - -// INCLUDES -#include - -// CLASS DECLARATION - -/** -* Observer for system state changes. -* -* @lib SatSystemState.lib -* @since Series 60 3.0 -*/ -class MSatSystemStateObserver - { - public: // New functions - - /** - * Notifies that system state changed. - */ - virtual void StateChanged() {}; - - /** - * Notifies that system state changed. - * @param aValue The new value that has changed. - */ - virtual void StateChanged( const TInt /*aValue*/ ) {}; - - /** - * Notifies that system state changed. - * @param aValue The new value that has changed. - */ - virtual void StateChanged( const TReal& /*aValue*/ ) {}; - - /** - * Notifies that system state changed. - * @param aValue The new value that has changed. - */ - virtual void StateChanged( const TDesC8& /*aValue*/ ) {}; - - /** - * Notifies that system state changed. - * @param aValue The new value that has changed. - */ - virtual void StateChanged( const TDesC16& /*aValue*/ ) {}; - - protected: // New functions - - /** - * Destructor. - */ - virtual ~MSatSystemStateObserver() {}; - - /** - * C++ default constructor. - */ - MSatSystemStateObserver() {}; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatSystemStateObserver( const MSatSystemStateObserver& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatSystemStateObserver& operator=( const MSatSystemStateObserver& ); - - }; - -#endif // MSATSYSTEMSTATEOBSERVER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatUiSession.h --- a/satengine/SatServer/inc/MSatUiSession.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,96 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Interface for Ui sessions -* -*/ - - - -#ifndef MSATUISESSION_H -#define MSATUISESSION_H - -// INCLUDES -#include -#include -#include "SatSOpcodes.h" - -// FORWARD DECLARATION -class MSatCommand; - -// CLASS DECLARATION - -/** -* Ui sub session interface for commands. -* -* @lib SatEngine.lib -* @since Series 60 3.0 -*/ -class MSatUiSession - { - protected: // Constructors and destructor - - /** - * C++ default constructor. - */ - MSatUiSession() {}; - - /** - * Destructor. - */ - virtual ~MSatUiSession() {}; - - public: // New functions - - /** - * Closes the ui session. - */ - virtual void CloseUiSession() = 0; - - /** - * Clears the screen. - */ - virtual void ClearScreen() = 0; - - /** - * Ui Event - */ - virtual void UiEventNotification( - TInt aEventId, - TInt aEventStatus, - TInt aEventError ) = 0; - - /** - * Notification that command data is available. - * @param aCmdData Data to be sent to client. - * @param aCmdRsp Response from Client is written to this. - * @param aRequest Request, where the data is sent. - */ - virtual void SendCommand( - TDesC8* aCmdData, - TDes8* aCmdRsp, - TSatServerRequest aRequest ) = 0; - - private: - - // Prohibit copy constructor if not deriving from CBase. - MSatUiSession( const MSatUiSession& ); - - // Prohibit assigment operator if not deriving from CBase. - MSatUiSession& operator=( const MSatUiSession& ); - - }; - -#endif // MSATUISESSION_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/MSatUtils.h --- a/satengine/SatServer/inc/MSatUtils.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,554 +0,0 @@ -/* -* Copyright (c) 2002-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: Utility methods for SAT command handling. -* -*/ - - - -#ifndef M_MSATUTILS_H -#define M_MSATUTILS_H - - -#include -#include -#include "MSatRefreshSubSession.h" -#include "SatSOpcodes.h" -#include "msatasynctosync.h" - -class MUiSessionLaunchObserver; -class MSatApi; -class MSatUiSession; -class MSatEventObserver; -class MSatSystemState; -class MSatShellController; -class MSatSUiClientHandler; -class MSatCommand; -class CSatClientServiceReq; -class MSatEventMonitorContainer; -class MSatEventMonitorUtils; -class MSatSSimSubscriberId; -class MSatBIPUtils; -class MSatBIPEventNotifier; -class RMobilePhone; -class RMmCustomAPI; -class MSatMediatorEventProvider; -class MSatMultiModeApi; - -/** - * Utility methods for SAT command handling. - * - * @lib SatServer - * @since S60 v3.0 - */ -class MSatUtils - { - -public: - - /** For notifying SAT commands/events */ - enum TSatEvent - { - /** Originator: CSetUpMenuHandler */ - /** Listeners: None */ - ESetUpMenuExecuting, - - /** Originator: CSimSessionEndHandler */ - /** Listeners: CSetUpMenuHandler */ - ESimSessionEndExecuting, - - /** Originator: CSelectItemHandler */ - /** Listeners: None */ - ESelectItemExecuting, - - /** Originator: CSetUpCallHandler */ - /** Listeners: None */ - ESetUpCallExecuting, - - /** Originator: CDisplayTextHandler */ - /** Listeners: None */ - EDisplayTextExecuting, - - /** Originator: CLaunchBrowserHandler */ - /** Listeners: None */ - ELaunchBrowserExecuting, - - /** Originator: CGetInputHandler */ - /** Listeners: None */ - EGetInputExecuting, - - /** Originator: CGetInkeyHandler */ - /** Listeners: None */ - EGetInkeyExecuting, - - /** Originator: CSetUpEventListHandler */ - /** Listeners: None */ - ESetUpEventListExecuting, - - /** Originator: CSetUpIdleModeTextHandler */ - /** Listeners: None */ - ESetUpIdleModeTextExecuting, - - /** Originator: CSendDtmfHandler */ - /** Listeners: None */ - ESendDtmfExecuting, - - /** Originator: CSendSsHandler */ - /** Listeners: None */ - ESendSsExecuting, - - /** Originator: CSendUssdHandler */ - /** Listeners: None */ - ESendUssdExecuting, - - /** Originator: CPlayToneHandler */ - /** Listeners: None */ - EPlayToneExecuting, - - /** Originator: CProvideLocalInfoHandler */ - /** Listeners: None */ - ELocalInfoExecuting, - - /** Originator: CRefreshHandler */ - /** Listeners: CClearScreenHandler */ - ERefreshExecuting, - - /** Originator: CCallControlHandler */ - /** Listeners: CSetUpCallHandler */ - /** CSendSsHandler */ - /** CSendUssdHandler */ - ECallControlExecuting, - - /** Originator: CSendSmHandler */ - /** Listeners: None */ - ESendSmExecuting, - - /** Originator: CMoSmControlHandler */ - /** Listener: CSendSmHandler */ - EMoSmControlExecuting, - - /** Originator: CMoSmControlHandler */ - /** Listener: CSendSmHandler */ - EMoSmControlDone, - - /** Originator: CCallControlHandler */ - /** Listeners: CSetUpCallHandler */ - /** CSendSsHandler */ - /** CSendUssdHandler */ - ECallControlDone, - - /** Originator: CSatSSession */ - /** Listeners: CSatCommandContainer */ - ESatUiClosed, - - /** Originator: CSatSSession */ - /** Listeners: CSetUpMenuHandler */ - ESatUiLaunched, - - /** originators: CSendSmHandler */ - /** Listeners: CSatSUiSubSession */ - ESmsSent, - - /** Originators: CSetUpCallHandler */ - /** CSelectItemHandler */ - /** Listeners CSimSessionEndHandler */ - ESessionTerminatedByUser, - - /** Originators: CSatCommandHandler */ - /** Listeners: CSimSessionEndHandler */ - EDestroySimSessionEndTimer, - - /** Originators: CSatCommandHandler */ - /** Listeners: CSimSessionEndHandler */ - EDelaySimSessionEnd, - - /** Originators: CDisplayTextHandler */ - /** Listeners: CSetUpMenuHandler */ - ESetUpMenuNeeded, - - /** Originators: CCallControlHandler */ - /** CMoSmControlHandler*/ - /** Listeners: CSimSessionEndHandler */ - ESimSessionEndCallBack, - - /** Originators: CSatIconSubSession */ - /** Listeners: CSetUpIdleModeTextHandler */ - EIdleModeResponseSuccess, - - /** Originators: CSatIconSubSession */ - /** Listeners: CSetUpIdleModeTextHandler */ - EIdleModeResponseSuccessNoIcon, - - /** Originators: CSatIconSubSession */ - /** Listeners: CSetUpIdleModeTextHandler */ - EIdleModeResponseBeyondCapabilities, - - /** Originators: CSatIconSubSession */ - /** Listeners: CSetUpIdleModeTextHandler */ - EIdleModeResponseUnableToProcess, - - /** Originator: CSatSRefreshSubSession. */ - /** Listeners: CRefreshHandler */ - ERefreshAllowed, - - /** Originator: CSatSRefreshSubSession. */ - /** Listeners: CRefreshHandler */ - ERefreshNotAllowed, - - /** Originator: CSatSRefreshSubSession. */ - /** Listeners: CRefreshHandler */ - ERefreshEFRead, - - /** Originator: CSatSRefreshSubSession. */ - /** Listeners: CRefreshHandler */ - ERefreshAdditionalEFRead, - - /** Originators: CSatSSimSubscriberId */ - /** Listeners: CSatCommandContainer */ - ECmccSimDetected, - - /** Originators: CSatCommandContainer */ - /** Listeners: CSetUpMenuHandler */ - EApplNameUpdated, - - /** Originators: COpenChannelHandler */ - /** Listeners: CReceiveDataHandler */ - /** CSendDataHandler */ - EOpenChannelExecuting, - - /** Originators: CCloseChannelHandler */ - /** Listeners: None */ - ECloseChannelExecuting, - - /** Originators: CGetChannelStatusHandler */ - /** Listeners: None */ - EGetChannelStatusExecuting, - - /** Originators: CSendDataHandler */ - /** Listeners: None */ - ESendDataExecuting, - - /** Originators: CReceiveDataHandler */ - /** Listeners: None */ - EReceiveDataExecuting, - - /** Originators: CDisplayTextHandler */ - /** Listeners: CSimSessionEndHandler */ - ESustainedTextInDisplay, - - /** Originators: CDisplayTextHandler */ - /** Listeners: CSimSessionEndHandler */ - ESustainedTextRemoved, - - /** Originators: COpenChannelHandler */ - /** Listeners: CSimSessionEndHandler */ - EDataChannelsActive, - - /** Originators: CCloseChannelHandler */ - /** Listeners: CSimSessionEndHandler */ - EDataChannelsInactive, - - /** Originators: CSendDataHandler */ - /** CReceiveDataHandler */ - /** Listeners: CSatSEventMoniotorContainer */ - EBipCommandExecuting, - EBipCommandDoneExecuting, - - /** Originators: CSatSUiSubSession */ - /** Listeners: Command handlers */ - ECommandCancelled, - ECancelledUsingEndKey, - - /** Originators: CRefreshHandler */ - /** Listeners: CSetUpIdleModeTextHandler */ - ESimInitDone, - - /** Originators: CRefreshRequiredHandler */ - /** Listeners: CSetUpMenuHandler */ - /** CSetUpIdleModeTextHandler */ - /** CSetUpEventListHandler */ - ESimResetCalled, - - /** Originators: CRefreshHandler */ - /** Listeners: CSetUpIdleModeTextHandler */ - /** CSetUpEventListHandler */ - ESimResetCancelled, - - /** Originator: CSatUiSubSession */ - /** Listeners: CLaunchBrowserHandler */ - ESetUpMenuRequested, - - /** Originator: CSatClientServiceReq */ - /** Listeners: CSatSUiClientHandler */ - EBringSatUiToForeGround, - - /** Originator: CSatSAPChangeObserver */ - /** Listeners: CSetUpMenuHandler */ - EAddSatUiCalled, - ERemoveSatUiCalled - - }; - - - /** - * Gives USAT API. - * - * @since S60 v3.0 - * @return Reference to USAT API wrapper. - */ - virtual MSatApi& USatAPI() = 0; - - /** - * Gives reference to system state interface - * - * @since S60 v3.0 - * @return Reference to system state interface. - */ - virtual MSatSystemState& SystemState() = 0; - - /** - * Gives reference to MSatSUiClientHandler - * - * @since S60 v3.0 - * @return Pointer to sat ui handler. - */ - virtual MSatSUiClientHandler& SatUiHandler() = 0; - - /** - * Registers observer for event. Same observer will not be added - * more than once for one event. - * - * @since S60 v3.0 - * @param aObserver Pointer of observer instance. Panic will occur if - * aObserver is NULL. - * @param aEvent Event, which will cause the notification of observer. - */ - virtual void RegisterL( - MSatEventObserver* aObserver, - TSatEvent aEvent ) = 0; - - /** - * Notifies event to all registered observers. - * - * @since S60 v3.0 - * @param aEvent Event to be notified. - */ - virtual void NotifyEvent( TSatEvent aEvent ) = 0; - - /** - * From MSatEventObserver.Sends UI Event Notification, - * if UI session is found - * - * @since S60 v3.1 - * @param aEvenId, identifies the event - * @param aEventStatus, status of the event - * @param aEventError, possible error value - */ - virtual void NotifyUiEvent( - TInt aEventId, - TInt aEventStatus, - TInt aEventError ) = 0; - - /** - * Unregisters the event notification. - * - * @since S60 v3.0 - * @param aObserver Observer of the event - * @param aEvent Event to be unregistered. - */ - virtual void UnregisterEvent( - MSatEventObserver* aObserver, - TSatEvent aEvent ) = 0; - - /** - * Removes observer from event observers - * - * @since S60 v3.0 - * @param aObserver Observer to removed - */ - virtual void UnregisterEventObserver( - MSatEventObserver* aObserver ) = 0; - - /** - * Gives number of executing commands currently. - * In practise there can be only one executing proactive - * command, but envelopes can be executing same time. - * - * @since S60 v3.0 - * @return Number of executing command handlers. - */ - virtual TInt NumberOfExecutingCommandHandlers() = 0; - - /** - * Gets the sim application name. - * - * @since S60 v3.0 - * @return Sat application name. - */ - virtual const TDesC& SatAppName() const = 0; - - /** - * Gets the name for the APN - * - * @since S60 v3.0 - * @return Sat application name. - */ - virtual const TDesC& BipApnName() const = 0; - - /** - * Restores default SIM Application name. - * - * @since S60 v3.1 - */ - virtual void RestoreSatAppNameL() = 0; - - /** - * Sets the sim application name. - * - * @since S60 v3.0 - * @param aName New name of Sat application - */ - virtual void SetSatAppNameL( const TDesC& aName ) = 0; - - /** - * Gets all refresh subsession. - * @return Pointer array of Refresh Sub sessions. - */ - virtual const RPointerArray& - RefreshSubSessions() = 0; - - /** - * Registers new service request handler - * - * @since S60 v3.0 - * @param aRequest A Request this service request listens - * @param aResponse A Response for this service request - * @param aCommand A Command handler for request - */ - virtual void RegisterServiceRequestL( - TSatServerRequest aRequest, - TSatServerRequest aResponse, - MSatCommand* aCommand ) = 0; - - /** - * Gets all registered service requests - * - * @since S60 v3.0 - * @return Pointer array of registered Client Service requests - */ - virtual CArrayPtrFlat* - ServiceRequests() = 0; - - /** - * Gives pointer to event monitor container - * - * @since S60 v3.0 - * @return Pointer to MSatEventMonitorContainer API - */ - virtual MSatEventMonitorContainer* EventMonitors() = 0; - - /** - * Gives reference to subscriber id. - * - * @since S60 v3.0 - * @return SIM subscriber id API reference - */ - virtual MSatSSimSubscriberId& SimSubscriberId() = 0; - - /** - * Gives reference to BIP Utils interface. - * - * @since S60 v3.0 - * @return Reference to BIP Utils interface. - */ - virtual MSatBIPUtils& BipUtils() = 0; - - /** - * Gives reference to BIP Event notifier interface. - * - * @since S60 v3.0 - * @return Reference to BIP Event notifier interface. - */ - virtual MSatBIPEventNotifier& BipEventNotifier() = 0; - - /** - * Gives reference to active RMmCustomApi session - * - * @since S60 v3.1 - * @return Reference to active RMmCustomApi server session - */ - virtual RMmCustomAPI* CustomApi() = 0; - - - /** - * Gives reference to MSatMultiModeApi - * - * @since S60 v5.0 - * @return Reference to MSatMultiModeApi - */ - virtual MSatMultiModeApi& MultiModeApi() = 0; - - /** - * Sends SAT Mediator event to Mediator Event Provider interface. - * - * @since S60 v3.1 - * @param aData packaged data to mediator event consumer - * @return KErrNone or error code. - */ - virtual TInt RaiseSatEvent( const TDesC8& aData ) = 0; - - /** - * Checks Cover UI support for SAT Mediator Event. - * - * @since S60 v3.1 - * @return ETrue if supported. - */ - virtual TBool CoverUiSupported() = 0; - - /** - * Gives pointer to MSatAsyncToSync interface. - * - * @since S60 v5.0.1 - * @return a MSatAsyncToSync Pointer to CreateAsyncToSyncHelper object. - */ - virtual MSatAsyncToSync* CreateAsyncToSyncHelper() = 0; - -protected: - - MSatUtils() {}; - - virtual ~MSatUtils() {}; - -private: - - /** - * Prohibit copy constructor if not deriving from CBase. - * - * @since S60 v3.0 - * @param const reference to MSatUtils. - */ - MSatUtils( const MSatUtils& ); - - /** - * Prohibit assigment operator if not deriving from CBase. - * - * @since S60 v3.0 - * @param const reference to MSatUtils. - */ - MSatUtils& operator=( const MSatUtils& ); - - }; - -#endif // M_MSATUTILS_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/SATPrivateCRKeys.h --- a/satengine/SatServer/inc/SATPrivateCRKeys.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* -* Copyright (c) 2005 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: SATEngine Subsystem CenRep uid and keys declaration. -* -*/ - - -#ifndef SATPRIVATECRKEYS_H -#define SATPRIVATECRKEYS_H - -#include - -// CONSTANTS - -// SAT Icon Data Support API -// Uid : -const TUid KCRUidSatServer = { 0x102078E1 }; - -// Defines the limit for KSatMaxIconDataSize -// Shared Data Value was KMaxIconDataSize -/** -* Limit for icon size. Icon support is disabled if value is 0. -* Possible values are 0 to 9999999999999999. -* -* Default value: N/A -*/ -const TUint32 KSatMaxIconDataSize( 0x00000004 ); - -// Defines if Cover UI is supported -/** -* Support is disabled if value is 0 -* -* Default value: N/A -*/ -const TUint32 KSatSecondaryDisplaySupport( 0x00000008 ); - -// Defines if Launch Browser GCF Support is available -/** -* Support is disabled if value is 0 -* -* Default value: N/A -*/ -const TUint32 KSatLaunchBrowserGCF( 0x00000016 ); - -// Defines whether Home Zone Icon is visible or not -/** -* Support is disabled if value is 0 -* -* Default value: N/A -*/ -const TUint32 KSatHomeZoneIconVisible( 0x00000032 ); -#endif // SATPRIVATECRKEYS_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/SatLog.h --- a/satengine/SatServer/inc/SatLog.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/* -* Copyright (c) 2005-2006 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: Offers logging facility through flogger -* -*/ - - -#ifndef SATLOG_H -#define SATLOG_H - -// LOGGING LEVELS -const TInt SIMPLE( 1 ); -const TInt NORMAL( 2 ); -const TInt DETAILED( 3 ); - -#include -#include // For RDebug - -#ifdef ENABLE_SAT_LOGGING - - // - // DEFINE THE LOGGING LEVEL HERE: SIMPLE, NORMAL, DETAILED - // - #define LOGGING_LEVEL NORMAL - - // CONSTANTS - _LIT( KLogDir, "sat" ); - _LIT( KLogFile, "sat.txt" ); - - // This warning is disabled: conditinal expression is constant. - - // - // USE THIS MACRO FOR LOGGING. THE LEVEL OF LOGGING CAN BE - // SIMPLE, NORMAL, DETAILED - // - #ifdef LOG - #undef LOG - #endif - - #define LOG( LEVEL, TEXT ) \ - { \ - if ( LEVEL <= LOGGING_LEVEL ) \ - { \ - _LIT( KText, TEXT ); \ - RFileLogger::Write( \ - KLogDir, \ - KLogFile, \ - EFileLoggingModeAppend, \ - KText ); \ - RDebug::Print( KText ); \ - } \ - } - - #ifdef LOG2 - #undef LOG2 - #endif - - #define LOG2( LEVEL, TEXT, VARIABLE ) \ - { \ - if ( LEVEL <= LOGGING_LEVEL ) \ - { \ - _LIT( KText, TEXT ); \ - RFileLogger::WriteFormat( \ - KLogDir, \ - KLogFile, \ - EFileLoggingModeAppend, \ - TRefByValue( KText() ), VARIABLE ); \ - RDebug::Print( KText, VARIABLE ); \ - } \ - } - - #ifdef LOG3 - #undef LOG3 - #endif - - #define LOG3( LEVEL, TEXT, VARIABLE1, VARIABLE2 ) \ - { \ - if ( LEVEL <= LOGGING_LEVEL ) \ - { \ - _LIT( KText, TEXT ); \ - RFileLogger::WriteFormat( \ - KLogDir, \ - KLogFile, \ - EFileLoggingModeAppend, \ - TRefByValue( KText() ), VARIABLE1, VARIABLE2 ); \ - RDebug::Print( KText, VARIABLE1, VARIABLE2 ); \ - } \ - } - -#else // ENABLE_SAT_LOGGING - - #define LOG( LEVEL, TEXT ) - - #define LOG2( LEVEL, TEXT, VARIABLE1 ) - - #define LOG3( LEVEL, TEXT, VARIABLE1, VARIABLE2 ) - -#endif // ENABLE_SAT_LOGGING - -#endif // SATLOG_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/SatMacroes.h --- a/satengine/SatServer/inc/SatMacroes.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,37 +0,0 @@ -/* -* Copyright (c) 2005 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: Definition of test and logging macroes. -* -*/ - - -#ifndef SATMACROES_H -#define SATMACROES_H - -// Use this macro to enable dummy TSY. -// Must be disabled on released version. -// MACRO SAT_USE_DUMMY_TSY -// #define SAT_USE_DUMMY_TSY - -// This used only when testing Launch Browser without real BrowserApp. -// Must be disabled on released version. -// MACRO MODULE_TESTING_LB -// #define MODULE_TESTING_LB - -// Use this macro to enable logging. -// Must be disabled on released version. -// MACRO ENABLE_SAT_LOGGING -// #define ENABLE_SAT_LOGGING - -#endif // SATMACROES_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/SatSOpcodes.h --- a/satengine/SatServer/inc/SatSOpcodes.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,284 +0,0 @@ -/* -* Copyright (c) 2002-2007 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: This file contains the data structure and message code -* definitions needed by both the server and the client -* interfaces at compile time. -* -*/ - - -#ifndef SATSOPCODES_H -#define SATSOPCODES_H - -// INCLUDES - -#include -#include // Contains new language definitions for Series 60. - -// CONSTANTS -// Contains the full path name of the executable to be loaded. -_LIT( KSatServerNameAndPath, "z:\\sys\\bin\\SatServer.exe" ); - -// A version must be specified when creating a session with the server. -const TUint KSatServerMajorVersionNumber = 0; -const TUint KSatServerMinorVersionNumber = 1; -const TUint KSatServerBuildVersionNumber = 1; - -// Number of message slots -const TInt KSatMessageSlots = 42; - -// Max number of message arguments -const TInt KSatMaxMessageArguments = 4; - -// DATA TYPES - -// Operation codes used in message passing between client and server -enum TSatServerRequest - { - ESatSNone, // Illegal service request. - // Server test commands - ESatSDisplayText, - ESatSNotifyTest, - ESatSNotifyTestCancel, - ESatSShutdown, - // Proactive commands (asynchronous) - ESatSProactiveDisplayText, - ESatSProactiveGetInkey, - ESatSProactiveGetInput, - ESatSProactiveSetUpMenu, - ESatSProactiveSelectItem, - ESatSProactivePlayTone, - ESatSProactiveRefresh, - ESatSProactiveQuery, // for Send SM and Set Up Call - ESatSProactiveEvent, // for server event notification - ESatSProactiveNotification, - - // Envelope commands (synchronous) - ESatSActiveMenuSelection, - - // Command responses (synchronous) - ESatSProactiveDisplayTextResponse, - ESatSProactiveGetInkeyResponse, - ESatSProactiveGetInputResponse, - ESatSProactiveSetUpMenuResponse, - ESatSProactiveSelectItemResponse, - ESatSProactivePlayToneResponse, - ESatSProactiveQueryResponse, - ESatSProactiveEventResponse, - ESatSProactiveNotificationResponse, - - ESatSProactiveRefreshResponse, - - // Session indicators (for internal use) - ESatSOpenUiSubSession, - ESatSGetSIMAppStatus, - ESatSCloseUiSubSession, - - // Refresh handling - ESatSOpenRefreshSubSession, - ESatSCloseRefreshSubSession, - ESatSRefreshAllowed, - ESatSNotifyAllowRefresh, - ESatSNotityAllowRefreshCancel, - ESatSNotifyRefresh, - ESatSCancelNotifyRefresh, - ESatSRefreshEFRead, - - // Icon handling - ESatSOpenIconSubSession, - ESatSCloseIconSubSession, - ESatSGetIconInfo, - ESatSGetIconInstance, - ESatSIconInstanceGot, - - // SetUpIdleMode response - ESatSIdleModeResponse, - - ESatSSessionTerminated - }; - -// String array to convert Symbian TLanguage enums to -// ISO 639-1 language codes. -// -// See "http://lcweb.loc.gov/standards/iso639-2/englangn.html" -typedef const TText* TLangString; -struct SLangString - { - TInt iId; - TLangString iString; - }; - -const SLangString KLangStrings[] = - { - { ELangEnglish, _S( "en" ) }, - { ELangFrench, _S( "fr" ) }, - { ELangGerman, _S( "de" ) }, - { ELangSpanish, _S( "es" ) }, - { ELangItalian, _S( "it" ) }, - { ELangSwedish, _S( "sv" ) }, - { ELangDanish, _S( "da" ) }, - { ELangNorwegian, _S( "no" ) }, - { ELangFinnish, _S( "fi" ) }, - - // Following three languages are not listed in ISO 639-1 specification. - // Decisions based on parent language. - { ELangAmerican, _S( "en" ) }, - { ELangSwissFrench, _S( "fr" ) }, - { ELangSwissGerman, _S( "de" ) }, - - { ELangPortuguese, _S( "pt" ) }, - { ELangTurkish, _S( "tr" ) }, - { ELangIcelandic, _S( "is" ) }, - { ELangRussian, _S( "ru" ) }, - { ELangHungarian, _S( "hu" ) }, - { ELangDutch, _S( "nl" ) }, - - // Following five languages are not listed in ISO 639-1 specification. - // Decisions based on parent language. - { ELangBelgianFlemish, _S( "nl" ) }, - { ELangAustralian, _S( "en" ) }, // ISO 639-2 "aus" - { ELangBelgianFrench, _S( "fr" ) }, - { ELangAustrian, _S( "de" ) }, - { ELangNewZealand, _S( "en" ) }, - - { ELangInternationalFrench, _S( "fr" ) }, - { ELangCzech, _S( "cs" ) }, - { ELangSlovak, _S( "sk" ) }, - { ELangPolish, _S( "pl" ) }, - { ELangSlovenian, _S( "sl" ) }, - - // Following three languages are not listed in ISO 639-1 specification. - // Decisions based on parent language. - { ELangTaiwanChinese, _S( "zh" ) }, - { ELangHongKongChinese, _S( "zh" ) }, - { ELangPrcChinese, _S( "zh" ) }, - - { ELangJapanese, _S( "ja" ) }, - { ELangThai, _S( "th" ) }, - { ELangAfrikaans, _S( "af" ) }, - { ELangAlbanian, _S( "sq" ) }, - { ELangAmharic, _S( "am" ) }, - - { ELangArabic, _S( "ar" ) }, - { ELangArmenian, _S( "hy" ) }, - { ELangTagalog, _S( "tl" ) }, - { ELangBelarussian, _S( "be" ) }, - { ELangBengali, _S( "bn" ) }, - { ELangBulgarian, _S( "bg" ) }, - { ELangBurmese, _S( "my" ) }, - { ELangCatalan, _S( "ca" ) }, - { ELangCroatian, _S( "hr" ) }, - - // Following language is not listed in ISO 639-1 specification. - // Decisions based on parent language. - { ELangCanadianEnglish, _S( "en" ) }, - - { ELangInternationalEnglish, _S( "en" ) }, - - // Following language is not listed in ISO 639-1 specification. - // Decisions based on parent language. - { ELangSouthAfricanEnglish, _S( "en" ) }, - - { ELangEstonian, _S( "et" ) }, - { ELangFarsi, _S( "fa" ) }, - - // Following language is not listed in ISO 639-1 specification. - // Decisions based on parent language. - { ELangCanadianFrench, _S( "fr" ) }, - - { ELangScotsGaelic, _S( "gd" ) }, - { ELangGeorgian, _S( "ka" ) }, - { ELangGreek, _S( "el" ) }, - - // Following language is not listed in ISO 639-1 specification. - // Decisions based on parent language. - { ELangCyprusGreek, _S( "el" ) }, - - { ELangGujarati, _S( "gu" ) }, - { ELangHebrew, _S( "he" ) }, - { ELangHindi, _S( "hi" ) }, - { ELangIndonesian, _S( "id" ) }, - { ELangIrish, _S( "ga" ) }, - - // Following language is not listed in ISO 639-1 specification. - // Decisions based on parent language. - { ELangSwissItalian, _S( "it" ) }, - - { ELangKannada, _S( "kn" ) }, - { ELangKazakh, _S( "kk" ) }, - { ELangKhmer, _S( "km" ) }, - { ELangKorean, _S( "ko" ) }, - { ELangLao, _S( "lo" ) }, - { ELangLatvian, _S( "lv" ) }, - { ELangLithuanian, _S( "lt" ) }, - { ELangMacedonian, _S( "mk" ) }, - { ELangMalay, _S( "ms" ) }, - { ELangMalayalam, _S( "ml" ) }, - { ELangMarathi, _S( "mr" ) }, - { ELangMoldavian, _S( "mo" ) }, - { ELangMongolian, _S( "mn" ) }, - { ELangNorwegianNynorsk, _S( "nn" ) }, - - // Following language is not listed in ISO 639-1 specification. - // Decisions based on parent language. - { ELangBrazilianPortuguese, _S( "pt" ) }, - - { ELangPunjabi, _S( "pa" ) }, - { ELangRomanian, _S( "ro" ) }, - { ELangSerbian, _S( "sr" ) }, - { ELangSinhalese, _S( "si" ) }, - { ELangSomali, _S( "so" ) }, - { ELangInternationalSpanish, _S( "es" ) }, - - // Following language is not listed in ISO 639-1 specification. - // Decisions based on parent language. - { ELangLatinAmericanSpanish, _S( "es" ) }, - - { ELangSwahili, _S( "sw" ) }, - - // Following language is not listed in ISO 639-1 specification. - // Decisions based on parent language. - { ELangFinlandSwedish, _S( "sv" ) }, - - { ELangReserved1, _S( "en" ) }, - { ELangTamil, _S( "ta" ) }, - { ELangTelugu, _S( "te" ) }, - { ELangTibetan, _S( "bo" ) }, - { ELangTigrinya, _S( "ti" ) }, - - // Following language is not listed in ISO 639-1 specification. - // Decisions based on parent language. - { ELangCyprusTurkish, _S( "tr" ) }, - - { ELangTurkmen, _S( "tk" ) }, - { ELangUkrainian, _S( "uk" ) }, - { ELangUrdu, _S( "ur" ) }, - { ELangReserved2, _S( "en" ) }, - { ELangVietnamese, _S( "vi" ) }, - { ELangWelsh, _S( "cy" ) }, - { ELangZulu, _S( "zu" ) }, - - // Series 60 added language codes. - { KLangTaiwanEnglish, _S( "en" ) }, - { KLangHongKongEnglish, _S( "en" ) }, - { KLangPrcEnglish, _S( "en" ) }, - { KLangJapaneseEnglish, _S( "en" ) }, - { KLangThaiEnglish, _S( "en" ) }, - }; - -#define KNUMLANGSTRINGS ( sizeof( KLangStrings ) / sizeof( SLangString ) ) - -#endif // SATSOPCODES_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/SatSTypes.h --- a/satengine/SatServer/inc/SatSTypes.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,141 +0,0 @@ -/* -* Copyright (c) 2003 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: -* This file contains the data structure definitions -* needed by both the server and the client interfaces at compile -* time. -* -* -*/ - - -#ifndef SATSTYPES_H -#define SATSTYPES_H - -// INCLUDES -#include -#include -#include - -// CONSTANTS - -// The length of the IPC data buffer. -const TInt KSatIpcBufferLength = 256; - -// The size of the name buffer of SAT application. -const TInt KSatAppNameSize = 255; - -// The size of the name buffer of SAT application. -const TInt KSatGetInputEntrySize = 256; - -// DATA TYPES - -// The query IPC data structure. -struct TSatDisplayTextV1 - { - TUint8 iPCmdNumber; - TBuf iText; - TBuf iSimApplicationName; - RSat::TIconId iIconId; - TBool iSustainedText; - TTimeIntervalSeconds iDuration; - RSat::TClearScreenTrigger iClearScreen; - }; - -// The query IPC data package. -typedef TPckg TSatDisplayTextV1Pckg; - -// The event IPC data structure. -struct TSatEventV1 - { - TSatSEvent iEvent; - TSatSEventStatus iStatus; - TInt iError; - }; - -// The event IPC data package. -typedef TPckg TSatEventV1Pckg; - -// The query IPC data structure. -struct TSatQueryV1 - { - TBuf iQueryText; - TSatSQueryCommand iCommand; - TBuf iSimApplicationName; - TBuf iDestinationName; - TSatAlphaIdStatus iAlphaIdStatus; - TSatIconId iIconId; - }; - -// The query IPC data package. -typedef TPckg TSatQueryV1Pckg; - -// The query response IPC data structure. -struct TSatQueryRspV1 - { - TSatSQueryCommand iCommand; - TBool iAccepted; - TInt iWgId; - TBool iRequestedIconDisplayed; - TBool iSessionTerminatedByUser; - }; - -// The query response IPC data package. -typedef TPckg TSatQueryRspV1Pckg; - -// The notification IPC data structure. -struct TSatNotificationV1 - { - RSat::TAlphaIdBuf iText; - TSatSNotifyCommand iCommand; - TSatAlphaIdStatus iAlphaIdStatus; - TSatControlResult iControlResult; // CC and MoSm - TSatIconId iIconId; - }; - -// The notification response IPC data package. -typedef TPckg TSatNotificationV1Pckg; - -// The notification IPC data structure. -struct TSatNotificationRspV1 - { - TSatSNotifyCommand iCommand; - TBool iAccepted; - TInt iWgId; - TBool iRequestedIconDisplayed; - TBool iSessionTerminatedByUser; - }; - -// The notification response IPC data package. -typedef TPckg TSatNotificationRspV1Pckg; - -// Types for session termination -enum TSatTerminationType - { - ETerminatedByCancel, - ETerminatedByEndKey - }; - -// Session termination data structure -struct TSatTermination - { - TSatTerminationType type; - }; - -// Session termination IPC data package. -typedef TPckg TSatTerminationPckg; - -#endif // SATSTYPES_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/SatServerFactory.h --- a/satengine/SatServer/inc/SatServerFactory.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,48 +0,0 @@ -/* -* Copyright (c) 2002-2006 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: Factory method for creating SatServer -* -*/ - - - -#ifndef SATSERVERFACTORY_H -#define SATSERVERFACTORY_H - -// INCLUDES -#include - -// CONSTANTS - -_LIT( KSatServerPanic, "SatServer" ); - -// Full server file path and name. -// Server name. -_LIT( KSatServerName, "SatServer" ); - -// Init error assertion string. -_LIT( KSatSInitError, "Error initalizing SatServer" ); - -// FORWARD DECLARATIONS -class CSatSServer; - -/** -* Creates an instance of CSatSServer -*/ -//lint -e{1717} void declaration not possible -IMPORT_C CSatSServer* CreateSatServerL(); - -#endif // SATSERVERFACTORY_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/TSatEventMonitorFactory.h --- a/satengine/SatServer/inc/TSatEventMonitorFactory.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,53 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Factory class for Event monitors -* -*/ - - - -#ifndef TSATEVENTMONITORFACTORY_H -#define TSATEVENTMONITORFACTORY_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class MSatEventMonitor; -class MSatEventMonitorUtils; - - -// CLASS DECLARATION - -/** -* Factory class. -* -* @lib EventMonitors.lib -* @since Series 60 3.0 -*/ -class TSatEventMonitorFactory - { - public: // Factory methods - - /** - * Creates pointer array containing event monitor objects. - */ - IMPORT_C static CArrayPtrFlat* - CreateEventMonitorsL( MSatEventMonitorUtils& aUtils ); - - }; - -#endif // TSATEVENTMONITORFACTORY_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/TSatExtErrorUtils.h --- a/satengine/SatServer/inc/TSatExtErrorUtils.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,78 +0,0 @@ -/* -* Copyright (c) 2002-2005 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: Maps extended error values to correct values. -* -*/ - - - -#ifndef TSATEXTERRORUTILS_H -#define TSATEXTERRORUTILS_H - -#include -// CLASS DECLARATION - -/** -* Extended GSM error utility class. Used to map extended error codes into -* correct Network errors. These values are used in SetUpCall, SendSs, -* SendUssd and SendSm TerminalResponses, when network returns error. -* -* @lib SatEngine.lib -* @since 3.0 -*/ -class TSatExtErrorUtils - { - - public: // New functions - - /** - * Maps extended error value to correct value. - * @param aExtError Extended GSM error defined in exterror.h - * @param aModifyMappedValue, should 8th bit changed into 1 or not. - * default is ETrue - * @return Hex number indicating the correct value - */ - IMPORT_C static TUint8 MapError( - TInt aExtError, - TBool aModifyMappedValue = ETrue ); - - /** - * Check is given value GSM extended error - * @param aExtError Value to be checked - * @return TBool indicating is the value extended GSM error - */ - IMPORT_C static TBool IsExtendedError( TInt aExtError ); - - /** - * Check should given extended error to be handled as network error - * @param aExtError Value to be checked - * @return TBool indicating is the value network error - */ - IMPORT_C static TBool IsNetworkError( TInt aExtError ); - - private: - - /** - * Checks specific cases of error codes and changes the code, - * if neccessary. - * @param aExtErrorCode code to be checked - * @param aNwError, this is where the new nw value is set - */ - static void CheckSpecificCases( TInt aExtError, TUint8& aNwError ); - - }; - -#endif // TSATEXTERRORUTILS_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/TSatSystemStateFactory.h --- a/satengine/SatServer/inc/TSatSystemStateFactory.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,113 +0,0 @@ -/* -* Copyright (c) 2002-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: Factory class that provides SAT SystemState objects -* outside of this DLL -* -*/ - - - -#ifndef TSATSYSTEMSTATEFACTORY_H -#define TSATSYSTEMSTATEFACTORY_H - -// INCLUDES -#include - -// FORWARD DECLARATIONS -class MSatSystemState; -class MSatSystemStateChangeNotifier; -class MSatSystemStateObserver; -class MSatMultiModeApi; - -// CLASS DECLARATION - -/** -* Factory class. -* -* @lib SatSystemState.lib -* @since Series 60 3.0 -*/ -class TSatSystemStateFactory - { - public: // Factory methods - - /** - * Creates MSatSystemState object. - * @param aPhone Reference to MSatMultiModeApi object. - * @return Interface to SatSystemnState - */ - IMPORT_C static MSatSystemState* CreateSystemStateL( - MSatMultiModeApi& aPhone ); - - /** - * Creates idle mode change notifier. - * @param aObserver Observer, which is notifed when change happens. - * @return Interface to PSChangeNotifier listening Idle mode changes. - */ - IMPORT_C static MSatSystemStateChangeNotifier* - CreateIdleModeChangeNotifierL( - MSatSystemStateObserver& aObserver ); - - /** - * Creates SIM status change notifier. - * @param aObserver Observer, which is notifed when change happens. - * @return Interface to PSChangeNotifier listening SIM status changes. - */ - IMPORT_C static MSatSystemStateChangeNotifier* - CreateSimStatusChangeNotifierL( - MSatSystemStateObserver& aObserver ); - - /** - * Creates SIM access profile state change observer. - * @param aObserver Observer, which is notifed when change happens. - * @return Interface CenRepChangeNotifier listening SAP status. - */ - IMPORT_C static MSatSystemStateChangeNotifier* - CreateSIMAccessProfileChangeNotifierL( - MSatSystemStateObserver& aObserver ); - - /** - * Creates Startup state change observer. - * @param aObserver Observer, which is notifed when change happens. - * @return Interface PSChangeNotifier listening startup status. - */ - IMPORT_C static MSatSystemStateChangeNotifier* - CreateStartupChangeNotifierL( - MSatSystemStateObserver& aObserver ); - - /** - * Creates language selection observer. - * @param aObserver Observer, which is notifed when change happens. - * @return Interface to CenRepChangeNotifier listening language - * selections. - */ - IMPORT_C static MSatSystemStateChangeNotifier* - CreateLanguageSelectionChangeNotifierL( - MSatSystemStateObserver& aObserver ); - - /** - * Creates Profile state change observer. - * @param aObserver Observer, which is notifed when change happens. - * @return Interface to CenRepChangeNotifier listening profile - * status. - */ - IMPORT_C static MSatSystemStateChangeNotifier* - CreateProfileChangeNotifierL( - MSatSystemStateObserver& aObserver ); - - }; - -#endif // TSATSYSTEMSTATEFACTORY_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/csatsactivewrapper.h --- a/satengine/SatServer/inc/csatsactivewrapper.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,129 +0,0 @@ -/* -* Copyright (c) 2002-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: Active object wrapper for SAT Server -* -*/ - - -#ifndef CSATSACTIVEWRAPPER_H -#define CSATSACTIVEWRAPPER_H - -#include -#include "msatasynctosync.h" - -/** - * Active object wrapper for SAT Server - * - * Provides asynchronous function calls to be synchronized functions. - * Provides also timer functionality. - * - * @lib satengine.lib - * @since S60 v3.1 - */ -class CSatSActiveWrapper : public CActive, public MSatAsyncToSync - { - -public: - - /** - * Default C++ constructor - */ - CSatSActiveWrapper(); - - /** - * Destructor - */ - virtual ~CSatSActiveWrapper(); - - - /** - * Gives reference to this active object wrapper's request status. Use this - * when calling asynchronous function and you want to use this wrapper. - * - * @return Request status to be sent to asynchronous function call - */ - TRequestStatus& RequestStatus(); - - /** - * Sets this wrapper active and starts waiting for request to complete. - * Function returns after request status given to asynchronous funtion with - * RequestStatus is completed or wrapper is cancelled. - * - * @return System-wide error code indicating the completion of request - */ - TInt SetActiveAndWait(); - - /** - * Starts timer. Function returns as the given time has elapsed or - * timer is cancelled. - * - * @param aDelay Delay from the function call to complete function in microseconds - * @param aInterval Interval to complete wait after aDelay, zero by default - */ - void After( const TTimeIntervalMicroSeconds32& aDelay, - const TTimeIntervalMicroSeconds32& aInterval = 0 ); - - /** - * Cancels request status or timer depending which is active - */ - void CancelWrapper(); - - /** - * Release object - */ - void Release(); - - /** - * From CActive. - * Called when request status given SetActiveAndWait completes - */ - void RunL(); - - /** - * From CActive. - * Called when request is cancelled - */ - void DoCancel(); - -private: - - /** - * Called after given delay in After function. - * Causes the After function to complete - * - * @param aPtr Pointer to itself since this is static function - * @return whether to call function again after an interval - */ - static TInt DelayCallBack( TAny* aPtr ); - -private: // data - - /** - * Blocker for After - */ - CActiveSchedulerWait iAfterWait; - - /** - * Blocker for SetActiveAndWait - */ - CActiveSchedulerWait iWait; - - /** - * Timer used in After - */ - CPeriodic* iTimer; - - }; - -#endif // CSATSACTIVEWRAPPER_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/msatasynctosync.h --- a/satengine/SatServer/inc/msatasynctosync.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,65 +0,0 @@ -/* -* 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: Interface for active object wrapper -* -*/ - - -#ifndef MSATASYNCTOSYNC_H -#define MSATASYNCTOSYNC_H - - -#include - -/** - * Active object wrapper for SAT Server - * Interface provides asynchronous function calls to be synchronous functions. - * - * @lib satengine.lib - * @since S60 v5.0.1 - */ -class MSatAsyncToSync - { - -public: - - /** - * Gives reference to this active object wrapper's request status. Use this - * when calling asynchronous function and you want to use this wrapper. - * - * @return Request status to be sent to asynchronous function call - */ - virtual TRequestStatus& RequestStatus() = 0; - - /** - * Sets this wrapper active and starts waiting for request to complete. - * Function returns after request status given to asynchronous funtion with - * RequestStatus is completed or wrapper is cancelled. - * - * @return System-wide error code indicating the completion of request - */ - virtual TInt SetActiveAndWait() = 0; - - /** - * Cancels request status or timer depending which is active - */ - virtual void CancelWrapper() = 0; - - /** - * Release object - */ - virtual void Release() = 0; - }; - -#endif // MSATASYNCTOSYNC_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/msatmediatoreventprovider.h --- a/satengine/SatServer/inc/msatmediatoreventprovider.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,83 +0,0 @@ -/* -* Copyright (c) 2005-2005 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: Provider of the SAT Mediator Events. -* -*/ - - - -#ifndef M_MSATMEDIATOREVENTPROVIDER_H -#define M_MSATMEDIATOREVENTPROVIDER_H - - -#include - - -/** -* Mediator Event provider interface. -* -* Responsible to notify Mediator Event Consumers about SAT Mediator Events. -* -* @lib SatEngine -* @since S60 v3.1 -*/ -class MSatMediatorEventProvider - { - -public: - - MSatMediatorEventProvider() {}; - - virtual ~MSatMediatorEventProvider() {}; - - /** - * Raises SAT Mediator Event. - * - * @since S60 v3.1 - * @param aData contains packaged event information for event consumer - * @return KErrNone or possible error code - */ - virtual TInt RaiseSatEvent( const TDesC8& aData ) = 0; - - /** - * Checks Cover UI support for SAT Mediator Event. - * - * @since S60 v3.1 - * @return ETrue if cover Ui is supported - */ - virtual TBool CoverUiSupported() = 0; - -private: - - /** - * Prohibit copy constructor if not deriving from CBase. - * - * @since S60 v3.1 - * @param const reference to MSatMediatorEventProvider. - */ - MSatMediatorEventProvider( const MSatMediatorEventProvider& ); - - /** - * Prohibit assigment operator if not deriving from CBase. - * - * @since S60 v3.1 - * @param const reference to MSatMediatorEventProvider. - */ - MSatMediatorEventProvider& - operator=( const MSatMediatorEventProvider& ); - - }; - -#endif // M_MSATMEDIATOREVENTPROVIDER_H - diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/msatmultimodeapi.h --- a/satengine/SatServer/inc/msatmultimodeapi.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,177 +0,0 @@ -/* -* Copyright (c) 2007-2010 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: interface that access to etelmm API in sat -* -*/ - - -#ifndef MSATMULTIMODEAPI_H -#define MSATMULTIMODEAPI_H - -#include -#include -#include -#include - - -/** - * Encapsule the access to etelmm API in sat - * - * @lib satengine.lib - * @since S60 v5.0 - */ -class MSatMultiModeApi - { - -public: - - /** - * Gives reference to active RMobilePhone session - * - * @return Reference to active RMobilePhone server session - */ - virtual RMobilePhone* Phone() = 0; - - /** - * Gives reference to active Dummy RMobilePhone session - * - * @return Reference to active Dummy RMobilePhone server session - */ - virtual RMobilePhone* DummyPhone() = 0; - - /** - * Gives reference to active RMmCustomApi session - * - * @return Reference to active RMmCustomApi server session - */ - virtual RMmCustomAPI* CustomApi() = 0; - - /** - * Lowers error granularity to basic errors - */ - virtual void LowerErrorGranularity() = 0; - - /** - * Raises error granularity to extended errors - */ - virtual void RaiseErrorGranularity() = 0; - - /** - * Access RMobilePhone::GetNetworkRegistrationStatus - * for the paramter information please see the etelmm.h - */ - virtual void GetNetworkRegistrationStatus( TRequestStatus& aReqStatus, - RMobilePhone::TMobilePhoneRegistrationStatus& aStatus ) = 0; - - /** - * Access RMobilePhone::NotifyNetworkRegistrationStatusChange - * for the paramter information please see the etelmm.h - */ - virtual void NotifyNetworkRegistrationStatusChange( - TRequestStatus& aReqStatus, - RMobilePhone::TMobilePhoneRegistrationStatus& aStatus) = 0; - - /** - * Access RMobilePhone::GetSubscriberId - * for the paramter information please see the etelmm.h - */ - virtual void GetSubscriberId( TRequestStatus& aReqStatus, - RMobilePhone::TMobilePhoneSubscriberId& aId ) = 0; - - /** - * Access RMobilePhone::SendDTMFTones - * for the paramter information please see the etelmm.h - */ - virtual void SendDTMFTones(TRequestStatus& aReqStatus, - const TDesC& aTones) = 0; - - /** - * Access RMobilePhone::ContinueDTMFStringSending - * for the paramter information please see the etelmm.h - */ - virtual TInt ContinueDTMFStringSending( TBool aContinue ) = 0; - /** - * Access RMobilePhone::CancelAsyncRequest - * for the paramter information please see the etelmm.h - */ - virtual void CancelAsyncRequest(TInt aReqToCancel) = 0; - - - /** - * Access RMobilePhone::SendNetworkServiceRequestNoFdnCheck - * for the paramter information please see the etelmm.h - */ - virtual void SendNetworkServiceRequestNoFdnCheck( - TRequestStatus& aReqStatus, const TDesC& aServiceString) = 0; - - /** - * Access RMobileCall::DialNoFdnCheck - * for the paramter information please see the etelmm.h - */ - virtual void DialNoFdnCheck(TRequestStatus& aStatus, - const TDesC8& aCallParams,const TDesC& aTelNumber) = 0; - - /** - * Access RMobileUssdMessaging::SendNetworkServiceRequestNoFdnCheck - * for the paramter information please see the etelmm.h - */ - virtual void SendMessageNoFdnCheck( TRequestStatus& aReqStatus, - const TDesC8& aMsgData, const TDesC8& aMsgAttributes ) = 0 ; - /** - * Access RMobileCall::DialCancel - */ - virtual void DialCancel() = 0; - /** - * Access RMobilePhone::GetCurrentActiveUSimApplication - * for the paramter information please see the etelmm.h - */ - virtual void GetCurrentActiveUSimApplication( TRequestStatus& aReqStatus, - RMobilePhone::TAID& aAID ) = 0; - - /** - * Check if there is an incoming call - * @return ETrue if there is an incoming call - */ - virtual TBool IsCallIncoming() = 0; - - /** - * Access RMobileCall::NotifyMobileCallStatusChange - */ - virtual void NotifyMobileCallStatusChange( TRequestStatus& aReqStatus, - RMobileCall::TMobileCallStatus& aStatus) = 0; - - /** - * Access RMobileCall::NotifyStatusChangeCancel - */ - virtual void NotifyCallStatusChangeCancel() = 0; - - /** - * Access RMobilePhone::TerminateActiveCalls - */ - virtual void TerminateActiveCalls(TRequestStatus& aReqStatus) = 0; - - /** - * Access RMboileCall::GetMobileCallInfo - */ - virtual TInt GetMobileCallInfo(TDes8& aCallInfo) = 0; - - /** - * Access RMboileCall::DialEmergencyCall - */ - virtual void DialEmergencyCall(TRequestStatus& aReqStatus, - const TDesC& aNumber) = 0; - - }; - -#endif // MSATMULTIMODEAPI_H diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/inc/tsatinternaliconinfo.h --- a/satengine/SatServer/inc/tsatinternaliconinfo.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,98 +0,0 @@ -/* -* 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: Sub-session for SAT services. -* -*/ - -#ifndef TSATINTERNALICONINFO_H -#define TSATINTERNALICONINFO_H - -/** - * Class for transporting icon image data to SatEngine - * Internal parameter class between SAT client and server. - * - * @code - * TSatInternalIconInfo internalIconInfo; - * TSatInternalIconInfoPckg internalIconInfoPckg - * @endcode - * - * @since 5.1 - */ -NONSHARABLE_CLASS( TSatInternalIconInfo ) - { - public: - - /** - * Coding scheme of the icon. - * The same with TSatIconInfo enum. - * - * @since 5.1 - */ - enum TCodingScheme - { - EBasic = 0x11, ///< Basic (Black and White) icon - EColor = 0x21 ///< Color icon - }; - - /** - * Class constructor. - */ - TSatInternalIconInfo() : - iWidth( 0 ), - iHeight( 0 ), - iCodingScheme( EBasic ), - iFileIdentifier( 0 ), - iOffset( 0 ), - iLength( 0 ) - { - }; - - public: - - /** - * The icon width in pixels. - */ - TInt iWidth; - - /** - * The icon height in pixels - */ - TInt iHeight; - - /** - * Coding scheme of the icon. - */ - TCodingScheme iCodingScheme; - - /** - * File identifier of the icon - */ - TUint16 iFileIdentifier; - - /** - * Offset of the icon in EF. - */ - TUint16 iOffset; - - /** - * Length of the icon data. - */ - TUint16 iLength; - }; - -typedef TPckg TSatInternalIconInfoPckg; - -#endif // TSATINTERNALICONINFO_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/loc/SatServer.loc --- a/satengine/SatServer/loc/SatServer.loc Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -/* -* Copyright (c) 2003-2007 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: SatServer localisation file -* -*/ - - -// LOCALISATION STRINGS: - -//d: Sat application name under the Sat icon in app shell. -//l: cell_app_pane_t1 -//w: S90DeskAppName -// -#define qtn_sat_log_title "SIM Services" - -//d: Application title and SAT application name when China -//d: Mobile SIM cards used -//l: cell_app_pane_t1 -#define qtn_sat_cmcc_title "SIM Card Application" - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/rom/SatServerResources.iby --- a/satengine/SatServer/rom/SatServerResources.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,32 +0,0 @@ -/* -* Copyright (c) 2003-2006 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: Sat Server Resources iby file, contains resource file -* iby- information -* -*/ - - -#ifndef SATSERVERRESOURCES_IBY -#define SATSERVERRESOURCES_IBY - -#ifdef __SIMCARD - -// Resource file(s) for SatServer -data = DATAZ_\RESOURCE_FILES_DIR\satserver.rsc RESOURCE_FILES_DIR\satserver.rsc - -#endif // __SIMCARD - -#endif // SATSERVERRESOURCES_IBY - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/SatServer/rom/satserver.iby --- a/satengine/SatServer/rom/satserver.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,136 +0,0 @@ -/* -* Copyright (c) 2003-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: Sat Sever iby file, contains client and shell controller -* iby- information -* -*/ - - -#ifndef SATSERVER_IBY -#define SATSERVER_IBY - - -file=ABI_DIR\BUILD_DIR\SatSystemState.dll SHARED_LIB_DIR\SatSystemState.dll -file=ABI_DIR\BUILD_DIR\SatEventMonitors.dll SHARED_LIB_DIR\SatEventMonitors.dll -file=ABI_DIR\BUILD_DIR\SATENGINE.DLL SHARED_LIB_DIR\SATENGINE.DLL -file=ABI_DIR\BUILD_DIR\SATSERVER.EXE PROGRAMS_DIR\SATSERVER.EXE -file=ABI_DIR\BUILD_DIR\SATCLIENT.DLL SHARED_LIB_DIR\SATCLIENT.DLL -file=ABI_DIR\BUILD_DIR\SATINTERNALCLIENT.DLL SHARED_LIB_DIR\SATINTERNALCLIENT.DLL - -// SAT Stub SIS -data=ZSYSTEM\install\SatServer_stub.sis System\Install\SatServer_stub.sis - -// COMMANDS -#ifdef __SAT_DISPLAY_TEXT -ECOM_PLUGIN( DisplayTextCmd.dll, 10202989.rsc ) -#endif - -#ifdef __SAT_CALL_CONTROL -ECOM_PLUGIN( CallControlCmd.dll, 1020298B.rsc ) -#endif - -#ifdef __SAT_GET_INKEY -ECOM_PLUGIN( GetInkeyCmd.dll, 1000A889.rsc ) -#endif - -#ifdef __SAT_GET_INPUT -ECOM_PLUGIN( GetInputCmd.dll, 10202985.rsc ) -#endif - -#ifdef __SAT_LANGUAGE_NOTIFICATION -ECOM_PLUGIN( LanguageNotificationCmd.dll, 101F79FE.rsc ) -#endif - -#ifdef __SAT_LAUNCH_BROWSER -ECOM_PLUGIN( LaunchBrowserCmd.dll, 1000A88D.rsc ) -#endif - -#ifdef __SAT_MO_SM_CONTROL -ECOM_PLUGIN( MoSmControlCmd.dll, 1020298D.rsc ) -#endif - -#ifdef __SAT_PLAY_TONE -ECOM_PLUGIN( PlayToneCmd.dll, 1000A887.rsc ) -#endif - -#ifdef __SAT_PROVIDE_LOCAL_INFO -ECOM_PLUGIN( ProvideLocalInfoCmd.dll, 10205C45.rsc ) -#endif - -#ifdef __SAT_REFRESH -ECOM_PLUGIN( RefreshCmd.dll, 10202990.rsc ) - -ECOM_PLUGIN( RefreshRequiredCmd.dll, 102078D9.rsc ) -#endif - -#ifdef __SAT_SELECT_ITEM -ECOM_PLUGIN( SelectItemCmd.dll, 1000f00A.rsc ) -#endif - -#ifdef __SAT_SEND_DTMF -ECOM_PLUGIN( SendDtmfCmd.dll, 1000A88B.rsc ) -#endif - -#ifdef __SAT_SEND_SS -ECOM_PLUGIN( SendSsCmd.dll, 1000A884.rsc ) -#endif - -#ifdef __SAT_SEND_SM -ECOM_PLUGIN( SendSmCmd.dll, 1000f020.rsc ) -#endif - -#ifdef __SAT_SEND_USSD -ECOM_PLUGIN( SendUssdCmd.dll, 10202983.rsc ) -#endif - -#ifdef __SAT_SETUP_CALL -ECOM_PLUGIN( SetUpCallCmd.dll, 1000f005.rsc ) -#endif - -#ifdef __SAT_SET_UP_EVENT_LIST -ECOM_PLUGIN( SetUpEventListCmd.dll, 10202992.rsc ) -#endif - -#ifdef __SAT_SET_UP_IDLE_MODE_TEXT -ECOM_PLUGIN( SetUpIdleModeTextCmd.dll, 1000A88A.rsc ) -#endif - -#ifdef __SAT_SET_UP_MENU -ECOM_PLUGIN( SetUpMenuCmd.dll, 1000f000.rsc ) -#endif - -ECOM_PLUGIN( SimSessionEndCmd.dll, 1000f010.rsc ) - -#ifdef __SAT_BIP -ECOM_PLUGIN( CloseChannelCmd.dll, 102078DB.rsc ) - -ECOM_PLUGIN( OpenChannelCmd.dll, 101F79FA.rsc ) - -ECOM_PLUGIN( SendDataCmd.dll, 10205C50.rsc ) - -ECOM_PLUGIN( ReceiveDataCmd.dll, 10205C52.rsc ) - -ECOM_PLUGIN( GetChannelStatusCmd.dll, 102078DD.rsc ) -#endif - -// USE THESE ONLY IF YOU ARE USING AUTOMATED SAT TSY -//file=ABI_DIR\BUILD_DIR\DSAT.TSY SHARED_LIB_DIR\DSAT.TSY -//file=ABI_DIR\BUILD_DIR\Commands.dll SHARED_LIB_DIR\commands.dll -//file=ABI_DIR\BUILD_DIR\TestCases.dll SHARED_LIB_DIR\TestCases.dll -//file=ABI_DIR\BUILD_DIR\Tester.dll SHARED_LIB_DIR\Tester.dll - - -#endif // SATSERVER_IBY - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b satengine/satserver/Commands/SetUpCallCmd/src/CSetUpCallHandler.cpp --- a/satengine/satserver/Commands/SetUpCallCmd/src/CSetUpCallHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/satengine/satserver/Commands/SetUpCallCmd/src/CSetUpCallHandler.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -765,6 +765,15 @@ CompleteSetupCall( RSat::KModifiedByCallControl ); break; } + case KErrSatBusy: + { + LOG( SIMPLE, + "SETUPCALL: CSetUpCallHandler::CompleteSetupCallWithStatus \ + KInteractionWithCCTemporaryError" ) + // Call control some time can case this error. + CompleteSetupCall( RSat::KInteractionWithCCTemporaryError ); + break; + } default: { diff -r 35488577e233 -r 2fa1fa551b0b satengine/satserver/inc/SatMacroes.h --- a/satengine/satserver/inc/SatMacroes.h Mon Aug 23 15:50:31 2010 +0300 +++ b/satengine/satserver/inc/SatMacroes.h Fri Sep 03 13:59:20 2010 +0300 @@ -29,9 +29,11 @@ // MACRO MODULE_TESTING_LB // #define MODULE_TESTING_LB +#ifdef _DEBUG // Use this macro to enable logging. // Must be disabled on released version. -// MACRO ENABLE_SAT_LOGGING -// #define ENABLE_SAT_LOGGING +MACRO ENABLE_SAT_LOGGING +#define ENABLE_SAT_LOGGING +#endif #endif // SATMACROES_H diff -r 35488577e233 -r 2fa1fa551b0b satui/satapp/inc/satappmainhandler.h --- a/satui/satapp/inc/satappmainhandler.h Mon Aug 23 15:50:31 2010 +0300 +++ b/satui/satapp/inc/satappmainhandler.h Fri Sep 03 13:59:20 2010 +0300 @@ -30,6 +30,7 @@ class SatAppToneProvider; class SatAppPopupProvider; class SatAppConfirmProvider; +class AfActivityStorage; class SatAppMainHandler : public QObject { @@ -59,6 +60,7 @@ SatAppPopupProvider* mPopup; SatAppConfirmProvider *mConfirm; QVariantHash mActivity; + AfActivityStorage *mActivityStorage; HbMessageBox *mOfflineWarningDlg; }; diff -r 35488577e233 -r 2fa1fa551b0b satui/satapp/satapp.pro --- a/satui/satapp/satapp.pro Mon Aug 23 15:50:31 2010 +0300 +++ b/satui/satapp/satapp.pro Fri Sep 03 13:59:20 2010 +0300 @@ -47,7 +47,8 @@ -lCdlEngine \ -lmediaclientaudio \ -lprofileeng \ - -lbafl + -lbafl \ + -lafservice HEADERS += inc/satappmainhandler.h \ inc/satappserverdispatcher.h \ diff -r 35488577e233 -r 2fa1fa551b0b satui/satapp/src/satappmainhandler.cpp --- a/satui/satapp/src/satappmainhandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/satui/satapp/src/satappmainhandler.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -17,9 +17,10 @@ */ //Qt #include -#include #include #include +#include +#include // symbian #include @@ -62,6 +63,8 @@ else{ showOfflineWarning(); } + + mActivityStorage = new AfActivityStorage(this); removeActivity(); qDebug("SATAPP: SatAppMainHandler::SatAppMainHandler <"); @@ -211,7 +214,8 @@ void SatAppMainHandler::updateActivity() { qDebug("SATAPP: SatAppMainHandler::updateActivity >"); - mActivity.insert("screenshot", mMenu->takeScreenShot()); + mActivity.insert(ActivityScreenshotKeyword, + mMenu->takeScreenShot()); qDebug("SATAPP: SatAppMainHandler::updateActivity <"); } @@ -224,8 +228,8 @@ qDebug("SATAPP: SatAppMainHandler::saveActivity >"); // Add the activity to the activity manager - const bool ok = qobject_cast(qApp)->activityManager()-> - addActivity(SATAPP_ACTIVITY_ID, QVariant(), mActivity); + const bool ok = mActivityStorage->saveActivity( + SATAPP_ACTIVITY_ID, QVariant(), mActivity); qDebug("SATAPP: SatAppMainHandler::saveActivity < %d", ok); } @@ -238,20 +242,13 @@ { qDebug("SATAPP: SatAppMainHandler::removeActivity >"); - QList activityList = - qobject_cast(qApp)->activityManager()->activities(); - qDebug("SATAPP: SatAppMenuProvider::removeActivity count=%d", - activityList.count()); - foreach (QVariantHash activity, activityList){ - if (activity.keys().contains(SATAPP_ACTIVITY_ID)){ - mActivity = activity; - qDebug("SATAPP: SatAppMenuProvider::removeActivity store"); - break; - } - } - - const bool ok = qobject_cast(qApp)->activityManager()-> - removeActivity(SATAPP_ACTIVITY_ID); + + QVariantHash activity = mActivityStorage->activityMetaData(SATAPP_ACTIVITY_ID); + if(activity.keys().contains(SATAPP_ACTIVITY_ID)) { + mActivity = activity; + qDebug("SATAPP: SatAppMenuProvider::removeActivity store"); + } + const bool ok = mActivityStorage->removeActivity(SATAPP_ACTIVITY_ID); qDebug("SATAPP: SatAppMainHandler::removeActivity < %d", ok); } diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/dialpad.pro --- a/telutils/dialpad/dialpad.pro Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/dialpad/dialpad.pro Fri Sep 03 13:59:20 2010 +0300 @@ -38,7 +38,8 @@ inc/dialpadmailboxeventfilterbase.h \ inc/dialpademergencycalleventfilter.h \ inc/dialpadhasheventfilter.h \ - inc/dialpadnumericbutton.h + inc/dialpadnumericbutton.h \ + inc/dialpadnumericbuttongrid.h SOURCES += src/dialpad.cpp \ src/dialpadbutton.cpp \ @@ -56,7 +57,8 @@ src/dialpademergencycalleventfilter.cpp \ src/dialpadvtkeyhandler.cpp \ src/dialpadhasheventfilter.cpp \ - src/dialpadnumericbutton.cpp + src/dialpadnumericbutton.cpp \ + src/dialpadnumericbuttongrid.cpp RESOURCES += dialpad.qrc diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/inc/dialpadinputfield.h --- a/telutils/dialpad/inc/dialpadinputfield.h Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/dialpad/inc/dialpadinputfield.h Fri Sep 03 13:59:20 2010 +0300 @@ -23,19 +23,23 @@ class HbLineEdit; class DialpadButtonStyle; class DialpadButton; +class HbMainWindow; class DialpadInputField : public HbWidget { Q_OBJECT public: - DialpadInputField(QGraphicsItem* parent=0); + DialpadInputField(const HbMainWindow& mainWindow, + QGraphicsItem* parent=0); ~DialpadInputField(); HbLineEdit& editor() const; DialpadButton& backspaceButton() const; + void updateLayout(Qt::Orientation orientation); + protected: QSizeF sizeHint(Qt::SizeHint which, const QSizeF & constraint = QSizeF()) const; @@ -44,9 +48,10 @@ void onEditorContentChanged(); private: + const HbMainWindow& mMainWindow; HbLineEdit* mNumberEditor; DialpadButton* mBackspace; - int mHeight; + qreal mHeight; }; #endif // DIALPADINPUTFIELD_H diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/inc/dialpadkeypad.h --- a/telutils/dialpad/inc/dialpadkeypad.h Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/dialpad/inc/dialpadkeypad.h Fri Sep 03 13:59:20 2010 +0300 @@ -11,24 +11,21 @@ * * Contributors: * -* Description: Dialpad keypad +* Description: Number grid and dial key. * */ #ifndef DIALPADKEYPAD_H #define DIALPADKEYPAD_H -#include -#include -#include +#include class DialpadInputField; class DialpadButton; -class DialpadNumericButton; +class DialpadNumericButtonGrid; class QSignalMapper; -class QGraphicsGridLayout; -class DialpadKeypad : public HbInputButtonGroup +class DialpadKeypad : public HbWidget { Q_OBJECT @@ -41,71 +38,34 @@ ~DialpadKeypad(); public: + bool isCallButtonEnabled() const; + void setCallButtonEnabled(bool enabled); void resetButtons(); - DialpadButton& callButton() const; - protected slots: - void setButtonTexts(); - void handleKeyClicked(int key); void sendKeyPressEvent(const QKeyEvent& event); void sendKeyReleaseEvent(const QKeyEvent& event); void sendLongPressEvent(const QKeyEvent& event); void handleKeyChangeEvent(const QKeyEvent& releaseEvent, const QKeyEvent& pressEvent); - void cancelButtonPress(); protected: void postKeyEvent(QEvent::Type type, int key); void sendKeyEventToEditor(QEvent::Type type, int key); - inline DialpadNumericButton* button(int i) const; - void updateButtonLabels(); - void updateColorArray(); - void updateIconColor(); - void updateTextLayouts(const QSizeF &size); - void resolveTextContent(QList &content); - void createTextLayouts(const QSizeF &size, - const QList &content); - void layoutTextLines(const QSizeF &size, - QTextLayout &textLayout, - int state, - int type); - protected: - void paint(QPainter* painter, - const QStyleOptionGraphicsItem* option, - QWidget* widget); void setGeometry(const QRectF &rect); - void changeEvent(QEvent *event); - -private: - enum ButtonState { - Normal = 0, - Pressed, - StateCount - }; - - enum TextType { - PrimaryText = 0, - SecondaryText, - TextTypeCount - }; private: const HbMainWindow& mMainWindow; DialpadInputField& mInputField; QSignalMapper* mKeyClickedSignalMapper; - QMap mGeneratedChar; int mPressedNumericKey; DialpadButton* mCallButton; - QList mColors; - QList mTextLayouts; - qreal mUnit; - qreal mMaxPrimaryLineWidth; + DialpadNumericButtonGrid* mNumericButtonGrid; }; #endif // DIALPADKEYPAD_H diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/inc/dialpadnumericbutton.h --- a/telutils/dialpad/inc/dialpadnumericbutton.h Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/dialpad/inc/dialpadnumericbutton.h Fri Sep 03 13:59:20 2010 +0300 @@ -38,10 +38,14 @@ void setSecondaryText(const QString& text); QString secondaryText() const; + void setSecondary2ndRowText(const QString& text); + QString secondary2ndRowText() const; + private: HbIcon mIcon; QString mText; QString mSecondaryText; + QString mSecondaryTextRow2; }; #endif // DIALPADNUMERICBUTTON_H diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/inc/dialpadnumericbuttongrid.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telutils/dialpad/inc/dialpadnumericbuttongrid.h Fri Sep 03 13:59:20 2010 +0300 @@ -0,0 +1,109 @@ +/*! +* 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: Implements grid of numeric buttons +* +*/ + +#ifndef DIALPADNUMERICBUTTONGRID_H +#define DIALPADNUMERICBUTTONGRID_H + +#include +#include +#include + +class DialpadNumericButton; + +class DialpadNumericButtonGrid : public HbInputButtonGroup +{ + Q_OBJECT + +public: + explicit DialpadNumericButtonGrid( + const HbMainWindow& mainWindow, + QGraphicsItem* parent=0); + + ~DialpadNumericButtonGrid(); + +public: + void resetButtons(); + + QChar inputCharacter(int keyCode) const; + +protected slots: + void setButtonTexts(); + void updateButtonLabels(); + void cancelButtonPress(); + +protected: + inline DialpadNumericButton* button(int i) const; + void updateColorArray(); + void updateIconColor(); + void updateTextLayouts(const QSizeF &size); + void resolveTextContent(QList &content, bool& useTwoRows); + void createTextLayouts(const QSizeF &size, + const QList &content, + bool useTwoRows); + void layoutTextLines(const QSizeF &size, + QTextLayout &textLayout, + int state, + int type, + bool useTwoRows); + inline void layoutPrimaryText( + QTextLayout& layout, + DialpadNumericButton& button, + qreal cellWidth, + qreal cellHeight, + qreal textHeight) const; + inline void layoutSecondaryText( + QTextLayout& layout, + DialpadNumericButton& button, + qreal cellWidth, + qreal cellHeight, + qreal textHeight, + qreal textDescent, + bool useTwoRows) const; + bool isButtonPressed() const; + void updateIconSizes(); + +protected: + void paint(QPainter* painter, + const QStyleOptionGraphicsItem* option, + QWidget* widget); + void setGeometry(const QRectF &rect); + void changeEvent(QEvent *event); + +private: + enum ButtonState { + Normal = 0, + Pressed, + StateCount + }; + + enum TextType { + PrimaryText = 0, + SecondaryText, + TextTypeCount + }; + +private: + const HbMainWindow& mMainWindow; + QList mColors; + QList mTextLayouts; + qreal mUnit; + qreal mMaxPrimaryLineWidth; + qreal mPrimaryTextBaseline; + QMap mGeneratedChar; +}; + +#endif // DIALPADNUMERICBUTTONGRID_H diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/resources/dialpad.css --- a/telutils/dialpad/resources/dialpad.css Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/dialpad/resources/dialpad.css Fri Sep 03 13:59:20 2010 +0300 @@ -14,7 +14,7 @@ DialpadInputField > HbLineEdit::text{ left: -var(hb-param-margin-gene-middle-horizontal); right: var(hb-param-margin-gene-middle-horizontal); - top: -var(hb-param-margin-gene-middle-vertical); - bottom: var(hb-param-margin-gene-middle-vertical); + top: -0.3un; + bottom: 0.3un; } diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/src/dialpad.cpp --- a/telutils/dialpad/src/dialpad.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/dialpad/src/dialpad.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -37,17 +37,15 @@ #include "dialpadbackground.h" #include "dialpadbutton.h" -static const QLatin1String backgroundGraphics("qtg_fr_input_v_bg"); +static const QLatin1String backgroundGraphicsV("qtg_fr_input_v_bg"); static const QLatin1String backgroundGraphicsH("qtg_fr_input_h_bg"); -static const QLatin1String minimizeIcon("qtg_graf_input_v_swipe"); +static const QLatin1String minimizeIconV("qtg_graf_input_v_swipe"); static const QLatin1String minimizeIconH("qtg_graf_input_h_swipe"); static const int DialpadCloseAnimDuration = 200; // ms static const int DialpadOpenAnimDuration = 200; // ms static const qreal DialpadComponentMargin = 0.75; // units static const qreal DialpadCloseHandleHeight = 2.23; // units static const qreal DialpadCloseHandleWidth = 18.8; // units -static const qreal DialpadCallButtonHeight = 8.75; // units, same as numeric buttons -static const qreal DialpadCallButtonHeightH = 7.25; // units static const QLatin1String handsetIcon("qtg_mono_call"); static const QLatin1String vmbxIcon("qtg_mono_voice_mailbox"); @@ -84,25 +82,23 @@ void Dialpad::initialize() { + setObjectName(QLatin1String("dialpad")); setFocusPolicy(Qt::StrongFocus); setFlag(QGraphicsItem::ItemIsFocusable,true); setFlag(QGraphicsItem::ItemHasNoContents, false); // create input field - mInputField = new DialpadInputField(this); + mInputField = new DialpadInputField(mMainWindow,this); // create keypad mKeypad = new DialpadKeypad(mMainWindow,*mInputField,this); // layouting params - qreal unit = HbDeviceProfile::current().unitValue(); + qreal unit = HbDeviceProfile::profile(&mMainWindow).unitValue(); qreal margin = DialpadComponentMargin * unit; mCloseHandleHeight = DialpadCloseHandleHeight * unit; mCloseHandleWidth = DialpadCloseHandleWidth * unit; - mKeypad->callButton().setPreferredHeight(DialpadCallButtonHeight*unit); - mKeypad->callButton().setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Fixed); - // create popup background mBackgroundDrawer = new HbFrameDrawer(); mIconDrawer = new HbFrameDrawer(); @@ -112,7 +108,6 @@ new QGraphicsLinearLayout(Qt::Vertical); popupLayout->addItem(mInputField); popupLayout->addItem(mKeypad); - popupLayout->addItem(&mKeypad->callButton()); popupLayout->setContentsMargins(margin, mCloseHandleHeight, margin, margin); popupLayout->setSpacing(0); popupLayout->setItemSpacing(0,margin); @@ -179,8 +174,8 @@ // paint popup background if ( mOrientation == Qt::Vertical ) { - mBackgroundDrawer->setFrameGraphicsName(backgroundGraphics); - mIconDrawer->setFrameGraphicsName(minimizeIcon); + mBackgroundDrawer->setFrameGraphicsName(backgroundGraphicsV); + mIconDrawer->setFrameGraphicsName(minimizeIconV); mBackgroundDrawer->setFrameType(HbFrameDrawer::ThreePiecesVertical); mBackgroundDrawer->setBorderWidths(0.0, mCloseHandleHeight, 0.0, 0.0); } else { @@ -227,7 +222,7 @@ bool Dialpad::isCallButtonEnabled() const { - return mKeypad->callButton().isEnabled(); + return mKeypad->isCallButtonEnabled(); } void Dialpad::openDialpad() @@ -258,6 +253,7 @@ if (mOrientation!=previousOrientation) { updateLayout((Qt::Orientation)mOrientation); + mInputField->updateLayout((Qt::Orientation)mOrientation); } show(); @@ -410,6 +406,7 @@ void Dialpad::orientationChangeFinished(Qt::Orientation current) { updateLayout(current); + mInputField->updateLayout(current); show(); @@ -441,7 +438,7 @@ { Q_ASSERT(layout()); - qreal unit = HbDeviceProfile::current().unitValue(); + qreal unit = HbDeviceProfile::profile(&mMainWindow).unitValue(); qreal margin = DialpadComponentMargin * unit; QGraphicsLinearLayout* mainLayout = @@ -453,13 +450,11 @@ mCloseHandleHeight, margin, margin); - mKeypad->callButton().setPreferredHeight(DialpadCallButtonHeight*unit); } else { mainLayout->setContentsMargins(mCloseHandleHeight, margin, margin, margin); - mKeypad->callButton().setPreferredHeight(DialpadCallButtonHeightH*unit); } } diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/src/dialpadinputfield.cpp --- a/telutils/dialpad/src/dialpadinputfield.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/dialpad/src/dialpadinputfield.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -21,6 +21,7 @@ #include #include #include +#include #include "dialpadinputfield.h" #include "dialpadbutton.h" @@ -29,15 +30,21 @@ static const int DialpadAutoRepeatInterval = 150; // ms static const int DialpadAutoRepeatDelay = 1000; // ms static const qreal DialpadComponentMargin = 0.75; // units -static const qreal DialpadBackspaceWidth = 9.4; // units -static const qreal DialpadInputFieldHeight = 6.3; // units +static const qreal DialpadBackspaceWidthV = 9.8; // units +static const qreal DialpadBackspaceWidthH = 8.6; // units +static const qreal DialpadInputFieldHeightV = 7.2; // units +static const qreal DialpadInputFieldHeightH = 6.6; // units static const int DialpadMaxEditStringLenght = 100; -DialpadInputField::DialpadInputField(QGraphicsItem* parent) - : HbWidget(parent) +DialpadInputField::DialpadInputField( + const HbMainWindow& mainWindow, + QGraphicsItem* parent) + : HbWidget(parent), + mMainWindow(mainWindow) { // create editor mNumberEditor = new HbLineEdit(this); + mNumberEditor->setObjectName(QLatin1String("numberEdit")); HbEditorInterface editorInterface(mNumberEditor); editorInterface.setFilter(HbPhoneNumberFilter::instance()); editorInterface.setInputConstraints(HbEditorConstraintIgnoreFocus); @@ -45,37 +52,32 @@ mNumberEditor->setMinRows(1); mNumberEditor->setMaxRows(1); mNumberEditor->setAdjustFontSizeToFitHeight(true); + mNumberEditor->setFontSpec(HbFontSpec(HbFontSpec::Primary)); // create backspace button mBackspace = new DialpadButton(this); + mBackspace->setObjectName(QLatin1String("backspaceButton")); mBackspace->setButtonType(DialpadButton::FunctionButton); // for css mBackspace->setFocusPolicy(Qt::NoFocus); mBackspace->setFlag(QGraphicsItem::ItemIsFocusable,false); mBackspace->setIcon(HbIcon(HbBackspaceIcon)); mBackspace->setEnabled(false); - QString buttonName; - buttonName.setNum(Qt::Key_Backspace); - mBackspace->setObjectName(buttonName); mBackspace->setAutoRepeat(true); mBackspace->setAutoRepeatInterval(DialpadAutoRepeatInterval); mBackspace->setAutoRepeatDelay(DialpadAutoRepeatDelay); + mBackspace->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding); connect(mNumberEditor,SIGNAL(contentsChanged()), SLOT(onEditorContentChanged())); // set input field layout - qreal unit = HbDeviceProfile::current().unitValue(); - mHeight = (int) DialpadInputFieldHeight * unit; QGraphicsLinearLayout* layout = new QGraphicsLinearLayout; layout->addItem(mNumberEditor); layout->setAlignment(mNumberEditor,Qt::AlignVCenter); layout->addItem(mBackspace); layout->setContentsMargins(0,0,0,0); - layout->setSpacing(DialpadComponentMargin* unit); - // layout parameters - mBackspace->setPreferredWidth(DialpadBackspaceWidth * unit); - mBackspace->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Expanding); setLayout(layout); + updateLayout(mMainWindow.orientation()); } DialpadInputField::~DialpadInputField() @@ -92,6 +94,26 @@ return *mBackspace; } +void DialpadInputField::updateLayout(Qt::Orientation orientation) +{ + Q_ASSERT(layout()); + + qreal unit = HbDeviceProfile::profile(&mMainWindow).unitValue(); + + QGraphicsLinearLayout* mainLayout = + static_cast(layout()); + + mainLayout->setSpacing(DialpadComponentMargin* unit); + + if (orientation==Qt::Vertical) { + mHeight = DialpadInputFieldHeightV * unit; + mBackspace->setPreferredWidth(DialpadBackspaceWidthV * unit); + } else { + mHeight = DialpadInputFieldHeightH * unit; + mBackspace->setPreferredWidth(DialpadBackspaceWidthH * unit); + } +} + void DialpadInputField::onEditorContentChanged() { mBackspace->setEnabled(mNumberEditor->text().length()); diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/src/dialpadkeypad.cpp --- a/telutils/dialpad/src/dialpadkeypad.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/dialpad/src/dialpadkeypad.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -11,61 +11,34 @@ * * Contributors: * -* Description: Dialpad keypad +* Description: Number grid and dial key. * */ -#include #include -#include -#include -#include -#include -#include -#include #include -#include #include -#include #include +#include #include "dialpadnumericbutton.h" #include "dialpadkeypad.h" #include "dialpadbutton.h" #include "dialpadinputfield.h" +#include "dialpadnumericbuttongrid.h" -static const int DialpadRowCount = 4; -static const int DialpadColumnCount = 3; +static const int DialpadKeypadRowCount = 5; static const QLatin1String handsetIcon("qtg_mono_call"); -static const QLatin1String vmbxIcon("qtg_mono_voice_mailbox"); -// layout values in units -static const qreal DialpadPrimaryTextSize = 5.5; -static const qreal DialpadSecondaryTextSize = 4.0; -static const qreal DialpadIconSize = 4.0; -static const qreal DialpadPrimaryTextLeftMargin = 1.5; -static const qreal DialpadPrimarySecondaryMargin = 0.75; - -static const int DialpadKeyCodeTable[DialpadRowCount*DialpadColumnCount] = -{ - Qt::Key_1, Qt::Key_2, Qt::Key_3, - Qt::Key_4, Qt::Key_5, Qt::Key_6, - Qt::Key_7, Qt::Key_8, Qt::Key_9, - Qt::Key_Asterisk, Qt::Key_0, Qt::Key_NumberSign - // Qt::Key_Yes and Qt::Key_BackSpace are handled separately -}; DialpadKeypad::DialpadKeypad( const HbMainWindow& mainWindow, DialpadInputField& inputField, QGraphicsItem* parent) : - HbInputButtonGroup(parent), + HbWidget(parent), mMainWindow(mainWindow), - mInputField(inputField), - mMaxPrimaryLineWidth(0) + mInputField(inputField) { - setObjectName("keypad"); - // create clicked signal mapper mKeyClickedSignalMapper = new QSignalMapper(this); connect(mKeyClickedSignalMapper,SIGNAL(mapped(int)), @@ -77,42 +50,11 @@ mKeyClickedSignalMapper->setMapping(&mInputField.backspaceButton(), Qt::Key_Backspace); - // create keypad - setGridSize(QSize(DialpadColumnCount, DialpadRowCount)); - setButtonBorderSize(0); - - QList buttons; - - for (int i = 0; i < DialpadRowCount * DialpadColumnCount; ++i) { - DialpadNumericButton *item = new DialpadNumericButton( - DialpadKeyCodeTable[i], - QPoint(i % DialpadColumnCount, i / DialpadColumnCount)); - buttons.append(item); - - item->setType(HbInputButton::ButtonTypeNormal); - } - - setButtons(buttons); - - // connect keypad signals - QObject::connect(this, SIGNAL(buttonPressed(const QKeyEvent&)), - this, SLOT(sendKeyPressEvent(const QKeyEvent&))); - QObject::connect(this, SIGNAL(buttonReleased(const QKeyEvent&)), - this, SLOT(sendKeyReleaseEvent(const QKeyEvent&))); - QObject::connect(this, SIGNAL(buttonLongPressed(const QKeyEvent&)), - this, SLOT(sendLongPressEvent(const QKeyEvent&))); - QObject::connect(this, SIGNAL(pressedButtonChanged(const QKeyEvent&, - const QKeyEvent&)), - this, SLOT(handleKeyChangeEvent(const QKeyEvent&, - const QKeyEvent&))); - - // create call button (parent layouts this) - mCallButton = new DialpadButton(parent); + // create call button + mCallButton = new DialpadButton(this); + mCallButton->setObjectName("callButton"); mCallButton->setButtonType(DialpadButton::CallButton); mCallButton->setIcon(HbIcon(handsetIcon)); - QString buttonName; - buttonName.setNum(Qt::Key_Yes); - mCallButton->setObjectName(buttonName); connect(mCallButton,SIGNAL(clicked()), mKeyClickedSignalMapper,SLOT(map())); connect(mCallButton,SIGNAL(longPress(QPointF)), @@ -120,93 +62,42 @@ mKeyClickedSignalMapper->setMapping(mCallButton, Qt::Key_Yes); - // set button texts - setButtonTexts(); - // set button icons - button(0)->setIcon(HbIcon(vmbxIcon)); - - // update button texts when input language is changed - connect(HbInputSettingProxy::instance(), - SIGNAL(globalInputLanguageChanged(HbInputLanguage)), - this,SLOT(setButtonTexts())); - - updateColorArray(); - - mUnit = HbDeviceProfile::profile(this).unitValue(); + // create numeric button grid + mNumericButtonGrid = new DialpadNumericButtonGrid(mMainWindow,this); + QObject::connect(mNumericButtonGrid, + SIGNAL(buttonPressed(const QKeyEvent&)), + this, SLOT(sendKeyPressEvent(const QKeyEvent&))); + QObject::connect(mNumericButtonGrid, + SIGNAL(buttonReleased(const QKeyEvent&)), + this, SLOT(sendKeyReleaseEvent(const QKeyEvent&))); + QObject::connect(mNumericButtonGrid, + SIGNAL(buttonLongPressed(const QKeyEvent&)), + this, SLOT(sendLongPressEvent(const QKeyEvent&))); + QObject::connect(mNumericButtonGrid, + SIGNAL(pressedButtonChanged(const QKeyEvent&, + const QKeyEvent&)), + this, SLOT(handleKeyChangeEvent(const QKeyEvent&, + const QKeyEvent&))); } DialpadKeypad::~DialpadKeypad() { } -void DialpadKeypad::setButtonTexts() +bool DialpadKeypad::isCallButtonEnabled() const { - HbInputLanguage inputLanguage = - HbInputSettingProxy::instance()->globalInputLanguage(); - const HbKeymap *keymap = - HbKeymapFactory::instance()->keymap(inputLanguage.language()); - - mGeneratedChar.clear(); - - if (keymap) { - int buttonCount = (DialpadRowCount*DialpadColumnCount); - for (int i = 0; i < buttonCount; i++) { - int keyCode = DialpadKeyCodeTable[i]; - - if (keyCode == Qt::Key_Asterisk) { - // asterisk is not localized - QChar asterisk('*'); - button(i)->setText(asterisk); - button(i)->setSecondaryText(QLatin1String("+")); - mGeneratedChar.insert(Qt::Key_Asterisk, asterisk); - continue; - } - - if (keyCode == Qt::Key_NumberSign) { - // number sign is not localized - QChar numberSign('#'); - button(i)->setText(numberSign); - mGeneratedChar.insert(Qt::Key_NumberSign, numberSign); - continue; - } + return mCallButton->isEnabled(); +} - int index = i; - if (keyCode==Qt::Key_0) { - index = i-1; - } - - const HbMappedKey *key = - keymap->keyForIndex(HbKeyboardVirtual12Key, index); - - if (key) { - QChar numberChar = - HbInputUtils::findFirstNumberCharacterBoundToKey( - key, - inputLanguage.language(), - HbInputUtils::inputDigitType(inputLanguage.language())); - - // button text - button(i)->setText(numberChar); - mGeneratedChar.insert(keyCode,numberChar); +void DialpadKeypad::setCallButtonEnabled(bool enabled) +{ + mCallButton->setEnabled(enabled); +} - // additional text (letters) - int numberOfCharacters; - if (keyCode==Qt::Key_7 || keyCode == Qt::Key_9) { - numberOfCharacters = 4; - } else if (keyCode==Qt::Key_0||keyCode==Qt::Key_1) { - numberOfCharacters = 0; - } else { - numberOfCharacters = 3; - } - - QString characters = key->characters(HbModifierNone); - - if (numberOfCharacters!=0 && keyCode!=Qt::Key_1) { - button(i)->setSecondaryText(characters.left(numberOfCharacters)); - } - } - } - } +void DialpadKeypad::resetButtons() +{ + mNumericButtonGrid->resetButtons(); + mCallButton->setDown(false); } void DialpadKeypad::handleKeyClicked(int key) @@ -226,21 +117,19 @@ void DialpadKeypad::sendKeyEventToEditor(QEvent::Type type, int key) { // send key event to editor - QKeyEvent keyEvent(type, key, Qt::NoModifier, mGeneratedChar.value(key)); + QKeyEvent keyEvent(type, key, Qt::NoModifier, + mNumericButtonGrid->inputCharacter(key)); HbApplication::sendEvent(&mInputField.editor(), &keyEvent); } void DialpadKeypad::sendKeyPressEvent(const QKeyEvent& event) { - updateButtonLabels(); mPressedNumericKey = event.key(); postKeyEvent(QEvent::KeyPress, event.key()); } void DialpadKeypad::sendKeyReleaseEvent(const QKeyEvent& event) { - updateButtonLabels(); - if (mPressedNumericKey) { // short press, update editor here sendKeyEventToEditor(QEvent::KeyPress, event.key()); @@ -262,316 +151,21 @@ Q_UNUSED(pressEvent) postKeyEvent(QEvent::KeyRelease, releaseEvent.key()); - cancelButtonPress(); -} - -void DialpadKeypad::setCallButtonEnabled(bool enabled) -{ - mCallButton->setEnabled(enabled); -} - -void DialpadKeypad::resetButtons() -{ - cancelButtonPress(); - mCallButton->setDown(false); -} - -DialpadButton& DialpadKeypad::callButton() const -{ - return *mCallButton; -} - -DialpadNumericButton* DialpadKeypad::button(int i) const -{ - return static_cast(HbInputButtonGroup::button(i)); -} - -void DialpadKeypad::updateButtonLabels() -{ - // update numeric buttons according to button state (pressed/released) - updateIconColor(); - updateTextLayouts(rect().size()); -} - -void DialpadKeypad::paint( - QPainter* painter, - const QStyleOptionGraphicsItem* option, - QWidget* widget) -{ - Q_UNUSED(option); - Q_UNUSED(widget); - - // Paints empty buttons - HbInputButtonGroup::paint(painter,option,widget); - - qreal cellWidth = boundingRect().width() / gridSize().width(); - qreal cellHeight = boundingRect().height() / gridSize().height(); - - // Draw icons - for (int i = 0; i < DialpadRowCount * DialpadColumnCount; i++) { - DialpadNumericButton *item = button(i); - - if (!item->icon().isNull()) { - // icon is centered to button - qreal x = (item->position().x() * cellWidth) + (cellWidth / 2) - - ((DialpadIconSize * mUnit) / 2); - qreal y = (item->position().y() * cellHeight) + (cellHeight / 2) - - ((DialpadIconSize * mUnit) / 2); - - qreal width = DialpadIconSize * mUnit; - qreal height = DialpadIconSize * mUnit; - - Qt::Alignment alignment = - static_cast(Qt::AlignVCenter | Qt::AlignHCenter); - item->icon().paint(painter, - QRectF(x,y,width,height), - Qt::KeepAspectRatio, - alignment); - } - } - - // Draw texts - QPen origPen = painter->pen(); - for (int i = 0; i < mTextLayouts.count(); ++i) { - if (i==SecondaryText) { - // dimmed in normal state - painter->setPen(mColors.at(Pressed+1)); - } else { - // otherwise normal or pressed color - painter->setPen(mColors.at(i/TextTypeCount)); - } - mTextLayouts.at(i)->draw(painter, QPointF(0, 0)); - } - painter->setPen(origPen); -} - -void DialpadKeypad::updateColorArray() -{ - mColors.clear(); - - QColor normalColor = HbColorScheme::color("qtc_input_button_normal"); - mColors.insert(Normal, normalColor); - - QColor pressedColor = HbColorScheme::color("qtc_input_button_pressed"); - mColors.insert(Pressed, pressedColor); - - // this is used for alphabets shown dimmed, use alpha until exact color - // is specified - QColor disabledColor = HbColorScheme::color("qtc_input_button_normal"); - disabledColor.setAlpha(128); - mColors.insert(Pressed+1, disabledColor); -} - -void DialpadKeypad::updateIconColor() -{ - for (int i = 0; i < (DialpadRowCount * DialpadColumnCount); i++) { - DialpadNumericButton *item = button(i); - - if (item->state()==HbInputButton::ButtonStatePressed) { - item->icon().setColor(mColors.at(Pressed)); - } else { - item->icon().setColor(mColors.at(Normal)); - } - } -} - -void DialpadKeypad::cancelButtonPress() -{ - HbInputButtonGroup::cancelButtonPress(); - updateButtonLabels(); + mNumericButtonGrid->resetButtons(); } void DialpadKeypad::setGeometry(const QRectF &rect) { - HbInputButtonGroup::setGeometry(rect); - updateTextLayouts(rect.size()); -} - -void DialpadKeypad::changeEvent(QEvent *event) -{ - HbInputButtonGroup::changeEvent(event); - - if (event->type() == HbEvent::ThemeChanged) { - updateColorArray(); - updateIconColor(); - } -} - -void DialpadKeypad::updateTextLayouts(const QSizeF &size) -{ - if (!size.width() && !size.height()) { - return; - } - - // get normal and pressed state texts - QList textContent; - resolveTextContent(textContent); - - // layout the texts - createTextLayouts(size, textContent); -} - -void DialpadKeypad::resolveTextContent(QList &content) -{ - QString normalState; - QString normalStateSecondary; - QString pressedState; - QString pressedStateSecondary; - - for (int i = 0; i < (DialpadRowCount*DialpadColumnCount); i++) { - DialpadNumericButton *item = button(i); - if (item->state()==HbInputButton::ButtonStatePressed) { - if (item->text().length()) { - pressedState.append(item->text()); - pressedState.append(QChar(QChar::LineSeparator)); - } + HbWidget::setGeometry(rect); - if (item->secondaryText().length()) { - pressedStateSecondary.append(item->secondaryText()); - pressedStateSecondary.append(QChar(QChar::LineSeparator)); - } - } else { // ButtonStateNormal - if (item->text().length()) { - normalState.append(item->text()); - normalState.append(QChar(QChar::LineSeparator)); - } - - if (item->secondaryText().length()) { - normalStateSecondary.append(item->secondaryText()); - normalStateSecondary.append(QChar(QChar::LineSeparator)); - } - } - } - - content.insert(PrimaryText, normalState); - content.insert(SecondaryText, normalStateSecondary); - content.insert(TextTypeCount + Pressed, pressedState); - content.insert(StateCount + SecondaryText, pressedStateSecondary); -} - -void DialpadKeypad::createTextLayouts( - const QSizeF &size, const QList &content) -{ - // clear old layouts - qDeleteAll(mTextLayouts); - mTextLayouts.clear(); - - if (content.count()==2) { - // line width is measured only when all buttons are in normal state - mMaxPrimaryLineWidth = 0; - } - - QFont primaryfFont = HbFontSpec(HbFontSpec::Primary).font(); - primaryfFont.setPixelSize(DialpadPrimaryTextSize * mUnit); - - QFont secondaryFont = HbFontSpec(HbFontSpec::Secondary).font(); - secondaryFont.setPixelSize(DialpadSecondaryTextSize * mUnit); - - for (int i=0; i < (StateCount*TextTypeCount); i++ ) { - QString text = content.at(i); - - if (!text.isNull()) { - QTextLayout* textLayout; - int type; + // make button heights uniform + qreal buttonHeight = rect.height()/DialpadKeypadRowCount; - if (i%TextTypeCount) { - textLayout = new QTextLayout(text,secondaryFont); - type = SecondaryText; - } else { - textLayout = new QTextLayout(text,primaryfFont); - type = PrimaryText; - } - - mTextLayouts.append(textLayout); - - textLayout->beginLayout(); - - int state = (i>=TextTypeCount) ? Pressed : Normal; - - layoutTextLines(size,*textLayout,state,type); - - textLayout->endLayout(); - - textLayout->setCacheEnabled(true); - } - } -} - -void DialpadKeypad::layoutTextLines( - const QSizeF &size, - QTextLayout &textLayout, - int state, - int type) -{ - QFontMetricsF fontMetrics(textLayout.font()); - qreal textHeight = fontMetrics.height(); - - qreal cellWidth = size.width() / gridSize().width(); - qreal cellHeight = size.height() / gridSize().height(); - qreal maxLineWidth = 0; - - for (int j = 0; j < (DialpadRowCount*DialpadColumnCount); j++) { - DialpadNumericButton *item = button(j); - - if ((type==PrimaryText && item->text().isNull()) || - (type==SecondaryText && item->secondaryText().isNull())) { - continue; // no text for this button -> next button - } - - if ( ( state==Normal && - item->state()==HbInputButton::ButtonStateReleased ) || - ( state==Pressed && - item->state()==HbInputButton::ButtonStatePressed ) ) { - - QTextLine line = textLayout.createLine(); + mNumericButtonGrid->setPos(QPointF(0,0)); + QSizeF gridSize(rect.size()); + gridSize.setHeight(gridSize.height()-buttonHeight); + mNumericButtonGrid->resize(gridSize); - qreal textPositionX = 0; - qreal textPositionY = 0; - - if (line.isValid()) { - line.setNumColumns(item->text().length()); - // layout text line - if (type==SecondaryText) { - if (j==9) { - // + is centered to button - qreal lineWidth = fontMetrics.width(item->text()); - textPositionX = (item->position().x() * cellWidth) + - (cellWidth / 2) - - (lineWidth / 2); - textPositionY = (item->position().y() + - (0.5 * item->size().height())) * - cellHeight - (0.5 * textHeight); - - } else { - textPositionX = (item->position().x() * cellWidth) + - (DialpadPrimaryTextLeftMargin * mUnit) + - mMaxPrimaryLineWidth + - (DialpadPrimarySecondaryMargin * mUnit) - + buttonBorderSize(); - textPositionY = (item->position().y() + - (0.5 * item->size().height())) * - cellHeight - (0.5 * textHeight); - } - } else { - textPositionX = (item->position().x() * cellWidth) + - (DialpadPrimaryTextLeftMargin * mUnit) - + buttonBorderSize(); - textPositionY = (item->position().y() + - (0.5 * item->size().height())) * - cellHeight - (0.5 * textHeight); - - // store line width, for drawing secondary text - qreal lineWidth = fontMetrics.width(item->text()); - if (mMaxPrimaryLineWidth == 0 && (j>0 && j<10) && - lineWidth > maxLineWidth) { - maxLineWidth = lineWidth; - } - } - } - - line.setPosition(QPointF(textPositionX, textPositionY)); - } - } - - mMaxPrimaryLineWidth = maxLineWidth; + mCallButton->setPos(QPointF(0,gridSize.height())); + mCallButton->resize(rect.width(),buttonHeight); } diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/src/dialpadnumericbutton.cpp --- a/telutils/dialpad/src/dialpadnumericbutton.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/dialpad/src/dialpadnumericbutton.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -57,3 +57,13 @@ { return mSecondaryText; } + +void DialpadNumericButton::setSecondary2ndRowText(const QString& text) +{ + mSecondaryTextRow2 = text; +} + +QString DialpadNumericButton::secondary2ndRowText() const +{ + return mSecondaryTextRow2; +} diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/src/dialpadnumericbuttongrid.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telutils/dialpad/src/dialpadnumericbuttongrid.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -0,0 +1,594 @@ +/*! +* 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: Implements grid of numeric buttons +* +*/ + +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "dialpadnumericbutton.h" +#include "dialpadnumericbuttongrid.h" + +static const int DialpadRowCount = 4; +static const int DialpadColumnCount = 3; +// layout values in units +static const qreal DialpadPrimaryTextSizeV = 5.25; +static const qreal DialpadPrimaryTextSizeH = 4.5; +static const qreal DialpadSecondaryTextSizeV = 3.8; +static const qreal DialpadSecondaryTextSizeH = 3.3; +static const qreal DialpadSecondaryTextSize2RowsV = 3.0; +static const qreal DialpadSecondaryTextSize2RowsH = 2.6; +static const qreal DialpadIconSizeV = 5.0; +static const qreal DialpadIconSizeH = 4.25; +static const qreal DialpadPrimaryTextLeftMargin = 1.5; +static const qreal DialpadPrimarySecondaryMargin = 1.0; + +static const QLatin1String vmbxIcon("qtg_mono_voice_mailbox"); + +static const int DialpadKeyCodeTable[DialpadRowCount*DialpadColumnCount] = +{ + Qt::Key_1, Qt::Key_2, Qt::Key_3, + Qt::Key_4, Qt::Key_5, Qt::Key_6, + Qt::Key_7, Qt::Key_8, Qt::Key_9, + Qt::Key_Asterisk, Qt::Key_0, Qt::Key_NumberSign +}; + +DialpadNumericButtonGrid::DialpadNumericButtonGrid( + const HbMainWindow& mainWindow, + QGraphicsItem* parent) : + HbInputButtonGroup(parent), + mMainWindow(mainWindow), + mUnit(.0), + mMaxPrimaryLineWidth(.0), + mPrimaryTextBaseline(.0) +{ + setObjectName("numericButtons"); + + // create buttons + setGridSize(QSize(DialpadColumnCount, DialpadRowCount)); + setButtonBorderSize(0); + + QList buttons; + + for (int i = 0; i < DialpadRowCount * DialpadColumnCount; ++i) { + DialpadNumericButton *item = new DialpadNumericButton( + DialpadKeyCodeTable[i], + QPoint(i % DialpadColumnCount, i / DialpadColumnCount)); + buttons.append(item); + + item->setType(HbInputButton::ButtonTypeNormal); + } + + setButtons(buttons); + + // connect signals from buttons + QObject::connect(this, SIGNAL(buttonPressed(const QKeyEvent&)), + this, SLOT(updateButtonLabels())); + QObject::connect(this, SIGNAL(buttonReleased(const QKeyEvent&)), + this, SLOT(updateButtonLabels())); + QObject::connect(this, SIGNAL(pressedButtonChanged(const QKeyEvent&, + const QKeyEvent&)), + this, SLOT(updateButtonLabels())); + + // update colors + updateColorArray(); + // set button texts + setButtonTexts(); + // set button icons + button(0)->setIcon(HbIcon(vmbxIcon)); + + // update button texts when input language is changed + connect(HbInputSettingProxy::instance(), + SIGNAL(globalInputLanguageChanged(HbInputLanguage)), + this, + SLOT(setButtonTexts())); +} + +DialpadNumericButtonGrid::~DialpadNumericButtonGrid() +{ +} + +void DialpadNumericButtonGrid::resetButtons() +{ + cancelButtonPress(); +} + +QChar DialpadNumericButtonGrid::inputCharacter(int keyCode) const +{ + return mGeneratedChar.value(keyCode); +} + +void DialpadNumericButtonGrid::setButtonTexts() +{ + HbInputLanguage inputLanguage = + HbInputSettingProxy::instance()->globalInputLanguage(); + const HbKeymap *keymap = + HbKeymapFactory::instance()->keymap(inputLanguage.language()); + + mGeneratedChar.clear(); + + if (keymap) { + int buttonCount = (DialpadRowCount*DialpadColumnCount); + for (int i = 0; i < buttonCount; i++) { + int keyCode = DialpadKeyCodeTable[i]; + + if (keyCode == Qt::Key_Asterisk) { + // asterisk is not localized + QChar asterisk('*'); + button(i)->setText(asterisk); + button(i)->setSecondaryText(QLatin1String("+")); + mGeneratedChar.insert(Qt::Key_Asterisk, asterisk); + continue; + } + + if (keyCode == Qt::Key_NumberSign) { + // number sign is not localized + QChar numberSign('#'); + button(i)->setText(numberSign); + mGeneratedChar.insert(Qt::Key_NumberSign, numberSign); + continue; + } + + int index = i; + if (keyCode==Qt::Key_0) { + index = i-1; + } + + const HbMappedKey *keyLabels = + keymap->keyForIndex(HbKeyboardVirtual12KeyLabels, index); + + // + // set digits + // todo: input digit depend on digit type setting + // QChar numberChar(QLocale::system().zeroDigit().unicode()+ + // (keyCode-0x30)); + // + QChar numberChar; + if (keyLabels && keyLabels->chars.count()>=1 && + keyLabels->chars.at(0).length()) { + numberChar = keyLabels->chars.at(0).at(0); + } else { + // fallback to latin + numberChar = QChar(keyCode); + } + + button(i)->setText(numberChar); + mGeneratedChar.insert(keyCode,numberChar); + + // + // set alphabets + // + if (keyLabels && keyLabels->chars.count()>=2) { + button(i)->setSecondaryText(keyLabels->chars.at(1)); + if (keyLabels->chars.count()>=4) { + button(i)->setSecondary2ndRowText(keyLabels->chars.at(3)); + } else { + button(i)->setSecondary2ndRowText(QString()); + } + } + } + + updateButtonLabels(); + } +} + +DialpadNumericButton* DialpadNumericButtonGrid::button(int i) const +{ + return static_cast(HbInputButtonGroup::button(i)); +} + +void DialpadNumericButtonGrid::updateButtonLabels() +{ + // update numeric buttons according to button state (pressed/released) + updateIconColor(); + updateTextLayouts(rect().size()); + update(); +} + +void DialpadNumericButtonGrid::paint( + QPainter* painter, + const QStyleOptionGraphicsItem* option, + QWidget* widget) +{ + Q_UNUSED(option); + Q_UNUSED(widget); + + // Paints empty buttons + HbInputButtonGroup::paint(painter,option,widget); + + qreal cellWidth = boundingRect().width() / gridSize().width(); + qreal cellHeight = boundingRect().height() / gridSize().height(); + + for (int i = 0; i < DialpadRowCount * DialpadColumnCount; i++) { + DialpadNumericButton *item = button(i); + + if (!item->icon().isNull()) { + // same as secondary text + qreal x = (item->position().x() * cellWidth) + + (DialpadPrimaryTextLeftMargin * mUnit) + + (DialpadPrimarySecondaryMargin * mUnit) + + mMaxPrimaryLineWidth; + // top align with some margin + qreal y = item->position().y() * cellHeight + (cellHeight / 20.0); + + qreal width = item->icon().size().width(); + qreal height = item->icon().size().height(); + + Qt::Alignment alignment = + static_cast(Qt::AlignTop | Qt::AlignLeft); + item->icon().paint(painter, + QRectF(x,y,width,height), + Qt::KeepAspectRatio, + alignment); + } + } + + // Draw texts + QPen origPen = painter->pen(); + for (int i = 0; i < mTextLayouts.count(); ++i) { + if (i==SecondaryText) { + // dimmed in normal state + painter->setPen(mColors.at(Pressed+1)); + } else { + // otherwise normal or pressed color + painter->setPen(mColors.at(i/TextTypeCount)); + } + mTextLayouts.at(i)->draw(painter, QPointF(0, 0)); + } + painter->setPen(origPen); +} + +void DialpadNumericButtonGrid::updateColorArray() +{ + mColors.clear(); + + QColor normalColor = HbColorScheme::color("qtc_input_button_normal"); + mColors.insert(Normal, normalColor); + + QColor pressedColor = HbColorScheme::color("qtc_input_button_pressed"); + mColors.insert(Pressed, pressedColor); + + // this is used for alphabets shown dimmed, use alpha until exact color + // is specified + QColor disabledColor = HbColorScheme::color("qtc_input_button_normal"); + disabledColor.setAlpha(128); + mColors.insert(Pressed+1, disabledColor); +} + +void DialpadNumericButtonGrid::updateIconColor() +{ + for (int i = 0; i < (DialpadRowCount * DialpadColumnCount); i++) { + DialpadNumericButton *item = button(i); + + if (item->state()==HbInputButton::ButtonStatePressed) { + item->icon().setColor(mColors.at(Pressed)); + } else { + item->icon().setColor(mColors.at(Normal)); + } + } +} + +void DialpadNumericButtonGrid::cancelButtonPress() +{ + HbInputButtonGroup::cancelButtonPress(); + updateButtonLabels(); +} + + +void DialpadNumericButtonGrid::setGeometry(const QRectF &rect) +{ + HbInputButtonGroup::setGeometry(rect); + + mUnit = HbDeviceProfile::profile(&mMainWindow).unitValue(); + + updateTextLayouts(rect.size()); + + updateIconSizes(); +} + +void DialpadNumericButtonGrid::updateIconSizes() +{ + qreal width = mMainWindow.orientation() == Qt::Vertical ? + DialpadIconSizeV : DialpadIconSizeH; + width *= mUnit; + + for (int i = 0; i < DialpadRowCount * DialpadColumnCount; i++) { + DialpadNumericButton *item = button(i); + + if (!item->icon().isNull()) { + item->icon().setWidth(width); + } + } +} + +void DialpadNumericButtonGrid::changeEvent(QEvent *event) +{ + HbInputButtonGroup::changeEvent(event); + + if (event->type() == HbEvent::ThemeChanged) { + updateColorArray(); + updateIconColor(); + } +} + +void DialpadNumericButtonGrid::updateTextLayouts(const QSizeF &size) +{ + if (!size.width() && !size.height()) { + return; + } + + // get normal and pressed state texts + QList textContent; + bool useTwoRows; + + resolveTextContent(textContent, useTwoRows); + + // layout the texts + createTextLayouts(size, textContent, useTwoRows); +} + +void DialpadNumericButtonGrid::resolveTextContent( + QList &content, bool& useTwoRows) +{ + QString normalState; + QString normalStateSecondary; + QString pressedState; + QString pressedStateSecondary; + + useTwoRows = false; + + for (int i = 0; i < (DialpadRowCount*DialpadColumnCount); i++) { + DialpadNumericButton *item = button(i); + if (item->state()==HbInputButton::ButtonStatePressed) { + if (item->text().length()) { + pressedState.append(item->text()); + pressedState.append(QChar(QChar::LineSeparator)); + } + + if (item->secondaryText().length()) { + pressedStateSecondary.append(item->secondaryText()); + pressedStateSecondary.append(QChar(QChar::LineSeparator)); + if (item->secondary2ndRowText().length()) { + pressedStateSecondary.append(item->secondary2ndRowText()); + pressedStateSecondary.append(QChar(QChar::LineSeparator)); + useTwoRows = true; + } + } + } else { // ButtonStateNormal + if (item->text().length()) { + normalState.append(item->text()); + normalState.append(QChar(QChar::LineSeparator)); + } + + if (item->secondaryText().length()) { + normalStateSecondary.append(item->secondaryText()); + normalStateSecondary.append(QChar(QChar::LineSeparator)); + if (item->secondary2ndRowText().length()) { + normalStateSecondary.append(item->secondary2ndRowText()); + normalStateSecondary.append(QChar(QChar::LineSeparator)); + useTwoRows = true; + } + } + } + } + + content.insert(PrimaryText, normalState); + content.insert(SecondaryText, normalStateSecondary); + content.insert(TextTypeCount + Pressed, pressedState); + content.insert(StateCount + SecondaryText, pressedStateSecondary); +} + +void DialpadNumericButtonGrid::createTextLayouts( + const QSizeF &size, const QList &content, bool useTwoRows) +{ + // clear old layouts + qDeleteAll(mTextLayouts); + mTextLayouts.clear(); + + if(!isButtonPressed()) { + mMaxPrimaryLineWidth = 0; + } + + QFont primaryFont = HbFontSpec(HbFontSpec::Primary).font(); + qreal primarySize = mMainWindow.orientation() == Qt::Vertical ? + DialpadPrimaryTextSizeV : + DialpadPrimaryTextSizeH; + primaryFont.setPixelSize(primarySize * mUnit); + + QFont secondaryFont = HbFontSpec(HbFontSpec::Secondary).font(); + if (useTwoRows) { + qreal secondarySize = mMainWindow.orientation() == Qt::Vertical ? + DialpadSecondaryTextSize2RowsV : + DialpadSecondaryTextSize2RowsH; + secondaryFont.setPixelSize(secondarySize * mUnit); + } else { + qreal secondarySize = mMainWindow.orientation() == Qt::Vertical ? + DialpadSecondaryTextSizeV : + DialpadSecondaryTextSizeH; + secondaryFont.setPixelSize(secondarySize * mUnit); + } + + for (int i=0; i < (StateCount*TextTypeCount); i++ ) { + QString text = content.at(i); + + if (!text.isNull()) { + QTextLayout* textLayout; + int type; + + if (i%TextTypeCount) { + textLayout = new QTextLayout(text,secondaryFont); + type = SecondaryText; + } else { + textLayout = new QTextLayout(text,primaryFont); + type = PrimaryText; + } + + mTextLayouts.append(textLayout); + + textLayout->beginLayout(); + + int state = (i>=TextTypeCount) ? Pressed : Normal; + + layoutTextLines(size,*textLayout,state,type,useTwoRows); + + textLayout->endLayout(); + + textLayout->setCacheEnabled(true); + } + } +} + +void DialpadNumericButtonGrid::layoutTextLines( + const QSizeF &size, + QTextLayout &textLayout, + int state, + int type, + bool useTwoRows) +{ + QFontMetricsF fontMetrics(textLayout.font()); + qreal textHeight = fontMetrics.height(); + qreal textDescent = fontMetrics.descent(); + + qreal cellWidth = size.width() / gridSize().width(); + qreal cellHeight = size.height() / gridSize().height(); + qreal maxLineWidth = 0; + + for (int j = 0; j < (DialpadRowCount*DialpadColumnCount); j++) { + DialpadNumericButton *item = button(j); + + if ((type==PrimaryText && item->text().isNull()) || + (type==SecondaryText && item->secondaryText().isNull())) { + continue; // no text for this button -> next button + } + + if ( ( state==Normal && + item->state()==HbInputButton::ButtonStateReleased ) || + ( state==Pressed && + item->state()==HbInputButton::ButtonStatePressed ) ) { + // layout text line + if (type==SecondaryText) { + layoutSecondaryText(textLayout,*item,cellWidth, + cellHeight,textHeight,textDescent, + useTwoRows); + } else { + layoutPrimaryText(textLayout,*item,cellWidth, + cellHeight,textHeight); + + // store line width, for drawing secondary text + qreal lineWidth = fontMetrics.width(item->text()); + if (mMaxPrimaryLineWidth == 0 && (j>0 && j<10) && + lineWidth > maxLineWidth) { + maxLineWidth = lineWidth; + mPrimaryTextBaseline = textHeight/2 - textDescent; + } + } + } + } + + if (maxLineWidth!=0) { + mMaxPrimaryLineWidth = maxLineWidth; + } +} + +void DialpadNumericButtonGrid::layoutPrimaryText( + QTextLayout& layout, + DialpadNumericButton& button, + qreal cellWidth, + qreal cellHeight, + qreal textHeight) const +{ + QTextLine line = layout.createLine(); + line.setNumColumns(button.text().length()); + qreal textPositionX = (button.position().x() * cellWidth) + + (DialpadPrimaryTextLeftMargin * mUnit) + + buttonBorderSize(); + qreal textPositionY = (button.position().y() + + (0.5 * button.size().height())) * + cellHeight - (0.5 * textHeight); + line.setPosition(QPointF(textPositionX, textPositionY)); +} + +void DialpadNumericButtonGrid::layoutSecondaryText( + QTextLayout& layout, + DialpadNumericButton& button, + qreal cellWidth, + qreal cellHeight, + qreal textHeight, + qreal textDescent, + bool useTwoRows) const +{ + qreal textPositionX; + qreal textPositionY; + + QTextLine line = layout.createLine(); + + if (useTwoRows) { + line.setNumColumns(button.secondaryText().length()); + + textPositionX = (button.position().x() * cellWidth) + + (DialpadPrimaryTextLeftMargin * mUnit) + + mMaxPrimaryLineWidth + + (DialpadPrimarySecondaryMargin * mUnit) + + buttonBorderSize(); + + if (button.secondary2ndRowText().length()) { + textPositionY = (button.position().y() + + (0.5 * button.size().height())) * + cellHeight; + + QTextLine line2 = layout.createLine(); + line2.setNumColumns(button.secondary2ndRowText().length()); + line2.setPosition(QPointF(textPositionX,textPositionY-textHeight)); + } else { + textPositionY = (button.position().y() + + (0.5 * button.size().height())) * + cellHeight - (0.5 * textHeight); + } + } else { + line.setNumColumns(button.secondaryText().length()); + textPositionX = (button.position().x() * cellWidth) + + (DialpadPrimaryTextLeftMargin * mUnit) + + mMaxPrimaryLineWidth + + (DialpadPrimarySecondaryMargin * mUnit) + + buttonBorderSize(); + textPositionY = (button.position().y() + + (0.5 * button.size().height())) * + cellHeight + mPrimaryTextBaseline - + (textHeight - textDescent); + } + line.setPosition(QPointF(textPositionX, textPositionY)); +} + +bool DialpadNumericButtonGrid::isButtonPressed() const +{ + bool pressed = false; + + for (int i = 0; i < (DialpadRowCount*DialpadColumnCount); i++) { + if (button(i)->state()==HbInputButton::ButtonStatePressed) { + pressed = true; + break; + } + } + + return pressed; +} diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp --- a/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -26,13 +26,15 @@ #include #include #include +#include +#include #include "dialpadtestview.h" #include "dialpad.h" #include "dialpadkeyhandler.h" DialpadTestView::DialpadTestView( HbMainWindow& mainWindow ) : - mMainWindow(mainWindow), mTapOutsideDismiss(0) + mMainWindow(mainWindow), mTapOutsideDismiss(0), mArabicMode(0), mArabicDigit(0) { setTitle("DialpadTest"); @@ -55,6 +57,10 @@ menu()->addAction("Tap outside dismiss",this,SLOT(setTapOutsideDismiss())); + menu()->addAction("Arabic mode",this,SLOT(setArabicMode())); + + menu()->addAction("Arabic digit",this,SLOT(setArabicDigit())); + // create view widget (recent calls list mockup) createListWidget(); @@ -70,8 +76,7 @@ mLongPressTimer->setSingleShot(true); connect(mLongPressTimer,SIGNAL(timeout()),this,SLOT(handleLongKeyPress())); - mKeyhandler = new DialpadKeyHandler(mDialpad, mMainWindow, this); - + // mKeyhandler = new DialpadKeyHandler(mDialpad, mMainWindow, this); mMainWindow.installEventFilter(this); } @@ -225,3 +230,28 @@ mTapOutsideDismiss = !mTapOutsideDismiss; mDialpad->setTapOutsideDismiss(mTapOutsideDismiss); } + +void DialpadTestView::setArabicMode() +{ + mArabicMode = !mArabicMode; + + if (mArabicMode) { + HbInputLanguage lang(QLocale::Arabic); + HbInputSettingProxy::instance()->setGlobalInputLanguage(lang); + } else { + HbInputLanguage lang(QLocale::English, QLocale::UnitedKingdom); + HbInputSettingProxy::instance()->setGlobalInputLanguage(lang); + } +} + +void DialpadTestView::setArabicDigit() +{ + mArabicDigit = !mArabicDigit; + + if (mArabicDigit) { + HbExtendedLocale::system().setZeroDigit(ArabicIndicDigit); + } else { + HbExtendedLocale::system().setZeroDigit(WesternDigit); + } +} + diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/tsrc/dialpadtest/dialpadtestview.h --- a/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.h Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/dialpad/tsrc/dialpadtest/dialpadtestview.h Fri Sep 03 13:59:20 2010 +0300 @@ -50,6 +50,8 @@ void onEditorContentChanged(); void handleLongKeyPress(); void setTapOutsideDismiss(); + void setArabicMode(); + void setArabicDigit(); private: HbMainWindow& mMainWindow; @@ -59,6 +61,8 @@ QTimer* mLongPressTimer; QString mPressedKey; bool mTapOutsideDismiss; + bool mArabicMode; + bool mArabicDigit; }; #endif // DIALPADTESTVIEW_H diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/tsrc/unit/shared/dialpadtestutil.cpp --- a/telutils/dialpad/tsrc/unit/shared/dialpadtestutil.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/dialpad/tsrc/unit/shared/dialpadtestutil.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -26,20 +26,20 @@ DialpadTestUtil::DialpadTestUtil(HbMainWindow& mainWindow, QObject* parent) : QObject(parent), mMainWindow(mainWindow) { - mKeyNames.insert(Qt::Key_1,"keypad"); - mKeyNames.insert(Qt::Key_2,"keypad"); - mKeyNames.insert(Qt::Key_3,"keypad"); - mKeyNames.insert(Qt::Key_4,"keypad"); - mKeyNames.insert(Qt::Key_5,"keypad"); - mKeyNames.insert(Qt::Key_6,"keypad"); - mKeyNames.insert(Qt::Key_7,"keypad"); - mKeyNames.insert(Qt::Key_8,"keypad"); - mKeyNames.insert(Qt::Key_9,"keypad"); - mKeyNames.insert(Qt::Key_Asterisk,"keypad"); - mKeyNames.insert(Qt::Key_0,"keypad"); - mKeyNames.insert(Qt::Key_NumberSign,"keypad"); - mKeyNames.insert(Qt::Key_Backspace,"16777219"); - mKeyNames.insert(Qt::Key_Yes,"16842753"); + mKeyNames.insert(Qt::Key_1,"numericButtons"); + mKeyNames.insert(Qt::Key_2,"numericButtons"); + mKeyNames.insert(Qt::Key_3,"numericButtons"); + mKeyNames.insert(Qt::Key_4,"numericButtons"); + mKeyNames.insert(Qt::Key_5,"numericButtons"); + mKeyNames.insert(Qt::Key_6,"numericButtons"); + mKeyNames.insert(Qt::Key_7,"numericButtons"); + mKeyNames.insert(Qt::Key_8,"numericButtons"); + mKeyNames.insert(Qt::Key_9,"numericButtons"); + mKeyNames.insert(Qt::Key_Asterisk,"numericButtons"); + mKeyNames.insert(Qt::Key_0,"numericButtons"); + mKeyNames.insert(Qt::Key_NumberSign,"numericButtons"); + mKeyNames.insert(Qt::Key_Backspace,"backspaceButton"); + mKeyNames.insert(Qt::Key_Yes,"callButton"); } DialpadTestUtil::~DialpadTestUtil() @@ -100,7 +100,7 @@ if ( widget ) { QPointF widgetPos; - if (name=="keypad") { + if (name=="numericButtons") { widgetPos = widget->scenePos() + keyPosition(widget, key); } else { diff -r 35488577e233 -r 2fa1fa551b0b telutils/dialpad/tsrc/unit/ut_dialpadnumericbutton/ut_dialpadnumericbutton.cpp --- a/telutils/dialpad/tsrc/unit/ut_dialpadnumericbutton/ut_dialpadnumericbutton.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/dialpad/tsrc/unit/ut_dialpadnumericbutton/ut_dialpadnumericbutton.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -33,6 +33,7 @@ void testSetText(); void testSetSecondaryText(); + void testSetSecondary2ndRowText(); void testSetIcon(); private: @@ -74,5 +75,12 @@ QVERIFY(mButton->icon().color() == Qt::white); } +void ut_DialpadNumericButton::testSetSecondary2ndRowText() +{ + QVERIFY(mButton->secondary2ndRowText().isNull()); + mButton->setSecondary2ndRowText(QLatin1String("Secondary 2nd row text")); + QVERIFY(mButton->secondary2ndRowText() == QLatin1String("Secondary 2nd row text")); +} + DIALPAD_TEST_MAIN(ut_DialpadNumericButton) #include "ut_dialpadnumericbutton.moc" diff -r 35488577e233 -r 2fa1fa551b0b telutils/keysequencerecognitionservice/src/lifetimerkeysequencehandler.cpp --- a/telutils/keysequencerecognitionservice/src/lifetimerkeysequencehandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/keysequencerecognitionservice/src/lifetimerkeysequencehandler.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -137,10 +137,6 @@ lifeTimerText.append(locale.timeSeparator(KMinuteSeparatorInd)); lifeTimerText.append( QString::number(static_cast(lifeTimeData.iMinutes))); - // pad hour field to a length of 6 digits - const int KLifeTimerDataFieldLength = 9; - lifeTimerText = lifeTimerText.rightJustified( - KLifeTimerDataFieldLength, QChar('0')); } return lifeTimerText; diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/BMARM/PHONEPARSERU.DEF --- a/telutils/phoneparser/BMARM/PHONEPARSERU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -EXPORTS - "_._25CPhoneGsmHandlerContainer" @ 1 NONAME R3UNUSED ; CPhoneGsmHandlerContainer::~CPhoneGsmHandlerContainer(void) - CreateOptionContainerL__14PhoneGsmParser @ 2 NONAME R3UNUSED ; PhoneGsmParser::CreateOptionContainerL(void) - CreateParserL__14PhoneGsmParser @ 3 NONAME R3UNUSED ; PhoneGsmParser::CreateParserL(void) - CreateResultL__14PhoneGsmParser @ 4 NONAME R3UNUSED ; PhoneGsmParser::CreateResultL(void) - DefineOptionL__24CPhoneGsmOptionContainerii @ 5 NONAME R3UNUSED ; CPhoneGsmOptionContainer::DefineOptionL(int, int) - DetermineContentType__14PhoneGsmParserRC21CPhoneGsmParserResult @ 6 NONAME R3UNUSED ; PhoneGsmParser::DetermineContentType(CPhoneGsmParserResult const &) - FindOptionStatus__C24CPhoneGsmOptionContaineri @ 7 NONAME R3UNUSED ; CPhoneGsmOptionContainer::FindOptionStatus(int) const - InitialiseOptionsToDefaultValues__14PhoneGsmParserR24CPhoneGsmOptionContainer @ 8 NONAME R3UNUSED ; PhoneGsmParser::InitialiseOptionsToDefaultValues(CPhoneGsmOptionContainer &) - IsAllowedForArriving__14PhoneGsmParserRC21CPhoneGsmParserResult @ 9 NONAME R3UNUSED ; PhoneGsmParser::IsAllowedForArriving(CPhoneGsmParserResult const &) - IsAllowedForBadSim__14PhoneGsmParserRC21CPhoneGsmParserResult @ 10 NONAME R3UNUSED ; PhoneGsmParser::IsAllowedForBadSim(CPhoneGsmParserResult const &) - IsOptionDefined__C24CPhoneGsmOptionContaineri @ 11 NONAME R3UNUSED ; CPhoneGsmOptionContainer::IsOptionDefined(int) const - NewL__24CPhoneGsmOptionContainer @ 12 NONAME R3UNUSED ; CPhoneGsmOptionContainer::NewL(void) - NewL__25CPhoneGsmHandlerContainer @ 13 NONAME R3UNUSED ; CPhoneGsmHandlerContainer::NewL(void) - ProcessL__18CPhoneGsmSsHandlerR21CPhoneGsmParserResult @ 14 NONAME R3UNUSED ; CPhoneGsmSsHandler::ProcessL(CPhoneGsmParserResult &) - ProcessL__20CPhoneGsmMiscHandlerR21CPhoneGsmParserResult @ 15 NONAME R3UNUSED ; CPhoneGsmMiscHandler::ProcessL(CPhoneGsmParserResult &) - ProcessL__22CPhoneGsmSsCallHandlerR21CPhoneGsmParserResult @ 16 NONAME R3UNUSED ; CPhoneGsmSsCallHandler::ProcessL(CPhoneGsmParserResult &) - ProcessL__26CPhoneGsmSimControlHandlerR21CPhoneGsmParserResult @ 17 NONAME R3UNUSED ; CPhoneGsmSimControlHandler::ProcessL(CPhoneGsmParserResult &) - ProcessL__27CPhoneGsmPhoneNumberHandlerR21CPhoneGsmParserResult @ 18 NONAME R3UNUSED ; CPhoneGsmPhoneNumberHandler::ProcessL(CPhoneGsmParserResult &) - ProcessL__28CPhoneGsmManufacturerHandlerR21CPhoneGsmParserResult @ 19 NONAME R3UNUSED ; CPhoneGsmManufacturerHandler::ProcessL(CPhoneGsmParserResult &) - ProcessL__28CPhoneGsmPcnProcedureHandlerR21CPhoneGsmParserResult @ 20 NONAME R3UNUSED ; CPhoneGsmPcnProcedureHandler::ProcessL(CPhoneGsmParserResult &) - SetOptionStatus__24CPhoneGsmOptionContainerii @ 21 NONAME R3UNUSED ; CPhoneGsmOptionContainer::SetOptionStatus(int, int) - "_._24CPhoneGsmOptionContainer" @ 22 NONAME R3UNUSED ; CPhoneGsmOptionContainer::~CPhoneGsmOptionContainer(void) - AddHandlerL__25CPhoneGsmHandlerContainerR20CPhoneGsmHandlerBase @ 23 NONAME R3UNUSED ; CPhoneGsmHandlerContainer::AddHandlerL(CPhoneGsmHandlerBase &) - ProcessL__22CPhoneGsmSsCcbsHandlerR21CPhoneGsmParserResult @ 24 NONAME R3UNUSED ; CPhoneGsmSsCcbsHandler::ProcessL(CPhoneGsmParserResult &) - diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/BWINS/PHONEPARSERU.DEF --- a/telutils/phoneparser/BWINS/PHONEPARSERU.DEF Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -EXPORTS - ??1CPhoneGsmHandlerContainer@@UAE@XZ @ 1 NONAME ; CPhoneGsmHandlerContainer::~CPhoneGsmHandlerContainer(void) - ?AddHandlerL@CPhoneGsmHandlerContainer@@QAEXAAVCPhoneGsmHandlerBase@@@Z @ 2 NONAME ; void CPhoneGsmHandlerContainer::AddHandlerL(class CPhoneGsmHandlerBase &) - ?CreateOptionContainerL@PhoneGsmParser@@SAPAVCPhoneGsmOptionContainerBase@@XZ @ 3 NONAME ; class CPhoneGsmOptionContainerBase * PhoneGsmParser::CreateOptionContainerL(void) - ?CreateParserL@PhoneGsmParser@@SAPAVCPhoneGsmParserBase@@XZ @ 4 NONAME ; class CPhoneGsmParserBase * PhoneGsmParser::CreateParserL(void) - ?CreateResultL@PhoneGsmParser@@SAPAVCPhoneGsmParserResult@@XZ @ 5 NONAME ; class CPhoneGsmParserResult * PhoneGsmParser::CreateResultL(void) - ?DetermineContentType@PhoneGsmParser@@SA?AW4TContentType@1@ABVCPhoneGsmParserResult@@@Z @ 6 NONAME ; enum PhoneGsmParser::TContentType PhoneGsmParser::DetermineContentType(class CPhoneGsmParserResult const &) - ?IsAllowedForArriving@PhoneGsmParser@@SAHABVCPhoneGsmParserResult@@@Z @ 7 NONAME ; int PhoneGsmParser::IsAllowedForArriving(class CPhoneGsmParserResult const &) - ?IsAllowedForBadSim@PhoneGsmParser@@SAHABVCPhoneGsmParserResult@@@Z @ 8 NONAME ; int PhoneGsmParser::IsAllowedForBadSim(class CPhoneGsmParserResult const &) - ?NewL@CPhoneGsmHandlerContainer@@SAPAV1@XZ @ 9 NONAME ; class CPhoneGsmHandlerContainer * CPhoneGsmHandlerContainer::NewL(void) - ?ProcessL@CPhoneGsmEmergencyNumberHandler@@UAEXAAVCPhoneGsmParserResult@@@Z @ 10 NONAME ; void CPhoneGsmEmergencyNumberHandler::ProcessL(class CPhoneGsmParserResult &) - ?ProcessL@CPhoneGsmManufacturerHandler@@UAEXAAVCPhoneGsmParserResult@@@Z @ 11 NONAME ; void CPhoneGsmManufacturerHandler::ProcessL(class CPhoneGsmParserResult &) - ?ProcessL@CPhoneGsmMiscHandler@@UAEXAAVCPhoneGsmParserResult@@@Z @ 12 NONAME ; void CPhoneGsmMiscHandler::ProcessL(class CPhoneGsmParserResult &) - ?ProcessL@CPhoneGsmPcnProcedureHandler@@UAEXAAVCPhoneGsmParserResult@@@Z @ 13 NONAME ; void CPhoneGsmPcnProcedureHandler::ProcessL(class CPhoneGsmParserResult &) - ?ProcessL@CPhoneGsmPhoneNumberHandler@@UAEXAAVCPhoneGsmParserResult@@@Z @ 14 NONAME ; void CPhoneGsmPhoneNumberHandler::ProcessL(class CPhoneGsmParserResult &) - ?ProcessL@CPhoneGsmSimControlHandler@@UAEXAAVCPhoneGsmParserResult@@@Z @ 15 NONAME ; void CPhoneGsmSimControlHandler::ProcessL(class CPhoneGsmParserResult &) - ?ProcessL@CPhoneGsmSsCallHandler@@UAEXAAVCPhoneGsmParserResult@@@Z @ 16 NONAME ; void CPhoneGsmSsCallHandler::ProcessL(class CPhoneGsmParserResult &) - ?ProcessL@CPhoneGsmSsHandler@@UAEXAAVCPhoneGsmParserResult@@@Z @ 17 NONAME ; void CPhoneGsmSsHandler::ProcessL(class CPhoneGsmParserResult &) - ?ProcessL@CPhoneVoipNumberHandler@@UAEXAAVCPhoneGsmParserResult@@@Z @ 18 NONAME ; void CPhoneVoipNumberHandler::ProcessL(class CPhoneGsmParserResult &) - ?UseFeatureStub@PhoneGsmParser@@SAXPAVCPhoneParserFeatures@@@Z @ 19 NONAME ; void PhoneGsmParser::UseFeatureStub(class CPhoneParserFeatures *) - diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/group/phoneparser.mmp --- a/telutils/phoneparser/group/phoneparser.mmp Mon Aug 23 15:50:31 2010 +0300 +++ b/telutils/phoneparser/group/phoneparser.mmp Fri Sep 03 13:59:20 2010 +0300 @@ -54,10 +54,9 @@ USERINCLUDE ../inc -// <-- QT PHONE START--> // Default system include paths for MW layer modules. MW_LAYER_SYSTEMINCLUDE -// <-- QT PHONE END--> + SYSTEMINCLUDE ../../../inc // telephonyservices internal headers LIBRARY euser.lib diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/group/phoneparser_stub.SIS Binary file telutils/phoneparser/group/phoneparser_stub.SIS has changed diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/CPhoneGsmDummyParser.h --- a/telutils/phoneparser/inc/CPhoneGsmDummyParser.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,69 +0,0 @@ -/* -* Copyright (c) 2002-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: It is a parser that parses nothing. -* -*/ - - -#ifndef CPHONEGSMDUMMYPARSER_H -#define CPHONEGSMDUMMYPARSER_H - -// INCLUDES -#include "cphonegsmparserbase.h" - -// CLASS DECLARATION - -/** -* It is a parser that parses nothing. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneGsmDummyParser ) - : public CPhoneGsmParserBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneGsmDummyParser* NewL(); - - public: // Functions from base classes - - /** - * From CPhoneGsmParserBase, parse string. - * - * @param aString It is string to be parsed. - * @param aResult It will contain result. - * @param aOptions It contains all options related to parsing. - * @return It returns boolean value indicating success of parsing. - */ - TBool ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ); - - private: - - /** - * C++ constructor. - */ - CPhoneGsmDummyParser(); - - }; - -#endif // CPHONEGSMDUMMYPARSER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/CPhoneGsmEmergencyNumberParser.h --- a/telutils/phoneparser/inc/CPhoneGsmEmergencyNumberParser.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -/* -* Copyright (c) 2008-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: It is parser for emergency numbers. -* -*/ - - -#ifndef CPHONEGSMEMERGENCYNUMBERPARSER_H -#define CPHONEGSMEMERGENCYNUMBERPARSER_H - -// INCLUDES -#include "cphonegsmparserbase.h" -#include - -// FORWARD DECLARATIONS -class CPhoneGsmOptionContainer; - -// CONSTANTS - -/* -* EMERGENCY NUMBER UIDS -*/ -const TUint32 KPhoneUidEmergencyNumber = - PHONE_MAKE_UID( KPhoneGsmUidDialEmergencyNumber, 0 ); - -// CLASS DECLARATION - -/** -* It is parser for emergency numbers. -* -* @since S60 5.0 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneGsmEmergencyNumberParser ) - : public CPhoneGsmParserBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneGsmEmergencyNumberParser* NewLC(); - - public: // Functions from base classes - - /** - * From CPhoneGsmParserBase. - * Parse string. - * - * @param aString It is string to be parsed. - * @param aResult It will contain result. - * @param aOptions It indicates operation options. - * @return It returns boolean value indicating success of parsing. - */ - TBool ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ); - - private: - - /** - * C++ default constructor. - */ - CPhoneGsmEmergencyNumberParser(); - - /** - * Parse. - */ - TBool DoParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainer& aOptions ); - - private: // Data - - // Emergency number. - TPhCltTelephoneNumber iEmergencyPhoneNumber; - - }; - -#endif // CPHONEGSMEMERGENCYNUMBERPARSER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/CPhoneGsmManufacturerParser.h --- a/telutils/phoneparser/inc/CPhoneGsmManufacturerParser.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,178 +0,0 @@ -/* -* Copyright (c) 2002-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: It is parser class for manufacturer specific codes. -* -*/ - - -#ifndef CPHONEGSMMANUFACTURERPARSER_H -#define CPHONEGSMMANUFACTURERPARSER_H - -// INCLUDES -#include "cphonegsmparserbase.h" - -// FORWARD DECLARATIONS -class CPhoneGsmOptionContainer; - -// CONSTANTS - -/* -* MANUFACTURER CODE UIDS -*/ - -const TUint32 KPhoneUidManufacturerCode = - PHONE_MAKE_UID( KPhoneGsmUidManufacturer, 0 ); - -const TUint32 KPhoneUidManufacturerDebugCode = - PHONE_MAKE_UID( KPhoneGsmUidManufacturer, 1 ); - -// MACROS - -// This definition enables parsing of debug code. -//#define PHONEPARSER_PARSE_DEBUG_CODE - -// CLASS DECLARATION - -/** -* It is parser for manufacturer specific codes. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneGsmManufacturerParser ) - : public CPhoneGsmParserBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneGsmManufacturerParser* NewLC(); - - /** - * Destructor. - */ - ~CPhoneGsmManufacturerParser(); - - public: // New functions - - /** - * Enumerates all flags. - * - * EFlagCode - string is a code, checked only when # is pressed. - * EFlagSend - SEND key must be pressed. - * EFlagPrefix - string is just a prefix. - * EFlagNotInIdle - not in from idle state. - * EFlagNotInInCall - not in during incall. - */ - enum TFlags - { - EFlagCode = 0x01, - EFlagSend = 0x02, - EFlagPrefix = 0x04, - EFlagNotInIdle = 0x08, - EFlagNotInInCall = 0x10 - }; - - /** - * Add string to the set of manufacturer specific codes. - * - * Note that string must exist as long as the instance. - * - * @param aString string - * @param aFlags flags, see TFlags - * @param aCommand command id - * @param aFeatureId feature manager id. - */ - void AddStringL( - const TDesC& aString, - TInt aFlags, - TUint aCommand, - TInt aFeatureId = 0 ); - - public: // Functions from base classes - - /** - * From CPhoneGsmParserBase. - * Parse string. - * - * @param aString It is string to be parsed. - * @param aResult It will contain result. - * @param aSendOperation It indicates if it would be SEND operation. - * @return It returns boolean value indicating success of parsing. - */ - TBool ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ); - - private: - - class TCodeInfo; - - /** - * C++ default constructor. - */ - CPhoneGsmManufacturerParser(); - - /** - * Symbian OS constructor. - */ - void ConstructL(); - - /** - * Checks code. - * - * @param aString string to be checked. - * @param aInfo code information. - * @param aOptions options. - */ - TBool CheckCode( - const TDesC& aString, - const TCodeInfo& aInfo, - CPhoneGsmOptionContainerBase& aOptions ); - - /** - * Is situation ok for string. - */ - TBool CheckSituation( - const TDesC& aString, - TInt aFlags, - CPhoneGsmOptionContainerBase& aOptions ); - - private: // Data - - /** - * It defines structure that contains information of single code. - */ - class TCodeInfo - { - public: - TPtrC iString; - TInt iFlags; - TUint iCommand; - TInt iFeatureId; - }; - - // Type definition for code array. - typedef CArrayFixFlat< TCodeInfo > CCodeArray; - - // Owned array of codes. - CCodeArray* iArray; - - }; - -#endif // CPHONEGSMMANUFACTURERPARSER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/CPhoneGsmOptionContainer.h --- a/telutils/phoneparser/inc/CPhoneGsmOptionContainer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,161 +0,0 @@ -/* -* Copyright (c) 2002 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: It is container for options, boolean flags with identifiers. -* Using these flags, parsing process can be configured. -* -*/ - - -#ifndef CPHONEGSMOPTIONCONTAINER_H -#define CPHONEGSMOPTIONCONTAINER_H - -// INCLUDES -#include "cphonegsmoptioncontainerbase.h" - -// FORWARD DECLARATIONS - -// For two digit calling, some options are defined -// elsewhere. -class CPhoneGsmOptionContainerExt; - -// CLASS DECLARATION - -/** -* It is container for options. Each option is identified by -* a single uid and each option has a boolean status. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneGsmOptionContainer ) - : public CPhoneGsmOptionContainerBase - { - public: // Constructors and destructor - /** - * Two-phased constructor. - */ - static CPhoneGsmOptionContainer* NewL(); - - /** - * Destructor. - */ - ~CPhoneGsmOptionContainer(); - - public: // New functions - - /** - * Checks if option is defined. - * - * @param aOptionUid It is the uid of the option. - * @return Returns ETrue, only if it is defined. - */ - TBool IsOptionDefined( TInt aOptionUid ) const; - - /** - * Defines an option. - * - * Method panics if option is already defined. Note that - * the method might leave. - * - * @param aOptionUid It is the uid of the new option. - * @param aStatus It is the initial status for the option. - */ - void DefineOptionL( TInt aOptionUid, TBool aStatus ); - - /** - * This method can be used to make overrides to definition of phone numbers. - * - * For example, there can be two digit emergency numbers which are normally - * considered as ussd requests. - * - * Note: this can return directly EFalse in which case standard - * GSM practices are applied. - * - * @param aNumber string to be checked. - * @return ETrue if should be considered as phone number. - */ - TBool IsEmergencyNumber( const TDesC& aNumber, TDes& aEmergencyNumber ); - - /** - * From CPhoneGsmOptionContainerBase. - * Sets status of option. - * - * Method panics if option is not defined. - * - * @param aOptionUid It is the uid of the option. - * @param aStatus It is the new status for the option. - */ - void SetOptionStatus( TInt aOptionUid, TBool aStatus ); - - /** - * From CPhoneGsmOptionContainerBase. - * Finds status of option. - * - * Method panics if option is not defined. - * - * @param aOptionUid It is the uid of the option. - * @return Returne status of the option. - */ - TBool FindOptionStatus( TInt aOptionUid ) const; - - private: - - /** - * C++ default constructor. - */ - CPhoneGsmOptionContainer(); - - /** - * Symbian OS constructor. - */ - void ConstructL(); - - /** - * Creates key. - */ - static TKeyArrayFix MakeKey(); - - // By default, prohibit copy constructor - CPhoneGsmOptionContainer( const CPhoneGsmOptionContainer& ); - // Prohibit assigment operator - CPhoneGsmOptionContainer& operator= ( const CPhoneGsmOptionContainer& ); - - private: // Data - - /** - * It is the structure containing information about single option. - */ - class TOptionItem - { - public: - TInt iUid; - TBool iStatus; - }; - - /** - * It is the type for array of options. - */ - typedef CArrayFixFlat< TOptionItem > COptionArray; - - // Owned: array of options. - COptionArray* iOptions; - - // Owned: option extension for two digit calling. - CPhoneGsmOptionContainerExt* iExtension; - - }; - -#endif // CPHONEGSMOPTIONCONTAINER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/CPhoneGsmParser.h --- a/telutils/phoneparser/inc/CPhoneGsmParser.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,134 +0,0 @@ -/* -* Copyright (c) 2002 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: It is class that provides parsing functionality. -* -*/ - - -#ifndef CPHONEGSMPARSER_H -#define CPHONEGSMPARSER_H - -// INCLUDES -#include -#include "cphonegsmparserbase.h" - -// FORWARD DECLARATIONS -class CPhoneGsmParserResult; -class CPhoneGsmOptionContainerBase; -class CPhoneGsmOptionContainer; - -// CLASS DECLARATION - -/** -* It is class that provides parsing functionality. -* -* @since 1.0 -* @lib phoneparser.lib. -*/ -NONSHARABLE_CLASS( CPhoneGsmParser ) - : public CPhoneGsmParserBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - * Note that ownership is transferred! - */ - static CPhoneGsmParser* NewL( - CPhoneGsmParserBase* aSsProcedure, - CPhoneGsmParserBase* aSimControlProcedure, - CPhoneGsmParserBase* aPhoneNumber, - CPhoneGsmParserBase* aManufacturerSpecific, - CPhoneGsmParserBase* aEmergencyNumberParser, - CPhoneGsmParserBase* iVoipNumber); - - /** - * Destructor. - */ - ~CPhoneGsmParser(); - - public: // New functions - - /** - * From CPhoneGsmParserBase. - * Parses the string. - * - * @param aString It is string to be parsed. - * @param aResult It will contain the results of parsing. - * @param aOptions It is option container. - */ - TBool ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ); - - private: - - /** - * C++ default constructor. - */ - CPhoneGsmParser( - CPhoneGsmParserBase* aSsProcedure, - CPhoneGsmParserBase* aSimControlProcedure, - CPhoneGsmParserBase* aPhoneNumber, - CPhoneGsmParserBase* aManufacturerSpecific, - CPhoneGsmParserBase* aEmergencyNumberParser, - CPhoneGsmParserBase* iVoipNumber); - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL(); - - /** - * Parses the string. - */ - TBool DoParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainer& aOptions ); - - /** - * Define string as unstructured supplementary service. - */ - TBool DefineAsUssdL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainer& aOptions ); - - private: // Data - - // Owned supplementary service procedurwe parser. - CPhoneGsmParserBase* iGsmSsProcedure; - - // Owned SIM control procedure parser. - CPhoneGsmParserBase* iGsmSimControlProcedure; - - // Owned phone number parser. - CPhoneGsmParserBase* iGsmPhoneNumber; - - // Owned manufacturer specific procedure parser. - CPhoneGsmParserBase* iGsmManufacturerProcedure; - - // Owned emergency number parser. - CPhoneGsmParserBase* iGsmEmergencyNumber; - - // Owned voip number parser. - CPhoneGsmParserBase* iVoipNumber; - }; - -#endif // CPHONEGSMPARSER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/CPhoneGsmParserContainer.h --- a/telutils/phoneparser/inc/CPhoneGsmParserContainer.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,95 +0,0 @@ -/* -* Copyright (c) 2002-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: It is handler that is also container for handlers. Parsing -* requests are simply forwarded to the contained handlers. -* -*/ - - -#ifndef CPHONEGSMPARSERCONTAINER_H -#define CPHONEGSMPARSERCONTAINER_H - -// INCLUDES -#include -#include "cphonegsmparserbase.h" - -// CLASS DECLARATION - -/** -* It is itself a parser and it is container for parsers. Parsing is -* done so that each of the contained parsers are called. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneGsmParserContainer ) - : public CPhoneGsmParserBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneGsmParserContainer* NewLC(); - - /** - * Destructor. - */ - ~CPhoneGsmParserContainer(); - - public: // New functions - - /** - * Add a parser to the container. - * - * Note that ownership is transferred. Panics if parser is already - * added. - */ - void AddL( CPhoneGsmParserBase& aParser ); - - public: // Functios from base classes - - /** - * From CPhoneGsmParserBase, parses strings. - */ - TBool ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ); - - private: - - /** - * C++ default constructor. - */ - CPhoneGsmParserContainer(); - - /** - * Symbian OS constructor. - */ - void ConstructL(); - - private: // Data - - // Type for parser array. - typedef CArrayPtrFlat< CPhoneGsmParserBase > CParserArray; - - // Owned array of parsers. - CParserArray* iArray; - - }; - -#endif // CPHONEGSMPARSERCONTAINER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/CPhoneGsmPcnProcedureParser.h --- a/telutils/phoneparser/inc/CPhoneGsmPcnProcedureParser.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,111 +0,0 @@ -/* -* Copyright (c) 2002-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: It is parser for PCN specific procedures. -* -*/ - - -#ifndef CPHONEGSMPCNPROCEDUREPARSER_H -#define CPHONEGSMPCNPROCEDUREPARSER_H - -// INCLUDES -#include "cphonegsmparserbase.h" - -// CONSTANTS - -/* -* Perfom SIM locking. -*/ -const TUint32 KPhoneUidSimLockCode = - PHONE_MAKE_UID( KPhoneGsmUidPcnProcedures, 0 ); - -/* -* Perform SIM unlocking. -*/ -const TUint32 KPhoneUidSimUnlockCode = - PHONE_MAKE_UID( KPhoneGsmUidPcnProcedures, 1 ); - -// CLASS DECLARATION - -/** -* It is parser for GsmPcn specific procedures. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneGsmPcnProcedureParser ) - : public CPhoneGsmParserBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneGsmPcnProcedureParser* NewLC(); - - public: // Functions from base classes - - /** - * From CPhoneGsmParserBase, parses string. - * - * String must not contain other characters than from set - * { 0..9, *, #, +, p, w }. If method leaves, then result - * may contain something that is not valid. - * - * @param aString string to be parsed. - * @param aResult It will contain result. - * @param aOptions It contains all options related to parsing. - * @return It returns boolean value indicating success of parsing. - */ - TBool ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ); - - private: - - /** - * C++ default constructor. - */ - CPhoneGsmPcnProcedureParser(); - - /** - * Handles SIM lock closing. - */ - TBool HandleSimLockCodeL( - const TDesC& aString, - CPhoneGsmParserResult& aResult ); - - /** - * Handles SIM lock opening. - */ - TBool HandleSimUnlockCodeL( - const TDesC& aString, - CPhoneGsmParserResult& aResult ); - - /** - * Handle lock commands. - * - * @param aString string. - * @param aResult result. - */ - TBool HandleLockCodeParametersL( - const TDesC& aString, - CPhoneGsmParserResult& aResult ); - - }; - -#endif // CPHONEGSMPCNPROCEDUREPARSER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/CPhoneGsmPhoneNumberParser.h --- a/telutils/phoneparser/inc/CPhoneGsmPhoneNumberParser.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,197 +0,0 @@ -/* -* Copyright (c) 2002-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: It is parser for phone numbers. -* -*/ - - -#ifndef CPHONEGSMPHONENUMBERPARSER_H -#define CPHONEGSMPHONENUMBERPARSER_H - -// INCLUDES -#include "cphonegsmparserbase.h" - -// FORWARD DECLARATIONS -class CPhoneGsmOptionContainer; -// CONSTANTS - -/* -* PHONE NUMBER UIDS -*/ - -const TUint32 KPhoneUidPhoneNumber = - PHONE_MAKE_UID( KPhoneGsmUidDialPhoneNumber, 0 ); - -/* -* Dial phone number related constants, store to aux information field. -*/ - -/* -* There was no prefix, use default clir. -*/ -const TUint KPhoneDialDefaultClir = 0; - -/* -* There was clir suppress prefix. -*/ -const TUint KPhoneDialSuppressClir = 1; - -/* -* There was clir invoke prefix. -*/ -const TUint KPhoneDialInvokeClir = 2; - -// CLASS DECLARATION - -/** -* It is parser for phone numbers. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneGsmPhoneNumberParser ) - : public CPhoneGsmParserBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneGsmPhoneNumberParser* NewLC(); - - public: // Functions from base classes - - /** - * From CPhoneGsmParserBase. - * Parse string. - * - * @param aString It is string to be parsed. - * @param aResult It will contain result. - * @param aOptionUid It is the uid of the option. - * @return It returns boolean value indicating success of parsing. - */ - TBool ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ); - - private: - - /** - * C++ default constructor. - */ - CPhoneGsmPhoneNumberParser(); - - /** - * Parse. - * - * @param aString It is string to be parsed. - * @param aResult It will contain result. - * @param aOptionUid It is the uid of the option. - * @return It returns boolean value indicating success of parsing. - */ - TBool DoParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainer& aOptions ); - - - /** - * Handle supplementary service prefixes. - * Checks is there clir suppress/invoke prefix in the string. - * @param aLex Contains string to be handled. - * @param aResult It will contain result. - */ - TBool HandleServicePrefix( - TLex& aLex, - CPhoneGsmParserResult& aResult ); - - /** - * Takes a main part of the phone number( before 'p','w' or - * second '+' marks ). - * And add it to parameter of the aResult with or without optional - * international prefix. - * @param aLex Contains string to be handled. - * @param aResult It will contain result. - */ - TBool TakeNumberPartL( - TLex& aLex, - CPhoneGsmParserResult& aResult ); - - /** - * Takes Dtmf postfix and add it to parameter of the aResult. - * @param aLex Contains string to be handled. - * @param aResult It will contain result. - */ - TBool TakeDtmfPostfixL( - TLex& aLex, - CPhoneGsmParserResult& aResult ); - - /** - * Checks if param aLeft is prefix of param aDest. - */ - static TBool EqualsLeft( const TDesC& aDest, const TDesC& aLeft ); - - /** - * Checks if string contains p or w characters. - * - * @param aString It is string to be checked. - * @return ETrue if string contains p or w characters. - */ - TBool ContainsPauseOrWaitChars( const TDesC& aString ) const; - - /** - * Checks if rightmost character in string is #. - * - * @param aString It is string to be checked. - * @return ETrue if string is hash string. - */ - TBool IsHashString( const TDesC& aString ) const; - - /** - * Checks if string is zero and zero dialling is on and - * it is not in call situation. - * - * @param aString It is string to be checked. - * @param aOptions Is call options - * @return ETrue if zero dialling. - */ - TBool IsZeroDialling( const TDesC& aString, - CPhoneGsmOptionContainer& aOptions ) const; - - /** - * Checks if two digit dialling is on and string - * is two digit string. - * - * @param aString It is string to be checked. - * @return ETrue if two digit dialling. - */ - TBool IsTwoDigitDialling( const TDesC& aString ) const; - - /** - * Checks if Input string is a 2 digit starting with a "1" - * and it is not in call situation. - * - * @param aString It is string to be checked. - * @param aOptions Is call options - * @return ETrue if 1x dialling situation. - */ - TBool Is1xDialling( const TDesC& aString, - CPhoneGsmOptionContainer& aOptions ) const; - - }; - -#endif // CPHONEGSMPHONENUMBERPARSER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/CPhoneGsmSimControlParser.h --- a/telutils/phoneparser/inc/CPhoneGsmSimControlParser.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,173 +0,0 @@ -/* -* Copyright (c) 2002-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: It is parser for SIM control procedures. -* -*/ - - -#ifndef CPHONEGSMSIMCONTROLPARSER_H -#define CPHONEGSMSIMCONTROLPARSER_H - -// INCLUDES -#include "cphonegsmparserbase.h" - -// CONSTANTS - -/** -* SIM CONTROL UIDS -*/ - -const TUint32 KPhoneUidPinChange = - PHONE_MAKE_UID( KPhoneGsmUidSimControlProcedure, 1 ); -const TUint32 KPhoneUidPin2Change = - PHONE_MAKE_UID( KPhoneGsmUidSimControlProcedure, 2 ); -const TUint32 KPhoneUidPinUnblock = - PHONE_MAKE_UID( KPhoneGsmUidSimControlProcedure, 3 ); -const TUint32 KPhoneUidPin2Unblock = - PHONE_MAKE_UID( KPhoneGsmUidSimControlProcedure, 4 ); - -// CLASS DECLARATION - -/** -* It parses sim control procedures. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneGsmSimControlParser ) - : public CPhoneGsmParserBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneGsmSimControlParser* NewLC(); - - public: // Functions from base classes - - /** - * From CPhoneGsmParserBase, parses sim control procedures. - * - * @param aString It is string to be parsed. - * @param aResult It will contain result. - * @param aSendOperation It indicates if it would be SEND operation. - * @return It returns boolean value indicating success of parsing. - */ - TBool ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ); - - private: - - /** - * It is type of parameter checking procedures. - * - * @param aDesc It is the parameter. - * @return Returns if the parameter is acceptable. - */ - typedef TBool (*TParameterValidationFunction)( const TDesC& aParam ); - - /** - * C++ default constructor. - */ - CPhoneGsmSimControlParser(); - - /** - * Parse sim control procedures. - */ - TBool DoParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - TBool aSendOperation, - TBool aInCall ); - - /** - * Handle pin operations (pin change, unblock) - */ - TBool HandlePinOperationsL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Check that there is '**' in the beginning of input. - */ - TBool HandlePinPrefix( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle pin change code. - */ - TBool HandlePinChangeL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle pin unblock code. - */ - TBool HandlePinUnblockL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle no more parameters (only hash). - */ - TBool HandleNoParameters( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle pin password. - */ - TBool HandlePinL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle pin unblocking key. - */ - TBool HandlePukL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle parameters. - */ - TBool HandleParameterL( - TLex& aInput, - CPhoneGsmParserResult& aResult, - TParameterValidationFunction aFunc ); - - /** - * Returns number. - */ - TPtrC NextNumber( TLex& aInput ); - - /** - * Validate syntax of pin. - */ - static TBool ValidatePin( const TDesC& aParam ); - - /** - * Validate syntax of puk. - */ - static TBool ValidatePuk( const TDesC& aParam ); - - }; - -#endif // CPHONEGSMSIMCONTROLPARSER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/CPhoneGsmSsCallParser.h --- a/telutils/phoneparser/inc/CPhoneGsmSsCallParser.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,93 +0,0 @@ -/* -* Copyright (c) 2002-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: It is responsible of parsing GSM specified supplementary -* services that can be entered during calls. -* -*/ - - -#ifndef CPHONEGSMSSCALLPARSER_H -#define CPHONEGSMSSCALLPARSER_H - -// INCLUDES -#include -#include "cphonegsmparserbase.h" - -// CONSTANTS - -/* -* SUPPLEMENTARY SERVICE UIDS - DURING CALLS -* -* Final commands depend on the state of the phone and that's why they -* decided in handler. -*/ - -const TUint32 KPhoneUidCommand0 = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryServiceDuringCall, 0 ); -const TUint32 KPhoneUidCommand1 = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryServiceDuringCall, 1 ); -const TUint32 KPhoneUidCommand2 = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryServiceDuringCall, 2 ); -const TUint32 KPhoneUidCommand3 = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryServiceDuringCall, 3 ); -const TUint32 KPhoneUidCommand4 = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryServiceDuringCall, 10 ); - -// CLASS DECLARATION - -/** -* It is responsible of parsing GSM specified supplementary services -* that can be entered during calls. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneGsmSsCallParser ) - : public CPhoneGsmParserBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneGsmSsCallParser* NewLC(); - - public: // Functions from base classes - - /** - * From CPhoneGsmParserBase. - * Parses ss strings. - * - * @param aString string to parse. - * @param aResult It will contain result. - * @param aOptions It contains options. - * @return ETrue iff parsed successfully. - */ - TBool ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ); - - private: - - /** - * C++ default constructor. - */ - CPhoneGsmSsCallParser(); - - }; - -#endif // CPHONEGSMSSCALLPARSER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/CPhoneGsmSsParser.h --- a/telutils/phoneparser/inc/CPhoneGsmSsParser.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,460 +0,0 @@ -/* -* Copyright (c) 2002-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: It is responsible of parsing of GSM specified supplementary -* service requests. -* -*/ - - -#ifndef CPHONEGSMSSPARSER_H -#define CPHONEGSMSSPARSER_H - -// INCLUDES -#include -#include "cphonegsmparserbase.h" - -// CONSTANTS - -/* -* SUPPLEMENTARY SERVICE UIDS -*/ - -/* -* Now follows uids for all supported supplementary services. -*/ -const TUint32 KPhoneUidForwardingAll = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 0 ); -const TUint32 KPhoneUidForwardingAllConditional = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 1 ); -const TUint32 KPhoneUidForwardingUnconditional = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 2 ); -const TUint32 KPhoneUidForwardingNoReply = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 3 ); -const TUint32 KPhoneUidForwardingNotReachable = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 4 ); -const TUint32 KPhoneUidForwardingBusy = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 5 ); -const TUint32 KPhoneUidBarringAllOutgoingCalls = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 6 ); -const TUint32 KPhoneUidBarringAllIncomingCalls = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 7 ); -const TUint32 KPhoneUidBarringAllServices = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 8 ); -const TUint32 KPhoneUidBarringAllOutgoingInternationalCalls = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 9 ); -const TUint32 KPhoneUidBarringAllOutgoingInternationalCallsExceptHome = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 10 ); -const TUint32 KPhoneUidBarringAllOutgoingServices = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 11 ); -const TUint32 KPhoneUidBarringAllIncomingCallsWhenRoaming = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 12 ); -const TUint32 KPhoneUidBarringAllIncomingServices = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 13 ); -const TUint32 KPhoneUidWaiting = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 14 ); -const TUint32 KPhoneUidCallingLineIdentificationPresentation = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 15 ); -const TUint32 KPhoneUidCallingLineIdentificationRestriction = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 16 ); -const TUint32 KPhoneUidConnectedLinePresentation = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 17 ); -const TUint32 KPhoneUidConnectedLinePresentationRestriction = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 18 ); -const TUint32 KPhoneUidPassword = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 19 ); -const TUint32 KPhoneUidCallingNamePresentation = - PHONE_MAKE_UID( KPhoneGsmUidSupplementaryService, 20 ); - -/** -* It defines the maximum lenght of service code. -*/ -const TInt KPhoneGsmSsServiceCodeMaxLength = 5; - -// CLASS DECLARATION - -/** -* It is responsible of parsing GSM specified supplementary services that -* are supported. -* -* @since 1.0 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneGsmSsParser ) - : public CPhoneGsmParserBase - { - public: // Types - - /** - * Enumeration for different service types. - */ - enum TServiceType - { - EServiceActivation, - EServiceDeactivation, - EServiceInterrogation, - EServiceRegistration, - EServiceErasure - }; - - /** - * Enumeration for different syntax. - * - * ESyntaxNotAllowed - * Not allowed. - * - * ESyntaxNoParameters - * No parameters. - * - * SS_code# - * - * ESyntaxEmptyOrBasicCode - * No parameters or empty and basic code. - * - * SS_code# or SS_code**BB# - * - * ESyntaxNumberOptBasicCodeOptTimer - * Number parameter or number parameter and basic code or - * number parameter and basic code and timer or number parameter - * and timer. - * - * SS_code*NN# or SS_code*NN*BB# or SS_code*NN*BB*TT# or - * SS_code*NN**TT# - * - * ESyntaxNumberOptBasicCode - * Number parameter or number parameter and basic code. - * - * SS_code*NN# or SS_code*NN*BB# - * - * ESyntaxPasswordOptBasicCode - * Password or password and basic code. - * - * SS_code*PPPP# or SS_code*PPPP*BB# - * - * ESyntaxOptGroupCodePasswordNewPasswordNewPassword - * - * Register group code and password and new password and - * new password. Or same with empty register group. - * - * SS_code*xxx*PPPP*WWWW*WWWW# - * SS_code**PPPP*WWWW*WWWW# - * - * ESyntaxEmptyOrBasicCode2 - * Empty or Basic code - * - * SS_code# or SS_code*BB# - */ - enum TServiceSyntax - { - ESyntaxNotAllowed, - ESyntaxNoParameters, - ESyntaxEmptyOrBasicCode, - ESyntaxNumberOptBasicCodeOptTimer, - ESyntaxNumberOptBasicCode, - ESyntaxPasswordOptBasicCode, - ESyntaxOptGroupCodePasswordNewPasswordNewPassword, - ESyntaxEmptyOrBasicCode2 - }; - - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneGsmSsParser* NewLC(); - - /** - * Destructor. - */ - ~CPhoneGsmSsParser(); - - public: // New functions - - - /** - * Pack data to integer. - * - * @param aResult It will contain packed data. - * @param aType type of service. - * @param aSyntax syntax of service. - */ - static void PackData( - TUint& aResult, - TServiceType aType, - TServiceSyntax aSyntax ); - - /** - * Unpack data from integer. - * - * @param aData packed data. - * @param aType type of service. - * @param aSyntax syntax of service. - */ - static void UnpackData( - TUint aData, - TServiceType& aType, - TServiceSyntax& aSyntax ); - -// from base class CPhoneGsmParserBase - - /** - * From CPhoneGsmParserBase. - * Parses ss strings. - * - * @param aString string to be parser. - * @param aResult It will contain result. - * @param aOptions It contains options. - * @return ETrue iff string parsed successfully. - */ - TBool ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ); - - private: - - /** - * C++ default constructor. - */ - CPhoneGsmSsParser(); - - /** - * By default Symbian OS constructor is private. - */ - void ConstructL(); - - /** - * Handle parameters. - */ - TBool HandleParametersL( - TLex& aInput, - CPhoneGsmParserResult& aResult, - TServiceSyntax aSyntax ); - - /** - * Handle "not allowed" syntax. - */ - TBool HandleNotAllowedL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle "no more parameters" syntax. - */ - TBool HandleNoParametersL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle "empty or basic code" syntax. - */ - TBool HandleEmptyOrBasicCodeL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle "number optionally basic code and timer" syntax. - */ - TBool HandleNumberOptBasicCodeOptTimerL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle "number optionally basic code" syntax. - */ - TBool HandleNumberOptBasicCodeL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle "password optionally basic code" syntax. - */ - TBool HandlePasswordOptBasicCodeL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle "optionally group code, then old password and new - * password twice" syntax. - */ - TBool HandleOptGroupCodePasswordNewPasswordNewPasswordL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle "empty or basic code" syntax. - */ - TBool HandleEmptyOrBasicCode2L( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle "empty parameter" syntax. - */ - TBool HandleEmptyParameterL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle "basic code" syntax. - */ - TBool HandleBasicCodeL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle "directory number" syntax. - */ - TBool HandleNumberL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle "timer" syntax. - */ - TBool HandleTimerL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle "password" syntax. - */ - TBool HandlePasswordL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Handle "group code" syntax. - */ - TBool HandleGroupCodeL( - TLex& aInput, - CPhoneGsmParserResult& aResult ); - - /** - * Check basic service code. - */ - TBool CheckBasicCode( const TDesC& aCode ); - - /** - * Check 'no reply timer' - */ - TBool CheckTimer( const TDesC& aCode ); - - /** - * Check password group code. - */ - TBool CheckGroupCode( const TDesC& aCode ); - - /** - * Find string (starting from current position) that - * contains characters from given string. - * - * (note that empty string may be returned). - */ - static TPtrC FindString( - TLex& aInput, - const TDesC& aAllowedCharacters ); - - /** - * Add a new service. - * - * SHOULD ONLY BE USED DURING CONSTRUCTION. - * - * Panics if invalid service description is passed. - * - * @param aService It is service description. - * @param aUid It is uid for the service. - */ - void AddL( const TDesC& aService, TUint aUid ); - - /** - * Add a new service. - * - * SHOULD ONLY BE USED DURING CONSTRUCTION. - */ - void AddServiceL( - const TDesC& aServiceCode, - TServiceSyntax aActivation, - TServiceSyntax aDeactivation, - TServiceSyntax aInterrogation, - TServiceSyntax aRegistration, - TServiceSyntax aErasure, - TUint aUid ); - - /** - * Get next number as descriptor. - * - * ONLY TO BE USED DURING SERVICE DESCRIPTION PARSING. - * - * Panics if next character (not a space) does not start - * a new number or the number is invalid. - * - * @param aLex It is lex. - * @return Returns number. - */ - static TPtrC NextNumber( TLex& aLex ); - - /** - * Get next number as value. - * - * ONLY TO BE USED DURING SERVICE DESCRIPTION PARSING. - * - * Panics if next character (not a space) does not start - * a new number or the number is invalid. - * - * @param aLex It is lex. - * @return Returns number as value. - */ - static TUint NextNumberAsValue( TLex& aLex ); - - /** - * Converts to service syntax. - * - * @param aService It is numerical value of service syntax. - * @return Returns service syntax corresponding to value. - */ - static TServiceSyntax ConvertToServiceSyntax( TUint aService ); - - private: // Data - - /** - * It is type for service code. - */ - typedef TBuf< KPhoneGsmSsServiceCodeMaxLength > TServiceCode; - - /** - * It defines structure containing information about a service. - */ - class TServiceInfo - { - public: - TServiceCode iCode; - TServiceSyntax iActivation; - TServiceSyntax iDeactivation; - TServiceSyntax iInterrogation; - TServiceSyntax iRegistration; - TServiceSyntax iErasure; - TUint iUid; - }; - - // Type for service code array. - typedef CArrayFixFlat< TServiceInfo > CServiceArray; - - // Owned array of service codes. - CServiceArray* iArray; - - }; - -#endif // CPHONEGSMSSPARSER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/CPhoneParserFeatures.h --- a/telutils/phoneparser/inc/CPhoneParserFeatures.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,182 +0,0 @@ -/* -* 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: It encapsulates all dependencies. -* -*/ - - -#ifndef CPHONEPARSERFEATURES_H -#define CPHONEPARSERFEATURES_H - -#include - -class CPhCltEmergencyCall; -class CRepository; - -// INCLUDES -#include - -// FORWARD DECLARATIONS - -// CLASS DECLARATION - -/** -* It is extension for options. -* -* @since 1.2 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneParserFeatures ) - : public CBase, public MPhCltEmergencyCallObserver - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneParserFeatures* InstanceL(); - - /** - * To release resources. - */ - static void Free(); - - public: // From MPhCltEmergencyCallObserver - - /** - * It is called whenever client's dial request is completed. - * - * @param aStatus error code of the success of the operation. - */ - void HandleEmergencyDialL( const TInt aStatus ); - - public: // New functions - - /** - * Checks if two digit calling is enabled. - * - * @return ETrue if supported. - */ - static TBool TwoDigitCallingEnabled(); - - /** - * Checks if zero send should make a call. - * - * @return ETrue if enabled. - */ - static TBool IsZeroDialEnabled(); - - /** - * Checks if feature is supported. - * - * @param aFeature feature. - * @return ETrue if supported. - */ - static TBool FeatureSupported( TInt aFeature ); - - /** - * Checks if given number is emergency. - * - * @param aNumber Number to be queried.aNumber might contain prefix (SS code) - * and/or postfix (DTMF part). - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltEmergencyNumber. - * - * @param aEmergencyNumber Matched emergencynumber without prefix or - * postfix is returned in this parameter. The aMatchedEmergencyNumber - * parameter should be a buffer and the clients are - * provided with atypedef called TPhCltEmergencyNumber. - * - * @returns ETrue if emergency. - */ - static TBool IsEmergencyNumber( - const TDesC& aNumber, - TDes& aEmergencyNumber ); - - /** - * To set stub for testing purposes. - * - * @param aStub test stub. - */ -#ifdef __WINS__ - static void SetInstance( CPhoneParserFeatures* aStub ); -#endif // __WINS__ - - - private: - - /** - * C++ default constructor. - */ - CPhoneParserFeatures(); - - /** - * Symbian OS constructor. - */ - void ConstructL(); - - /** - * Non leaving instance method. - */ - static CPhoneParserFeatures* Instance(); - - /** - * Destructor. - */ - ~CPhoneParserFeatures(); - - /** - * Checks if given number is emergency. - * - * @param aNumber Number to be queried.aNumber might contain prefix (SS code) - * and/or postfix (DTMF part). - * The aNumber parameter should be a buffer and the - * clients are provided with a typedef called - * TPhCltEmergencyNumber. - * - * @param aEmergencyNumber Matched emergencynumber without prefix or - * postfix is returned in this parameter. The aMatchedEmergencyNumber - * parameter should be a buffer and the clients are - * provided with atypedef called TPhCltEmergencyNumber. - * - * @returns ETrue if emergency. - */ - virtual TBool IsEmergencyPhoneNumber( - const TDesC& aNumber, - TDes& aEmergencyNumber ); - - /** - * Checks if feature is supported. - * - * @param aFeature feature. - * @return ETrue if supported. - */ - virtual TBool IsFeatureSupported( TInt aFeature ); - - virtual TInt GetTelephoneVariant(); - - private: // Data - - - // Owned: Phone client emergency number session. - CPhCltEmergencyCall* iEmergencyCall; - - CRepository* iRepository; - - }; - -#endif // CPHONEPARSERFEATURES_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/CPhoneVoipNumberParser.h --- a/telutils/phoneparser/inc/CPhoneVoipNumberParser.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,122 +0,0 @@ -/* -* Copyright (c) 2008-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: It is parser for voip numbers. -* -*/ - - -#ifndef CPHONEVOIPNUMBERPARSER_H -#define CPHONEVOIPNUMBERPARSER_H - -// INCLUDES -#include "cphonegsmparserbase.h" -#include - -// FORWARD DECLARATIONS -class CPhoneGsmOptionContainer; - -// CONSTANTS - -/* -* EMERGENCY NUMBER UIDS -*/ -const TUint32 KPhoneUidVoipNumber = - PHONE_MAKE_UID( KPhoneUidDialVoipyNumber, 0 ); - -// CLASS DECLARATION - -/** -* It is parser for voip numbers. -* -* @since S60 5.0 -* @lib phoneparser.lib -*/ -NONSHARABLE_CLASS( CPhoneVoipNumberParser ) - : public CPhoneGsmParserBase - { - public: // Constructors and destructor - - /** - * Two-phased constructor. - */ - static CPhoneVoipNumberParser* NewLC(); - - public: // Functions from base classes - - /** - * From CPhoneGsmParserBase. - * Parse string. - * - * @param aString It is string to be parsed. - * @param aResult It will contain result. - * @param aOptions It indicates operation options. - * @return It returns boolean value indicating success of parsing. - */ - TBool ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ); - - private: - - /** - * C++ default constructor. - */ - CPhoneVoipNumberParser(); - - /** - * Parse. - * - * @param aString It is string to be parsed. - * @param aResult It will contain result. - * @param aOptionUid It is the uid of the option. - * @return It returns boolean value indicating success of parsing. - */ - TBool DoParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainer& aOptions ); - /** - * Takes a main part of the phone number( before 'p','w' or - * second '+' marks ). - * And add it to parameter of the aResult with or without optional - * international prefix. - * @param aLex Contains string to be handled. - * @param aResult It will contain result. - */ - void TakeNumberPartL( - TLex& aLex, - CPhoneGsmParserResult& aResult ); - - /** - * Takes Dtmf postfix and add it to parameter of the aResult. - * @param aLex Contains string to be handled. - * @param aResult It will contain result. - */ - void TakeDtmfPostfixL( - TLex& aLex, - CPhoneGsmParserResult& aResult ); - - /** - * Checks that string contains only valid dtmf characters - * @param aString string to be checked - * @return ETrue if valid dtmf string - */ - TBool IsValidDtmfString( TPtrC& aString ); - - }; - -#endif // CPHONEVOIPNUMBERPARSER_H - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/inc/phoneParserCommon.h --- a/telutils/phoneparser/inc/phoneParserCommon.h Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,36 +0,0 @@ -/* -* Copyright (c) 2008-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: Common definitions -* -*/ - - -#ifndef PHONEPARSERCOMMON_H -#define PHONEPARSERCOMMON_H - -/** Dtmf pause */ -const TInt KPhoneDtmfPause = 'p'; -/** Dtmf wait */ -const TInt KPhoneDtmfWait = 'w'; -/** Hash mark */ -const TInt KPhoneNumberHash = '#'; -/** Asterisk mark */ -const TInt KPhoneNumberAsterisk = '*'; -/** Plus mark */ -const TInt KPhonePlus = '+'; -/** Valid Dtmf Chars */ -_LIT( KValidDtmfChars, "0123456789pw*+#" ); - - -#endif // PHONEPARSERCOMMON_H diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/rom/Phoneparser.iby --- a/telutils/phoneparser/rom/Phoneparser.iby Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,25 +0,0 @@ -/* -* Copyright (c) 2005 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: PhoneParser's iby definitions. - * -*/ - -#ifndef __PhoneParser_IBY__ -#define __PhoneParser_IBY__ - -file=ABI_DIR\BUILD_DIR\phoneparser.dll System\libs\phoneparser.dll -data=ZSYSTEM\install\phoneparser_stub.sis System\Install\phoneparser_stub.sis - -#endif - diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmDummyParser.cpp --- a/telutils/phoneparser/src/CPhoneGsmDummyParser.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* Copyright (c) 2002 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: Implementation of dummy parser. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmdummyparser.h" -#include "cphonegsmparserresult.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmDummyParser::CPhoneGsmDummyParser -// ----------------------------------------------------------------------------- -// -CPhoneGsmDummyParser::CPhoneGsmDummyParser() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmDummyParser::ParseL -// ----------------------------------------------------------------------------- -// -CPhoneGsmDummyParser* CPhoneGsmDummyParser::NewL() - { - CPhoneGsmDummyParser* self = new (ELeave) CPhoneGsmDummyParser; - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmDummyParser::ParseL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmDummyParser::ParseL( - const TDesC& /*aString*/, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& /*aOptions*/ ) - { - aResult.ClearL(); - return EFalse; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmEmergencyNumberHandler.cpp --- a/telutils/phoneparser/src/CPhoneGsmEmergencyNumberHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,43 +0,0 @@ -/* -* Copyright (c) 2002-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: Handler for emergency numbers. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmemergencynumberhandler.h" -#include "cphonegsmemergencynumberparser.h" -#include "cphonegsmparserresult.h" - -// CONSTANTS -const TInt KPhoneEmergencyNumberDialParam = 0; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmEmergencyNumberHandler::ProcessL -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhoneGsmEmergencyNumberHandler::ProcessL( - CPhoneGsmParserResult& aResult ) - { - if ( aResult.Uid() == KPhoneUidEmergencyNumber ) - { - TPtrC number( aResult.ParameterAt( KPhoneEmergencyNumberDialParam ) ); - ProcessDialToEmergencyNumberL( number ); - } - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmEmergencyNumberParser.cpp --- a/telutils/phoneparser/src/CPhoneGsmEmergencyNumberParser.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,101 +0,0 @@ -/* -* 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: Parser for emergency numbers. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmemergencynumberparser.h" -#include "cphonegsmparserresult.h" -#include "cphonegsmoptioncontainer.h" -#include "cphoneparserfeatures.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmEmergencyNumberParser::CPhoneGsmEmergencyNumberParser -// ----------------------------------------------------------------------------- -// -CPhoneGsmEmergencyNumberParser::CPhoneGsmEmergencyNumberParser() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmEmergencyNumberParser::NewLC -// ----------------------------------------------------------------------------- -// -CPhoneGsmEmergencyNumberParser* CPhoneGsmEmergencyNumberParser::NewLC() - { - CPhoneGsmEmergencyNumberParser* self = - new ( ELeave ) CPhoneGsmEmergencyNumberParser; - - CleanupStack::PushL( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmEmergencyNumberParser::ParseL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmEmergencyNumberParser::ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ) - { - aResult.ClearL(); - - TBool result = DoParseL( - aString, - aResult, - static_cast( aOptions ) ); - - if ( !result ) - { - aResult.ClearL(); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmEmergencyNumberParser::DoParseL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmEmergencyNumberParser::DoParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainer& aOptions ) - { - TBool result( EFalse ); - - if ( aOptions.FindOptionStatus( KPhoneOptionSend ) ) - { - iEmergencyPhoneNumber.Zero(); - - if ( CPhoneParserFeatures::IsEmergencyNumber( - aString, iEmergencyPhoneNumber )) - { - aResult.AddParameterL( iEmergencyPhoneNumber ); - aResult.SetUid( KPhoneUidEmergencyNumber ); - result = ETrue; - } - } - - return result; - } - - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmHandlerContainer.cpp --- a/telutils/phoneparser/src/CPhoneGsmHandlerContainer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,116 +0,0 @@ -/* -* Copyright (c) 2002 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: Implementation of handler container. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmhandlercontainer.h" -#include "phonegsmparser.h" - -// CONSTANTS -const TInt KPhoneHandlerArrayGranularity = 10; -const TInt KPhoneHandlerArrayReserve = 10; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmHandlerContainer::CPhoneGsmHandlerContainer -// ----------------------------------------------------------------------------- -// -CPhoneGsmHandlerContainer::CPhoneGsmHandlerContainer() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmHandlerContainer::ConstructL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmHandlerContainer::ConstructL() - { - iHandlers = - new ( ELeave ) CHandlerArray( KPhoneHandlerArrayGranularity ); - iHandlers->SetReserveL( KPhoneHandlerArrayReserve ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmHandlerContainer::NewL -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhoneGsmHandlerContainer* CPhoneGsmHandlerContainer::NewL() - { - CPhoneGsmHandlerContainer* self = - new (ELeave) CPhoneGsmHandlerContainer; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmHandlerContainer::~CPhoneGsmHandlerContainer -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhoneGsmHandlerContainer::~CPhoneGsmHandlerContainer() - { - if ( iHandlers ) - { - iHandlers->ResetAndDestroy(); - } - delete iHandlers; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmHandlerContainer::AddHandlerL -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhoneGsmHandlerContainer::AddHandlerL( - CPhoneGsmHandlerBase& aHandler ) - { - TInt index; - TInt count = iHandlers->Count(); - - for ( index = 0; index < count; index++ ) - { - CPhoneGsmHandlerBase* handler = iHandlers->At( index ); - - if ( handler == &aHandler ) - { - PhoneGsmParser::Panic( PhoneGsmParser::EIncorrectUse ); - } - } - - iHandlers->AppendL( &aHandler ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmHandlerContainer::ProcessL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmHandlerContainer::ProcessL( - CPhoneGsmParserResult& aResult ) - { - TInt index; - TInt count = iHandlers->Count(); - - for ( index = 0; index < count; index++ ) - { - iHandlers->At( index )->ProcessL( aResult ); - } - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmManufacturerHandler.cpp --- a/telutils/phoneparser/src/CPhoneGsmManufacturerHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* -* Copyright (c) 2002 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: Implementation of manufacturer handler. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmmanufacturerhandler.h" -#include "cphonegsmmanufacturerparser.h" -#include "cphonegsmparserresult.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmManufacturerHandler::ProcessL -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhoneGsmManufacturerHandler::ProcessL( - CPhoneGsmParserResult& aResult ) - { - if ( aResult.Uid() == KPhoneUidManufacturerCode ) - { - ProcessCommandL( aResult.AuxInformation() ); - } -#ifdef PHONEPARSER_PARSE_DEBUG_CODE - else if ( aResult.Uid() == KPhoneUidManufacturerDebugCode ) - { - ProcessDebugL( aResult.ParameterAt( 0 ) ); // The first parameter is code. - } -#endif - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmManufacturerParser.cpp --- a/telutils/phoneparser/src/CPhoneGsmManufacturerParser.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,243 +0,0 @@ -/* -* Copyright (c) 2002 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: Implementation of manufacturer parser. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmmanufacturerparser.h" -#include "cphonegsmoptioncontainer.h" -#include "cphonegsmparserresult.h" -#include "cphoneparserfeatures.h" - -// CONSTANTS -const TInt KPhoneManufacturerCodeArrayGanularity = 5; - -_LIT( KPhoneHashStr, "#" ); -#ifdef PHONEPARSER_PARSE_DEBUG_CODE -_LIT( KPhoneDebugPrefixStr, "*#74603" ); -#endif - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmManufacturerParser::CPhoneGsmManufacturerParser -// ----------------------------------------------------------------------------- -// -CPhoneGsmManufacturerParser::CPhoneGsmManufacturerParser() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmManufacturerParser::ConstructL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmManufacturerParser::ConstructL() - { - iArray = new ( ELeave ) CCodeArray( - KPhoneManufacturerCodeArrayGanularity ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmManufacturerParser::NewLC -// ----------------------------------------------------------------------------- -// -CPhoneGsmManufacturerParser* CPhoneGsmManufacturerParser::NewLC() - { - CPhoneGsmManufacturerParser* self = - new ( ELeave ) CPhoneGsmManufacturerParser; - - CleanupStack::PushL( self ); - self->ConstructL(); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmManufacturerParser::~CPhoneGsmManufacturerParser -// ----------------------------------------------------------------------------- -// -CPhoneGsmManufacturerParser::~CPhoneGsmManufacturerParser() - { - delete iArray; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmManufacturerParser::AddStringL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmManufacturerParser::AddStringL( - const TDesC& aString, - TInt aFlags, - TUint aCommand, - TInt aFeatureId ) - { - TCodeInfo info; - info.iString.Set( aString ); - info.iFlags = aFlags; - info.iCommand = aCommand; - info.iFeatureId = aFeatureId; - - iArray->AppendL( info ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmManufacturerParser::ParseL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmManufacturerParser::ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ) - { - TBool result = EFalse; - - aResult.ClearL(); - - TInt index; - TInt count = iArray->Count(); - - // Go through all elements. - for ( index = 0; index < count; index++ ) - { - TCodeInfo& info = iArray->At( index ); - - // Check if string matches to code information. - if ( CheckCode( aString, info, aOptions ) ) - { - // Yes, fill result - aResult.SetUid( KPhoneUidManufacturerCode ); - aResult.SetAuxInformation( info.iCommand ); - result = ETrue; - break; - } - } - -#ifdef PHONEPARSER_PARSE_DEBUG_CODE - if ( !result ) - { - // Check special debug code. - - if ( IsPrefixOf( aString, KPhoneDebugPrefixStr ) && - IsPostfixOf( aString, KPhoneHashStr ) ) - { - aResult.SetUid( KPhoneUidManufacturerDebugCode ); - aResult.SetAuxInformation( 0 ); - aResult.AddParameterL( - aString.Mid( - KPhoneDebugPrefixStr().Length(), - aString.Length() - KPhoneDebugPrefixStr().Length() - 1 ) ); - result = ETrue; - } - } -#endif - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmManufacturerParser::CheckCode -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmManufacturerParser::CheckCode( - const TDesC& aString, - const TCodeInfo& aInfo, - CPhoneGsmOptionContainerBase& aOptions ) - { - TInt flags = aInfo.iFlags; - - if ( !aString.Length() ) - { - return EFalse; - } - - if ( !CheckSituation( aString, flags, aOptions ) ) - { - return EFalse; - } - - if ( aInfo.iFeatureId ) - { - if ( !CPhoneParserFeatures::FeatureSupported( aInfo.iFeatureId ) ) - { - return EFalse; - } - } - - // Check if string is ok. - if ( ( flags & EFlagPrefix ) ) - { - return ( IsPrefixOf( aString, aInfo.iString ) ); - } - else - { - return ( aString == aInfo.iString ); - } - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmManufacturerParser::CheckSituation -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmManufacturerParser::CheckSituation( - const TDesC& aString, - TInt aFlags, - CPhoneGsmOptionContainerBase& aOptions ) - { - TBool result = ETrue; - - // Check if it is send operation or hash check. - TBool send = aOptions.FindOptionStatus( KPhoneOptionSend ); - - TBool isCode = aFlags & EFlagCode; - TBool isSend = aFlags & EFlagSend; - - if ( isCode && send ) - { - result = EFalse; - } - else if ( isCode && !send ) - { - // For code, there must be hash. - - if ( aString.Right( 1 ) != KPhoneHashStr ) // Compare rightmost characters - { - result = EFalse; - } - } - - if ( isSend && !send ) - { - result = EFalse; - } - - // Check if phone is in correct state. - TBool incall = aOptions.FindOptionStatus( KPhoneOptionInCall ); - - if ( ( aFlags & EFlagNotInIdle ) && !incall ) - { - result = EFalse; - } - - if ( ( aFlags & EFlagNotInInCall ) && incall ) - { - result = EFalse; - } - - return result; - } - -// End of File - diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmMiscHandler.cpp --- a/telutils/phoneparser/src/CPhoneGsmMiscHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,50 +0,0 @@ -/* -* Copyright (c) 2002 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: Implementation of handler for USSD. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmmischandler.h" -#include "cphonegsmparserbase.h" -#include "cphonegsmparserresult.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmMiscHandler::ProcessL -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhoneGsmMiscHandler::ProcessL( - CPhoneGsmParserResult& aResult ) - { - TUint uid = aResult.Uid(); - - switch ( uid ) - { - case KPhoneUidUnstructuredService: - if ( aResult.CountParameters() ) - { - // First parameter is ussd string. - ProcessUssdL( aResult.ParameterAt( 0 ) ); - } - break; - - default: - break; - } - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmOptionContainer.cpp --- a/telutils/phoneparser/src/CPhoneGsmOptionContainer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,181 +0,0 @@ -/* -* Copyright (c) 2002 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: Implementation of option container. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmoptioncontainer.h" -#include "phonegsmparser.h" -#include "cphoneparserfeatures.h" - -// CONSTANTS -const TInt KPhoneGsmOptionGranularity = 5; - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmOptionContainer::CPhoneGsmOptionContainer -// ----------------------------------------------------------------------------- -// -CPhoneGsmOptionContainer::CPhoneGsmOptionContainer() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmOptionContainer::ConstructL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmOptionContainer::ConstructL() - { - iOptions = - new ( ELeave ) COptionArray( KPhoneGsmOptionGranularity ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmOptionContainer::NewL -// ----------------------------------------------------------------------------- -// -CPhoneGsmOptionContainer* CPhoneGsmOptionContainer::NewL() - { - CPhoneGsmOptionContainer* self = - new (ELeave) CPhoneGsmOptionContainer; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmOptionContainer::~CPhoneGsmOptionContainer -// ----------------------------------------------------------------------------- -// -CPhoneGsmOptionContainer::~CPhoneGsmOptionContainer() - { - delete iOptions; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmOptionContainer::IsOptionDefined -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmOptionContainer::IsOptionDefined( - TInt aOptionUid ) const - { - // For two digit calling, we have one option defined - // in extension. - if ( aOptionUid == KPhoneOptionTwoDigitCalling ) - { - return ETrue; - } - - TKeyArrayFix key = MakeKey(); - TOptionItem option; - option.iUid = aOptionUid; - TInt index; - - return !iOptions->FindIsq( option, key, index ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmOptionContainer::FindOptionStatus -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmOptionContainer::FindOptionStatus( - TInt aOptionUid ) const - { - // For two digit calling, we have one option defined - // in extension. - if ( aOptionUid == KPhoneOptionTwoDigitCalling ) - { - return CPhoneParserFeatures::TwoDigitCallingEnabled(); - } - - TKeyArrayFix key = MakeKey(); - TOptionItem option; - option.iUid = aOptionUid; - TInt index; - - if ( iOptions->FindIsq( option, key, index ) ) - { - PhoneGsmParser::Panic( PhoneGsmParser::EOptionNotDefined ); - } - - TBool result = iOptions->At( index ).iStatus; - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmOptionContainer::SetOptionStatus -// ----------------------------------------------------------------------------- -// -void CPhoneGsmOptionContainer::SetOptionStatus( - TInt aOptionUid, - TBool aStatus ) - { - // For two digit calling, we have one option defined - // in extension - not allowed to be modified. - if ( aOptionUid == KPhoneOptionTwoDigitCalling ) - { - PhoneGsmParser::Panic( PhoneGsmParser::EIncorrectUse ); - } - - TKeyArrayFix key = MakeKey(); - TOptionItem option; - option.iUid = aOptionUid; - TInt index; - - if ( iOptions->FindIsq( option, key, index ) ) - { - PhoneGsmParser::Panic( PhoneGsmParser::EOptionNotDefined ); - } - - iOptions->At( index ).iStatus = aStatus; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmOptionContainer::DefineOptionL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmOptionContainer::DefineOptionL( - TInt aOptionUid, - TBool aStatus ) - { - if ( IsOptionDefined( aOptionUid ) ) - { - PhoneGsmParser::Panic( PhoneGsmParser::EOptionAlreadyDefined ); - } - - TKeyArrayFix key = MakeKey(); - TOptionItem option; - option.iUid = aOptionUid; - option.iStatus = aStatus; - - iOptions->InsertIsqL( option, key ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmOptionContainer::MakeKey -// ----------------------------------------------------------------------------- -// -TKeyArrayFix CPhoneGsmOptionContainer::MakeKey() - { - return TKeyArrayFix( _FOFF( TOptionItem, iUid ), ECmpTInt ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmParser.cpp --- a/telutils/phoneparser/src/CPhoneGsmParser.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,250 +0,0 @@ -/* -* Copyright (c) 2002 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: Principal parsing process is defined by the CPhoneGsmParser -* class. -* -*/ - - -// INCLUDE FILES -#include - -#include "cphonegsmparser.h" -#include "cphonegsmparserresult.h" -#include "cphonegsmparserbase.h" -#include "cphonegsmdummyparser.h" -#include "cphonegsmoptioncontainer.h" -#include "cphoneparserfeatures.h" -#include "cphonegsmoptioncontainerbase.h" - -// CONSTANTS - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmParser::NewL -// ----------------------------------------------------------------------------- -// -CPhoneGsmParser* CPhoneGsmParser::NewL( - CPhoneGsmParserBase* aSsProcedure, - CPhoneGsmParserBase* aSimControlProcedure, - CPhoneGsmParserBase* aPhoneNumber, - CPhoneGsmParserBase* aManufacturerSpecific, - CPhoneGsmParserBase* aEmergencyNumberParser, - CPhoneGsmParserBase* aVoipNumber) - { - // Ownership of these instances is transferred, thus - // creation of the instance must not leave. - - CPhoneGsmParser* self = - new CPhoneGsmParser( - aSsProcedure, - aSimControlProcedure, - aPhoneNumber, - aManufacturerSpecific, - aEmergencyNumberParser, - aVoipNumber); - - if ( !self ) - { - delete aSsProcedure; - delete aSimControlProcedure; - delete aPhoneNumber; - delete aManufacturerSpecific; - delete aEmergencyNumberParser; - delete aVoipNumber; - - User::Leave( KErrNoMemory ); - } - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParser::~CPhoneGsmParser -// ----------------------------------------------------------------------------- -// -CPhoneGsmParser::~CPhoneGsmParser() - { - delete iGsmSsProcedure; - delete iGsmSimControlProcedure; - delete iGsmPhoneNumber; - delete iGsmManufacturerProcedure; - delete iGsmEmergencyNumber; - delete iVoipNumber; - CPhoneParserFeatures::Free(); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParser::CPhoneGsmParser -// ----------------------------------------------------------------------------- -// -CPhoneGsmParser::CPhoneGsmParser( - CPhoneGsmParserBase* aSsProcedure, - CPhoneGsmParserBase* aSimControlProcedure, - CPhoneGsmParserBase* aPhoneNumber, - CPhoneGsmParserBase* aManufacturerSpecific, - CPhoneGsmParserBase* aEmergencyNumberParser, - CPhoneGsmParserBase* aVoipNumber) - : iGsmSsProcedure( aSsProcedure ), - iGsmSimControlProcedure( aSimControlProcedure ), - iGsmPhoneNumber( aPhoneNumber ), - iGsmManufacturerProcedure( aManufacturerSpecific ), - iGsmEmergencyNumber( aEmergencyNumberParser ), - iVoipNumber( aVoipNumber ) - { - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParser::ConstructL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmParser::ConstructL() - { - // If we didn't receive a parser for something, then create dummy. - - if ( !iGsmSsProcedure ) - { - iGsmSsProcedure = CPhoneGsmDummyParser::NewL(); - } - if ( !iGsmSimControlProcedure ) - { - iGsmSimControlProcedure = CPhoneGsmDummyParser::NewL(); - } - if ( !iGsmPhoneNumber ) - { - iGsmPhoneNumber = CPhoneGsmDummyParser::NewL(); - } - if ( !iGsmManufacturerProcedure ) - { - iGsmManufacturerProcedure = CPhoneGsmDummyParser::NewL(); - } - if ( !iGsmEmergencyNumber ) - { - iGsmEmergencyNumber = CPhoneGsmDummyParser::NewL(); - } - if ( !iVoipNumber ) - { - iVoipNumber = CPhoneGsmDummyParser::NewL(); - } - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParser::ParseL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmParser::ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ) - { - TBool result = EFalse; - - result = DoParseL( - aString, - aResult, - static_cast( aOptions ) ); - - if ( !result ) - { - aResult.ClearL(); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParser::DoParseL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmParser::DoParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainer& aOptions ) - { - TBool result = EFalse; - aResult.ClearL(); - - // We do not handle empty strings. - if ( !aString.Length() ) - { - return EFalse; - } - - TBool sendOperation = aOptions.FindOptionStatus( KPhoneOptionSend ); - - // Check if emergency number. - result = iGsmEmergencyNumber->ParseL( aString, aResult, aOptions ); - - // First check if string is GSM ss procedure supported by MS. - if ( !result ) - { - result = iGsmSsProcedure->ParseL( aString, aResult, aOptions ); - } - - if ( !result ) - { - // Check if it is sim control procedure. - result = iGsmSimControlProcedure->ParseL( aString, aResult, aOptions ); - } - - if ( !result ) - { - // Check if it is manufacturer specific procedure. - result = - iGsmManufacturerProcedure->ParseL( aString, aResult, aOptions ); - } - if ( !result ) - { - // Check if it voip call. - result = iVoipNumber->ParseL( aString, aResult, aOptions ); - } - if ( !result ) - { - result = iGsmPhoneNumber->ParseL( aString, aResult, aOptions ); - } - if ( !result ) - { - result = DefineAsUssdL( aString, aResult, aOptions ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParser::DefineAsUssd -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmParser::DefineAsUssdL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainer& aOptions ) - { - aResult.ClearL(); - - TBool result = aOptions.FindOptionStatus( KPhoneOptionSend ); - if ( result ) - { - aResult.SetUid( KPhoneUidUnstructuredService ); - aResult.AddParameterL( aString ); - } - return result; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmParserBase.cpp --- a/telutils/phoneparser/src/CPhoneGsmParserBase.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,90 +0,0 @@ -/* -* Copyright (c) 2002 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: Utility functions common for all parsers. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmparserbase.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserBase::IsPrefixOf -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmParserBase::IsPrefixOf( - const TDesC& aString, - const TDesC& aPrefix ) - { - TBool result = EFalse; - - if ( aPrefix.Length() <= aString.Length() ) - { - TPtrC part( aString.Left( aPrefix.Length() ) ); - - result = ( part == aPrefix ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserBase::IsPostfixOf -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmParserBase::IsPostfixOf( - const TDesC& aString, - const TDesC& aPostfix ) - { - TBool result = EFalse; - - if ( aPostfix.Length() <= aString.Length() ) - { - TPtrC part( aString.Right( aPostfix.Length() ) ); - - result = ( part == aPostfix ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserBase::ExtractNumber -// ----------------------------------------------------------------------------- -// -TPtrC CPhoneGsmParserBase::ExtractNumber( - const TDesC& aString ) - { - TPtrC result( KNullDesC ); - - if ( aString.Length() ) - { - TLex input( aString ); - TLexMark mark; - input.Mark( mark ); - - while ( input.Peek().IsDigit() ) - { - input.Inc(); - } - - result.Set( input.MarkedToken( mark ) ); - } - - return result; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmParserContainer.cpp --- a/telutils/phoneparser/src/CPhoneGsmParserContainer.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,129 +0,0 @@ -/* -* Copyright (c) 2002 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: Container for parsers. -* -*/ - - -// INCLUDE FILES -#include - -#include "cphonegsmparsercontainer.h" -#include "cphonegsmparserresult.h" -#include "cphonegsmoptioncontainer.h" -#include "phonegsmparser.h" - -// CONSTANTS -const TInt KPhoneParserArrayGranularity = 5; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserContainer::CPhoneGsmParserContainer -// ----------------------------------------------------------------------------- -// -CPhoneGsmParserContainer::CPhoneGsmParserContainer() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserContainer::ConstructL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmParserContainer::ConstructL() - { - iArray = - new ( ELeave ) CParserArray( KPhoneParserArrayGranularity ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserContainer::NewLC -// ----------------------------------------------------------------------------- -// -CPhoneGsmParserContainer* CPhoneGsmParserContainer::NewLC() - { - CPhoneGsmParserContainer* self = - new ( ELeave ) CPhoneGsmParserContainer; - - CleanupStack::PushL( self ); - self->ConstructL(); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserContainer::~CPhoneGsmParserContainer -// ----------------------------------------------------------------------------- -// -CPhoneGsmParserContainer::~CPhoneGsmParserContainer() - { - if ( iArray ) - { - iArray->ResetAndDestroy(); - } - delete iArray; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserContainer::AddL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmParserContainer::AddL( - CPhoneGsmParserBase& aParser ) - { - TInt index; - TInt count = iArray->Count(); - - for ( index = 0; index < count; index++ ) - { - CPhoneGsmParserBase* parser = iArray->At( index ); - - if ( parser == &aParser ) - { - PhoneGsmParser::Panic( PhoneGsmParser::EIncorrectUse ); - } - } - - iArray->AppendL( &aParser ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserContainer::ParseL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmParserContainer::ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ) - { - TInt index; - TInt count = iArray->Count(); - TBool result = EFalse; - - for ( index = 0; index < count; index++ ) - { - CPhoneGsmParserBase* parser = iArray->At( index ); - - result = parser->ParseL( aString, aResult, aOptions ); - - if ( result ) - { - break; - } - } - - return result; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmParserResult.cpp --- a/telutils/phoneparser/src/CPhoneGsmParserResult.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,145 +0,0 @@ -/* -* Copyright (c) 2002 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: Encapsulates results of parsing. -* -*/ - - -// INCLUDE FILES -#include - -#include "cphonegsmparserresult.h" -#include "cphonegsmparserbase.h" -#include "phonegsmparser.h" - -// CONSTANTS -const TInt KPhoneParserResultParameterGranularity = 10; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserResult::CPhoneGsmParserResult -// ----------------------------------------------------------------------------- -// -CPhoneGsmParserResult::CPhoneGsmParserResult() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserResult::ConstructL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmParserResult::ConstructL() - { - iParameters = - new ( ELeave ) - CArrayFixFlat< TPtrC >( KPhoneParserResultParameterGranularity ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserResult::NewL -// ----------------------------------------------------------------------------- -// -CPhoneGsmParserResult* CPhoneGsmParserResult::NewL() - { - CPhoneGsmParserResult* self = new (ELeave) CPhoneGsmParserResult; - - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserResult::~CPhoneGsmParserResult -// ----------------------------------------------------------------------------- -// -CPhoneGsmParserResult::~CPhoneGsmParserResult() - { - delete iParameters; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserResult::ReserveParametersL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmParserResult::ReserveParametersL( - TUint aAmount ) - { - iParameters->SetReserveL( aAmount ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserResult::ClearL -// -// Zero all information. -// ----------------------------------------------------------------------------- -// -void CPhoneGsmParserResult::ClearL() - { - iUid = KPhoneGsmUidInvalid; - iAuxInformation = 0; - - if ( iParameters->Count() ) - { - iParameters->ResizeL( 0 ); // Doesn't leave - } - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserResult::ParameterAt -// ----------------------------------------------------------------------------- -// -const TDesC& CPhoneGsmParserResult::ParameterAt( - TInt aIndex ) const - { - __ASSERT_ALWAYS( aIndex >= 0 && - aIndex < iParameters->Count(), - PhoneGsmParser::Panic( PhoneGsmParser::EIncorrectUse ) ); - - return iParameters->At( aIndex ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserResult::SetUid -// ----------------------------------------------------------------------------- -// -void CPhoneGsmParserResult::SetUid( - TUint aUid ) - { - iUid = aUid; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserResult::SetAuxInformation -// ----------------------------------------------------------------------------- -// -void CPhoneGsmParserResult::SetAuxInformation( - TUint aAuxInformation ) - { - iAuxInformation = aAuxInformation; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmParserResult::AddParameterL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmParserResult::AddParameterL( - const TDesC& aParameter ) - { - iParameters->AppendL( aParameter ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmPcnProcedureHandler.cpp --- a/telutils/phoneparser/src/CPhoneGsmPcnProcedureHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -/* -* Copyright (c) 2002 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: Handler for PCN procedures. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmpcnprocedurehandler.h" -#include "cphonegsmparserresult.h" -#include "cphonegsmpcnprocedureparser.h" - -// CONSTANTS - -// Position of password in SIM codes. -const TInt KPhoneGsmPcnSimPasswordParamAt = 0; - -// Position of type in SIM codes. -const TInt KPhoneGsmPcnSimTypeParamAt = 1; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmPcnProcedureHandler::ProcessL -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhoneGsmPcnProcedureHandler::ProcessL( - CPhoneGsmParserResult& aResult ) - { - switch ( aResult.Uid() ) - { - case KPhoneUidSimLockCode: - ProcessSimLockL( - aResult.ParameterAt( KPhoneGsmPcnSimPasswordParamAt ), - aResult.ParameterAt( KPhoneGsmPcnSimTypeParamAt ) ); - break; - - case KPhoneUidSimUnlockCode: - ProcessSimUnlockL( - aResult.ParameterAt( KPhoneGsmPcnSimPasswordParamAt ), - aResult.ParameterAt( KPhoneGsmPcnSimTypeParamAt ) ); - break; - - default: - break; - } - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmPcnProcedureParser.cpp --- a/telutils/phoneparser/src/CPhoneGsmPcnProcedureParser.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,208 +0,0 @@ -/* -* Copyright (c) 2002 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: Parser for PCN procedures. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmpcnprocedureparser.h" -#include "cphonegsmparserresult.h" -#include "cphonegsmoptioncontainer.h" - -// CONSTANTS - -// GsmPcn sim lock code prefix -_LIT( KPhoneGsmPcnSimLockCodePrefix, "*pw+" ); - -// GsmPcn sim unlock code prefix -_LIT( KPhoneGsmPcnSimUnlockCodePrefix, "#pw+" ); - -// Plus character. -const TInt KPhoneGsmPcnPlus = '+'; - -// Hash string -_LIT( KPhoneGsmPcnHash, "#" ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmPcnProcedureParser::CPhoneGsmPcnProcedureParser -// ----------------------------------------------------------------------------- -// -CPhoneGsmPcnProcedureParser::CPhoneGsmPcnProcedureParser() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPcnProcedureParser::NewLC -// ----------------------------------------------------------------------------- -// -CPhoneGsmPcnProcedureParser* CPhoneGsmPcnProcedureParser::NewLC() - { - CPhoneGsmPcnProcedureParser* self = - new ( ELeave ) CPhoneGsmPcnProcedureParser; - - CleanupStack::PushL( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPcnProcedureParser::ParseL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPcnProcedureParser::ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ) - { - TBool result = EFalse; - aResult.ClearL(); - - CPhoneGsmOptionContainer& options = - static_cast( aOptions ); - - if ( !options.FindOptionStatus( KPhoneOptionSend ) ) - { - result = HandleSimLockCodeL( aString, aResult ); - - if ( !result ) - { - result = HandleSimUnlockCodeL( aString, aResult ); - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPcnProcedureParser::HandleSimLockCodeL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPcnProcedureParser::HandleSimLockCodeL( - const TDesC& aString, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - - // Is this SIM lock command - if ( IsPrefixOf( aString, KPhoneGsmPcnSimLockCodePrefix ) ) - { - TLex input( aString ); - input.Inc( KPhoneGsmPcnSimLockCodePrefix().Length() ); - - if ( HandleLockCodeParametersL( input.Remainder(), aResult ) ) - { - result = ETrue; - aResult.SetUid( KPhoneUidSimLockCode ); - } - else if ( IsPostfixOf( aString, KPhoneGsmPcnHash ) ) - { - result = ETrue; - aResult.ClearL(); - aResult.SetUid( KPhoneUidSimLockCode ); - aResult.AddParameterL( KNullDesC ); - aResult.AddParameterL( KNullDesC ); - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPcnProcedureParser::HandleSimUnlockCodeL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPcnProcedureParser::HandleSimUnlockCodeL( - const TDesC& aString, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - - // Is this SIM unlock command - if ( IsPrefixOf( aString, KPhoneGsmPcnSimUnlockCodePrefix ) ) - { - TLex input( aString ); - input.Inc( KPhoneGsmPcnSimLockCodePrefix().Length() ); - - if ( HandleLockCodeParametersL( input.Remainder(), aResult ) ) - { - result = ETrue; - aResult.SetUid( KPhoneUidSimUnlockCode ); - } - else if ( IsPostfixOf( aString, KPhoneGsmPcnHash ) ) - { - result = ETrue; - aResult.ClearL(); - aResult.SetUid( KPhoneUidSimUnlockCode ); - aResult.AddParameterL( KNullDesC ); - aResult.AddParameterL( KNullDesC ); - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPcnProcedureParser::HandleLockCodeParametersL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPcnProcedureParser::HandleLockCodeParametersL( - const TDesC& aString, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - TLex input( aString ); - TInt len; // length of strings - - // Extract first parameter - TPtrC password( ExtractNumber( aString ) ); - len = password.Length(); - - if ( len ) - { - // Parameter ok - input.Inc( len ); - - // Plus is separator of two parameters - if ( input.Peek() == KPhoneGsmPcnPlus ) - { - input.Inc(); - - // Extract second parameter - TPtrC type( ExtractNumber( input.Remainder() ) ); - len = type.Length(); - - if ( len ) - { - // Parameter ok - input.Inc( len ); - - // Check if we are at the end of string - if ( input.Remainder() == KPhoneGsmPcnHash ) - { - aResult.AddParameterL( password ); - aResult.AddParameterL( type ); - - result = ETrue; - } - } - } - } - - return result; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmPhoneNumberHandler.cpp --- a/telutils/phoneparser/src/CPhoneGsmPhoneNumberHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,57 +0,0 @@ -/* -* Copyright (c) 2002-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: Handler for phone numbers. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmphonenumberhandler.h" -#include "cphonegsmphonenumberparser.h" -#include "cphonegsmparserresult.h" - -// CONSTANTS -const TInt KPhonePhoneNumberDialParam = 0; -const TInt KPhonePhoneNumberPostfixParam = 1; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberHandler::ProcessL -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhoneGsmPhoneNumberHandler::ProcessL( - CPhoneGsmParserResult& aResult ) - { - if ( aResult.Uid() == KPhoneUidPhoneNumber ) - { - TPtrC number( aResult.ParameterAt( KPhonePhoneNumberDialParam ) ); - TPtrC postfix( aResult.ParameterAt( KPhonePhoneNumberPostfixParam ) ); - TClir clirover = EClirDefault; - - if ( aResult.AuxInformation() == KPhoneDialSuppressClir ) - { - clirover = EClirSuppress; - } - else if ( aResult.AuxInformation() == KPhoneDialInvokeClir ) - { - clirover = EClirInvoke; - } - - ProcessDialToNumberL( number, postfix, clirover ); - } - - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmPhoneNumberParser.cpp --- a/telutils/phoneparser/src/CPhoneGsmPhoneNumberParser.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,329 +0,0 @@ -/* -* Copyright (c) 2002 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: Parser for phone numbers. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmphonenumberparser.h" -#include "cphonegsmparserresult.h" -#include "cphonegsmoptioncontainer.h" -#include "cphonevoipnumberparser.h" -#include "cphoneparserfeatures.h" -#include "phoneparsercommon.h" -// CONSTANTS -_LIT( KPhoneClirSuppress, "*31#" ); -_LIT( KPhoneClirInvoke, "#31#" ); - -const TInt KPhoneNumberOne = '1'; - -const TInt KPhoneNumberMaxLength = 80; - -const TInt KPhoneShortStringMinLength = 1; // Must be positive. -const TInt KPhoneShortStringMaxLength = 2; // Must be positive. -const TInt KPhoneHashStringMinLength = 2; -const TInt KPhoneTwoDigitStringLength = 2; - -// If there is one of the characters in the string, then the string -// is considered as phone number. -_LIT( KPhoneMustPhoneNumberChars, "pw" ); -_LIT( KPhoneHashChar, "#" ); -_LIT( KPhoneNumberZero, "0" ); - - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberParser::CPhoneGsmPhoneNumberParser -// ----------------------------------------------------------------------------- -// -CPhoneGsmPhoneNumberParser::CPhoneGsmPhoneNumberParser() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberParser::NewLC -// ----------------------------------------------------------------------------- -// -CPhoneGsmPhoneNumberParser* CPhoneGsmPhoneNumberParser::NewLC() - { - CPhoneGsmPhoneNumberParser* self = - new ( ELeave ) CPhoneGsmPhoneNumberParser; - - CleanupStack::PushL( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberParser::ParseL -// -// Phone number can contain following parts: supplementary -// service prefix, main part and dtmf postfix. -// -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPhoneNumberParser::ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ) - { - aResult.ClearL(); - - TBool result = DoParseL( - aString, - aResult, - static_cast( aOptions ) ); - - if ( !result ) - { - aResult.ClearL(); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberParser::DoParseL -// -// Phone number can contain following parts: supplementary -// service prefix, main part and dtmf postfix. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPhoneNumberParser::DoParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainer& aOptions ) - { - TBool result = EFalse; - - if ( !aOptions.FindOptionStatus( KPhoneOptionSend )) - { - return EFalse; - } - if ( !ContainsPauseOrWaitChars( aString )) // p or w --> always phone number - { - if ( IsHashString( aString )) - { - return EFalse; - } - if ( aString.Length() >= KPhoneShortStringMinLength && - aString.Length() <= KPhoneShortStringMaxLength ) - { - if ( !IsZeroDialling( aString, aOptions ) && - !IsTwoDigitDialling( aString ) && !Is1xDialling( aString, aOptions )) - { - return EFalse; - } - } - } - TLex input( aString ); - - if ( !HandleServicePrefix( input, aResult ) ) - { - aResult.SetAuxInformation( KPhoneDialDefaultClir ); - } - - // Take number part and add it to result. - result = TakeNumberPartL( input, aResult ); - - if ( result ) - { - if ( !aOptions.FindOptionStatus( KPhoneOptionVoipCall ) ) - { - aResult.SetUid( KPhoneUidPhoneNumber ); - } - - // Add rest of string( dtmf postfix ) to result. - if ( !TakeDtmfPostfixL( input, aResult ) ) - { - aResult.AddParameterL( KNullDesC ); - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberParser::HandleServicePrefix -// -// Checks if there is clir suppress/invoke prefix in the -// string. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPhoneNumberParser::HandleServicePrefix( - TLex& aLex, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - TPtrC remainder( aLex.Remainder() ); - - if ( EqualsLeft( remainder, KPhoneClirSuppress ) ) - { - aLex.Inc( KPhoneClirSuppress().Length() ); - aResult.SetAuxInformation( KPhoneDialSuppressClir ); - result = ETrue; - } - else if ( EqualsLeft( remainder, KPhoneClirInvoke ) ) - { - aLex.Inc( KPhoneClirSuppress().Length() ); - aResult.SetAuxInformation( KPhoneDialInvokeClir ); - result = ETrue; - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberParser::TakeNumberPartL -// -// Takes a main part of the phone number. And add -// it to the aReturn parameter with or without optional international prefix. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPhoneNumberParser::TakeNumberPartL( - TLex& aLex, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - - TLexMark start; - aLex.Mark( start ); - - TInt maxLength = KPhoneNumberMaxLength; - - // Checks is first char optional international prefix - // and if its increments to the next char position. - if ( aLex.Peek() == KPhonePlus ) - { - aLex.Inc(); - maxLength++; - } - - // Check possible 'p','w' or '+' marks. - while ( ( aLex.Peek().IsDigit() ) || - ( aLex.Peek() == KPhoneNumberAsterisk ) || - ( aLex.Peek() == KPhoneNumberHash ) ) - { - aLex.Inc(); - } - - // Add parsing string to result parameter - TPtrC mainpart( aLex.MarkedToken( start ) ); - const TInt length = mainpart.Length(); - if ( length <= maxLength ) - { - result = ETrue; - aResult.AddParameterL( mainpart ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberParser::TakeDtmfPostfixL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPhoneNumberParser::TakeDtmfPostfixL( - TLex& aLex, - CPhoneGsmParserResult& aResult ) - { - // Add rest of string( after TLex16::iNext ) to result. - aResult.AddParameterL( aLex.Remainder() ); - return ETrue; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberParser::EqualsLeft -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPhoneNumberParser::EqualsLeft( - const TDesC& aDesc, - const TDesC& aLeft ) - { - return IsPrefixOf( aDesc, aLeft ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberParser::ContainsPauseOrWaitChars -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPhoneNumberParser::ContainsPauseOrWaitChars( - const TDesC& aString ) const - { - - TBool result = EFalse; - TPtrC chs( KPhoneMustPhoneNumberChars ); - for ( TInt index = 0; index < chs.Length(); index++ ) - { - if ( aString.Locate( chs[ index ] ) != KErrNotFound ) - { - result = ETrue; - break; - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberParser::IsHashString -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPhoneNumberParser::IsHashString( - const TDesC& aString ) const - { - return aString.Length() >= KPhoneHashStringMinLength && - // Rightmost character must be # - aString.Right( 1 ) == KPhoneHashChar; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberParser::IsZeroDialling -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPhoneNumberParser::IsZeroDialling( - const TDesC& aString, CPhoneGsmOptionContainer& aOptions ) const - { - return !aOptions.FindOptionStatus( KPhoneOptionInCall ) && - !aString.Compare( KPhoneNumberZero ) && - CPhoneParserFeatures::IsZeroDialEnabled(); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberParser::IsTwoDigitDialling -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPhoneNumberParser::IsTwoDigitDialling( - const TDesC& aString ) const - { - return CPhoneParserFeatures::TwoDigitCallingEnabled() && - aString.Length()== KPhoneTwoDigitStringLength; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmPhoneNumberParser::Is1xDialling -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmPhoneNumberParser::Is1xDialling( - const TDesC& aString, CPhoneGsmOptionContainer& aOptions ) const - { - return !aOptions.FindOptionStatus( KPhoneOptionInCall ) && - aString.Length()== KPhoneShortStringMaxLength && - aString[0] == KPhoneNumberOne && - TChar( aString[1] ).IsDigit(); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmSimControlHandler.cpp --- a/telutils/phoneparser/src/CPhoneGsmSimControlHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,92 +0,0 @@ -/* -* Copyright (c) 2002 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: Handler for SIM control procedures. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmsimcontrolhandler.h" -#include "cphonegsmsimcontrolparser.h" -#include "cphonegsmparserresult.h" -#include "phonegsmparser.h" - -// CONSTANTS -const TInt KPhoneSimControlOldPinPukParam = 0; -const TInt KPhoneSimControlNewPinParam = 1; -const TInt KPhoneSimControlNewPinVerifyParam = 2; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlHandler::ProcessL -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhoneGsmSimControlHandler::ProcessL( - CPhoneGsmParserResult& aResult ) - { - switch( aResult.Uid() ) - { - case KPhoneUidPinChange: - ProcessPinChangeL( EPinCode, aResult ); - break; - - case KPhoneUidPin2Change: - ProcessPinChangeL( EPin2Code, aResult ); - break; - - case KPhoneUidPinUnblock: - ProcessPinUnblockL( EPinCode, aResult ); - break; - - case KPhoneUidPin2Unblock: - ProcessPinUnblockL( EPin2Code, aResult ); - break; - - default: - break; - } - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlHandler::ProcessPinChangeL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmSimControlHandler::ProcessPinChangeL( - TPinCode aType, - CPhoneGsmParserResult& aResult ) - { - ProcessChangePinL( - aType, - aResult.ParameterAt( KPhoneSimControlOldPinPukParam ), - aResult.ParameterAt( KPhoneSimControlNewPinParam ), - aResult.ParameterAt( KPhoneSimControlNewPinVerifyParam ) ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlHandler::ProcessPinUnblockL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmSimControlHandler::ProcessPinUnblockL( - TPinCode aType, - CPhoneGsmParserResult& aResult ) - { - ProcessUnblockPinL( - aType, - aResult.ParameterAt( KPhoneSimControlOldPinPukParam ), - aResult.ParameterAt( KPhoneSimControlNewPinParam ), - aResult.ParameterAt( KPhoneSimControlNewPinVerifyParam ) ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmSimControlParser.cpp --- a/telutils/phoneparser/src/CPhoneGsmSimControlParser.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,369 +0,0 @@ -/* -* Copyright (c) 2002 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: Parser for SIM control procedures. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmsimcontrolparser.h" -#include "cphonegsmparserresult.h" -#include "cphonegsmoptioncontainer.h" - -// CONSTANTS -_LIT( KPhoneSimControlPinChangeCode, "04" ); -_LIT( KPhoneSimControlPin2ChangeCode, "042" ); -_LIT( KPhoneSimControlPinUnblockCode, "05" ); -_LIT( KPhoneSimControlPin2UnblockCode, "052" ); - -const TInt KPhoneSimControlPinMinLength = 4; -const TInt KPhoneSimControlPinMaxLength = 8; -const TInt KPhoneSimControlPukLength = 8; - -const TInt KPhoneSimControlAsterisk = '*'; -const TInt KPhoneSimControlHash = '#'; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::CPhoneGsmSimControlParser -// ----------------------------------------------------------------------------- -// -CPhoneGsmSimControlParser::CPhoneGsmSimControlParser() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::NewLC -// ----------------------------------------------------------------------------- -// -CPhoneGsmSimControlParser* CPhoneGsmSimControlParser::NewLC() - { - CPhoneGsmSimControlParser* self = - new ( ELeave ) CPhoneGsmSimControlParser; - - CleanupStack::PushL( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::ParseL -// -// Parse sim control procedures. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSimControlParser::ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ) - { - aResult.ClearL(); - - TBool sendOperation = aOptions.FindOptionStatus( KPhoneOptionSend ); - TBool incall = aOptions.FindOptionStatus( KPhoneOptionInCall ); - - TBool result = DoParseL( aString, aResult, sendOperation, incall ); - - if ( !result ) - { - aResult.ClearL(); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::DoParseL -// -// Parse sim control procedures. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSimControlParser::DoParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - TBool aSendOperation, - TBool /*aInCall*/ ) - { - TBool result = EFalse; - aResult.ClearL(); - - TLex input( aString ); - - if ( !aSendOperation ) - { - result = HandlePinOperationsL( input, aResult ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::HandlePinOperationsL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSimControlParser::HandlePinOperationsL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - TLexMark start; - aInput.Mark( start ); - - if ( HandlePinPrefix( aInput, aResult ) ) - { - TPtrC number( NextNumber( aInput ) ); - - if ( number == KPhoneSimControlPinChangeCode ) - { - aResult.SetUid( KPhoneUidPinChange ); - result = HandlePinChangeL( aInput, aResult ); - } - else if ( number == KPhoneSimControlPin2ChangeCode ) - { - aResult.SetUid( KPhoneUidPin2Change ); - result = HandlePinChangeL( aInput, aResult ); - } - else if ( number == KPhoneSimControlPinUnblockCode ) - { - aResult.SetUid( KPhoneUidPinUnblock ); - result = HandlePinUnblockL( aInput, aResult ); - } - else if ( number == KPhoneSimControlPin2UnblockCode ) - { - aResult.SetUid( KPhoneUidPin2Unblock ); - result = HandlePinUnblockL( aInput, aResult ); - } - } - - if ( !result ) - { - aResult.ClearL(); - aInput.UnGetToMark( start ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::HandlePinPrefix -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSimControlParser::HandlePinPrefix( - TLex& aInput, - CPhoneGsmParserResult& /*aResult*/ ) - { - TBool result = ETrue; - - TLexMark start; - aInput.Mark( start ); - - if ( aInput.Peek() != KPhoneSimControlAsterisk ) - { - result = EFalse; - } - else - { - aInput.Inc(); - - if ( aInput.Peek() != KPhoneSimControlAsterisk ) - { - result = EFalse; - } - else - { - aInput.Inc(); - } - } - - if ( !result ) - { - aInput.UnGetToMark( start ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::HandlePinChangeL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSimControlParser::HandlePinChangeL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - TLexMark start; - aInput.Mark( start ); - - result = HandlePinL( aInput, aResult ); - result = result && HandlePinL( aInput, aResult ); - result = result && HandlePinL( aInput, aResult ); - result = result && HandleNoParameters( aInput, aResult ); - - if ( !result ) - { - aInput.UnGetToMark( start ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::HandlePinUnblockL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSimControlParser::HandlePinUnblockL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - TLexMark start; - aInput.Mark( start ); - - result = HandlePukL( aInput, aResult ); - result = result && HandlePinL( aInput, aResult ); - result = result && HandlePinL( aInput, aResult ); - result = result && HandleNoParameters( aInput, aResult ); - - if ( !result ) - { - aInput.UnGetToMark( start ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::HandleNoParameters -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSimControlParser::HandleNoParameters( - TLex& aInput, - CPhoneGsmParserResult& /*aResult*/ ) - { - TBool result = EFalse; - - if ( aInput.Remainder().Length() == 1 && // single character - aInput.Peek() == KPhoneSimControlHash ) - { - result = ETrue; - aInput.Inc(); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::HandlePinL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSimControlParser::HandlePinL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - return HandleParameterL( - aInput, - aResult, - CPhoneGsmSimControlParser::ValidatePin ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::HandlePukL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSimControlParser::HandlePukL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - return HandleParameterL( - aInput, - aResult, - CPhoneGsmSimControlParser::ValidatePuk ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::HandleParameterL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSimControlParser::HandleParameterL( - TLex& aInput, - CPhoneGsmParserResult& aResult, - TParameterValidationFunction aFunc ) - { - TBool result = EFalse; - - TLexMark start; - aInput.Mark( start ); - - if ( aInput.Peek() == KPhoneSimControlAsterisk ) - { - aInput.Inc(); - - TPtrC password( NextNumber( aInput ) ); - - if ( aFunc( password ) ) - { - aResult.AddParameterL( password ); - result = ETrue; - } - } - - if ( !result ) - { - aInput.UnGetToMark( start ); - } - - return result; - } - - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::NextNumber -// ----------------------------------------------------------------------------- -// -TPtrC CPhoneGsmSimControlParser::NextNumber( - TLex& aInput ) - { - TLexMark start; - aInput.Mark( start ); - - while ( aInput.Peek().IsDigit() ) - { - aInput.Inc(); - } - - return aInput.MarkedToken( start ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::ValidatePin -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSimControlParser::ValidatePin( const TDesC& aParam ) - { - return ( aParam.Length() >= KPhoneSimControlPinMinLength ) && - ( aParam.Length() <= KPhoneSimControlPinMaxLength ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSimControlParser::ValidatePuk -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSimControlParser::ValidatePuk( const TDesC& aParam ) - { - return ( aParam.Length() == KPhoneSimControlPukLength ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmSsCallHandler.cpp --- a/telutils/phoneparser/src/CPhoneGsmSsCallHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,84 +0,0 @@ -/* -* Copyright (c) 2002 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: Handler for call concerned SS procedures. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmsscallhandler.h" -#include "cphonegsmsscallparser.h" -#include "cphonegsmparserresult.h" - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsCallHandler::ProcessL -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhoneGsmSsCallHandler::ProcessL( - CPhoneGsmParserResult& aResult ) - { - switch ( aResult.Uid() ) - { - case KPhoneUidCommand0: - ProcessEndOrRejectL(); - break; - - case KPhoneUidCommand1: - { - TInt value = aResult.AuxInformation(); - - if ( !value ) - { - ProcessEndAndAcceptL(); - } - else - { - value--; - ProcessEndCallL( value ); - } - } - break; - - case KPhoneUidCommand2: - { - TInt value = aResult.AuxInformation(); - - if ( !value ) - { - ProcessSwapL(); - } - else - { - value--; - ProcessHoldAllCallsExceptL( value ); - } - } - break; - - case KPhoneUidCommand3: - ProcessJoinL(); - break; - - case KPhoneUidCommand4: - ProcessExplicitCallTransferL(); - break; - - default: - break; - } - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmSsCallParser.cpp --- a/telutils/phoneparser/src/CPhoneGsmSsCallParser.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,143 +0,0 @@ -/* -* Copyright (c) 2002 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: Parser for call concerned SS procedures. -* -*/ - - -// INCLUDE FILES -#include "cphonegsmsscallparser.h" -#include "cphonegsmparserresult.h" -#include "cphonegsmoptioncontainer.h" - -// CONSTANTS - -const TInt KPhoneCommandLength = 1; - -// The length of the following are expected to be KPhoneCommandLength. -_LIT( KPhoneCommand0, "0" ); -_LIT( KPhoneCommand1, "1" ); -_LIT( KPhoneCommand2, "2" ); -_LIT( KPhoneCommand3, "3" ); -_LIT( KPhoneCommand4, "4" ); - -// 2 character commands. -const TInt KPhoneCommandXLength = 2; -_LIT( KPhoneCommand2X, "2" ); -_LIT( KPhoneCommand1X, "1" ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsCallParser::CPhoneGsmSsCallParser -// ----------------------------------------------------------------------------- -// -CPhoneGsmSsCallParser::CPhoneGsmSsCallParser() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsCallParser::NewLC -// ----------------------------------------------------------------------------- -// -CPhoneGsmSsCallParser* CPhoneGsmSsCallParser::NewLC() - { - CPhoneGsmSsCallParser* self = - new ( ELeave ) CPhoneGsmSsCallParser; - - CleanupStack::PushL( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsCallParser::ParseL -// -// Parse call concerned ss strings. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsCallParser::ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ) - { - aResult.ClearL(); - - if ( !aOptions.FindOptionStatus( KPhoneOptionInCall ) || - !aOptions.FindOptionStatus( KPhoneOptionSend ) ) - { - return EFalse; - } - - TInt length = aString.Length(); - - if ( length == KPhoneCommandXLength ) - { - // Check one character from the beginning. - TPtrC prefix( aString.Left( 1 ) ); - - if ( prefix == KPhoneCommand1X ) - { - TLex lex( aString.Right(1) ); - TUint32 value; - - if ( lex.Val( value, EDecimal ) == KErrNone ) - { - aResult.SetUid( KPhoneUidCommand1 ); - aResult.SetAuxInformation( value + 1 ); - } - } - else if ( prefix == KPhoneCommand2X ) - { - TLex lex( aString.Right(1) ); - TUint32 value; - - if ( lex.Val( value, EDecimal ) == KErrNone ) - { - aResult.SetUid( KPhoneUidCommand2 ); - aResult.SetAuxInformation( value + 1 ); - } - } - } - else - { - if ( length == KPhoneCommandLength ) - { - if ( aString == KPhoneCommand0 ) - { - aResult.SetUid( KPhoneUidCommand0 ); - } - else if ( aString == KPhoneCommand1 ) - { - aResult.SetUid( KPhoneUidCommand1 ); - } - else if ( aString == KPhoneCommand2 ) - { - aResult.SetUid( KPhoneUidCommand2 ); - } - else if ( aString == KPhoneCommand3 ) - { - aResult.SetUid( KPhoneUidCommand3 ); - } - else if ( aString == KPhoneCommand4 ) - { - aResult.SetUid( KPhoneUidCommand4 ); - } - } - } - - return ( aResult.Uid() != KPhoneGsmUidInvalid ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmSsHandler.cpp --- a/telutils/phoneparser/src/CPhoneGsmSsHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,366 +0,0 @@ -/* -* Copyright (c) 2002 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: Principal handler for supplementary service procedures. -* -*/ - - -// INCLUDE FILES -#include - -#include "cphonegsmsshandler.h" -#include "cphonegsmssparser.h" -#include "cphonegsmparserresult.h" - -// LOCAL FUNCTION PROTOTYPES - -/** -* Converts from service type to action. -*/ -CPhoneGsmSsHandler::TAction ConvertFromServiceType( - CPhoneGsmSsParser::TServiceType aType ); - -// ============================= LOCAL FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// ConvertFromServiceType -// ----------------------------------------------------------------------------- -// -CPhoneGsmSsHandler::TAction ConvertFromServiceType( - CPhoneGsmSsParser::TServiceType aType ) - { - CPhoneGsmSsHandler::TAction result = - CPhoneGsmSsHandler::EActivate; - - switch ( aType ) - { - case CPhoneGsmSsParser::EServiceActivation: - result = CPhoneGsmSsHandler::EActivate; - break; - case CPhoneGsmSsParser::EServiceDeactivation: - result = CPhoneGsmSsHandler::EDeactivate; - break; - case CPhoneGsmSsParser::EServiceInterrogation: - result = CPhoneGsmSsHandler::EInterrogate; - break; - case CPhoneGsmSsParser::EServiceRegistration: - result = CPhoneGsmSsHandler::ERegister; - break; - case CPhoneGsmSsParser::EServiceErasure: - result = CPhoneGsmSsHandler::EErase; - break; - - default: - break; - } - - return result; - } - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsHandler::ProcessL -// -// Process result and call appropriate function. -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhoneGsmSsHandler::ProcessL( - CPhoneGsmParserResult& aResult ) - { - switch( aResult.Uid() ) - { - case KPhoneUidForwardingAll: - DoProcessForwardingL( - EForwardingAll, - aResult ); - break; - - case KPhoneUidForwardingAllConditional: - DoProcessForwardingL( - EForwardingAllConditional, - aResult ); - break; - - case KPhoneUidForwardingUnconditional: - DoProcessForwardingL( - EForwardingUnconditional, - aResult ); - break; - - case KPhoneUidForwardingNoReply: - DoProcessForwardingL( - EForwardingNoReply, - aResult ); - break; - - case KPhoneUidForwardingNotReachable: - DoProcessForwardingL( - EForwardingNotReachable, - aResult ); - break; - - case KPhoneUidForwardingBusy: - DoProcessForwardingL( - EForwardingBusy, - aResult ); - break; - - case KPhoneUidBarringAllOutgoingCalls: - DoProcessBarringL( - EBarringAllOutgoingCalls, - aResult ); - break; - - case KPhoneUidBarringAllIncomingCalls: - DoProcessBarringL( - EBarringAllIncomingCalls, - aResult ); - break; - - case KPhoneUidBarringAllServices: - DoProcessBarringL( - EBarringAllServices, - aResult ); - break; - - case KPhoneUidBarringAllOutgoingInternationalCalls: - DoProcessBarringL( - EBarringAllOutgoingInternationalCalls, - aResult ); - - break; - - case KPhoneUidBarringAllOutgoingInternationalCallsExceptHome: - DoProcessBarringL( - EBarringAllOutgoingInternationalCallsExceptHome, - aResult ); - break; - - case KPhoneUidBarringAllOutgoingServices: - DoProcessBarringL( - EBarringAllOutgoingServices, - aResult ); - break; - - case KPhoneUidBarringAllIncomingCallsWhenRoaming: - DoProcessBarringL( - EBarringAllIncomingCallsWhenRoaming, - aResult ); - break; - - case KPhoneUidBarringAllIncomingServices: - DoProcessBarringL( - EBarringAllIncomingServices, - aResult ); - break; - - case KPhoneUidWaiting: - { - TPtrC ptr( KNullDesC ); - - if ( aResult.CountParameters() ) - { - ptr.Set( aResult.ParameterAt( 0 ) ); - } - - TUint data = aResult.AuxInformation(); - CPhoneGsmSsParser::TServiceType type; - CPhoneGsmSsParser::TServiceSyntax syntax; - - CPhoneGsmSsParser::UnpackData( data, type, syntax ); - - TAction action = ConvertFromServiceType( type ); - ProcessWaitingL( action, ptr ); - } - break; - - case KPhoneUidCallingLineIdentificationPresentation: - ProcessClipStatusL(); - break; - - case KPhoneUidCallingLineIdentificationRestriction: - ProcessClirStatusL(); - break; - - case KPhoneUidConnectedLinePresentation: - ProcessColpStatusL(); - break; - - case KPhoneUidConnectedLinePresentationRestriction: - ProcessColrStatusL(); - break; - - case KPhoneUidPassword: - { - TPasswordProcedure procedure = EPasswordNetwork; - if ( aResult.ParameterAt( 0 ).Length() ) - { - procedure = EPasswordBarring; - } - - ProcessPasswordChangeL( - procedure, - aResult.ParameterAt(1), - aResult.ParameterAt(2), - aResult.ParameterAt(3) ); - } - break; - - case KPhoneUidCallingNamePresentation: - ProcessCnapStatusL(); - break; - - default: - break; - } - - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsHandler::DoProcessBarringL -// -// Process barring procedures. -// ----------------------------------------------------------------------------- -// -void CPhoneGsmSsHandler::DoProcessBarringL( - TBarringProcedure aBarring, - CPhoneGsmParserResult& aResult ) - { - CPhoneGsmSsParser::TServiceType type; - CPhoneGsmSsParser::TServiceSyntax syntax; - TPtrC password( KNullDesC ); - TPtrC basicCode( KNullDesC ); - - CPhoneGsmSsParser::UnpackData( - aResult.AuxInformation(), - type, - syntax ); - - TAction action = ConvertFromServiceType( type ); - - switch ( type ) - { - case CPhoneGsmSsParser::EServiceDeactivation: - case CPhoneGsmSsParser::EServiceActivation: - - // First parameter is password. - if ( aResult.CountParameters() >= 1 ) - { - password.Set( aResult.ParameterAt( 0 ) ); - } - - // Second parameter is basic service code. - if ( aResult.CountParameters() >= 2 ) - { - basicCode.Set( aResult.ParameterAt( 1 ) ); - } - - ProcessBarringL( - action, - aBarring, - password, - basicCode ); - - break; - - case CPhoneGsmSsParser::EServiceInterrogation: - - // First parameter is basic service code. - if ( aResult.CountParameters() >= 1 ) - { - basicCode.Set( aResult.ParameterAt( 0 ) ); - } - - ProcessBarringL( - action, - aBarring, - KNullDesC, - basicCode ); - - break; - - case CPhoneGsmSsParser::EServiceRegistration: - case CPhoneGsmSsParser::EServiceErasure: - // These can never happen. - break; - - default: - break; - } - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsHandler::DoProcessForwardingL -// -// Process result and call appropriate function. -// ----------------------------------------------------------------------------- -// -void CPhoneGsmSsHandler::DoProcessForwardingL( - TForwardingProcedure aForwarding, - CPhoneGsmParserResult& aResult ) - { - CPhoneGsmSsParser::TServiceType type; - CPhoneGsmSsParser::TServiceSyntax syntax; - - CPhoneGsmSsParser::UnpackData( - aResult.AuxInformation(), - type, - syntax ); - - TAction action = ConvertFromServiceType( type ); - - TPtrC number( KNullDesC ); - TPtrC basicCode( KNullDesC ); - TPtrC timer( KNullDesC ); - - switch ( type ) - { - case CPhoneGsmSsParser::EServiceActivation: - case CPhoneGsmSsParser::EServiceDeactivation: - case CPhoneGsmSsParser::EServiceInterrogation: - case CPhoneGsmSsParser::EServiceErasure: - basicCode.Set( aResult.ParameterAt( 1 ) ); - break; - - case CPhoneGsmSsParser::EServiceRegistration: - { - number.Set( aResult.ParameterAt( 0 ) ); - - if ( aResult.CountParameters() > 1 ) - { - basicCode.Set( aResult.ParameterAt( 1 ) ); - } - - if ( aResult.CountParameters() > 2 ) - { - timer.Set( aResult.ParameterAt( 2 ) ); - } - } - break; - - default: - break; - } - - ProcessForwardingL( - action, - aForwarding, - number, - basicCode, - timer ); - - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneGsmSsParser.cpp --- a/telutils/phoneparser/src/CPhoneGsmSsParser.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,1387 +0,0 @@ -/* -* Copyright (c) 2002 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: Principal parser for supplementary service procedures. -* -*/ - - -// INCLUDE FILES -#include -#include -#include - -#include "cphonegsmssparser.h" -#include "cphonegsmparserresult.h" -#include "phonegsmparser.h" -#include "cphonegsmoptioncontainer.h" -#include "cphoneparserfeatures.h" - -// CONSTANTS - -// Granularity of service array -const TInt KPhoneServiceArrayGranularity = 20; - -// Activation starts with *. See also registration. -_LIT( KPhoneSsActivation, "*" ); - -// Deactivation starts with #. -_LIT( KPhoneSsDeactivation, "#" ); - -// Interrogation starts with *#. -_LIT( KPhoneSsInterrogation, "*#" ); - -// Registration starts with ** OR *. Case * is handled in the code. -_LIT( KPhoneSsRegistration, "**" ); - -// Erasure starts with ##. -_LIT( KPhoneSsErasure, "##" ); - -// It defines characters that can be used in these prefixes (see above). -_LIT( KPhoneSsActionCharacters, "*#" ); - -// It defines string that ends all ss requests. -_LIT( KPhoneSsEnd, "#" ); - -// It defines characters that are considered to be digits. -_LIT( KPhoneSsDigits, "1234567890" ); - -// Asterisk. -const TInt KPhoneSsAsterisk = '*'; - -// Hash. -const TInt KPhoneSsHash = '#'; - -// Plus. -const TInt KPhoneSsPlus = '+'; - -// Remainder: single character -const TInt KPhoneSsRemainderSingle = 1; - -// Remainder: still a parameter, but ok ss -const TInt KPhoneSsRemainderMinLength = 2; // something + # - -const TInt KPhoneSsPasswordLength = 4; - -// Remainder: passwordk, ok ss -const TInt KPhoneSsRemainderPasswordMinLength = 5; // four digits + # - -// Maximum length of directory number. -const TInt KPhoneSsDirectoryNumberMaxLength = 38; -// Maximum length of basic service code. -const TInt KPhoneSsBasicCodeMaxLength = 2; -// Maximum length of group code. -const TInt KPhoneSsGroupCodeMaxLength = 4; -// Maximum length of timer. -const TInt KPhoneSsTimerMaxLength = 2; - -// The only acceptable group code (change of barring password) -const TUint KPhoneSsOnlyAllowedGroupCode = 330; - -// Pack: shift -const TInt KPhoneGsmPackShift = 8; - -// Pack: mask -const TInt KPhoneGsmPackMask = 255; - -// ----------------------------------------------------------------------------- -// Syntax: -// -// SC Service code -// A Activation -// D Deactivation -// I Interrogation -// R Registration -// E Erasure -// -// Text string must contain each of these in the following order -// "SC A D I R E" (separated by space). Following values correspond -// -// -// 0 - ENotAllowed -// 1 - ENoParameters -// 2 - EEmptyOrBasicCode -// 3 - ENumberOptBasicCodeOptTimer -// 4 - ENumberOptBasicCode -// 5 - EPasswordOptBasicCode -// 6 - EOptGroupCodePasswordNewPasswordNewPassword -// 7 - EEmptyOrBasicCode2 -// ----------------------------------------------------------------------------- -_LIT( KPhoneUidForwardingAllCode, "002 2 2 0 3 2" ); -_LIT( KPhoneUidForwardingAllConditionalCode, "004 2 2 0 3 2" ); -_LIT( KPhoneUidForwardingUnconditionalCode, "21 2 2 2 4 2" ); -_LIT( KPhoneUidForwardingNoReplyCode, "61 2 2 2 3 2" ); -_LIT( KPhoneUidForwardingNotReachableCode, "62 2 2 2 4 2" ); -_LIT( KPhoneUidForwardingBusyCode, "67 2 2 2 4 2" ); -_LIT( KPhoneUidBarringAllOutgoingCallsCode, "33 5 5 1 0 0" ); -_LIT( KPhoneUidBarringAllIncomingCallsCode, "35 5 5 1 0 0" ); -_LIT( KPhoneUidBarringAllServicesCode, "330 0 5 0 0 0" ); -_LIT( KPhoneUidBarringAllOutgoingInternationalCallsCode, "331 5 5 1 0 0" ); -_LIT( KPhoneUidBarringAllOutgoingInternationalCallsExceptHomeCode, "332 5 5 1 0 0" ); -_LIT( KPhoneUidBarringAllOutgoingServicesCode, "333 0 5 0 0 0" ); -_LIT( KPhoneUidBarringAllIncomingCallsWhenRoamingCode, "351 5 5 1 0 0" ); -_LIT( KPhoneUidBarringAllIncomingServicesCode, "353 0 5 0 0 0" ); -_LIT( KPhoneUidWaitingCode, "43 7 7 7 0 0" ); -_LIT( KPhoneUidCallingLineIdentificationPresentationCode, "30 0 0 1 0 0" ); -_LIT( KPhoneUidCallingLineIdentificationRestrictionCode, "31 0 0 1 0 0" ); -_LIT( KPhoneUidConnectedLinePresentationCode, "76 0 0 1 0 0" ); -_LIT( KPhoneUidConnectedLinePresentationRestrictionCode, "77 0 0 1 0 0" ); -_LIT( KPhoneUidPasswordCode, "03 6 0 0 6 0" ); -_LIT( KPhoneUidCallingNamePresentationCode, "300 0 0 1 0 0" ); - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::CPhoneGsmSsParser -// ----------------------------------------------------------------------------- -// -CPhoneGsmSsParser::CPhoneGsmSsParser() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::ConstructL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmSsParser::ConstructL() - { - iArray = - new ( ELeave ) CServiceArray( - KPhoneServiceArrayGranularity ); - - // Check AddL method for details what these really mean. - - // Forwarding - AddL( KPhoneUidForwardingAllCode, - KPhoneUidForwardingAll ); - AddL( KPhoneUidForwardingAllConditionalCode, - KPhoneUidForwardingAllConditional ); - AddL( KPhoneUidForwardingUnconditionalCode, - KPhoneUidForwardingUnconditional ); - AddL( KPhoneUidForwardingNoReplyCode, - KPhoneUidForwardingNoReply ); - AddL( KPhoneUidForwardingNotReachableCode, - KPhoneUidForwardingNotReachable ); - AddL( KPhoneUidForwardingBusyCode, - KPhoneUidForwardingBusy ); - - // Barring - AddL( KPhoneUidBarringAllOutgoingCallsCode, - KPhoneUidBarringAllOutgoingCalls ); - AddL( KPhoneUidBarringAllIncomingCallsCode, - KPhoneUidBarringAllIncomingCalls ); - AddL( KPhoneUidBarringAllServicesCode, - KPhoneUidBarringAllServices ); - AddL( KPhoneUidBarringAllOutgoingInternationalCallsCode, - KPhoneUidBarringAllOutgoingInternationalCalls ); - AddL( KPhoneUidBarringAllOutgoingInternationalCallsExceptHomeCode, - KPhoneUidBarringAllOutgoingInternationalCallsExceptHome ); - AddL( KPhoneUidBarringAllOutgoingServicesCode, - KPhoneUidBarringAllOutgoingServices ); - AddL( KPhoneUidBarringAllIncomingCallsWhenRoamingCode, - KPhoneUidBarringAllIncomingCallsWhenRoaming ); - AddL( KPhoneUidBarringAllIncomingServicesCode, - KPhoneUidBarringAllIncomingServices ); - - // Waiting - AddL( KPhoneUidWaitingCode, - KPhoneUidWaiting ); - - // Calling line identification presentation - AddL( KPhoneUidCallingLineIdentificationPresentationCode, - KPhoneUidCallingLineIdentificationPresentation ); - - // Calling line identification restriction - AddL( KPhoneUidCallingLineIdentificationRestrictionCode, - KPhoneUidCallingLineIdentificationRestriction ); - - // Connected line presentation - AddL( KPhoneUidConnectedLinePresentationCode, - KPhoneUidConnectedLinePresentation ); - - // Connected line presentation restriction. - AddL( KPhoneUidConnectedLinePresentationRestrictionCode, - KPhoneUidConnectedLinePresentationRestriction ); - - // CNAP. - if ( CPhoneParserFeatures::FeatureSupported( KFeatureIdPhoneCnap ) ) - { - AddL( KPhoneUidCallingNamePresentationCode, - KPhoneUidCallingNamePresentation ); - } - - // Password - AddL( KPhoneUidPasswordCode, - KPhoneUidPassword ); - - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::NewLC -// ----------------------------------------------------------------------------- -// -CPhoneGsmSsParser* CPhoneGsmSsParser::NewLC() - { - CPhoneGsmSsParser* self = new ( ELeave ) CPhoneGsmSsParser; - - CleanupStack::PushL( self ); - self->ConstructL(); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::~CPhoneGsmSsParser -// ----------------------------------------------------------------------------- -// -CPhoneGsmSsParser::~CPhoneGsmSsParser() - { - delete iArray; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::ParseL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ) - { - TBool result = EFalse; - aResult.ClearL(); -// All operations require SEND. -// If VoIP call no action needed here. - if ( !aOptions.FindOptionStatus( KPhoneOptionSend ) || - aOptions.FindOptionStatus( KPhoneOptionVoipCall ) ) - { - return EFalse; - } - - TLex input( aString ); - TPtrC action( - FindString( - input, - KPhoneSsActionCharacters() ) ); - - // Check if action is proper for service requests. - TServiceType type = EServiceActivation; - - // This variable will indicate if action was ok. - TBool ok = ETrue; - - // Fill type. - if ( action == KPhoneSsActivation ) - { - type = EServiceActivation; - } - else if ( action == KPhoneSsDeactivation ) - { - type = EServiceDeactivation; - } - else if ( action == KPhoneSsInterrogation ) - { - type = EServiceInterrogation; - } - else if ( action == KPhoneSsRegistration ) - { - type = EServiceRegistration; - } - else if ( action == KPhoneSsErasure ) - { - type = EServiceErasure; - } - else - { - // Not ok. - ok = EFalse; - } - - // Prefix must be one of the service types. - if ( ok ) - { - TPtrC serviceCode( FindString( input, KPhoneSsDigits() ) ); - - // Check that service code is not too long. - if ( serviceCode.Length() > KPhoneGsmSsServiceCodeMaxLength ) - { - return EFalse; - } - - TKeyArrayFix key( _FOFF( TServiceInfo, iCode ), ECmpNormal ); - TServiceInfo info; - TInt position; - info.iCode = serviceCode; - - // Check if the string can be a service request. - if ( !iArray->FindIsq( info, key, position ) ) - { - info = iArray->At( position ); - } - else - { - // Not found. - return EFalse; - } - - TServiceSyntax syntax = ESyntaxNotAllowed; - - // Take syntax from info record. - switch ( type ) - { - case EServiceActivation: - syntax = info.iActivation; - break; - - case EServiceDeactivation: - syntax = info.iDeactivation; - break; - - case EServiceInterrogation: - syntax = info.iInterrogation; - break; - - case EServiceRegistration: - syntax = info.iRegistration; - break; - - case EServiceErasure: - syntax = info.iErasure; - break; - - default: - PhoneGsmParser::Panic( PhoneGsmParser::EShouldNeverHappen ); - break; - } - - TUint data; - PackData( data, type, syntax ); - - aResult.SetUid( info.iUid ); - aResult.SetAuxInformation( data ); - - // We may have to backtrack in case HandleParametersL fails. - TLexMark mark; - input.Mark( mark ); - - // First attempt - result = HandleParametersL( input, aResult, syntax ); - - // If action was activation and result was failure, then try registration. - if ( !result && type == EServiceActivation ) - { - // Backtrack. - input.UnGetToMark( mark ); - - // Clear previous results & fill information again. - - type = EServiceRegistration; - syntax = info.iRegistration; - PackData( data, type, syntax ); - - aResult.ClearL(); - aResult.SetUid( info.iUid ); - aResult.SetAuxInformation( data ); - - // Try again. If this fails, then it is really failure. - result = HandleParametersL( input, aResult, syntax ); - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::PackData -// -// Combine data to integer. -// ----------------------------------------------------------------------------- -// -void CPhoneGsmSsParser::PackData( - TUint& aResult, - TServiceType aType, - TServiceSyntax aSyntax ) - { - aResult = - ( ( ( TUint )aType ) << KPhoneGsmPackShift ) + ( ( TUint )aSyntax ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::UnpackData -// -// Take data from integer. -// ----------------------------------------------------------------------------- -// -void CPhoneGsmSsParser::UnpackData( - TUint aData, - TServiceType& aResultType, - TServiceSyntax& aResultSyntax ) - { - aResultSyntax = - CPhoneGsmSsParser::TServiceSyntax( aData & KPhoneGsmPackMask ); - aResultType = - CPhoneGsmSsParser::TServiceType( - ( aData >> KPhoneGsmPackShift ) & - KPhoneGsmPackMask ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandleParametersL -// -// Selects correct function by syntax information. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandleParametersL( - TLex& aInput, - CPhoneGsmParserResult& aResult, - TServiceSyntax aSyntax ) - { - TBool result = EFalse; - - switch ( aSyntax ) - { - case ESyntaxNotAllowed: - result = - HandleNotAllowedL( aInput, aResult ); - break; - - case ESyntaxNoParameters: - result = - HandleNoParametersL( aInput, aResult ); - break; - - case ESyntaxEmptyOrBasicCode: - result = - HandleEmptyOrBasicCodeL( aInput, aResult ); - break; - - case ESyntaxNumberOptBasicCodeOptTimer: - result = - HandleNumberOptBasicCodeOptTimerL( - aInput, - aResult ); - break; - - case ESyntaxNumberOptBasicCode: - result = - HandleNumberOptBasicCodeL( - aInput, - aResult ); - break; - - case ESyntaxPasswordOptBasicCode: - result = - HandlePasswordOptBasicCodeL( - aInput, - aResult ); - break; - - case ESyntaxOptGroupCodePasswordNewPasswordNewPassword: - result = - HandleOptGroupCodePasswordNewPasswordNewPasswordL( - aInput, - aResult ); - break; - - case ESyntaxEmptyOrBasicCode2: - result = - HandleEmptyOrBasicCode2L( - aInput, - aResult ); - break; - - default: - break; - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandleNotAllowedL -// -// Just clear the result and return that parsing failed. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandleNotAllowedL( - TLex& /*aInput*/, - CPhoneGsmParserResult& aResult ) - { - aResult.ClearL(); - - return EFalse; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandleNoParametersL -// -// Handle no more parameters, only hash -// as the last character. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandleNoParametersL( - TLex& aInput, - CPhoneGsmParserResult& /*aResult*/ ) - { - // Next character is last character and it is hash character. - TBool result = EFalse; - TPtrC ptr = aInput.Remainder(); - - if ( ptr.Length() == KPhoneSsRemainderSingle ) - { - result = ( ptr[0] == KPhoneSsHash ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandleEmptyOrBasicCodeL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandleEmptyOrBasicCodeL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - - if ( HandleNoParametersL( aInput, aResult ) ) - { - aResult.AddParameterL( KNullDesC ); - aResult.AddParameterL( KNullDesC ); - result = ETrue; - } - else - { - result = HandleEmptyParameterL( aInput, aResult ); - - if ( result ) - { - result = HandleBasicCodeL( aInput, aResult ); - result = result && HandleNoParametersL( aInput, aResult ); - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandleNumberOptBasicCodeOptTimerL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandleNumberOptBasicCodeOptTimerL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - - if ( HandleNumberL( aInput, aResult ) ) - { - if ( HandleNoParametersL( aInput, aResult ) ) - { - // Add basic code and timer. - aResult.AddParameterL( KNullDesC ); - aResult.AddParameterL( KNullDesC ); - result = ETrue; - } - else - { - if ( HandleBasicCodeL( aInput, aResult ) ) - { - if ( HandleTimerL( aInput, aResult ) ) - { - result = HandleNoParametersL( aInput, aResult ); - } - else - { - result = HandleNoParametersL( aInput, aResult ); - aResult.AddParameterL( KNullDesC ); - } - } - else if ( HandleEmptyParameterL( aInput, aResult ) ) - { - result = HandleTimerL( aInput, aResult ); - result = result && - HandleNoParametersL( aInput, aResult ); - } - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandleNumberOptBasicCodeL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandleNumberOptBasicCodeL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - - if ( HandleNumberL( aInput, aResult ) ) - { - if ( HandleNoParametersL( aInput, aResult ) ) - { - aResult.AddParameterL( KNullDesC ); - result = ETrue; - } - else - { - result = HandleBasicCodeL( aInput, aResult ); - result = result && HandleNoParametersL( aInput, aResult ); - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandlePasswordOptBasicCodeL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandlePasswordOptBasicCodeL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - - if ( HandlePasswordL( aInput, aResult ) ) - { - if ( HandleNoParametersL( aInput, aResult ) ) - { - aResult.AddParameterL( KNullDesC ); - result = ETrue; - } - else - { - result = HandleBasicCodeL( aInput, aResult ); - result = result && HandleNoParametersL( aInput, aResult ); - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser:: -// HandleOptGroupCodePasswordNewPasswordNewPasswordL -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser:: - HandleOptGroupCodePasswordNewPasswordNewPasswordL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - TBool result = HandleGroupCodeL( aInput, aResult ); - - if ( !result ) - { - result = HandleEmptyParameterL( aInput, aResult ); - } - - result = result && HandlePasswordL( aInput, aResult ); - result = result && HandlePasswordL( aInput, aResult ); - result = result && HandlePasswordL( aInput, aResult ); - result = result && HandleNoParametersL( aInput, aResult ); - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandleEmptyOrBasicCode2L -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandleEmptyOrBasicCode2L( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - TBool result = HandleNoParametersL( aInput, aResult ); - - if ( result ) - { - aResult.AddParameterL( KNullDesC ); - } - else - { - result = HandleBasicCodeL( aInput, aResult ); - result = result && HandleNoParametersL( aInput, aResult ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandleEmptyParameterL -// -// Handle empty parameter, two consecutive asterisks. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandleEmptyParameterL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - aInput.Mark(); - - if ( aInput.Peek() == KPhoneSsAsterisk ) - { - aInput.Inc(); - - result = ( aInput.Peek() == KPhoneSsAsterisk ); - - if ( result ) - { - aResult.AddParameterL( KNullDesC ); - } - } - - if ( !result ) - { - aInput.UnGetToMark(); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandleBasicCodeL -// -// Basically, basic service code is a two digit string. -// In this method, only explicit -// values are handled (parameter might be empty). -// -// The method checks that the first character is * and then -// it is followed by two digits. And there must not be more -// than two digits. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandleBasicCodeL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - TLexMark start; - - aInput.Mark( start ); - - if ( aInput.Peek() == KPhoneSsAsterisk ) - { - aInput.Inc(); - - TLexMark mark; - aInput.Mark( mark ); - - if ( aInput.Peek().IsDigit() ) - { - aInput.Inc(); - - if ( aInput.Peek().IsDigit() ) - { - aInput.Inc(); - - if ( !aInput.Peek().IsDigit() ) - { - TPtrC code = aInput.MarkedToken( mark ); - - result = CheckBasicCode( code ); - - if ( result ) - { - aResult.AddParameterL( code ); - } - } - } - } - - // Check empty parameters. - if ( !result ) - { - aInput.UnGetToMark( mark ); - - if ( aInput.Remainder() == KPhoneSsEnd ) - { - aResult.AddParameterL( KNullDesC ); - result = ETrue; - } - } - } - - if ( !result ) - { - aInput.UnGetToMark( start ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandleNumberL -// -// Directory number as a parameter must be present. It can -// contain at most 38 digits. Digits and '+' characters -// are allowed, but '+' character is allowed to be only in the -// beginning of the string. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandleNumberL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - if ( aInput.Remainder().Length() < KPhoneSsRemainderMinLength ) - { - return EFalse; - } - - TInt maxLength = KPhoneSsDirectoryNumberMaxLength; - TBool result = EFalse; - TLexMark start; - - aInput.Mark( start ); - - if ( aInput.Peek() == KPhoneSsAsterisk ) - { - aInput.Inc(); - - TLexMark mark; - aInput.Mark( mark ); - - if ( aInput.Peek() == KPhoneSsPlus ) - { - aInput.Inc(); - maxLength++; - } - - while ( aInput.Peek().IsDigit() ) - { - aInput.Inc(); - } - - TPtrC number = aInput.MarkedToken( mark ); - if ( number.Length() <= maxLength ) - { - aResult.AddParameterL( number ); - result = ETrue; - } - } - - if ( !result ) - { - aInput.UnGetToMark( start ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandleTimerL -// -// The method checks if the next part is 'no reply timer'. -// It is at most two digits. Value is expected to be present. -// Value is checked in CheckTimer method. -// -// (if value is not present, then it is handled in calling -// method) -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandleTimerL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - TBool result = EFalse; - TLexMark start; - aInput.Mark( start ); - - if ( aInput.Peek() == KPhoneSsAsterisk ) - { - aInput.Inc(); - - TLexMark mark; - aInput.Mark( mark ); - - while ( aInput.Peek().IsDigit() ) - { - aInput.Inc(); - } - - TPtrC timer( aInput.MarkedToken( mark ) ); - - if ( CheckTimer( timer ) ) - { - aResult.AddParameterL( timer ); - result = ETrue; - } - - // Check empty parameters. - if ( !result ) - { - aInput.UnGetToMark( mark ); - - if ( aInput.Remainder() == KPhoneSsEnd ) - { - aResult.AddParameterL( KNullDesC ); - result = ETrue; - } - } - } - - if ( !result ) - { - aInput.UnGetToMark( start ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandlePasswordL -// -// Password is four digit string. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandlePasswordL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - if ( aInput.Remainder().Length() < - KPhoneSsRemainderPasswordMinLength ) - { - return EFalse; - } - - TBool result = EFalse; - TLexMark start; - aInput.Mark( start ); - - if ( aInput.Peek() == KPhoneSsAsterisk ) - { - aInput.Inc(); - - TLexMark mark; - aInput.Mark( mark ); - - while( aInput.Peek().IsDigit() ) - { - aInput.Inc(); - } - - TPtrC password( aInput.MarkedToken( mark ) ); - - if ( password.Length() == KPhoneSsPasswordLength ) - { - aResult.AddParameterL( password ); - result = ETrue; - } - } - - if ( !result ) - { - aInput.UnGetToMark( start ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::HandleGroupCodeL -// -// The method handles password group codes. However, code -// must be one to four digits. -// -// (if group code is null, then it is handled in calling -// method) -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::HandleGroupCodeL( - TLex& aInput, - CPhoneGsmParserResult& aResult ) - { - if ( aInput.Remainder().Length() <= KPhoneSsRemainderMinLength ) - { - return EFalse; - } - - TBool result = EFalse; - TLexMark start; - - aInput.Mark( start ); - - if ( aInput.Peek() == KPhoneSsAsterisk ) - { - aInput.Inc(); - - TLexMark mark; - aInput.Mark( mark ); - - while ( aInput.Peek().IsDigit() ) - { - aInput.Inc(); - } - - TPtrC groupCode( aInput.MarkedToken( mark ) ); - - if ( CheckGroupCode( groupCode ) ) - { - aResult.AddParameterL( groupCode ); - result = ETrue; - } - } - - if ( !result ) - { - aInput.UnGetToMark( start ); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::CheckBasicCode -// -// Check that basic code is appropriate -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::CheckBasicCode( const TDesC& aCode ) - { - TLex lex( aCode ); - TUint value; - - if ( aCode.Length() <= KPhoneSsBasicCodeMaxLength ) - { - if ( lex.Val( value, EDecimal ) != KErrNone ) - { - return EFalse; - } - } - else - { - return EFalse; - } - - TBool result = EFalse; - - switch ( value ) - { - // TELESERVICES - case EAllTele: // GSM: All tele and bearer services - case ETelephony: // GSM: Teleservices - case EAllDataTele: // GSM: All data teleservices - case EFax: // GSM: Facsimile services - case ESms: // GSM: Short message services - case EAllTeleExcSms: // GSM: All teleservices except SMS - case EAltTele: // PCN: Alternate line service - - // BEARER SERVICES - case EAllBearer: // GSM: All bearer services - case EAllAsync: // GSM: All async services - case EAllSync: // GSM: All sync services - case ESyncData: // GSM: All data circuit sync - case EAsyncData: // GSM: All data circuit async - case EPacketData: // GSM: All dedicated packet access - case EPadAccess: // GSM: All dedicated PAD access - - result = ETrue; - break; - - // PLMN specific teleservices and bearer services - default: - - // GSM: PLMN specific teleservices - if ( value >= EAllPlmnTele && value <= EPlmnTeleF ) - { - result = ETrue; - } - // GSM: PLMN specific bearer services - else if ( value >= EAllPlmnBearer && value <= EPlmnBearerServF ) - { - result = ETrue; - } - - // Otherwise, result == EFalse and it's OK. - break; - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::CheckTimer -// -// Check if timer value is ok. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::CheckTimer( const TDesC& aCode ) - { - TLex lex( aCode ); - TUint value; - - if ( aCode.Length() <= KPhoneSsTimerMaxLength ) - { - if ( lex.Val( value, EDecimal ) != KErrNone ) - { - return EFalse; - } - } - else - { - return EFalse; - } - - TBool result = EFalse; - - switch ( value ) - { - case 5: - case 10: - case 15: - case 20: - case 25: - case 30: - result = ETrue; - break; - - default: - break; - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::CheckGroupCode -// -// Check if group code is ok. -// ----------------------------------------------------------------------------- -// -TBool CPhoneGsmSsParser::CheckGroupCode( const TDesC& aCode ) - { - TLex lex( aCode ); - TUint value; - TBool result = EFalse; - - if ( aCode.Length() <= KPhoneSsGroupCodeMaxLength ) - { - if ( lex.Val( value, EDecimal ) == KErrNone ) - { - result = ( value == KPhoneSsOnlyAllowedGroupCode ); - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::FindString -// ----------------------------------------------------------------------------- -// -TPtrC CPhoneGsmSsParser::FindString( - TLex& aInput, - const TDesC& aAllowedCharacters ) - { - TLexMark mark; - aInput.Mark( mark ); - - // Return string containing characters that appear in - // aAllowedCharacters. - while ( aAllowedCharacters.Locate( aInput.Peek() ) != - KErrNotFound ) - { - aInput.Inc(); - } - - return aInput.MarkedToken( mark ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::AddL -// -// Parse service description and add it. -// -// ----------------------------------------------------------------------------- -// -void CPhoneGsmSsParser::AddL( - const TDesC& aService, - TUint aUid ) - { - // There must be six positive integers in aService. - TLex input( aService ); - - // First number is service code. - TPtrC serviceCode( NextNumber( input ) ); - - // And then next five are syntax descriptions. - TServiceSyntax activation = - ConvertToServiceSyntax( NextNumberAsValue( input ) ); - TServiceSyntax deactivation = - ConvertToServiceSyntax( NextNumberAsValue( input ) ); - TServiceSyntax interrogation = - ConvertToServiceSyntax( NextNumberAsValue( input ) ); - TServiceSyntax registration = - ConvertToServiceSyntax( NextNumberAsValue( input ) ); - TServiceSyntax erasure = - ConvertToServiceSyntax( NextNumberAsValue( input ) ); - - // Add to array. - AddServiceL( - serviceCode, - activation, - deactivation, - interrogation, - registration, - erasure, - aUid ); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::AddServiceL -// ----------------------------------------------------------------------------- -// -void CPhoneGsmSsParser::AddServiceL( - const TDesC& aServiceCode, - TServiceSyntax aActivation, - TServiceSyntax aDeactivation, - TServiceSyntax aInterrogation, - TServiceSyntax aRegistration, - TServiceSyntax aErasure, - TUint aUid ) - { - TServiceInfo info; - - // Fill information to info structure. - info.iCode = aServiceCode; - info.iActivation = aActivation; - info.iDeactivation = aDeactivation; - info.iInterrogation = aInterrogation; - info.iRegistration = aRegistration; - info.iErasure = aErasure; - info.iUid = aUid; - - TKeyArrayFix key( _FOFF( TServiceInfo, iCode ), ECmpNormal ); - - // Add it to the array. - TRAPD( err, iArray->InsertIsqL( info, key ) ); - - if ( err != KErrNone && err != KErrNoMemory ) - { - PhoneGsmParser::Panic( - PhoneGsmParser::EIncorrectServiceDescription ); - } - - // Just leave if no memory. - if ( err == KErrNoMemory ) - { - User::Leave( err ); - } - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::NextNumber -// -// Skip spaces and then get next number. -// ----------------------------------------------------------------------------- -// -TPtrC CPhoneGsmSsParser::NextNumber( - TLex& aLex ) - { - // Skip whites. - aLex.SkipSpace(); - - // Go over digits. - aLex.Mark(); - while ( aLex.Peek().IsDigit() ) - { - aLex.Inc(); - } - - // Check if we got proper number. - if ( !aLex.TokenLength() ) - { - PhoneGsmParser::Panic( - PhoneGsmParser::EIncorrectServiceDescription ); - } - - return aLex.MarkedToken(); - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::NextNumberAsValue -// -// Get number and convert it to value. -// ----------------------------------------------------------------------------- -// -TUint CPhoneGsmSsParser::NextNumberAsValue( - TLex& aLex ) - { - // Get number. - TPtrC number( NextNumber( aLex ) ); - TLex input( number ); - TUint value; - - // Parse number. - if ( input.Val( value, EDecimal ) != KErrNone ) - { - PhoneGsmParser::Panic( - PhoneGsmParser::EIncorrectServiceDescription ); - } - - return value; - } - -// ----------------------------------------------------------------------------- -// CPhoneGsmSsParser::ConvertToServiceSyntax -// -// Convert value to a service syntax enumeration. -// ----------------------------------------------------------------------------- -// -CPhoneGsmSsParser::TServiceSyntax - CPhoneGsmSsParser::ConvertToServiceSyntax( - TUint aService ) - { - TServiceSyntax service = ESyntaxNotAllowed; - - switch ( aService ) - { - case 0: - service = ESyntaxNotAllowed; - break; - case 1: - service = ESyntaxNoParameters; - break; - case 2: - service = ESyntaxEmptyOrBasicCode; - break; - case 3: - service = ESyntaxNumberOptBasicCodeOptTimer; - break; - case 4: - service = ESyntaxNumberOptBasicCode; - break; - case 5: - service = ESyntaxPasswordOptBasicCode; - break; - case 6: - service = ESyntaxOptGroupCodePasswordNewPasswordNewPassword; - break; - case 7: - service = ESyntaxEmptyOrBasicCode2; - break; - default: - PhoneGsmParser::Panic( - PhoneGsmParser::EIncorrectServiceDescription ); - } - - return service; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneParserFeatures.cpp --- a/telutils/phoneparser/src/CPhoneParserFeatures.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,212 +0,0 @@ -/* -* 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: Encapsulation of external dependencies of Phone Parser. -* -*/ - - -// INCLUDE FILES -#include "cphoneparserfeatures.h" -#include -#include -#include -#include -#include - -// FORWARD DECLARATION - -// CONSTANTS - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::CPhoneParserFeatures -// ----------------------------------------------------------------------------- -// -CPhoneParserFeatures::CPhoneParserFeatures() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::ConstructL -// ----------------------------------------------------------------------------- -// -void CPhoneParserFeatures::ConstructL() - { - // Read local variation settings. - FeatureManager::InitializeLibL(); - iEmergencyCall = CPhCltEmergencyCall::NewL( this ); - iRepository = CRepository::NewL( KCRUidTelSrvVariation ); - } - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::InstanceL -// ----------------------------------------------------------------------------- -// -CPhoneParserFeatures* CPhoneParserFeatures::InstanceL() - { - CPhoneParserFeatures* self = - static_cast( Dll::Tls() ); - - if( !self ) - { - self = new (ELeave) CPhoneParserFeatures; - CleanupStack::PushL( self ); - self->ConstructL(); - CleanupStack::Pop( self ); - Dll::SetTls( self ); - } - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::Instance -// ----------------------------------------------------------------------------- -// -CPhoneParserFeatures* CPhoneParserFeatures::Instance() - { - CPhoneParserFeatures* self( NULL ); - TRAPD( err, self = InstanceL() ); - return err ? NULL : self; - } - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::Free -// ----------------------------------------------------------------------------- -// -void CPhoneParserFeatures::Free() - { - CPhoneParserFeatures* self = - static_cast( Dll::Tls() ); - - if( self ) - { - delete self; - self = NULL; - Dll::SetTls( NULL ); - } - } - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::SetInstance -// ----------------------------------------------------------------------------- -// -#ifdef __WINS__ -void CPhoneParserFeatures::SetInstance( - CPhoneParserFeatures* aStub ) - { - Dll::SetTls( aStub ); - } -#endif // __WINS__ -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::~CPhoneParserFeatures -// ----------------------------------------------------------------------------- -// -CPhoneParserFeatures::~CPhoneParserFeatures() - { - delete iEmergencyCall; - delete iRepository; - FeatureManager::UnInitializeLib(); - } - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::HandleEmergencyDialL -// ----------------------------------------------------------------------------- -// -void CPhoneParserFeatures::HandleEmergencyDialL( const TInt /*aStatus*/ ) - { - } - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::TwoDigitCallingEnabled -// ----------------------------------------------------------------------------- -// -TBool CPhoneParserFeatures::TwoDigitCallingEnabled() - { - return Instance() ? - Instance()->GetTelephoneVariant() & KTelSrvLVFlagTwoDigitDial : - EFalse; - } - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::IsZeroDialEnabled -// ----------------------------------------------------------------------------- -// -TBool CPhoneParserFeatures::IsZeroDialEnabled() - { - return Instance() ? - Instance()->GetTelephoneVariant() & KTelSrvLVFlagZeroDial : EFalse; - } - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::IsEmergencyNumber -// ----------------------------------------------------------------------------- -// -TBool CPhoneParserFeatures::IsEmergencyNumber( - const TDesC& aNumber, - TDes& aEmergencyNumber ) - { - return Instance() ? - Instance()->IsEmergencyPhoneNumber( aNumber, aEmergencyNumber ) : EFalse; - } - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::IsItEmergencyNumber -// ----------------------------------------------------------------------------- -// -TBool CPhoneParserFeatures::IsEmergencyPhoneNumber( - const TDesC& aNumber, - TDes& aEmergencyNumber ) - { - TBool isEmergency; - - TInt error = iEmergencyCall->IsEmergencyPhoneNumber( - aNumber, - aEmergencyNumber, - isEmergency ); - - return error ? EFalse : isEmergency; - } - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::GetTelephoneVariant -// ----------------------------------------------------------------------------- -// -TInt CPhoneParserFeatures::GetTelephoneVariant() - { - TInt telephoneVariant; - TInt err = iRepository->Get( KTelSrvVariationFlags, telephoneVariant ); - return err == KErrNone ? telephoneVariant : 0; - } - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::FeatureSupported -// ----------------------------------------------------------------------------- -// -TBool CPhoneParserFeatures::FeatureSupported( TInt aFeature ) - { - return Instance() ? Instance()->IsFeatureSupported( aFeature ) : EFalse; - } - -// ----------------------------------------------------------------------------- -// CPhoneParserFeatures::IsFeatureSupported -// ----------------------------------------------------------------------------- -// -TBool CPhoneParserFeatures::IsFeatureSupported( TInt aFeature ) - { - return FeatureManager::FeatureSupported( aFeature ); - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneVoipNumberHandler.cpp --- a/telutils/phoneparser/src/CPhoneVoipNumberHandler.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,45 +0,0 @@ -/* -* 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: Handler for voip numbers. -* -*/ - - -// INCLUDE FILES -#include "cphonevoipnumberhandler.h" -#include "cphonevoipnumberparser.h" -#include "cphonegsmparserresult.h" - -// CONSTANTS -const TInt KPhoneVoipNumberDialParam = 0; -const TInt KPhoneVoipNumberPostfixParam = 1; - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneVoipNumberHandler::ProcessL -// ----------------------------------------------------------------------------- -// -EXPORT_C void CPhoneVoipNumberHandler::ProcessL( - CPhoneGsmParserResult& aResult ) - { - if ( aResult.Uid() == KPhoneUidVoipNumber ) - { - TPtrC number( aResult.ParameterAt( KPhoneVoipNumberDialParam ) ); - TPtrC postfix( aResult.ParameterAt( KPhoneVoipNumberPostfixParam ) ); - ProcessDialToVoipNumberL( number, postfix ); - } - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/CPhoneVoipNumberParser.cpp --- a/telutils/phoneparser/src/CPhoneVoipNumberParser.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,187 +0,0 @@ -/* -* 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: Parser for emergency numbers. -* -*/ - - -// INCLUDE FILES -#include "cphonevoipnumberparser.h" -#include "cphonegsmparserresult.h" -#include "cphonegsmoptioncontainer.h" -#include "phoneparsercommon.h" - -// CONSTANTS - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// CPhoneVoipNumberParser::CPhoneVoipNumberParser -// ----------------------------------------------------------------------------- -// -CPhoneVoipNumberParser::CPhoneVoipNumberParser() - { - } - -// ----------------------------------------------------------------------------- -// CPhoneVoipNumberParser::NewLC -// ----------------------------------------------------------------------------- -// -CPhoneVoipNumberParser* CPhoneVoipNumberParser::NewLC() - { - CPhoneVoipNumberParser* self = - new ( ELeave ) CPhoneVoipNumberParser; - - CleanupStack::PushL( self ); - - return self; - } - -// ----------------------------------------------------------------------------- -// CPhoneVoipNumberParser::ParseL -// ----------------------------------------------------------------------------- -// -TBool CPhoneVoipNumberParser::ParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainerBase& aOptions ) - { - aResult.ClearL(); - - TBool result = DoParseL( - aString, - aResult, - static_cast( aOptions ) ); - - if ( !result ) - { - aResult.ClearL(); - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneVoipNumberParser::DoParseL -// ----------------------------------------------------------------------------- -// -TBool CPhoneVoipNumberParser::DoParseL( - const TDesC& aString, - CPhoneGsmParserResult& aResult, - CPhoneGsmOptionContainer& aOptions ) - { - TBool result( EFalse ); - - if ( aOptions.FindOptionStatus( KPhoneOptionSend ) ) - { - if ( aOptions.FindOptionStatus( KPhoneOptionVoipCall ) && - aString.Length() ) - { - TLex input( aString ); - - // Take number part and put it to first parameter of the aResult. - TakeNumberPartL( input, aResult ); - // Take rest of string( postfix part ) to next parameter of the result. - TakeDtmfPostfixL( input, aResult ); - - aResult.SetUid( KPhoneUidVoipNumber ); - result = ETrue; - } - } - - return result; - } - -// ----------------------------------------------------------------------------- -// CPhoneVoipNumberParser::TakeNumberPartL -// -// Take the main part of the phone number and add it to result. -// ----------------------------------------------------------------------------- -// -void CPhoneVoipNumberParser::TakeNumberPartL( - TLex& aLex, - CPhoneGsmParserResult& aResult ) - { - TLexMark start; - aLex.Mark( start ); - TBool allDigits = ETrue; - TBool dtmfFound = EFalse; - - while ( !aLex.Eos() && - !dtmfFound ) - { - TChar nextChar = aLex.Peek().GetLowerCase(); - if ( allDigits && - ( KPhoneDtmfPause == nextChar || - KPhoneDtmfWait == nextChar || - KPhonePlus == nextChar ) ) - { - // Dtmf string is always postfixed if present - if ( aLex.Offset() > 0 ) - { - // Check if rest of the string is valid dtmf string - TPtrC remainder( aLex.Remainder() ); - if ( IsValidDtmfString( remainder ) ) - { - dtmfFound = ETrue; - } - } - } - - if ( !dtmfFound ) - { - if ( !nextChar.IsDigit() ) - { - allDigits = EFalse; - } - aLex.Inc(); - } - } - - // Add main part of the number to the parsing result - TPtrC mainpart( aLex.MarkedToken( start ) ); - aResult.AddParameterL( mainpart ); - } - -// ----------------------------------------------------------------------------- -// CPhoneVoipNumberParser::TakeDtmfPostfixL -// ----------------------------------------------------------------------------- -// -void CPhoneVoipNumberParser::TakeDtmfPostfixL( - TLex& aLex, - CPhoneGsmParserResult& aResult ) - { - // Add rest of string( after TLex16::iNext ) to result. - aResult.AddParameterL( aLex.Remainder() ); - } - -// ----------------------------------------------------------------------------- -// CPhoneVoipNumberParser::IsValidDtmfString -// ----------------------------------------------------------------------------- -// -TBool CPhoneVoipNumberParser::IsValidDtmfString( TPtrC& aString ) - { - TBool validDtmf = ETrue; - // Check that string contains only valid dtmf characters - for( TInt i = 0; i < aString.Length(); i++ ) - { - if ( KErrNotFound == KValidDtmfChars().Locate( aString[i] ) ) - { - validDtmf = EFalse; - break; - } - } - return validDtmf; - } -// End of File diff -r 35488577e233 -r 2fa1fa551b0b telutils/phoneparser/src/PhoneGsmParser.cpp --- a/telutils/phoneparser/src/PhoneGsmParser.cpp Mon Aug 23 15:50:31 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,375 +0,0 @@ -/* -* Copyright (c) 2002 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: Utility functions for clients. -* -*/ - - -// INCLUDE FILES -#include "phonegsmparser.h" -#include "cphonegsmparser.h" -#include "cphonegsmparserbase.h" -#include "cphonegsmparserresult.h" -#include "cphonegsmoptioncontainer.h" - -#include "cphonegsmparsercontainer.h" -#include "cphonegsmssparser.h" -#include "cphonegsmsimcontrolparser.h" -#include "cphonegsmphonenumberparser.h" -#include "cphonegsmsscallparser.h" -#include "cphonegsmmanufacturerparser.h" -#include "cphonegsmpcnprocedureparser.h" -#include "cphonegsmmanufacturerhandler.h" -#include "cphonegsmemergencynumberparser.h" -#include "cphoneparserfeatures.h" -#include "cphonevoipnumberparser.h" - -// CONSTANTS -const TInt KPhoneParserResultParameterReserver = 10; -_LIT( KPhoneParserPanic, "PhoneParser" ); - -// Software version display code -_LIT( KPhoneCodeBadPinChange, "**04*" ); -_LIT( KPhoneCodeBadPin2Change, "**042*" ); -_LIT( KPhoneCodeBadPinUnblock, "**05*" ); -_LIT( KPhoneCodeBadPin2Unblock, "**052*" ); -_LIT( KPhoneCodeActivateRfsNormal, "*#7780#" ); -_LIT( KPhoneCodeActivateRfsDeep, "*#7370#" ); -_LIT( KPhoneCodeBtAddress, "*#2820#" ); -_LIT( KPhoneCodeRFLoopback, "*#9990#" ); -_LIT( KPhoneCodeWLANMAC, "*#62209526#" ); -_LIT( KPhoneCodeBtDebugMode, "*#2873#" ); - -// ============================= LOCAL FUNCTIONS =============================== - -// ============================ MEMBER FUNCTIONS =============================== - -// ----------------------------------------------------------------------------- -// PhoneGsmParser::CreateParserL -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhoneGsmParserBase* PhoneGsmParser::CreateParserL() - { - // 1. SS CONTAINER TO STACK - CPhoneGsmParserContainer* ssContainer = - CPhoneGsmParserContainer::NewLC(); - - CPhoneGsmParserBase* ssProcedure = - CPhoneGsmSsParser::NewLC(); - ssContainer->AddL( *ssProcedure ); - CleanupStack::Pop( ssProcedure ); - - CPhoneGsmParserBase* ssCallProcedure = - CPhoneGsmSsCallParser::NewLC(); - ssContainer->AddL( *ssCallProcedure ); - CleanupStack::Pop( ssCallProcedure ); - - // 2. SIM CONTROL PROCEDURE TO STACK - CPhoneGsmParserBase* simControlProcedure = - CPhoneGsmSimControlParser::NewLC(); - - // 3. PHONE NUMBER TO STACK - CPhoneGsmParserBase* phoneNumber = - CPhoneGsmPhoneNumberParser::NewLC(); - - // 4. MANUFACTURER SPECIFIC TO STACK - CPhoneGsmParserBase* manufacturerSpecific = - CreateManufacturerProcedureParserLC(); - - // 5. EMERGENCY NUMBER PARSER TO STACK - CPhoneGsmParserBase* emergencyNumberParser = - CPhoneGsmEmergencyNumberParser::NewLC(); - - // 6. VOIP NUMBER PARSER TO STACK - CPhoneGsmParserBase* voipNumberParser = - CPhoneVoipNumberParser::NewLC(); - - CPhoneGsmParser* parser = - CPhoneGsmParser::NewL( - ssContainer, - simControlProcedure, - phoneNumber, - manufacturerSpecific, - emergencyNumberParser, - voipNumberParser); - - CleanupStack::Pop( 6, ssContainer ); - - return parser; - } - -// ----------------------------------------------------------------------------- -// PhoneGsmParser::UseFeatureStub -// ----------------------------------------------------------------------------- -// -#ifdef __WINS__ -EXPORT_C void PhoneGsmParser::UseFeatureStub( CPhoneParserFeatures* aStub ) - { - CPhoneParserFeatures::SetInstance( aStub ); - } -#endif // __WINS__ - -// ----------------------------------------------------------------------------- -// PhoneGsmParser::CreateResultsL -// -// Create parser so that AddParameterL shouldn't leave. -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhoneGsmParserResult* PhoneGsmParser::CreateResultL() - { - CPhoneGsmParserResult* result = CPhoneGsmParserResult::NewL(); - - CleanupStack::PushL( result ); - result->ReserveParametersL( KPhoneParserResultParameterReserver ); - CleanupStack::Pop( result ); - - result->ClearL(); - return result; - } - - -// ----------------------------------------------------------------------------- -// PhoneGsmParser::CreateOptionContainerL -// ----------------------------------------------------------------------------- -// -EXPORT_C CPhoneGsmOptionContainerBase* PhoneGsmParser::CreateOptionContainerL() - { - CPhoneGsmOptionContainer* options = - CPhoneGsmOptionContainer::NewL(); - - CleanupStack::PushL( options ); - - DefineOptionsL( *options ); - InitialiseOptionsToDefaultValues( *options ); - - CleanupStack::Pop( options ); - return options; - } - - -// ----------------------------------------------------------------------------- -// PhoneGsmParser::InitialiseOptionsToDefaultValues -// ----------------------------------------------------------------------------- -// -void PhoneGsmParser::InitialiseOptionsToDefaultValues( - CPhoneGsmOptionContainerBase& aOptions ) - { - aOptions.SetOptionStatus( KPhoneOptionSend, EFalse ); - aOptions.SetOptionStatus( KPhoneOptionInCall, EFalse ); - aOptions.SetOptionStatus( KPhoneOptionVoipCall, EFalse ); - } - -// ----------------------------------------------------------------------------- -// PhoneGsmParser::DetermineContentType -// -// It is helper method to categorize processed strings. -// ----------------------------------------------------------------------------- -// -EXPORT_C PhoneGsmParser::TContentType - PhoneGsmParser::DetermineContentType( - const CPhoneGsmParserResult& aResult ) - { - TContentType type = EContentUnknown; - TUint uid = aResult.Uid(); - TUint main = PHONE_EXTRACT_MAIN( aResult.Uid() ); - - switch ( main ) - { - case KPhoneGsmUidInvalid: - type = EContentInvalid; - break; - - case KPhoneGsmUidMisc: - if ( uid == KPhoneUidUnstructuredService ) - { - type = EContentUnstructuredService; - } - break; - - case KPhoneGsmUidSupplementaryService: - case KPhoneGsmUidSupplementaryServiceDuringCall: - type = EContentSupplementaryService; - break; - - case KPhoneGsmUidDialPhoneNumber: - type = EContentPhoneNumber; - break; - - default: - break; - } - - return type; - } - -// ----------------------------------------------------------------------------- -// PhoneGsmParser::IsAllowedForArriving -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool PhoneGsmParser::IsAllowedForArriving( - const CPhoneGsmParserResult& aResult ) - { - TUint32 uid = aResult.Uid(); - - // Allowed: - // 0 SEND - // All manufacturer codes - // All sim control procedures - // All pcn procedures - - return ( uid == KPhoneUidCommand0 || - uid == KPhoneUidManufacturerDebugCode || - uid == KPhoneUidManufacturerCode || - PHONE_EXTRACT_MAIN( uid ) == KPhoneGsmUidSimControlProcedure || - PHONE_EXTRACT_MAIN( uid ) == KPhoneGsmUidPcnProcedures ); - } - -// ----------------------------------------------------------------------------- -// PhoneGsmParser::IsAllowedForBadSim -// ----------------------------------------------------------------------------- -// -EXPORT_C TBool PhoneGsmParser::IsAllowedForBadSim( - const CPhoneGsmParserResult& aResult ) - { - TUint32 uid = aResult.Uid(); - TUint aux = aResult.AuxInformation(); - - // Allowed: - // DialEmergency - // Some manufacturer codes - // All sim control procedures - // All pcn procedures - - return ( uid == KPhoneUidEmergencyNumber || - uid == KPhoneUidManufacturerDebugCode || - ( uid == KPhoneUidManufacturerCode && - ( aux == CPhoneGsmManufacturerHandler::EBadPinChange || - aux == CPhoneGsmManufacturerHandler::EBadPin2Change || - aux == CPhoneGsmManufacturerHandler::EBadPinUnblock || - aux == CPhoneGsmManufacturerHandler::EBadPin2Unblock ) ) || - - PHONE_EXTRACT_MAIN( uid ) == KPhoneGsmUidSimControlProcedure || - PHONE_EXTRACT_MAIN( uid ) == KPhoneGsmUidPcnProcedures ); - } - -// ----------------------------------------------------------------------------- -// PhoneGsmParser::Panic -// -// Panic for phone parser. -// ----------------------------------------------------------------------------- -// -void PhoneGsmParser::Panic( - TPanicReason aReason ) - { - User::Panic( KPhoneParserPanic, aReason ); - } - -// ----------------------------------------------------------------------------- -// PhoneGsmParser::DefineOptionsL -// ----------------------------------------------------------------------------- -// -void PhoneGsmParser::DefineOptionsL( - CPhoneGsmOptionContainerBase& aOptions ) - { - CPhoneGsmOptionContainer& options = - static_cast( aOptions ); - - options.DefineOptionL( KPhoneOptionSend, EFalse ); - options.DefineOptionL( KPhoneOptionInCall, EFalse ); - options.DefineOptionL( KPhoneOptionVoipCall, EFalse ); - } - -// ----------------------------------------------------------------------------- -// PhoneGsmParser::CreateManufacturerProcedureParserLC -// ----------------------------------------------------------------------------- -// -CPhoneGsmParserBase* - PhoneGsmParser::CreateManufacturerProcedureParserLC() - { - // CONTAINER TO STACK. - CPhoneGsmParserContainer* manufacturer = - CPhoneGsmParserContainer::NewLC(); - - CPhoneGsmPcnProcedureParser* gsmPcnCodes = - CPhoneGsmPcnProcedureParser::NewLC(); - manufacturer->AddL( *gsmPcnCodes ); - CleanupStack::Pop( gsmPcnCodes ); - - CPhoneGsmManufacturerParser* manuCodes = - CPhoneGsmManufacturerParser::NewLC(); - manufacturer->AddL( *manuCodes ); - CleanupStack::Pop( manuCodes ); - - manuCodes->AddStringL( - KPhoneCodeBadPinChange, - CPhoneGsmManufacturerParser::EFlagCode + - CPhoneGsmManufacturerParser::EFlagPrefix, - CPhoneGsmManufacturerHandler::EBadPinChange ); - - manuCodes->AddStringL( - KPhoneCodeBadPin2Change, - CPhoneGsmManufacturerParser::EFlagCode + - CPhoneGsmManufacturerParser::EFlagPrefix, - CPhoneGsmManufacturerHandler::EBadPin2Change ); - - manuCodes->AddStringL( - KPhoneCodeBadPinUnblock, - CPhoneGsmManufacturerParser::EFlagCode + - CPhoneGsmManufacturerParser::EFlagPrefix, - CPhoneGsmManufacturerHandler::EBadPinUnblock ); - - manuCodes->AddStringL( - KPhoneCodeBadPin2Unblock, - CPhoneGsmManufacturerParser::EFlagCode + - CPhoneGsmManufacturerParser::EFlagPrefix, - CPhoneGsmManufacturerHandler::EBadPin2Unblock ); - - manuCodes->AddStringL( - KPhoneCodeActivateRfsNormal, - CPhoneGsmManufacturerParser::EFlagCode, - CPhoneGsmManufacturerHandler::EActivateRfsNormal ); - - manuCodes->AddStringL( - KPhoneCodeActivateRfsDeep, - CPhoneGsmManufacturerParser::EFlagCode, - CPhoneGsmManufacturerHandler::EActivateRfsDeep ); - - manuCodes->AddStringL( - KPhoneCodeBtAddress, - CPhoneGsmManufacturerParser::EFlagCode, - CPhoneGsmManufacturerHandler::EShowBtAddress, - KFeatureIdBt ); - - manuCodes->AddStringL( - KPhoneCodeWLANMAC, - CPhoneGsmManufacturerParser::EFlagCode, - CPhoneGsmManufacturerHandler::EShowWlanMac, - KFeatureIdProtocolWlan ); - - manuCodes->AddStringL( - KPhoneCodeRFLoopback, - CPhoneGsmManufacturerParser::EFlagCode, - CPhoneGsmManufacturerHandler::EBTLoopback, - KFeatureIdBtTestMode ); - - manuCodes->AddStringL( - KPhoneCodeBtDebugMode, - CPhoneGsmManufacturerParser::EFlagCode, - CPhoneGsmManufacturerHandler::EBTDebugMode, - KFeatureIdBt ); - - return manufacturer; - } - -// End of File diff -r 35488577e233 -r 2fa1fa551b0b vmbx/vmbxcpplugin/src/vmbxcpgroup.cpp --- a/vmbx/vmbxcpplugin/src/vmbxcpgroup.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/vmbx/vmbxcpplugin/src/vmbxcpgroup.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -163,7 +163,6 @@ if (KErrNone == result) { _DBGLOG2("VmbxCpGroup::queryCsVoiceNumber >, number=", number) mUiEngine->setCsVoiceNumber(number); - UpdateWidgetContent(mCsVoice1Index, number); } mCsVoice1Editor->setEnabled(true); _DBGLOG("VmbxCpGroup::queryCsVoiceNumber <") @@ -182,7 +181,6 @@ if (KErrNone == result) { _DBGLOG2("VmbxCpGroup::queryCsVideoNumber >, number=", number) mUiEngine->setCsVideoNumber(number); - UpdateWidgetContent(mCsVideo1Index, number); } mCsVideo1Editor->setEnabled(true); _DBGLOG("VmbxCpGroup::queryCsVideoNumber <") diff -r 35488577e233 -r 2fa1fa551b0b vmbx/vmbxengine/src/voicemailboximpl.cpp --- a/vmbx/vmbxengine/src/voicemailboximpl.cpp Mon Aug 23 15:50:31 2010 +0300 +++ b/vmbx/vmbxengine/src/voicemailboximpl.cpp Fri Sep 03 13:59:20 2010 +0300 @@ -828,7 +828,22 @@ iVmbxFactory->CreateEngineL( vmbxEngine, aType ); CleanupStack::PushL( vmbxEngine ); CVoiceMailboxEntry* entry( NULL ); - vmbxEngine->GetL( entry ); + TRAPD(err,vmbxEngine->GetL( entry )); + VMBLOGSTRING2( "VMBX: CVoiceMailboxImpl::NotifyChangedL err=%d",err ); + if(err == KErrNotFound) + { + delete entry; + entry = NULL; + entry = CVoiceMailboxEntry::NewL(); + // get als line info + entry->SetVmbxAlsLineType( VmbxUtilities::AlsLine() ); + entry->SetVoiceMailboxType( aType ); + entry->SetVmbxNumber( KNullDesC()); + } + else + { + User::LeaveIfError(err); + } CleanupStack::PushL( entry ); iNotifyCallBack->HandleNotifyL( *entry ); CleanupStack::PopAndDestroy( entry );