diff -r 1fc85118c3ae -r 870918037e16 locationdataharvester/mylocationsengine/src/contactsubscriber.cpp --- a/locationdataharvester/mylocationsengine/src/contactsubscriber.cpp Tue Aug 31 15:09:25 2010 +0300 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,156 +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: Subscribe source implementation for getting contact status - * notification from publisher. - * - */ -#include "contactsubscriber.h" -#include "mylocationlogger.h" -#include - -const TUid KContactPropertyCat={0x20022EF9}; -enum TMyPropertyKeys {EMyPropertyInteger=0x1, EMyPropertyType=0x2}; -const TInt KBufferSize=16; - -// ----------------------------------------------------------------------------- -// CContactSubscriber::NewL() -// ----------------------------------------------------------------------------- -// -CContactSubscriber* CContactSubscriber::NewL(MNotifyChange* aNotifyChange) -{ - CContactSubscriber* self = CContactSubscriber::NewLC(aNotifyChange); - CleanupStack::Pop(self); - return self; -} - -// ----------------------------------------------------------------------------- -// CContactSubscriber::NewLC() -// ----------------------------------------------------------------------------- -// -CContactSubscriber* CContactSubscriber::NewLC( - MNotifyChange* aNotifyChange) -{ - CContactSubscriber* self = new (ELeave) CContactSubscriber( - aNotifyChange); - CleanupStack::PushL(self); - self->ConstructL(); - return self; -} - -// ----------------------------------------------------------------------------- -// CContactSubscriber::ConstructL() -// Symbian 2nd phase constructor can leave. -// ----------------------------------------------------------------------------- -// -void CContactSubscriber::ConstructL() -{ - __TRACE_CALLSTACK; - CActiveScheduler::Add(this); - TInt ret = iProperty.Attach(KContactPropertyCat, EMyPropertyInteger); - if (KErrNone == ret) - { - SubscribeChangeNotiFication(); - } -} - - -// ----------------------------------------------------------------------------- -// CContactSubscriber::SubscribeChangeNotiFication() -// start subscribe for contact entry -// ----------------------------------------------------------------------------- -// -void CContactSubscriber::SubscribeChangeNotiFication() -{ - __TRACE_CALLSTACK; - if (IsActive()) - { - Cancel(); - } - // resubscribe before processing new value to prevent missing updates - iProperty.Subscribe(iStatus); - SetActive(); -} - -// ----------------------------------------------------------------------------- -// CContactSubscriber::CContactSubscriber() -// Default constructor . -// ----------------------------------------------------------------------------- -// -CContactSubscriber::CContactSubscriber(MNotifyChange* aNotifyChange) : - CActive(EPriorityStandard), - iNotifyChange(*aNotifyChange) - -{ -} -// ----------------------------------------------------------------------------- -// CContactSubscriber::~CContactSubscriber() -// default destuctor. -// ----------------------------------------------------------------------------- -// -CContactSubscriber::~CContactSubscriber() -{ - __TRACE_CALLSTACK; - Cancel(); - iProperty.Close(); - -} -// ----------------------------------------------------------------------------- -// CContactSubscriber::RunL() -// Assyncronous request handler , on completion of notification -// ----------------------------------------------------------------------------- -// -void CContactSubscriber::RunL() -{ - __TRACE_CALLSTACK; - SubscribeChangeNotiFication(); - // property updated, get new value - TBuf8 value; - TPtrC8 id; - TPtrC8 sourceType; - TPtrC8 addressCount; - - if ( KErrNone == iProperty.Get( value ) ) - { - TInt pos = value.Locate(TChar('-')); - id.Set( value.Left(pos) ); - - TPtrC8 ptr = value.Right(3); - sourceType.Set(ptr.Left(1)); - addressCount.Set(ptr.Right(1)); - - TInt appId = -1, addressType = -1, addressTypeCount = -1; - TLex8 lex(id); - lex.Val(appId); - - TLex8 lex1(sourceType); - lex1.Val( addressType ); - - TLex8 lex2(addressCount); - lex2.Val(addressTypeCount); - - iNotifyChange.GetChangeNotificationL( appId, addressType,addressTypeCount ); - } -} -// ----------------------------------------------------------------------------- -// CContactSubscriber::DoCancel() -// Handels the error condition on assynchronous request -// ----------------------------------------------------------------------------- -// -void CContactSubscriber::DoCancel() -{ - iProperty.Cancel(); -} - -//End of file -