genericopenlibs/openenvcore/backend/inc/sysif.h
changeset 68 ff3fc7722556
parent 63 a117ad66e027
--- a/genericopenlibs/openenvcore/backend/inc/sysif.h	Fri Sep 17 08:38:54 2010 +0300
+++ b/genericopenlibs/openenvcore/backend/inc/sysif.h	Mon Oct 04 02:56:42 2010 +0300
@@ -36,6 +36,7 @@
 #include <rpipe.h>
 
 #include<tz.h>
+#include <e32atomics.h>
 
 #ifdef SYMBIAN_OE_POSIX_SIGNALS
 #include "signalclient.h"
@@ -114,7 +115,7 @@
 */
 	{
 public:
-	void StorePtrs(RHeap* aHeap, RFs* aFs, RSocketServ* aSs, RCommServ* aCs, RFastLock* aSsLock, RFastLock* aCsLock)
+	void StorePtrs(RHeap* aHeap, RFs* aFs, RSocketServ* aSs, RCommServ* aCs, RFastLock* aSsLock, RFastLock* aCsLock,RFastLock* aDefConnLock,RFastLock* aAESelectLock,RFastLock* aTzServerLock)
 		{
 		iHeap = aHeap;
 		iFs = aFs;
@@ -122,6 +123,9 @@
 		iCs = aCs;
 		iSsLock = aSsLock;
 		iCsLock = aCsLock;
+		iDefConnLock = aDefConnLock;
+		iAESelectLock = aAESelectLock;
+		iTzServerLock = aTzServerLock;
 		}
 
 	~TCLSICleanup()
@@ -132,6 +136,9 @@
 		iCs->Close();
 		iCsLock->Close();
 		iHeap->Close();
+		iDefConnLock->Close();
+		iAESelectLock->Close();
+		iTzServerLock->Close();
 		}
 private:
 	RHeap* iHeap;
@@ -140,6 +147,9 @@
 	RCommServ* iCs;
 	RFastLock* iSsLock;
 	RFastLock* iCsLock;
+	RFastLock* iDefConnLock;
+	RFastLock* iAESelectLock;
+	RFastLock* iTzServerLock;
 	};
 
 
@@ -607,6 +617,8 @@
 	// default RConnection with the new settings.
 	TInt StartDefConnection();
 	
+	// Helper function for doing an on-demand connection to RTz server
+	TInt OnDemandTZServerConnection();
 private:
 	// NOTE: iCleanup should be the first member of CLSI, since iPrivateHeap
 	// will be destroyed from within iCleanup destructor.
@@ -683,6 +695,8 @@
 	// Default connection settings, set/cleared using setdefaultif
 	TConnPref* iDefConnPref;
     RTz     iTzServer;	
+	RFastLock iTzServerLock;
+	TBool	iIsRTzConnected;
     RPointerArray<CSocketDesc> iSocketArray;
 #ifdef SYMBIAN_OE_POSIX_SIGNALS
 	// Signal handler thread
@@ -836,10 +850,8 @@
 #endif // SYMBIAN_OE_POSIX_SIGNALS
 public:
 
-   inline RTz & TZServer()
-        {
-        return iTzServer;
-        } 
+	IMPORT_C RTz & TZServer(TInt& aStatus);
+	
 //ipc server session
 RIpcSession iIpcS;
 friend class RFileDesTransferSession;