inc/cimpsconnectionuingagent.h
changeset 0 094583676ce7
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/cimpsconnectionuingagent.h	Thu Dec 17 08:41:52 2009 +0200
@@ -0,0 +1,146 @@
+/*
+* Copyright (c) 2005 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:  IMPS Connection UI Agent.
+*
+*/
+
+#ifndef __CIMPSCONNECTIONUINGAGENT_H
+#define __CIMPSCONNECTIONUINGAGENT_H
+
+// INCLUDES
+#include <E32Base.h>
+#include <impspresenceconnectionuiconstsng.h>
+
+// FORWARD DECLARATION
+class CIMPSConnectionUiAgentImp;
+
+
+// CLASS DECLARATION
+/**
+ * CIMPSConnectionUiAgent.
+ *
+ * Connection UI agent performs notification and query
+ * services for the Connection UI's behalf on the client
+ * application context. Client application should have
+ * just one CIMPSConnectionUiAgent instance in its execution
+ * context. Usually this is owned directly by the AppUI
+ * or similar singleton instance.
+ *
+ * Client may itself deside which services to start and when.
+ * However, the CIMPSConnectionUiAgent implementation is
+ * designed so that the client may start all needed services
+ * directly in its construction, and leave them so, without
+ * any further actions. CIMPSConnectionUiAgent itself
+ * follows the registered client group online status,
+ * and acts based on that. Notification and query services
+ * may be stopped however if the user navigates in the host
+ * application to certain state where UI interrupts are not
+ * allowed.
+ *
+ * @lib IMPSConnectionUi
+ * @since 2.1
+ */
+class CIMPSConnectionUiAgent : public CBase
+    {
+    public:  // Two-phased constructor and destructor
+
+        /**
+         * Two-phased constructor.
+         * @param aClient The client for which handle
+         * IMPS connection related UI notifications etc.
+         */
+        IMPORT_C static CIMPSConnectionUiAgent* NewL( TIMPSConnectionClient aClient );
+
+        /**
+         * Destructor.
+         */
+        IMPORT_C virtual ~CIMPSConnectionUiAgent();
+
+
+
+    public:  // New service handling methods
+
+
+        /**
+         * Starts delivering IMPS connection related UI notifications
+         * and queries in client process UI.
+         *
+         * It is up to client to decide which services
+         * to start. Available services are listed in
+         * TIMPSConnectionAgentUiService enumeration.
+         *
+         * Starting a service fails with leave if:
+         * - if running out of resourcies (KErrNoMemory)
+         * - or with other standard Symbian OS error codes
+         *   coming from underlying implementation.
+         *
+         * @since 2.1
+         * @see TIMPSConnectionAgentUiService
+         * @param aService The service to start.
+         * @return Service start status - always KErrNone.
+         */
+        IMPORT_C TInt StartServiceL( TIMPSConnectionUiAgentService aService );
+
+
+        /**
+         * Stops defined service.
+         *
+         * @since 2.1
+         * @param aService The service to stop.
+         * @return Service stop status - always KErrNone.
+         */
+        IMPORT_C TInt StopService( TIMPSConnectionUiAgentService aService );
+
+
+        /**
+         * Stops all previously started services.
+         *
+         * @since 2.1
+         */
+        IMPORT_C void StopAllServices();
+
+
+        /**
+         * Sets the new resource file to use in Connection UI.
+         *
+         * @param aNewResourceFile the new resourcefile to be used
+         * @since 2.6
+         */
+        IMPORT_C void UseResourceFileL( const TDesC& aNewResourceFile );
+
+    private: //Constructors.
+
+        /**
+         * C++ default constructor.
+         */
+        CIMPSConnectionUiAgent();
+
+
+        /**
+         * Symbian OS constructor.
+         */
+        void ConstructL( TIMPSConnectionClient aClient );
+
+
+    private: //Data
+        CIMPSConnectionUiAgentImp*        iImp;          ///<Implementation, owned
+        TAny*                             iReserved1;    ///<Reserved, owned
+    };
+
+
+
+#endif      //__CIMPSCONNECTIONUINGAGENT_H
+
+//  End of File
+