videoscheduler/SchedulerClient/src/CCseScheduledProgram.cpp
changeset 0 822a42b6c3f1
child 15 6c92a12abac0
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/videoscheduler/SchedulerClient/src/CCseScheduledProgram.cpp	Thu Dec 17 09:14:38 2009 +0200
@@ -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 <ipvideo/CCseScheduledProgram.h>   // 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::CCseScheduledProgram");
+	}
+	
+// ---------------------------------------------------------------------------
+// CCseScheduledProgram::NewL()
+//
+// ---------------------------------------------------------------------------	
+EXPORT_C CCseScheduledProgram* CCseScheduledProgram::NewL( CCseScheduledProgram& aProg)
+	{
+    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");
+    return self;
+	}
+
+
+// ---------------------------------------------------------------------------
+// CCseScheduledProgram::NewL()
+//
+// ---------------------------------------------------------------------------	
+EXPORT_C CCseScheduledProgram* CCseScheduledProgram::NewL()
+	{
+	CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::NewL");
+    
+    CCseScheduledProgram* self = new ( ELeave ) CCseScheduledProgram();    
+    CleanupStack::PushL( self );
+    self->ConstructL();
+    CleanupStack::Pop( self );
+        
+    CSELOGSTRING_HIGH_LEVEL("<<<CCseScheduledProgram::NewL");
+    return self;
+	}
+	
+// ---------------------------------------------------------------------------
+// CCseScheduledProgram::ConstructL()
+//
+// ---------------------------------------------------------------------------	
+void CCseScheduledProgram::ConstructL()
+	{
+	CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::ConstructL");
+    iAppData = HBufC8::NewL( 0 );    
+    CSELOGSTRING_HIGH_LEVEL("<<<CCseScheduledProgram::ConstructL");
+	}
+	
+// ---------------------------------------------------------------------------
+// CCseScheduledProgram::~CCseScheduledProgram()
+//
+// ---------------------------------------------------------------------------	
+EXPORT_C CCseScheduledProgram::~CCseScheduledProgram()
+	{
+	CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::~CCseScheduledProgram");
+    delete iAppData;
+    CSELOGSTRING_HIGH_LEVEL("<<<CCseScheduledProgram::~CCseScheduledProgram");	
+	}
+
+// ---------------------------------------------------------------------------
+// CCseScheduledProgram::SetScheduleType()
+//
+// ---------------------------------------------------------------------------	
+EXPORT_C void CCseScheduledProgram::SetScheduleType( const TInt32 aScheduleType )
+	{
+	CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::SetScheduleType");
+    iScheduleType = aScheduleType;	
+	CSELOGSTRING_HIGH_LEVEL("<<<CCseScheduledProgram::SetScheduleType");	
+	}
+		
+// ---------------------------------------------------------------------------
+// CCseScheduledProgram::SetApplicationDataL()
+//
+// ---------------------------------------------------------------------------	
+EXPORT_C void CCseScheduledProgram::SetApplicationDataL( const TDesC8& aAppData )
+	{
+	CSELOGSTRING_HIGH_LEVEL(">>>CCseScheduledProgram::SetApplicationData");
+    delete iAppData;
+	iAppData = NULL;
+	iAppData = aAppData.AllocL();
+	
+	CSELOGSTRING_HIGH_LEVEL("<<<CCseScheduledProgram::SetApplicationData");	
+	}
+	
+// ---------------------------------------------------------------------------
+// CCseScheduledProgram::ApplicationData()
+//
+// ---------------------------------------------------------------------------	
+EXPORT_C TPtrC8 CCseScheduledProgram::ApplicationData()
+	{
+	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::InternalizeL");	
+	}
+	
+// -----------------------------------------------------------------------------
+// CCseScheduledProgram::ExternalizeL
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CCseScheduledProgram::ExternalizeL(RWriteStream& aStream)
+	{
+	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::ExternalizeL");	
+	}
+
+
+// -----------------------------------------------------------------------------
+// CCseScheduledProgram::ExternalizeLength
+// -----------------------------------------------------------------------------
+//
+EXPORT_C TInt CCseScheduledProgram::ExternalizeLength( )
+	{
+	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::ExternalizeLength");
+	return retValue;
+	}
+
+// -----------------------------------------------------------------------------
+// CCseScheduledProgram::SetPluginType
+// -----------------------------------------------------------------------------
+//
+EXPORT_C void CCseScheduledProgram::SetPluginType( TInt32 aPluginType )
+	{
+	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("<<<CCseScheduledProgram::DebugDump");
+#endif
+	}
+
+
+// End of file