userlibandfileserver/fileserver/sfile/sf_plugin.h
branchRCL_3
changeset 43 c1f20ce4abcf
parent 42 a179b74831c9
child 44 3e88ff8f41d5
--- a/userlibandfileserver/fileserver/sfile/sf_plugin.h	Thu Aug 19 11:14:22 2010 +0300
+++ b/userlibandfileserver/fileserver/sfile/sf_plugin.h	Tue Aug 31 16:34:26 2010 +0300
@@ -60,19 +60,20 @@
 	static TInt InstallPluginFactory(CFsPluginFactory* aFactory,RLibrary aLib);
 	static CFsPluginFactory* GetPluginFactory(const TDesC& aName);
 
-	static TInt NextPlugin(CFsPlugin*& aPlugin, CFsMessageRequest* aMsgRequest, TBool aLock, TBool aCheckCurrentOperation=ETrue);
-	static TInt PrevPlugin(CFsPlugin*& aPlugin, CFsMessageRequest* aMsgRequest, TBool aLock);
+	static TInt NextPlugin(CFsPlugin*& aPlugin, CFsMessageRequest* aMsgRequest, TBool aCheckCurrentOperation=ETrue);
+	static TInt PrevPlugin(CFsPlugin*& aPlugin, CFsMessageRequest* aMsgRequest);
 	static TInt InsertInPluginStack(CFsPlugin*& aPlugin,TInt aPos);
 	static TInt IsInChain(TInt aUPos, TInt aPos,TInt aDrive, CFsPluginFactory* aPluginFactory);
 	static CFsPlugin* FindByUniquePosition(TInt aPos);
 
-	static TInt InitPlugin(CFsPlugin& aPlugin);
+	static TInt InitPlugin(CFsPlugin& aPlugin, RLibrary aLibrary);
 	static void TransferRequests(CPluginThread* aPluginThread);
 	static void CancelPlugin(CFsPlugin* aPlugin,CSessionFs* aSession);
 	static TInt ChainCount();
 	static TInt Plugin(CFsPlugin*& aPlugin, TInt aPos);
 
-	static void LockChain();
+	static void ReadLockChain();
+	static void WriteLockChain();
 	static void UnlockChain();
 
 	static CFsPluginConn* CreatePluginConnL(TInt aUniquePosition, TUint aClientId);
@@ -91,7 +92,7 @@
 	static CFsObjectCon* iPluginConns;
 
 	static RPointerArray<CFsPlugin> iPluginChain;
-	static RFastLock iChainLock;
+	static RReadWriteLock iChainLock;
 
 	static CFsSyncMessageScheduler* iScheduler;