diff -r 826cea16efd9 -r 13a33d82ad98 videoscheduler/SchedulerClient/src/CCseScheduledProgram.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/videoscheduler/SchedulerClient/src/CCseScheduledProgram.cpp Wed Sep 01 12:20:37 2010 +0100 @@ -0,0 +1,552 @@ +/* +* 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 the License "Eclipse Public License v1.0" +* which accompanies 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 contains data for scheduled programs.* +*/ + + + + +// INCLUDES +#include // Header file for this class +#include "CseDebug.h" // Debug macros + +// EXTERNAL DATA STRUCTURES +// None + +// EXTERNAL FUNCTION PROTOTYPES +// None + +// CONSTANTS +// None + +// MACROS +// None + +// LOCAL CONSTANTS AND MACROS +// None + +// MODULE DATA STRUCTURES +// None + +// LOCAL FUNCTION PROTOTYPES +// None + +// FORWARD DECLARATIONS +// None + +// --------------------------------------------------------------------------- +// CCseScheduledProgram::CCseScheduledProgram() +// +// --------------------------------------------------------------------------- +EXPORT_C CCseScheduledProgram::CCseScheduledProgram() : + iStartTime( 0 ), + iEndTime( 0 ), + iAppUid( 0 ), + iPluginUid( 0 ), + iDbIdentifier( 0 ), + iScheduleType ( ECseOther ), + iPluginType( ECseUniPlugin ) + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::CCseScheduledProgram"); + + CSELOGSTRING_HIGH_LEVEL("<<>>CCseScheduledProgram::NewL"); + + CCseScheduledProgram* self = new ( ELeave ) CCseScheduledProgram(); + CleanupStack::PushL( self ); + self->ConstructL(); + self->SetName( aProg.Name() ); + self->SetStartTime( aProg.StartTime() ); + self->SetEndTime( aProg.EndTime() ); + self->SetAppUid( aProg.AppUid() ); + self->SetPluginUid( aProg.PluginUid() ); + self->SetDbIdentifier( aProg.DbIdentifier() ); + self->SetApplicationDataL( aProg.ApplicationData() ); + self->SetScheduleType( aProg.ScheduleType() ); + self->SetPluginType( aProg.PluginType() ); + CleanupStack::Pop( self ); + CSELOGSTRING_HIGH_LEVEL("<<>>CCseScheduledProgram::NewL"); + + CCseScheduledProgram* self = new ( ELeave ) CCseScheduledProgram(); + CleanupStack::PushL( self ); + self->ConstructL(); + CleanupStack::Pop( self ); + + CSELOGSTRING_HIGH_LEVEL("<<>>CCseScheduledProgram::ConstructL"); + iAppData = HBufC8::NewL( 0 ); + CSELOGSTRING_HIGH_LEVEL("<<>>CCseScheduledProgram::~CCseScheduledProgram"); + delete iAppData; + CSELOGSTRING_HIGH_LEVEL("<<>>CCseScheduledProgram::SetScheduleType"); + iScheduleType = aScheduleType; + CSELOGSTRING_HIGH_LEVEL("<<>>CCseScheduledProgram::SetApplicationData"); + delete iAppData; + iAppData = NULL; + iAppData = aAppData.AllocL(); + + CSELOGSTRING_HIGH_LEVEL("<<>>CCseScheduledProgram::ApplicationData"); + return *iAppData; + } + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::InternalizeL +// ----------------------------------------------------------------------------- +// +EXPORT_C void CCseScheduledProgram::InternalizeL( RReadStream& aStream ) + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::InternalizeL"); + TUint32 lower( 0 ); + TUint32 upper( 0 ); + TInt32 buffLen( 0 ); + + // Name + buffLen = aStream.ReadInt32L(); + aStream.ReadL( iName, buffLen ); + + // Start time + lower = aStream.ReadUint32L(); + upper = aStream.ReadUint32L(); + TInt64 time( 0 ); + time = (TInt64) lower; + TInt64 longUpper = (TInt64) upper; + longUpper = longUpper << 32; + longUpper &= (0xFFFFFFFF00000000ULL); + time |= longUpper; + iStartTime = time; + + // End time + lower = aStream.ReadUint32L(); + upper = aStream.ReadUint32L(); + time = (TInt64) lower; + longUpper = (TInt64) upper; + longUpper = longUpper << 32; + longUpper &= (0xFFFFFFFF00000000ULL); + time |= longUpper; + iEndTime = time; + + // Application UID + iAppUid = aStream.ReadInt32L(); + + // Notifier plug-in UID + iPluginUid = aStream.ReadInt32L(); + + // Db identifier + iDbIdentifier = aStream.ReadUint32L(); + + // Schedule type + iScheduleType = aStream.ReadInt32L(); + + // Plugin type + iPluginType = aStream.ReadInt32L(); + + // Application data length + buffLen = aStream.ReadInt32L(); + + // Application data + delete iAppData; + iAppData = NULL; + iAppData = HBufC8::NewL( buffLen ); + TPtr8 ptr( iAppData->Des() ); + aStream.ReadL( ptr, buffLen ); + + CSELOGSTRING_HIGH_LEVEL("<<>>CCseScheduledProgram::ExternalizeL"); + TInt64 temp( 0 ); + TUint32 lower( 0 ); + TUint32 upper( 0 ); + TInt32 buffLen( 0 ); + + // Name + buffLen = iName.Length(); + aStream.WriteInt32L( buffLen ); + aStream.WriteL( iName ); + // Start time + temp = iStartTime.Int64(); + lower = (0x00000000FFFFFFFFULL) & temp; + upper = (0x00000000FFFFFFFFULL) & (temp >> 32); + aStream.WriteUint32L( lower ); + aStream.WriteUint32L( upper ); + + // End time + temp = iEndTime.Int64(); + lower = (0x00000000FFFFFFFFULL) & temp; + upper = (0x00000000FFFFFFFFULL) & (temp >> 32); + aStream.WriteUint32L( lower ); + aStream.WriteUint32L( upper ); + + // Application UID + aStream.WriteInt32L( iAppUid ); + + // Notifier plug-in UID + aStream.WriteInt32L( iPluginUid ); + + // DbIdentifier + aStream.WriteUint32L( iDbIdentifier ); + + // Schedule type + aStream.WriteInt32L( iScheduleType ); + + // Schedule type + aStream.WriteInt32L( iPluginType ); + + // Application data length + buffLen = iAppData->Length(); + aStream.WriteInt32L( buffLen ); + + // Application data + aStream.WriteL( *iAppData ); + + CSELOGSTRING_HIGH_LEVEL("<<>>CCseScheduledProgram::ExternalizeLength"); + TInt retValue( 0 ); + retValue = sizeof( iStartTime ) + +sizeof( iEndTime ) + +sizeof( iAppUid ) + +sizeof( iPluginUid ) + +sizeof( iDbIdentifier ) + +sizeof( iScheduleType ) + +sizeof( iPluginType ) + +sizeof( TInt32 ) // Application data length + +sizeof( TInt32 ) // Name length + +iName.Size( ) // Name + +iAppData->Size( ); // Application data size + + CSELOGSTRING_HIGH_LEVEL("<<>>CCseScheduledProgram::SetPluginType"); + iPluginType = aPluginType; + } + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::SetName +// ----------------------------------------------------------------------------- +// +EXPORT_C void CCseScheduledProgram::SetName( const TDesC8& aName ) + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::SetName"); + iName = aName; + } + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::SetDbIdentifier +// ----------------------------------------------------------------------------- +// +EXPORT_C void CCseScheduledProgram::SetDbIdentifier( const TUint32 aDbIdentifier ) + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::SetDbIdentifier"); + iDbIdentifier = aDbIdentifier; + } + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::SetStartTime +// ----------------------------------------------------------------------------- +// +EXPORT_C void CCseScheduledProgram::SetStartTime( const TTime& aStartTime ) + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::SetStartTime"); + iStartTime = aStartTime; + } + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::SetEndTime +// ----------------------------------------------------------------------------- +// +EXPORT_C void CCseScheduledProgram::SetEndTime( const TTime& aEndTime ) + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::SetEndTime"); + iEndTime = aEndTime; + } + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::SetAppUid +// ----------------------------------------------------------------------------- +// +EXPORT_C void CCseScheduledProgram::SetAppUid( const TInt32 aAppUid ) + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::SetAppUid"); + iAppUid = aAppUid; + } + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::SetPluginUid +// ----------------------------------------------------------------------------- +// +EXPORT_C void CCseScheduledProgram::SetPluginUid( const TInt32 aPluginUid ) + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::SetPluginUid"); + iPluginUid = aPluginUid; + } + + +// Getters for the instance data +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::GetPluginType +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt32 CCseScheduledProgram::PluginType() const + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::PluginType"); + return iPluginType; + } + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::Name +// ----------------------------------------------------------------------------- +// +EXPORT_C TPtrC8 CCseScheduledProgram::Name() const + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::Name"); + return iName; + } + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::DbIdentifier +// ----------------------------------------------------------------------------- +// +EXPORT_C TUint32 CCseScheduledProgram::DbIdentifier() const + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::DbIdentifier"); + return iDbIdentifier; + } + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::StartTime +// ----------------------------------------------------------------------------- +// +EXPORT_C TTime& CCseScheduledProgram::StartTime() + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::SetDbIdentifier"); + return iStartTime; + } + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::EndTime +// ----------------------------------------------------------------------------- +// +EXPORT_C TTime& CCseScheduledProgram::EndTime() + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::EndTime"); + return iEndTime; + } + + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::ScheduleType +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt32 CCseScheduledProgram::ScheduleType() const + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::ScheduleType"); + return iScheduleType; + } + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::AppUid +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt32 CCseScheduledProgram::AppUid() const + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::Appuid"); + return iAppUid; + } + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::PluginUid +// ----------------------------------------------------------------------------- +// +EXPORT_C TInt32 CCseScheduledProgram::PluginUid() const + { + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::PluginUid"); + return iPluginUid; + } + + +// ----------------------------------------------------------------------------- +// CCseScheduledProgram::DebugDump +// ----------------------------------------------------------------------------- +// +EXPORT_C void CCseScheduledProgram::DebugDump() const + { +#ifdef _DEBUG + CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::DebugDump"); + + // Write schedule name + // Change 8-bit buffer to 16-bit. + HBufC* writeBuff = NULL; + TRAPD( err, writeBuff = HBufC::NewL( iName.Length() ) ); + if(err == KErrNone) + { + TPtr writePtr = writeBuff->Des(); + writePtr.Copy( iName ); + CSELOGSTRING2_HIGH_LEVEL("Schedule name: %S", writeBuff); + } + else + { + CSELOGSTRING2_HIGH_LEVEL("Schedule name: %S", &iName); + } + + // Start time + TBuf<100> startTimeBuf; + _LIT( KDateTimeFormat,"%1%*D/%2%*M/%3%*Y %H:%T:%S" ); + TRAP( err, iStartTime.FormatL( startTimeBuf, KDateTimeFormat ) ); + if ( KErrNone == err ) + { + CSELOGSTRING2_HIGH_LEVEL("Schedule start time: %S", &startTimeBuf); + } + + // End time + TBuf<100> endTimeBuf; + TRAP( err, iEndTime.FormatL( endTimeBuf, KDateTimeFormat ) ); + if ( KErrNone == err ) + { + CSELOGSTRING2_HIGH_LEVEL("Schedule end time: %S", &endTimeBuf); + } + + // Application UID + CSELOGSTRING2_HIGH_LEVEL("Schedule application uid: 0x%x", (unsigned)iAppUid); + + // Plugin UID + CSELOGSTRING2_HIGH_LEVEL("Schedule plugin uid: 0x%x", (unsigned)iPluginUid); + + // Application data + // Write only length of data + CSELOGSTRING2_HIGH_LEVEL("Schedule application data length: %d", iAppData->Length() ); + + // DB identifier + CSELOGSTRING2_HIGH_LEVEL("Schedule DB identifier: %x", iDbIdentifier); + + // Schedule type + switch(iScheduleType) + { + case ECseReminder: + CSELOGSTRING_HIGH_LEVEL("Schedule type: ECseReminder"); + break; + + case ECseRecording: + CSELOGSTRING_HIGH_LEVEL("Schedule type: ECseRecording"); + break; + + case ECseProgramGuideUpdate: + CSELOGSTRING_HIGH_LEVEL("Schedule type: ECseProgramGuideUpdate"); + break; + + case ECseScheduleDownload: + CSELOGSTRING_HIGH_LEVEL("Schedule type: ECseScheduleDownload"); + break; + + case ECseOther: + CSELOGSTRING_HIGH_LEVEL("Schedule type: ECseOther"); + break; + + default: + break; + } + delete writeBuff; + writeBuff = NULL; + + CSELOGSTRING_HIGH_LEVEL("<<