videoscheduler/SchedulerClient/src/RCseSchedulerService.cpp
changeset 50 557e19da7faf
parent 43 0a57f2fb63b1
child 52 0c0f95df01f4
--- a/videoscheduler/SchedulerClient/src/RCseSchedulerService.cpp	Wed Aug 18 10:48:22 2010 +0300
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,659 +0,0 @@
-/*
-* 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:    Implementation of Scheduler engine client's Service*
-*/
-
-
-
-
-
-// INCLUDE FILES
-#include <ipvideo/RCseSchedulerService.h>               // Header fo this class
-#include <ipvideo/CCseScheduledProgram.h>               // Represent one schedule in database
-#include "CseDebug.h"                           // Debug macros
-#include <ipvideo/CseSchedulerClientServerCommon.h>     // Client common methods (server start up etc)
-#include <s32mem.h>
-
-// 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.
-
-// ============================ MEMBER FUNCTIONS ===============================
-
-
-// -----------------------------------------------------------------------------
-// RCseSchedulerService::RCseSchedulerService
-//
-// -----------------------------------------------------------------------------
-//
-RCseSchedulerService::RCseSchedulerService() : RCseSchedulerServiceBase()
-    {
-    CSELOGSTRING_HIGH_LEVEL(">>>RCseSchedulerService::RCseSchedulerService");
-    // None
-    CSELOGSTRING_HIGH_LEVEL("<<<RCseSchedulerService::RCseSchedulerService");
-    }
-
-// -----------------------------------------------------------------------------
-// RCseSchedulerService::~RCseSchedulerService
-//
-// -----------------------------------------------------------------------------
-//
-RCseSchedulerService::~RCseSchedulerService()
-    {
-    CSELOGSTRING_HIGH_LEVEL(">>>RCseSchedulerService::~RCseSchedulerService");
-    CSELOGSTRING_HIGH_LEVEL("<<<RCseSchedulerService::~RCseSchedulerService");
-    }
-    
-// -----------------------------------------------------------------------------
-// RCseSchedulerService::AddScheduleL
-//
-// -----------------------------------------------------------------------------
-//
-void RCseSchedulerService::AddScheduleL( CCseScheduledProgram& aData ) const
-    {
-    CSELOGSTRING_HIGH_LEVEL(">>>RCseSchedulerService::AddScheduleL");
-    if ( !SubSessionHandle() )
-        {
-		User::Leave( ECseNoSubsessionHandle );
-        }
-    // First we to "externalize" (put CCseScheduledProgram-class content to array)
-    // information from given scheduled program.
-    HBufC8* msg = HBufC8::NewLC( aData.ExternalizeLength() );
-	HBufC8* id = HBufC8::NewLC( 4 );
-    TPtr8 ptr( msg->Des() );
-    TPtr8 idPtr( id->Des() );
-    
-    RDesWriteStream writeStream;
-    CleanupClosePushL( writeStream );
-    writeStream.Open( ptr );
-    aData.ExternalizeL( writeStream );
-    CleanupStack::PopAndDestroy( &writeStream );
-    
-    TIpcArgs args( &ptr, &idPtr );
-    
-    // Send array to server side.
-    User::LeaveIfError( SendReceive( ECseAddSchedule, args ) );
-    
-    RDesReadStream readStream;
-	CleanupClosePushL( readStream );
-    readStream.Open( idPtr );
-    aData.SetDbIdentifier( readStream.ReadUint32L() );
-    CleanupStack::PopAndDestroy( &readStream );
-	
-	CleanupStack::PopAndDestroy( id );
-	CleanupStack::PopAndDestroy( msg );
-	CSELOGSTRING_HIGH_LEVEL("<<<RCseSchedulerService::AddScheduleL");
-    }
-
-// -----------------------------------------------------------------------------
-// RCseSchedulerService::RemoveScheduleL
-//
-// -----------------------------------------------------------------------------
-//
-void RCseSchedulerService::RemoveScheduleL( const TUint32 aDbIdentifier ) const
-    {
-    CSELOGSTRING_HIGH_LEVEL(">>>RCseSchedulerService::RemoveScheduleL");
-    if ( !SubSessionHandle() )
-        {
-		User::Leave( ECseNoSubsessionHandle );
-        }
-
-    // Put integer value to stream
-    HBufC8* msg = HBufC8::NewL( 4 );
-	CleanupStack::PushL( msg );
-    TPtr8 ptr( msg->Des() );
-    RDesWriteStream writeStream;
-    CleanupClosePushL( writeStream );
-    writeStream.Open( ptr );
-	writeStream.WriteUint32L( aDbIdentifier );
-    CleanupStack::PopAndDestroy( &writeStream );
-    
-    TIpcArgs args( &ptr );
-    
-    // Send stream to server side
-    User::LeaveIfError( SendReceive( ECseRemoveSchedule, args ) );  
-	CleanupStack::PopAndDestroy( msg );
-	CSELOGSTRING_HIGH_LEVEL("<<<RCseSchedulerService::RemoveScheduleL");
-    }
-    
-// -----------------------------------------------------------------------------
-// RCseSchedulerService::GetScheduleL
-//
-// -----------------------------------------------------------------------------
-//
-void RCseSchedulerService::GetScheduleL( const TUint32 aDbIdentifier,
-										 CCseScheduledProgram* aProg ) const
-    {
-    CSELOGSTRING_HIGH_LEVEL(">>>RCseSchedulerService::GetScheduleL");
-    if ( !SubSessionHandle() )
-        {
-		User::Leave( ECseNoSubsessionHandle );
-        }
-    if ( !aProg )
-    	{
-    	User::Leave( KErrArgument );
-    	}
-    // Buffer for DbIdentifier
-    HBufC8* msgDbId = HBufC8::NewLC( 4 );
-    TPtr8 dbIdPtr( msgDbId->Des() );
-    
-	// Buffer for incoming message length
-    HBufC8* lengthBuff = HBufC8::NewLC( 4 );
-    TPtr8 lengthPtr( lengthBuff->Des() );
-    TInt length( 0 );
-    
-    // Initialize DbIdentifier
-	RDesWriteStream writeStream;
-	CleanupClosePushL( writeStream );
-    writeStream.Open( dbIdPtr );
-    writeStream.WriteUint32L( aDbIdentifier );
-    CleanupStack::PopAndDestroy( &writeStream );
-    
-    // Set args for IPC
-    TIpcArgs args( &dbIdPtr, &lengthPtr );
-    
-    // Ask for message length
-    User::LeaveIfError( SendReceive( ECseGetScheduleLength, args ) ); 
-    
-    // Read length from the message
-    RDesReadStream readStream;
-	CleanupClosePushL( readStream );
-    readStream.Open( lengthPtr );
-	length = readStream.ReadInt32L();
-	CleanupStack::PopAndDestroy( &readStream );
-	
-	// Now ask for the scheduled program information
-	HBufC8* programBuffer = HBufC8::NewLC( length );
-	TPtr8 programPtr( programBuffer->Des() );
-	
-	TIpcArgs progArgs( &dbIdPtr, &programPtr );
-	User::LeaveIfError( SendReceive( ECseGetSchedule, progArgs ) );
-	
-	// Internalize (change stream to CCseScheduledProgram-class) stream that we got.
-	RDesReadStream readStr;
-	CleanupClosePushL( readStr );
-	readStr.Open( programPtr );
-	aProg->InternalizeL( readStr );
-	CleanupStack::PopAndDestroy( &readStr );
-	
-	CleanupStack::PopAndDestroy( programBuffer );
-	CleanupStack::PopAndDestroy( lengthBuff );
-	CleanupStack::PopAndDestroy( msgDbId );
-	CSELOGSTRING_HIGH_LEVEL("<<<RCseSchedulerService::GetSchduleL");
-    }
-
-// -----------------------------------------------------------------------------
-// RCseSchedulerService::GetSchedulesL
-//
-// -----------------------------------------------------------------------------
-//
-void RCseSchedulerService::GetSchedulesL( const TInt32 aAppUid, 
-						RPointerArray<CCseScheduledProgram>& aArray ) const
-    {
-    CSELOGSTRING_HIGH_LEVEL(">>>RCseSchedulerService::GetSchdulesL");
-    if ( !SubSessionHandle() )
-        {
-		User::Leave( ECseNoSubsessionHandle );
-        }
-        
-    // Buffer for app UID
-    HBufC8* msgAppUid = HBufC8::NewLC( 4 );
-    TPtr8 appUidPtr( msgAppUid->Des() );
-    
-	// Buffer for incoming message length
-    HBufC8* lengthBuff = HBufC8::NewLC( 4 );
-    TPtr8 lengthPtr( lengthBuff->Des() );
-    TInt length( 0 );
-    
-    // Write App Uid
-	RDesWriteStream writeStream;
-	CleanupClosePushL( writeStream );
-    writeStream.Open( appUidPtr );
-    writeStream.WriteInt32L( aAppUid );
-    CleanupStack::PopAndDestroy( &writeStream );
-    
-    // Set args for IPC
-    TIpcArgs args( &appUidPtr, &lengthPtr );
-    
-    // Ask for message length
-    User::LeaveIfError( SendReceive( ECseGetScheduleArrayLengthByAppUid, args ) ); 
-    
-    // Read length from the message
-    RDesReadStream readStream;
-	CleanupClosePushL( readStream );
-    readStream.Open( lengthPtr );
-	length = readStream.ReadInt32L();
-	CleanupStack::PopAndDestroy( &readStream );
-	
-	// Now ask for the scheduled program information
-	HBufC8* programBuffer = HBufC8::NewLC( length );
-	TPtr8 programPtr( programBuffer->Des() );
-	
-	TIpcArgs progArgs( &appUidPtr, &programPtr );
-	User::LeaveIfError( SendReceive( ECseGetSchedulesByAppUid, progArgs ) );
-	
-	RDesReadStream readStr;
-	CleanupClosePushL( readStr );
-	readStr.Open( programPtr );
-	
-	// read number of items in stream
-	TInt itemCount ( 0 );
-	itemCount = readStr.ReadInt32L();
-	
-	// read all items from stream to array
-	for ( TInt i = 0; i < itemCount; i++ )
-		{
-		// Internalize (change stream to CCseScheduledProgram-class) stream that we got.
-		CCseScheduledProgram* prog = CCseScheduledProgram::NewL();
-		CleanupStack::PushL( prog );
-		prog->InternalizeL( readStr );
-		aArray.AppendL( prog );	
-		CleanupStack::Pop( prog );
-		}
-		
-	readStr.Close();
-
-	CleanupStack::PopAndDestroy( &readStr );
-	CleanupStack::PopAndDestroy( programBuffer );
-	CleanupStack::PopAndDestroy( lengthBuff );
-	CleanupStack::PopAndDestroy( msgAppUid );
-	CSELOGSTRING_HIGH_LEVEL("<<<RCseSchedulerService::GetSchdulesL");
-    }
-
-// -----------------------------------------------------------------------------
-// RCseSchedulerService::GetOverlappingScheduleL
-//
-// -----------------------------------------------------------------------------
-//
-void RCseSchedulerService::GetOverlappingSchedulesL( 
-	CCseScheduledProgram& aProgram, 
-	RPointerArray<CCseScheduledProgram>& aResultArray )
-	{
-	CSELOGSTRING_HIGH_LEVEL(">>>RCseSchedulerService::GetOverlappingSchedulesL");
-	if ( !SubSessionHandle() )
-        {
-		User::Leave( ECseNoSubsessionHandle );
-        }
-
-	// Buffer for schedule data
-    HBufC8* schedData = HBufC8::NewLC( sizeof( TInt32 ) + // type
-									  	sizeof( TInt64 ) + // start time
-									   sizeof( TInt64 ) ); // end time
-    TPtr8 schedDataPtr( schedData->Des() );
-    
-	// Buffer for incoming message length
-    HBufC8* lengthBuf = HBufC8::NewLC( sizeof( TInt32 ) ); 
-    TPtr8 lengthBufPtr( lengthBuf->Des() );
-    TUint32 length( 0 );    
-
-    // Schedule type
-	RDesWriteStream writeStream;
-	CleanupClosePushL( writeStream );
-    writeStream.Open( schedDataPtr );
-    writeStream.WriteInt32L( aProgram.ScheduleType() );
-
-	// Start time
-	TInt64 temp( 0 );
-	TUint32 lower( 0 );
-	TUint32 upper( 0 );
-
-    // Change TTime to stream format.
-	temp = aProgram.StartTime().Int64();
-    lower = (0x00000000FFFFFFFFULL) & temp;
-    upper = (0x00000000FFFFFFFFULL) & (temp >> 32);
-    writeStream.WriteUint32L( lower );
-    writeStream.WriteUint32L( upper );
-
-	// End time
-	temp = aProgram.EndTime().Int64();
-    lower = (0x00000000FFFFFFFFULL) & temp;
-    upper = (0x00000000FFFFFFFFULL) & (temp >> 32);
-    writeStream.WriteUint32L( lower );
-    writeStream.WriteUint32L( upper );
-
-	writeStream.CommitL();
-    CleanupStack::PopAndDestroy( &writeStream );
-    
-    // Set args for IPC
-    TIpcArgs args( &schedDataPtr, &lengthBufPtr );
-    
-    // Ask for db id
-    User::LeaveIfError( SendReceive( ECseGetOverlappingSchedulesLength, args ) ); 
-    
-	// Read length
-    RDesReadStream readStream;
-	CleanupClosePushL( readStream );
-    readStream.Open( lengthBufPtr );
-	length = readStream.ReadUint32L();
-	CleanupStack::PopAndDestroy( &readStream );
-
-	if ( length > 0 )
-		{
-		HBufC8* schedulesBuf = HBufC8::NewLC( length + 
-									sizeof( TInt32 ) ); // item count as TInt32
-		TPtr8 schedulesPtr( schedulesBuf->Des() );
-
-		TIpcArgs schedArgs( &schedDataPtr, &schedulesPtr );
-
-		User::LeaveIfError( SendReceive( ECseGetOverlappingSchedules, schedArgs ) );
-
-		RDesReadStream readStr;
-		CleanupClosePushL( readStr );
-		readStr.Open( schedulesPtr );
-		// read item count
-		TInt32 count( readStr.ReadInt32L() );
-
-		// read all items from stream to array
-		for ( TInt i = 0; i < count; i++ )
-			{
-			// Internalize (change stream to CCseScheduledProgram-class) stream that we got.
-			CCseScheduledProgram* prog = CCseScheduledProgram::NewL();
-			CleanupStack::PushL( prog );
-			prog->InternalizeL( readStr );
-			aResultArray.AppendL( prog );	
-			CleanupStack::Pop( prog );
-			}
-			
-		readStr.Close();
-		CleanupStack::PopAndDestroy( &readStr );
-		CleanupStack::PopAndDestroy( schedulesBuf );	
-		}
-	
-	CleanupStack::PopAndDestroy( lengthBuf );
-	CleanupStack::PopAndDestroy( schedData );
-	CSELOGSTRING_HIGH_LEVEL("<<<RCseSchedulerService::GetOverlappingSchedulesL");
-	}
-
-// -----------------------------------------------------------------------------
-// RCseSchedulerService::GetSchedulesByPluginUidL
-//
-// -----------------------------------------------------------------------------
-//
-void RCseSchedulerService::GetSchedulesByPluginUidL( const TInt32 aPluginUid, 
-						                             RPointerArray<CCseScheduledProgram>& aArray ) const
-    {
-    CSELOGSTRING_HIGH_LEVEL(">>>RCseSchedulerService::GetSchedulesByPluginUidL");
-    if ( !SubSessionHandle() )
-        {
-		User::Leave( ECseNoSubsessionHandle );
-        }
-        
-    // Buffer for app UID
-    HBufC8* msgPluginUid = HBufC8::NewLC( 4 );
-    TPtr8 pluginUidPtr( msgPluginUid->Des() );
-    
-	// Buffer for incoming message length
-    HBufC8* lengthBuff = HBufC8::NewLC( 4 );
-    TPtr8 lengthPtr( lengthBuff->Des() );
-    TInt length( 0 );
-    
-    // Write App Uid
-	RDesWriteStream writeStream;
-	CleanupClosePushL( writeStream );
-    writeStream.Open( pluginUidPtr );
-    writeStream.WriteInt32L( aPluginUid );
-    CleanupStack::PopAndDestroy( &writeStream );
-    
-    // Set args for IPC
-    TIpcArgs args( &pluginUidPtr, &lengthPtr );
-    
-    // Ask for message length
-    User::LeaveIfError( SendReceive( ECseGetScheduleArrayLengthByPluginUid, args ) );
-    
-    // Read length from the message
-    RDesReadStream readStream;
-	CleanupClosePushL( readStream );
-    readStream.Open( lengthPtr );
-	length = readStream.ReadInt32L();
-	CleanupStack::PopAndDestroy( &readStream );
-	
-	// Now ask for the scheduled program information
-	HBufC8* programBuffer = HBufC8::NewLC( length );
-	TPtr8 programPtr( programBuffer->Des() );
-	
-	TIpcArgs progArgs( &pluginUidPtr, &programPtr );
-	User::LeaveIfError( SendReceive( ECseGetSchedulesByPluginUid, progArgs ) );
-	
-	RDesReadStream readStr;
-	CleanupClosePushL( readStr );
-	readStr.Open( programPtr );
-	
-	// read number of items in stream
-	TInt itemCount ( 0 );
-	itemCount = readStr.ReadInt32L();
-	
-	// read all items from stream to array
-	for ( TInt i = 0; i < itemCount; i++ )
-		{
-		// Internalize (change stream to CCseScheduledProgram-class) stream that we got.
-		CCseScheduledProgram* prog = CCseScheduledProgram::NewL();
-		CleanupStack::PushL( prog );
-		prog->InternalizeL( readStr );
-		aArray.AppendL( prog );	
-		CleanupStack::Pop( prog );
-		}
-		
-	readStr.Close();
-
-	CleanupStack::PopAndDestroy( &readStr );
-	CleanupStack::PopAndDestroy( programBuffer );
-	CleanupStack::PopAndDestroy( lengthBuff );
-	CleanupStack::PopAndDestroy( msgPluginUid );
-	CSELOGSTRING_HIGH_LEVEL("<<<RCseSchedulerService::GetSchedulesByPluginUidL");    
-    }
-
-// -----------------------------------------------------------------------------
-// RCseSchedulerService::GetSchedulesByTypeL
-//
-// -----------------------------------------------------------------------------
-//
-void RCseSchedulerService::GetSchedulesByTypeL( const TInt32 aType, 
-						                        RPointerArray<CCseScheduledProgram>& aArray ) const
-    {
-    CSELOGSTRING_HIGH_LEVEL(">>>RCseSchedulerService::GetSchedulesByTypeL");
-    if ( !SubSessionHandle() )
-        {
-		User::Leave( ECseNoSubsessionHandle );
-        }
-        
-    // Buffer for app UID
-    HBufC8* msgScheduleType = HBufC8::NewLC( 4 );
-    TPtr8 typePtr( msgScheduleType->Des() );
-    
-	// Buffer for incoming message length
-    HBufC8* lengthBuff = HBufC8::NewLC( 4 );
-    TPtr8 lengthPtr( lengthBuff->Des() );
-    TInt length( 0 );
-    
-    // Write App Uid
-	RDesWriteStream writeStream;
-	CleanupClosePushL( writeStream );
-    writeStream.Open( typePtr );
-    writeStream.WriteInt32L( aType );
-    CleanupStack::PopAndDestroy( &writeStream );
-    
-    // Set args for IPC
-    TIpcArgs args( &typePtr, &lengthPtr );
-    
-    // Ask for message length
-    User::LeaveIfError( SendReceive( ECseGetScheduleArrayLengthByType, args ) );
-    
-    // Read length from the message
-    RDesReadStream readStream;
-	CleanupClosePushL( readStream );
-    readStream.Open( lengthPtr );
-	length = readStream.ReadInt32L();
-	CleanupStack::PopAndDestroy( &readStream );
-	
-	// Now ask for the scheduled program information
-	HBufC8* programBuffer = HBufC8::NewLC( length );
-	TPtr8 programPtr( programBuffer->Des() );
-	
-	TIpcArgs progArgs( &typePtr, &programPtr );
-	User::LeaveIfError( SendReceive( ECseGetSchedulesByType, progArgs ) );
-	
-	RDesReadStream readStr;
-	CleanupClosePushL( readStr );
-	readStr.Open( programPtr );
-	
-	// read number of items in stream
-	TInt itemCount ( 0 );
-	itemCount = readStr.ReadInt32L();
-	
-	// read all items from stream to array
-	for ( TInt i = 0; i < itemCount; i++ )
-		{
-		// Internalize (change stream to CCseScheduledProgram-class) stream that we got.
-		CCseScheduledProgram* prog = CCseScheduledProgram::NewL();
-		CleanupStack::PushL( prog );
-		prog->InternalizeL( readStr );
-		aArray.AppendL( prog );	
-		CleanupStack::Pop( prog );
-		}
-		
-	readStr.Close();
-
-	CleanupStack::PopAndDestroy( &readStr );
-	CleanupStack::PopAndDestroy( programBuffer );
-	CleanupStack::PopAndDestroy( lengthBuff );
-	CleanupStack::PopAndDestroy( msgScheduleType );
-	CSELOGSTRING_HIGH_LEVEL("<<<RCseSchedulerService::GetSchedulesByTypeL");    
-    }
-
-// -----------------------------------------------------------------------------
-// RCseSchedulerService::GetSchedulesByTimeL
-//
-// -----------------------------------------------------------------------------
-//
-void RCseSchedulerService::GetSchedulesByTimeL( const TTime& aBeginning, 
-                                                const TTime& aEnd,
-						                        RPointerArray<CCseScheduledProgram>& aArray ) const
-    {
-    CSELOGSTRING_HIGH_LEVEL(">>>RCseSchedulerService::GetSchedulesByTimeL");
-	if ( !SubSessionHandle() )
-        {
-		User::Leave( ECseNoSubsessionHandle );
-        }
-
-	// Buffer for schedule data
-    HBufC8* timeframe = HBufC8::NewLC( sizeof( TInt64 ) +  // start time
-									   sizeof( TInt64 ) ); // end time
-									   
-    TPtr8 timeframePtr( timeframe->Des() );
-    
-	// Buffer for incoming message length
-    HBufC8* lengthBuf = HBufC8::NewLC( sizeof( TInt32 ) ); 
-    TPtr8 lengthBufPtr( lengthBuf->Des() );
-    TUint32 length( 0 );    
-
-    // Schedule type
-	RDesWriteStream writeStream;
-	CleanupClosePushL( writeStream );
-    writeStream.Open( timeframePtr );
-    
-	// Start time
-	TInt64 temp( 0 );
-	TUint32 lower( 0 );
-	TUint32 upper( 0 );
-
-    // Change TTime to stream format.
-	temp = aBeginning.Int64();
-    lower = (0x00000000FFFFFFFFULL) & temp;
-    upper = (0x00000000FFFFFFFFULL) & (temp >> 32);
-    writeStream.WriteUint32L( lower );
-    writeStream.WriteUint32L( upper );
-
-	// End time
-	temp = aEnd.Int64();
-    lower = (0x00000000FFFFFFFFULL) & temp;
-    upper = (0x00000000FFFFFFFFULL) & (temp >> 32);
-    writeStream.WriteUint32L( lower );
-    writeStream.WriteUint32L( upper );
-
-	writeStream.CommitL();
-    CleanupStack::PopAndDestroy( &writeStream );
-    
-    // Set args for IPC
-    TIpcArgs args( &timeframePtr, &lengthBufPtr );
-    
-    // Ask for db id
-    User::LeaveIfError( SendReceive( ECseGetScheduleArrayLengthByTimeframe, args ) ); 
-    
-	// Read length
-    RDesReadStream readStream;
-	CleanupClosePushL( readStream );
-    readStream.Open( lengthBufPtr );
-	length = readStream.ReadUint32L();
-	CleanupStack::PopAndDestroy( &readStream );
-
-	if ( length > 0 )
-		{
-		HBufC8* schedulesBuf = HBufC8::NewLC( length + 
-									          sizeof( TInt32 ) ); // item count as TInt32
-		TPtr8 schedulesPtr( schedulesBuf->Des() );
-
-		TIpcArgs schedArgs( &timeframePtr, &schedulesPtr );
-
-		User::LeaveIfError( SendReceive( ECseGetSchedulesByTimeframe, schedArgs ) );
-
-		RDesReadStream readStr;
-		CleanupClosePushL( readStr );
-		readStr.Open( schedulesPtr );
-		// read item count
-		TInt32 count( readStr.ReadInt32L() );
-
-		// read all items from stream to array
-		for ( TInt i = 0; i < count; i++ )
-			{
-			// Internalize (change stream to CCseScheduledProgram-class) stream that we got.
-			CCseScheduledProgram* prog = CCseScheduledProgram::NewL();
-			CleanupStack::PushL( prog );
-			prog->InternalizeL( readStr );
-			aArray.AppendL( prog );	
-			CleanupStack::Pop( prog );
-			}
-			
-		readStr.Close();
-		CleanupStack::PopAndDestroy( &readStr );
-		CleanupStack::PopAndDestroy( schedulesBuf );	
-		}
-	
-	CleanupStack::PopAndDestroy( lengthBuf );
-	CleanupStack::PopAndDestroy( timeframe );
-	CSELOGSTRING_HIGH_LEVEL("<<<RCseSchedulerService::GetSchedulesByTimeL");    
-    }
-
-
-
-// End of File