logsui/logsserviceextension/inc/clogseventinfomanager.h
changeset 0 e686773b3f54
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/logsui/logsserviceextension/inc/clogseventinfomanager.h	Tue Feb 02 10:12:17 2010 +0200
@@ -0,0 +1,152 @@
+/*
+* 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:  Used to manage TLogsEventInfo objects
+*
+*/
+
+
+#ifndef C_CLOGSEVENTINFOMANAGER_H
+#define C_CLOGSEVENTINFOMANAGER_H
+
+
+#include <e32base.h>
+
+class TLogsEventInfo;
+
+NONSHARABLE_CLASS(CLogsEventInfoManager) : public CBase 
+    {
+friend class ut_clogsuicontrolextension;
+public:
+        
+    static CLogsEventInfoManager* NewL();
+    static CLogsEventInfoManager* NewLC();
+
+    /**
+     * Destructor.
+     */        
+    ~CLogsEventInfoManager();
+    
+    /**
+     * Creates a TLogsEventInfo entry and adds it the manager's array of
+     * TLogsEventInfo entries. Before that it is checked whether the entry 
+     * already exists to avoid duplicates. TLogsEventInfo entries with
+     * the same service id are considered to be duplicates. 
+     * Leaves with system-wide error code in case of an error.
+     *
+     * @since S60 v3.2
+     * @param aServiceId service id
+     */
+    void AddEventEntryL( TUint32 aServiceId );
+    
+    /**
+     * The brand icon index for a log event with the specified service id 
+     * is retrieved and assigned to 'aIndex'.
+     *
+     * @since S60 v3.2
+     * @param aServiceId Id of requested settings entry
+     * @param aIndex the index of the brand icon of the specified service
+     * @return True, if index for the specified serviceId was found and set,
+     *         False otherwise
+     */ 
+    TBool GetBrandIconIndex( TUint32 aServiceId, TInt& aIndex ) const;
+
+    /**
+     * Returns the event info entry at the specified index in the
+     * iEventInfoArray array.
+     *
+     * @since S60 v3.2
+     * @param aIndex a index
+     * @return pointer to a event info object or null if the index
+     *         position is not valid
+     */ 
+    TLogsEventInfo* GetEventInfoEntryByIndex( TInt aIndex ) const;
+    
+    /**
+     * Returns the number of event info objects.
+     *
+     * @since S60 v3.2
+     * @return number of event info objects
+     */ 
+    TInt Count() const;
+    
+    /**
+     * Check whether the branding icon index for the specified service
+     * id is already available or not.
+     *
+     * @since S60 v3.2
+     * @param aServiceId service id
+     * @return True, if the branding icon index for the specified service
+     *         id is available, False otherwise
+     */ 
+    TBool BrandIconIndexAvailable( TUint32 aServiceId ) const;
+
+    /**
+     * Sets the brand icon index of the event info entry with a 
+     * certain service id to 'aBrandingIconIndex'. If no event
+     * info entry could be found, 'KErrNotFound' is returned.
+     * If setting succeeded 'KErrNone' is returned.
+     *
+     * @since S60 v3.2
+     * @param aServiceId Id of requested settings entry
+     * @param aBrandingIconIndex the brand icon index to be set
+     * @return KErrNotFound, if no TLogsEventInfo object with the
+     *         specified service id could be found, KErrNone otherwise
+     */ 
+    TInt SetBrandIndex( TUint32 aServiceId, TInt aBrandingIconIndex );    
+    
+    
+private:
+    
+    void ConstructL();
+    
+    /**
+     * Constructor.
+     */
+    CLogsEventInfoManager();
+
+    /**
+     * Determines whether the manager contains already an entry for the 
+     * specified service id.
+     *
+     * @since S60 v3.2
+     * @param aServiceId the service id
+     * @return Erue, if the manager contains already an entry with the
+     *         specified service id, False otherwise
+     */ 
+    TBool EntryExists( TUint32 aServiceId );    
+    
+    /**
+     * Searches the event info array for an entry with the specified service id
+     * and returns the pointer to this entry or NULL if no such entry can be 
+     * found.
+     *
+     * @since S60 v3.2
+     * @param aServiceId Id of requested settings entry
+     * @return Pointer to the entry with the specified service id or NULL if 
+     *         no such entry can be found in the iEventInfoArray array
+     */ 
+    TLogsEventInfo* GetEventInfoEntry( TUint32 aServiceId ) const;
+
+  
+private: // data   
+    
+    /**
+     * The array that contains the event info entries
+     * Own.
+     */  
+    RPointerArray<TLogsEventInfo> iEventInfoArray;
+    
+    };
+        
+#endif // C_CLOGSEVENTINFOMANAGER_H