deviceupdatesui/deviceupdates/inc/nsmldmsyncutil.h
changeset 18 7d11f9a6646f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/deviceupdatesui/deviceupdates/inc/nsmldmsyncutil.h	Fri Apr 16 14:53:31 2010 +0300
@@ -0,0 +1,449 @@
+/*
+* 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:  Utility classes.
+*
+*/
+
+
+#ifndef NSMLDMSYNCUTIL_H
+#define NSMLDMSYNCUTIL_H
+
+// INCLUDES
+#include <e32base.h>
+
+// CLASS DECLARATION
+
+/**
+* TUtil
+* 
+* This class contains general utility functions. 
+*/
+NONSHARABLE_CLASS (TUtil)
+	{
+    public:
+    
+        /**
+        * Panic
+        * @param aReason.
+        * @return None
+        */
+        static void Panic( TInt aReason );
+        
+        /**
+        * String copy tool
+        * @param aTarget.
+        * @param aSource.
+        * @return None
+        */        
+		static void StrCopy( TDes& aTarget, const TDesC& aSource );
+        /**
+        * String copy tool
+        * @param aTarget.
+        * @param aSource.
+        * @return None
+        */      		
+		static void StrCopy( TDes& aTarget, const TDesC8& aSource );
+        
+        /**
+        * String copy tool
+        * @param aTarget.
+        * @param aSource.
+        * @return None
+        */      		
+		static void StrCopy( TDes8& aTarget, const TDesC& aSource );
+        
+        /**
+        * String append tool
+        * @param aTarget.
+        * @param aSource.
+        * @return None
+        */      		
+		static void StrAppend( TDes& aTarget, const TDesC& aSource );
+        
+        /**
+        * String insert tool
+        * @param aTarget.
+        * @param aSource.
+        * @return None
+        */      		
+		static void StrInsert( TDes& aTarget, const TDesC& aSource );
+        
+        /**
+        * Convert string to int
+        * @param aText.
+        * @param aNum.
+        * @return None
+        */		
+		static TInt StrToInt( const TDesC& aText, TInt& aNum );
+        
+        /**
+        * Check whether textline is empty
+        * @param aText.
+        * @return ETrue if empty
+        */				
+		static TBool IsEmpty( const TDesC& aText );
+        
+        /**
+        * URI Parser
+        * @param aURI
+        * @param aAddress
+        * @param aPort
+        * @param aDocName
+        * @return None
+        */						
+        static void ParseURIL( const TDesC& aURI, 
+                               TDes& aAddress, 
+                               TDes& aPort, 
+                               TDes& aDocName );
+      
+        /**
+        * Returns formatted sync time
+        * @param aLastSync
+        * @return Sync time
+        */
+        static HBufC* SyncTimeLC( TTime aLastSync );
+        
+        /**
+        * Get data as text
+        * @param 
+        * @return 
+        */        
+        static void GetDateTextL( TDes& aText, TTime aDateTime );
+        
+        /**
+        * Get time as text 
+        * @param 
+        * @return 
+        */        
+		static void GetTimeTextL( TDes& aText, TTime aDateTime );
+        
+        /**
+        * Get data and time as text
+        * @param 
+        * @return 
+        */        
+		static void GetDateTimeTextL( TDes& aText, TTime aDateTime );
+        
+        /**
+        * Check if SettingEnforcement is set
+        * @param 
+        * @return Boolean
+        */        
+		static TBool SettingEnforcementStateL();
+
+        /**
+        * Check if SettingEnforcement is set (non-leaving)
+        * @param 
+        * @return Boolean
+        */        
+		static TBool SettingEnforcementState();
+
+    private:
+    
+        /**
+        * Check if sync has happened today
+        * @param atime
+        * @return Boolean
+        */    
+        static TBool IsToday( TTime aTime );
+        
+        /**
+        * Convert time to hometime
+        * @param aUniversalTime
+        * @return TTIme
+        */            
+        static TTime ConvertUniversalToHomeTime( const TTime& aUniversalTime );
+
+	};
+
+/**
+*  TStr contains descriptor operations with range checking.
+*/
+NONSHARABLE_CLASS (TStr)
+    {
+    public:
+        /**
+        * C++ default constructor.
+        */
+        TStr(const TDesC& aStr);
+       
+    public:
+        /**
+        * String manipulating tools
+        * @param aPos
+        * @param aLen
+        * @return TPtrC
+        */        
+        TPtrC Mid( TInt aPos, TInt aLen );
+        
+        /**
+        * String manipulating tools
+        * @param aPos
+        * @return TPtrC
+        */                
+        TPtrC Mid( TInt aPos );
+
+        /**
+        * String manipulating tools
+        * @param aPos
+        * @return TPtrC
+        */                
+        TPtrC Left( TInt aPos );
+        
+        /**
+        * String manipulating tools
+        * @param aPos
+        * @return TPtrC
+        */               
+        TPtrC Right( TInt aPos );
+        
+        /**
+        * String manipulating tools
+        * @param aStartPos
+        * @param aEndPos
+        * @return TPtrC
+        */               
+        TPtrC SubStr( TInt aStartPos, TInt aEndPos );
+
+        /**
+        * String manipulating tools
+        * @param aStartPos
+        * @param aEndPos
+        * @return TPtrC
+        */           
+        TPtrC SubStrEx( TInt aStartPos, TInt aEndPos );
+
+        /**
+        * String manipulating tools
+        * @return TInt
+        */           
+        TInt LastPos();
+
+        /**
+        * String manipulating tools
+        * @return TInt
+        */           
+        TInt Len();
+
+        /**
+        * String manipulating tools
+        * @param aPos
+        * @param aChar
+        * @return TBool
+        */           
+        TBool Compare( TInt aPos, TChar aChar );
+
+        /**
+        * String manipulating tools
+        * @param aStartPos
+        * @param aChar
+        * @return TInt
+        */
+        TInt Find( TInt aPos, TChar aChar );
+        
+    private:
+        // reference to descriptor
+		const TDesC& iStr;
+    };
+
+/**
+*  TURIParser is used for parsing URI.
+*/
+NONSHARABLE_CLASS (TURIParser)
+    {
+    public:
+        /**
+        * C++ default constructor.
+        */
+        TURIParser( const TDesC& aStr );
+       
+    public:
+        /**
+        * URI manipulating tools
+        * @param aText
+        * @return None
+        */    
+        void GetUriWithoutPort( TDes& aText );
+
+        /**
+        * URI manipulating tools
+        * @param aText
+        * @param aPort
+        * @return None
+        */            
+        void GetUri( TDes& aText, const TInt aPort );
+
+        /**
+        * URI manipulating tools
+        * @return TInt
+        */            
+        TInt Port();
+
+        /**
+        * URI manipulating tools
+        * @return TInt
+        */            
+        TInt DefaultPort();
+
+    private:
+        /**
+        * URI manipulating tools
+        * @return TPtrC
+        */          
+        TPtrC ParseHttp();
+
+        /**
+        * URI manipulating tools
+        * @return TPtrC
+        */              
+        TPtrC ParseAddress();
+
+        /**
+        * URI manipulating tools
+        * @return TPtrC
+        */              
+        TPtrC ParseDocument();
+
+        /**
+        * URI manipulating tools
+        * @param aPortNumber
+        * @return TInt
+        */              
+        TInt ParsePort(TInt& aPortNumber);
+
+        /**
+        * URI manipulating tools
+        * @return TPtrC
+        */              
+        TPtrC ParsePort();
+        
+     private:
+
+        /**
+        * URI manipulating tools
+        * @param aStartPos
+        * @param aEndPos
+        * @return None
+        */          
+        void GetHttpPos(TInt& aStartPos, TInt& aEndPos);
+
+        /**
+        * URI manipulating tools
+        * @return NOne
+        */             
+        void SkipHttp();
+  
+    private:
+        // reference to original URI text
+		const TDesC& iOriginalStr;
+		
+		// pointer to original URI text
+		TPtrC iPtr;
+		
+		//reference to Boolean variable which tells about Slash in URI
+		TBool iSlash;
+    };
+
+/**
+* MNSmlDMActiveCallerObserver
+*
+* MNSmlDMActiveCallerObserver is for observing CNSmlDMActiveCaller.
+*/
+class MNSmlDMActiveCallerObserver
+    {
+    public:
+	    virtual void HandleActiveCallL() = 0;
+    };
+
+/**
+* CNSmlDMActiveCaller
+*
+* CNSmlDMActiveCaller is used for generating a call from active scheduler.
+*/
+NONSHARABLE_CLASS (CNSmlDMActiveCaller) : public CActive
+    {
+    public:
+        /**
+        * Two-phased constructor.
+        */
+        static CNSmlDMActiveCaller* NewL(MNSmlDMActiveCallerObserver* aObserver);
+
+	    /**
+        * Destructor.
+        */
+        virtual ~CNSmlDMActiveCaller();
+
+    private:
+        /**
+        * C++ default constructor.
+        */
+	    CNSmlDMActiveCaller(MNSmlDMActiveCallerObserver* aObserver);
+
+        /**
+        * By default Symbian 2nd phase constructor is private.
+        */
+	    void ConstructL();
+
+	public:
+        /**
+        * Calls observer using active object framework.
+        * @param aCallId.
+		* @param aMilliseconds Delay before observer is called.
+        * @return None
+        */
+		void Start( TInt aCallId, TInt aMilliseconds = 0 );
+
+    private:
+        /**
+        * From CActive. Called when asynchronous request completes.
+        * @param None
+        * @return None
+        */
+	    void RunL();
+       
+        /**
+        * From CActive. Called when RunL Leaves.
+        * @param None
+        * @return error
+        */
+        TInt RunError( TInt aError );
+
+        /**
+        * From CActive. Cancels asynchronous request.
+        * @param None
+        * @return None
+        */
+	    void DoCancel();
+        
+        /**
+        * Make active scheduler call RunL.
+        * @param None
+        * @return None
+        */
+		void CompleteSelf();
+
+    private:
+		// call that is passed to observer
+		TInt iCallId;
+
+		// timer
+		RTimer iTimer;
+
+		// observer that gets called
+		MNSmlDMActiveCallerObserver* iObserver;
+    };
+
+#endif  // NSMLDMSYNCUTIL_H
+
+// End of File