--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/bluetoothengine/btmac/src/BTMonoCmdHandler/btmcnumber.cpp Mon Jan 18 20:28:57 2010 +0200
@@ -0,0 +1,164 @@
+/*
+* 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: General Active Object offering asynchronous service
+*
+*/
+
+#include "atcodec.h"
+#include "btmcprotocol.h"
+#include "btmcnumber.h"
+#include <mmtsy_names.h>
+#include "debug.h"
+
+// -----------------------------------------------------------------------------
+// CBtmcNumber::NewL
+// -----------------------------------------------------------------------------
+CBtmcNumber* CBtmcNumber::NewL(
+ MBtmcActiveObserver& aObserver,
+ CBtmcProtocol& aProtocol,
+ CActive::TPriority aPriority,
+ TInt aServiceId)
+ {
+ CBtmcNumber* self = new (ELeave) CBtmcNumber(aObserver, aProtocol, aPriority, aServiceId);
+ CleanupStack::PushL(self);
+ self->ConstructL();
+ CleanupStack::Pop(self);
+ return self;
+ }
+
+// -----------------------------------------------------------------------------
+// CBtmcNumber::~CBtmcNumber
+// -----------------------------------------------------------------------------
+CBtmcNumber::~CBtmcNumber()
+ {
+ TRACE_FUNC_ENTRY
+ Cancel();
+ iStore.Close();
+ iPhone.Close();
+ iServer.UnloadPhoneModule(KMmTsyModuleName);
+ iServer.Close();
+ TRACE_FUNC_EXIT
+ }
+
+// -------------------------------------------------------------------------------
+// CBtmcNumber::GoActive
+// -------------------------------------------------------------------------------
+void CBtmcNumber::GoActive()
+ {
+ TRACE_ASSERT(!IsActive(), KErrGeneral);
+ iEntry.iIndex = 1;
+ iStore.Read(iStatus, iPckg);
+ SetActive();
+ TRACE_FUNC
+ }
+
+// -------------------------------------------------------------------------------
+// CBtmcNumber::RunL
+// -------------------------------------------------------------------------------
+void CBtmcNumber::RunL()
+ {
+ TRACE_FUNC_ENTRY
+
+ RATResultPtrArray resarr;
+ ATObjArrayCleanupResetAndDestroyPushL(resarr);
+ CATResult* okerr = NULL;
+ if (iStatus == KErrNone)
+ {
+ TBuf8<RMobileONStore::KOwnNumberTextSize> nameBuf;
+ nameBuf.Copy(iEntry.iNumber.iTelNumber);
+
+ TRACE_INFO((_L8("ao status %d, phonebook returned %S"), iStatus.Int(), &nameBuf))
+ RATParamArray params;
+ CleanupClosePushL(params);
+ LEAVE_IF_ERROR(params.Append(TATParam()))
+ LEAVE_IF_ERROR(params.Append(TATParam(nameBuf, EATDQStringParam)))
+
+ TBTMonoATPhoneNumberType numType;
+ if (nameBuf.Length() == 0)
+ {
+ numType = EBTMonoATPhoneNumberUnavailable;
+ }
+ else if(nameBuf.Locate('+') == 0)
+ {
+ numType = EBTMonoATPhoneNumberInternational;
+ }
+ else
+ {
+ numType = EBTMonoATPhoneNumberNational;
+ }
+ LEAVE_IF_ERROR(params.Append(TATParam(numType)))
+ LEAVE_IF_ERROR(params.Append(TATParam()))
+ LEAVE_IF_ERROR(params.Append(TATParam(4)))
+ CATResult* code = CATResult::NewL(EATCNUM, EATActionResult, ¶ms);
+ CleanupStack::PushL(code);
+ resarr.AppendL(code);
+ CleanupStack::Pop(code);
+ CleanupStack::PopAndDestroy(¶ms);
+ okerr = CATResult::NewL(EATOK);
+ }
+ else
+ {
+ okerr = CATResult::NewL(EATERROR);
+ }
+ CleanupStack::PushL(okerr);
+ resarr.AppendL(okerr);
+ CleanupStack::Pop(okerr);
+ iProtocol.SendResponseL(resarr);
+ CleanupStack::PopAndDestroy(&resarr);
+ Observer().RequestCompletedL(*this, iStatus.Int());
+ TRACE_FUNC_EXIT
+ }
+
+// -------------------------------------------------------------------------------
+// CBtmcNumber::DoCancel
+// -------------------------------------------------------------------------------
+void CBtmcNumber::DoCancel()
+ {
+ iStore.CancelAsyncRequest(EMobilePhoneStoreRead);
+ TRACE_FUNC
+ }
+
+
+// -------------------------------------------------------------------------------
+// CBtmcNumber::RunError
+// -------------------------------------------------------------------------------
+TInt CBtmcNumber::RunError(TInt /*aErr*/)
+ {
+ TRACE_FUNC
+ return KErrNone;
+ }
+
+// -----------------------------------------------------------------------------
+// CBtmcNumber::CBtmcNumber
+// -----------------------------------------------------------------------------
+CBtmcNumber::CBtmcNumber(
+ MBtmcActiveObserver& aObserver,
+ CBtmcProtocol& aProtocol,
+ CActive::TPriority aPriority,
+ TInt aServiceId)
+ : CBtmcActive(aObserver, aPriority, aServiceId), iProtocol(aProtocol), iPckg(iEntry)
+ {
+ }
+
+void CBtmcNumber::ConstructL()
+ {
+ TRACE_FUNC_ENTRY
+ LEAVE_IF_ERROR(iServer.Connect());
+ iServer.LoadPhoneModule(KMmTsyModuleName);
+ LEAVE_IF_ERROR(iPhone.Open(iServer, KMmTsyPhoneName));
+ LEAVE_IF_ERROR(iStore.Open(iPhone));//, KETelIccMsisdnPhoneBook));
+ TRACE_FUNC_EXIT
+ }
+
+// End of File