wvuing/IMPSConnectionUI/UISrc/CCnUiClientGroupUiNotifyHandler.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/wvuing/IMPSConnectionUI/UISrc/CCnUiClientGroupUiNotifyHandler.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,183 @@
+/*
+* Copyright (c) 2004 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:  Client group remote notify handler.
+*
+*/
+
+
+
+#ifndef __CCNUICLIENTGROUPUINOTIFYHANDLER_H
+#define __CCNUICLIENTGROUPUINOTIFYHANDLER_H
+
+// INCLUDES
+#include <E32Base.h>
+#include <impspresenceconnectionuiconstsng.h>
+#include "MCnUiConnQueryObserver.h"
+#include "CCnUiGroupChannel.h"
+
+
+//FORWARD DECLARATION
+class MCnUiUiFacade;
+class MCnUiConnQuery;
+
+
+
+// CLASS DECLARATION
+/**
+ * Client group remote notify handler.
+ *
+ * Handles client group remote UI notifications.
+ * (Used as client side pair to CCnUiClientGroupUiNotifyMediator)
+ *
+ * @since 2.1
+ */
+NONSHARABLE_CLASS( CCnUiClientGroupUiNotifyHandler ) : public CBase,
+        public MCnUiGroupChannelListener,
+        public MCnUiConnQueryObserver
+    {
+public:  // Two-phased constructors and destructor
+
+    /**
+     * Two-phased constructor, constructs the
+     * CCnUiClientGroupUiNotifyHandler object.
+     *
+     * @since 2.1
+     * @param aClient The client.
+     * @param aUi The UI to use.
+     * @return is pointer to CCnUiClientGroupUiNotifyHandler object.
+     */
+    static CCnUiClientGroupUiNotifyHandler* NewL( TIMPSConnectionClient aClient );
+
+    /**
+     * Destructor.
+     */
+    virtual ~CCnUiClientGroupUiNotifyHandler();
+
+
+private: //Constructors
+
+    /**
+     * C++ default constructor.
+     */
+    CCnUiClientGroupUiNotifyHandler( TIMPSConnectionClient aClient );
+
+    /**
+     * By default Symbian 2nd phase constructor is private.
+     */
+    void ConstructL();
+
+
+public: //New methods
+
+    /**
+     * Checks is certain remote UI message handled.
+     *
+     * @since 2.1
+     * @param Remote message to check. (See CnUiCommon.hrh
+     * for remote messages.)
+     * @param ETrue if remote message is handled. Else EFalse.
+     */
+    TBool Handled( TInt aRemoteUiMessage );
+
+
+    /**
+     * Sets certain remote UI message handling status.
+     *
+     *
+     * @since 2.1
+     * @param Remote message to set. (See CnUiCommon.hrh
+     * for remote messages.)
+     * @param aHandled ETrue if message should be handled.
+     * EFalse if message handling should be stopped.
+     * By default all known message handlings are stopped.
+     * If not supported message type is tried to enable / disable,
+     * does nothing.
+     */
+    void SetHandled( TInt aRemoteUiMessage, TBool aHandled );
+
+
+    /**
+     * Notifies from presence event.
+     *
+     * @since 2.1
+     * @param aEvent The presence event.
+     */
+    void HandlePresenceEventL( TIMPSPresenceServiceEvent aEvent );
+
+    /**
+     * Sets the new resource file to use in Connection UI.
+     *
+     * @param aNewResourceFile the new resourcefile to be used
+     * @since 2.6
+     */
+    void UseResourceFileL( const TDesC& aNewResourceFile );
+
+public: //from MCnUiGroupChannelListener
+
+    /**
+     * Callback method for channel events.
+     *
+     * @since 2.1
+     * @param aGroupId    The originating channel group.
+     * @param aChannelId  The originating channel.
+     * @param aChannelMsg The channel message.
+     */
+    void HandleChannelMsg( TInt aGroupId,
+                           TGCChannelID aChannelId,
+                           TInt aChannelMsg );
+
+public: //from MCnUiConnQueryObserver
+
+    /**
+     * Notify method for confirmation query result.
+     * @since 2.1
+     */
+    void HandleQueryResult( TBool aQueryAccepted );
+
+
+private: //helpers
+    void ReportQueryResultL( TBool aQueryAccepted );
+    void CancelCurrentQuery();
+    void DoHandleChannelMsgL( TInt aChannelMsg );
+
+
+
+private: //data
+
+    ///<Client for which behalf working. Owned.
+    const TIMPSConnectionClient             iClient;
+
+    ///<The UI to use. Owned.
+    MCnUiUiFacade*                          iUi;
+
+    ///<Client group channel to get remote UI messages. Owned.
+    CCnUiGroupChannel*                      iGroupChannel;
+
+    ///<Pointer to currently active query. Owned.
+    MCnUiConnQuery*                         iCurrentQuery;
+
+
+    ///< Flags describing the handled events, owned
+    ///< Flag contents are either EFalse or ETrue
+    TBool       iActiveConnectionScheduledClose;
+    TBool       iActiveConnectionSuppressForScheduledConnection;
+
+    ///<Resource file name, owned
+    HBufC*									iBrandedResourceFileName;
+    };
+
+#endif      //__CCNUICLIENTGROUPUINOTIFYHANDLER_H
+
+//  End of File
+