diff -r 000000000000 -r ba25891c3a9e ncdengine/provider/server/src/ncdserverreportoperationimpl.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ncdengine/provider/server/src/ncdserverreportoperationimpl.cpp Thu Dec 17 08:51:10 2009 +0200 @@ -0,0 +1,164 @@ +/* +* 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 "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: +* +*/ + + +#include "ncdserverreportoperationimpl.h" +#include "ncdreportmanager.h" +#include "catalogsbasemessage.h" +#include "catalogscontext.h" +#include "ncdgeneralmanager.h" + +#include "catalogsdebug.h" + +// ======== MEMBER FUNCTIONS ======== + +// --------------------------------------------------------------------------- +// NewL +// --------------------------------------------------------------------------- +// +CNcdServerReportOperation* CNcdServerReportOperation::NewL( + CNcdGeneralManager& aGeneralManager, + MNcdOperationRemoveHandler& aRemoveHandler, + CNcdReportManager& aReportManager, + MCatalogsSession& aSession ) + { + CNcdServerReportOperation* self = new( ELeave ) CNcdServerReportOperation( + aGeneralManager, aRemoveHandler, aReportManager, aSession ); + CleanupClosePushL( *self ); + self->ConstructL(); + CleanupStack::Pop(); + return self; + } + + +// --------------------------------------------------------------------------- +// Destructor +// --------------------------------------------------------------------------- +// +CNcdServerReportOperation::~CNcdServerReportOperation() + { + DLTRACEIN( ( "" ) ); + } + + +// --------------------------------------------------------------------------- +// Report manager +// --------------------------------------------------------------------------- +// +CNcdReportManager& CNcdServerReportOperation::ReportManager() + { + return iReportManager; + } + + +// --------------------------------------------------------------------------- +// Cancel +// --------------------------------------------------------------------------- +// +void CNcdServerReportOperation::Cancel() + { + DLTRACEIN(( "" )); + ReportManager().CancelReportSending(); + DLTRACEOUT(( "" )); + } + + +// --------------------------------------------------------------------------- +// RunOperation +// --------------------------------------------------------------------------- +// +TInt CNcdServerReportOperation::RunOperation() + { + DLTRACEIN(( "Pending message: %X", iPendingMessage )); + + if ( !iPendingMessage ) + { + DLTRACE(("No pending message")); + return KErrNotReady; + } + + // Start download. + DLINFO(("Starting reporting")); + TRAPD( trapError, ReportManager().StartSendReportsL( *this ) ); + + DLTRACEOUT(("trapError: %d", trapError)); + return trapError; + } + + +// --------------------------------------------------------------------------- +// Constructor +// --------------------------------------------------------------------------- +// +CNcdServerReportOperation::CNcdServerReportOperation( + CNcdGeneralManager& aGeneralManager, + MNcdOperationRemoveHandler& aRemoveHandler, + CNcdReportManager& aReportManager, + MCatalogsSession& aSession ) + : + CNcdBaseOperation( aGeneralManager, &aRemoveHandler, EServerReportOperation, aSession ), + iReportManager( aReportManager ) + { + } + + +// --------------------------------------------------------------------------- +// ConstructL +// --------------------------------------------------------------------------- +// +void CNcdServerReportOperation::ConstructL() + { + DLTRACEIN( ( "" ) ); + + // Call ConstructL for the base class + CNcdBaseOperation::ConstructL(); + + DLTRACEOUT(( "" )); + } + +void CNcdServerReportOperation::Progress( CNcdBaseOperation& /*aOperation*/ ) + { + DLTRACEIN(("")); + } + +void CNcdServerReportOperation::QueryReceived( + CNcdBaseOperation& /*aOperation*/, CNcdQuery* /*aQuery*/ ) + { + DLTRACEIN(("")); + } + +void CNcdServerReportOperation::OperationComplete( + CNcdBaseOperation* aOperation, TInt aError ) + { + DLTRACEIN(("aOperation=%08x, aError=%d", aOperation, aError)); + (void) aOperation; // suppresses compiler warning + + // Check if pending message still exists. + // In case of the operation cancel, the pending message may have + // already been completed and set to NULL. Then, do not try to + // complete the same message again. + if ( iPendingMessage ) + { + DLINFO(("Completing server report operation with %d", aError)); + CompleteMessage( iPendingMessage, + aError != KErrNone ? + ENCDOperationMessageCompletionError : + ENCDOperationMessageCompletionComplete, + aError ); + } + } +