diff -r 000000000000 -r 667063e416a2 locationtriggering/ltclientlib/src/lbtsessiontrigger.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/locationtriggering/ltclientlib/src/lbtsessiontrigger.cpp Tue Feb 02 01:06:48 2010 +0200 @@ -0,0 +1,254 @@ +/* +* 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 class representing session trigger +* entries. +* +*/ + + +#include +#include "lbtsessiontrigger.h" +#include "lbttriggerentry.h" +#include "lbttriggerconditionbase.h" +#include "lbttriggerconditionarea.h" + +const TInt EnabledState=1; +const TInt DisabledState=2; +const TInt ConditionArea=1; +// ======== LOCAL FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// CLbtSessionTrigger::NewL() +// +// (other items were commented in a header). +// --------------------------------------------------------------------------- +// +EXPORT_C CLbtSessionTrigger* CLbtSessionTrigger::NewL() + { + CLbtSessionTrigger* self = new( ELeave ) CLbtSessionTrigger; + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + return self; + } + + +// --------------------------------------------------------------------------- +// CLbtSessionTrigger::NewL() +// +// (other items were commented in a header). +// --------------------------------------------------------------------------- +// +EXPORT_C CLbtSessionTrigger* CLbtSessionTrigger::NewLC() + { + CLbtSessionTrigger* self = new( ELeave ) CLbtSessionTrigger; + CleanupStack::PushL( self ); + self->ConstructL(); + return self; + } +// --------------------------------------------------------------------------- +// CLbtSessionTrigger::NewL(TCoordinate aCenter, +// TReal aRadius) +// (other items were commented in a header). +// --------------------------------------------------------------------------- +// +EXPORT_C CLbtSessionTrigger* CLbtSessionTrigger::NewL( + const TDesC& aName, + TLbtTriggerState aState, + CRequestor::TRequestorType aRequestorType, + CRequestor::TRequestorFormat aRequestorFormat, + const TDesC& aRequestorData, + TUid aManagerUi, + CLbtTriggerConditionBase* aCondition) + { + CLbtSessionTrigger* self = new( ELeave ) CLbtSessionTrigger; + CleanupStack::PushL( self ); + self->ConstructL(aName,aState,aRequestorType,aRequestorFormat,aRequestorData,aManagerUi,aCondition); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CLbtSessionTrigger::NewL() +// +// (other items were commented in a header). +// --------------------------------------------------------------------------- +// +EXPORT_C CLbtSessionTrigger* CLbtSessionTrigger::NewL( + const TDesC& aName, + CLbtTriggerEntry::TLbtTriggerState aState, + const RRequestorStack& aRequestors, + TUid aManagerUi, + CLbtTriggerConditionBase* aCondition ) + + { + CLbtSessionTrigger* self = new( ELeave ) CLbtSessionTrigger; + CleanupStack::PushL( self ); + self->ConstructL(aName,aState, aRequestors, aManagerUi, aCondition); + CleanupStack::Pop( self ); + return self; + } + +// --------------------------------------------------------------------------- +// CLbtSessionTrigger::Type() +// +// (other items were commented in a header). +// --------------------------------------------------------------------------- +// +EXPORT_C CLbtTriggerEntry::TType CLbtSessionTrigger::Type() const + { + return CLbtTriggerEntry::ETypeSession; + } + +// --------------------------------------------------------------------------- +// CLbtSessionTrigger::CLbtSessionTrigger() +// Default constructor +// --------------------------------------------------------------------------- +// +CLbtSessionTrigger::CLbtSessionTrigger() + { + + } + +// --------------------------------------------------------------------------- +// CLbtSessionTrigger::~CLbtSessionTrigger() +// Destructor +// --------------------------------------------------------------------------- +// +CLbtSessionTrigger::~CLbtSessionTrigger() + { + + } + +// --------------------------------------------------------------------------- +// CLbtSessionTrigger::ConstructL() +// Symbian 2nd phase constructor can leave. +// --------------------------------------------------------------------------- +// +void CLbtSessionTrigger::ConstructL(const TDesC& aName,TLbtTriggerState aState, + CRequestor::TRequestorType aRequestorType, + CRequestor::TRequestorFormat aRequestorFormat, + const TDesC& aRequestorData, + TUid aManagerUi, + CLbtTriggerConditionBase* aCondition) + { + SetNameL(aName); + SetState(aState); + SetRequestorL(aRequestorType,aRequestorFormat,aRequestorData); + SetCondition(aCondition); + SetManagerUi(aManagerUi); + } + +// --------------------------------------------------------------------------- +// CLbtSessionTrigger::ConstructL() +// Symbian 2nd phase constructor can leave. +// --------------------------------------------------------------------------- +// +void CLbtSessionTrigger::ConstructL(const TDesC& aName, + CLbtTriggerEntry::TLbtTriggerState aState, + const RRequestorStack& aRequestors, + TUid aManagerUi, + CLbtTriggerConditionBase* aCondition) + + { + SetNameL(aName); + SetState(aState); + SetManagerUi(aManagerUi); + SetCondition(aCondition); + SetRequestorsL(aRequestors); + } + +// --------------------------------------------------------------------------- +// CLbtSessionTrigger::DoInternalizeL() +// (other items were commented in a header). +// --------------------------------------------------------------------------- +// +void CLbtSessionTrigger::DoInternalizeL(RReadStream& aStream) + { + SetId(aStream.ReadInt32L()); + TBuf16 name; + TInt namLength=aStream.ReadInt32L(); + aStream.ReadL(name,namLength); + SetNameL(name); + TInt state; + state=aStream.ReadInt8L(); + TLbtTriggerState trigState=CLbtTriggerEntry::EStateEnabled; + if(state==EnabledState) + trigState=CLbtTriggerEntry::EStateEnabled; + else if(state==DisabledState) + trigState=CLbtTriggerEntry::EStateDisabled; + SetState(trigState); + TInt rearmTime = aStream.ReadInt32L(); + SetTimeToRearm( rearmTime ); + TUid managerUid; + managerUid.iUid=aStream.ReadInt32L(); + SetManagerUi(managerUid); + TInt condType=aStream.ReadInt8L(); + if(condType==ConditionArea) + { + CLbtTriggerConditionArea *area=CLbtTriggerConditionArea::NewL(); + area->InternalizeL(aStream); + SetCondition(area); + } + } + +// --------------------------------------------------------------------------- +// CLbtSessionTrigger::DoExternalizeL() +// (other items were commented in a header). +// --------------------------------------------------------------------------- +// +void CLbtSessionTrigger::DoExternalizeL(RWriteStream& aStream) const + { + aStream.WriteInt32L(Id()); + const TDesC& name=Name(); + TInt len=name.Length(); + aStream.WriteInt32L(len); + aStream.WriteL(name,len); + TLbtTriggerState state=State(); + + if(state==CLbtTriggerEntry::EStateEnabled) + aStream.WriteInt8L(EnabledState); + else + aStream.WriteInt8L(DisabledState); + TInt rearmTime = TimeToRearm(); + aStream.WriteInt32L( rearmTime ); + aStream.WriteInt32L(ManagerUi().iUid); + const CLbtTriggerConditionBase* Cond=GetCondition(); + CLbtTriggerConditionBase::TType condType; + if(Cond!=NULL) + { + condType=Cond->Type(); + if(condType==CLbtTriggerConditionBase::ETriggerConditionArea) + aStream.WriteInt8L(ConditionArea); + Cond->ExternalizeL(aStream); + } + else + { + aStream.WriteInt8L(0); + } + } + +// --------------------------------------------------------------------------- +// CLbtSessionTrigger::ConstructL() +// Symbian 2nd phase constructor can leave. +// --------------------------------------------------------------------------- +// +void CLbtSessionTrigger::ConstructL() + { + SetState(CLbtTriggerEntry::EStateEnabled); + SetId(KLbtNullTriggerId); + SetCondition(NULL); + SetNameL(KNullDesC()); + } +