--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/idlefw/plugins/profileplugin/inc/caiprofileengine.h Thu Dec 17 08:54:17 2009 +0200
@@ -0,0 +1,201 @@
+/*
+* Copyright (c) 2005-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: Header file for the CAiProfileEngine class
+*
+*/
+
+
+#ifndef CAIPROFILEENGINE_H
+#define CAIPROFILEENGINE_H
+
+// INCLUDE FILES
+#include <e32base.h>
+#include <badesca.h>
+#include <ConeResLoader.h>
+#include <MSSSettingsObserver.h>
+#include <MProfileChangeObserver.h>
+#include "maiprofilepluginnotifier.h"
+
+class MProfileEngine;
+class CProfileChangeNotifyHandler;
+class MProfilesNamesArray;
+class RSSSettings;
+
+/**
+ * @ingroup group_profileplugin
+ *
+ * CAiProfileEngine
+ *
+ * @since S60 v3.2
+ */
+class CAiProfileEngine : public CBase,
+ public MSSSettingsObserver,
+ public MProfileChangeObserver
+{
+
+public: // Constructors and destructor
+
+ /**
+ * Constructor to use in the object creation. Initializes the necessary data.
+ *
+ * @param MAiProfilePluginNotifier* aNotifier a pointer to a object implementing MAiProfilePluginNotifier
+ (the object ordering a notification of the content status change)
+ * @return none
+ */
+ CAiProfileEngine( MAiProfilePluginNotifier* aProfilePluginNotifier );
+
+ /**
+ * Part of the two phased constuction
+ *
+ * @param MAiProfilePluginNotifier* aNotifier a pointer to a object implementing MAiProfilePluginNotifier
+ (the object ordering a notification of the content status change)
+ * @return Pointer to the created CAiProfileEngine object
+ */
+ static CAiProfileEngine* NewL( MAiProfilePluginNotifier* aProfilePluginNotifier );
+
+ /**
+ * Destructor
+ *
+ * @param none
+ * @return none
+ */
+ ~CAiProfileEngine();
+
+ /**
+ * Resumes the engine
+ *
+ * @param void
+ * @return void
+ */
+ void ResumeL();
+
+ /**
+ * Suspends the engine
+ *
+ * @param void
+ * @return void
+ */
+ void Suspend();
+
+public:
+
+ const TDesC& ActiveProfileName() const;
+
+ const TDesC& SwapProfileName() const;
+
+ TInt NumberOfProfiles();
+
+ const TDesC& ProfileNameByIndex( TInt aIndex ) const;
+
+ void HandleAiEventL( TInt aEvent, const TDesC& aParam );
+
+ void SetActiveProfileL( const TInt aProfileId );
+
+ TBool IsActiveProfileSilentL();
+
+ TBool IsActiveProfileTimedL();
+
+ void UpdateProfileNamesL();
+
+ TBool IsOffline();
+
+private:
+
+ void ConstructL();
+
+ void SetActiveProfileNameL( const TDesC& aName );
+
+ void SetSwapProfileNameL( const TDesC& aName );
+
+ void SetProfileNameListL( const MProfilesNamesArray& aArray );
+
+ void HandleSwitchByNameL( const TDesC& aParam );
+
+ void HandleSwitchByIndexL( const TDesC& aParam );
+
+ void HandleSwapL( const TDesC& aParam );
+
+ void HandleEditActiveProfileL();
+
+ TBool ShowOfflineMessageL();
+
+
+protected:
+
+// from base class MSSSettingsObserver
+
+ /**
+ * Called when SS Settings changes.
+ */
+ void PhoneSettingChanged( TSSSettingsSetting aSetting, TInt aNewValue );
+
+
+// from base class MProfileChangeObserver
+
+ /**
+ * Called when active profile changes.
+ */
+ void HandleActiveProfileEventL( TProfileEvent aProfileEvent, TInt aProfileId );
+
+private:
+ /**
+ * Pointer to the class implementing the MAiProfilePluginNotifier interface
+ */
+ MAiProfilePluginNotifier* iProfilePluginNotifier;
+
+ /**
+ * Client to listen SS setting changes.
+ */
+ RSSSettings iSSSettings;
+
+ /**
+ * Profile engine.
+ * Own.
+ */
+ MProfileEngine* iProfileEngine;
+
+ /**
+ * Profile change notifier.
+ * Own
+ */
+ CProfileChangeNotifyHandler* iProfileNotifier;
+
+ /*
+ * Active profile name
+ * Own
+ */
+ HBufC* iActiveProfileName;
+
+ /*
+ * Swap profile name
+ * Own
+ */
+ HBufC* iSwapProfileName;
+
+ /**
+ * Array of Profile Name Pointer.
+ * Own.
+ */
+ RPointerArray<HBufC> iProfileNamePointerArray;
+
+ /**
+ * Resource loader for own resources.
+ */
+ RConeResourceLoader iResourceLoader;
+
+};
+
+#endif // CAIPROFILEENGINE_H
+
+