ncdengine/provider/deviceinteraction/inc/ncdactiveoperationobserver.h
changeset 4 32704c33136d
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ncdengine/provider/deviceinteraction/inc/ncdactiveoperationobserver.h	Tue Jan 26 12:06:03 2010 +0200
@@ -0,0 +1,124 @@
+/*
+* Copyright (c) 2007 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:   CNcdActiveOperationObserver
+*
+*/
+
+
+#ifndef NCD_ACTIVE_OPERATION_OBSERVER_H
+#define NCD_ACTIVE_OPERATION_OBSERVER_H
+
+
+#include <e32base.h>
+
+class MNcdAsyncOperationObserver;
+
+
+/**
+ * CNcdActiveOperationObserver
+ *
+ * This is a simple CActive class that observes when another
+ * operation has finished. When this observer is informed
+ * about the completion of another operation 
+ * this class object informs the MNcdAsyncOperationObserver
+ * about the completion.
+ *
+ * @see MNcdAsyncOperationObserver
+ */
+class CNcdActiveOperationObserver : public CActive
+{
+
+public:
+
+    /**
+     * @param MNcdAsyncOperationObserver& The information about the completion of
+     * an operation is forwarded to this observer by calling its callback
+     * function.
+     * @return CNcdActiveOperationObserver* Newly created object.
+     */
+    static CNcdActiveOperationObserver* NewL( MNcdAsyncOperationObserver& aObserver );
+
+    /**
+     * @see NewL
+     */
+    static CNcdActiveOperationObserver* NewLC( MNcdAsyncOperationObserver& aObserver );
+
+
+    /**
+     * Destructor
+     */
+    virtual ~CNcdActiveOperationObserver();
+
+
+    /**
+     * Sets this object active for observing.
+     *
+     * @note iStatus has to be set to value KRequestPending
+     * by some other object before calling this function.
+     */
+    void StartToObserve();
+    
+    
+protected: // CActive
+
+    /**
+     * @see CActive::DoCancel
+     */
+    virtual void DoCancel();
+
+    /**
+     * @see CActive::RunL
+     */
+    virtual void RunL();
+
+
+protected:
+
+    /**
+     * @see NewL
+     */ 
+    CNcdActiveOperationObserver( MNcdAsyncOperationObserver& aObserver );
+
+    /**
+     * @see NewL
+     */ 
+    virtual void ConstructL();
+    
+    
+    /**
+     * @return MNcdAsyncOperationObserver& The information 
+     * about the completion of an operation is forwarded to 
+     * this observer by calling its callback function.
+     * Ownership is not transferred.
+     */
+    MNcdAsyncOperationObserver& AsyncObserver() const;
+
+
+private:
+
+    // Prevent these if not implemented
+    CNcdActiveOperationObserver( const CNcdActiveOperationObserver& aObject );
+    CNcdActiveOperationObserver& operator =( const CNcdActiveOperationObserver& aObject );
+
+
+private: // data
+
+    // The information about the completion of
+    // an operation is forwarded to this observer 
+    // by calling its callback function.
+    MNcdAsyncOperationObserver& iObserver;
+
+};
+
+#endif // NCD_ACTIVE_OPERATION_OBSERVER_H