--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/provider/client/inc/ncdoperationimpl.h Thu Dec 17 08:51:10 2009 +0200
@@ -0,0 +1,115 @@
+/*
+* 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: Contains MCatalogsBase implementation base class definition
+*
+*/
+
+
+#ifndef C_NCDOPERATION_H
+#define C_NCDOPERATION_H
+
+#include <e32cmn.h>
+#include <e32base.h>
+#include "catalogsbase.h"
+#include "ncdoperation.h"
+#include "ncdbaseoperationproxy.h"
+
+template< class T1 >
+class CNcdOperation : public CNcdBaseOperationProxy, public T1
+ {
+public:
+
+ /**
+ * @see MNcdOperation::OperationStateL()
+ */
+ MNcdOperation::TState OperationStateL() const
+ {
+ return DoOperationStateL();
+ }
+
+ /**
+ * @see MNcdOperation::StartOperationL()
+ */
+ void StartOperationL()
+ {
+ DoStartOperationL();
+ }
+
+ /**
+ * @see MNcdOperation::CancelOperation()
+ */
+ void CancelOperation()
+ {
+ DoCancelOperation();
+ }
+
+ /**
+ * @see MNcdOperation::Progress()
+ */
+ TNcdProgress Progress() const
+ {
+ return DoProgress();
+ }
+
+ /**
+ * @see MNcdOperation::CompleteQuery()
+ */
+ void CompleteQueryL( MNcdQuery& aQuery )
+ {
+ DoCompleteQueryL( aQuery );
+ }
+
+ /**
+ * @see MNcdOperation::Node()
+ */
+ MNcdNode* Node()
+ {
+ return DoNode();
+ }
+
+protected:
+ /**
+ * ConstructorL
+ *
+ * @note CNcdBaseOperationProxy::ConstructL also needs to be called when the child classes
+ * initialize themselves in their own ConstructL functions.
+ *
+ * @see CNcdBaseOperationProxy::ConstructL
+ */
+ CNcdOperation( MNcdClientLocalizer* aLocalizer ) :
+ CNcdBaseOperationProxy( aLocalizer )
+ {
+ }
+
+ const TAny* QueryInterfaceL( TInt aInterfaceId ) const
+ {
+ const TAny* result = NULL;
+ switch( aInterfaceId )
+ {
+ case T1::KInterfaceUid: result = static_cast< const T1* >( this ); break;
+ case MNcdOperation::KInterfaceUid: result = static_cast< const MNcdOperation* >( this ); break;
+ case MCatalogsBase::KInterfaceUid: result = static_cast< const MCatalogsBase* >( this ); break;
+ default: break;
+ }
+
+ if( result != NULL )
+ {
+ AddRef();
+ }
+
+ return result;
+ }
+ };
+
+#endif // C_NCDOPERATION_H
\ No newline at end of file