58 static void DismountPlugin(CFsPluginFactory& aPluginFactory, TInt aPos); |
58 static void DismountPlugin(CFsPluginFactory& aPluginFactory, TInt aPos); |
59 |
59 |
60 static TInt InstallPluginFactory(CFsPluginFactory* aFactory,RLibrary aLib); |
60 static TInt InstallPluginFactory(CFsPluginFactory* aFactory,RLibrary aLib); |
61 static CFsPluginFactory* GetPluginFactory(const TDesC& aName); |
61 static CFsPluginFactory* GetPluginFactory(const TDesC& aName); |
62 |
62 |
63 static TInt NextPlugin(CFsPlugin*& aPlugin, CFsMessageRequest* aMsgRequest, TBool aLock, TBool aCheckCurrentOperation=ETrue); |
63 static TInt NextPlugin(CFsPlugin*& aPlugin, CFsMessageRequest* aMsgRequest, TBool aCheckCurrentOperation=ETrue); |
64 static TInt PrevPlugin(CFsPlugin*& aPlugin, CFsMessageRequest* aMsgRequest, TBool aLock); |
64 static TInt PrevPlugin(CFsPlugin*& aPlugin, CFsMessageRequest* aMsgRequest); |
65 static TInt InsertInPluginStack(CFsPlugin*& aPlugin,TInt aPos); |
65 static TInt InsertInPluginStack(CFsPlugin*& aPlugin,TInt aPos); |
66 static TInt IsInChain(TInt aUPos, TInt aPos,TInt aDrive, CFsPluginFactory* aPluginFactory); |
66 static TInt IsInChain(TInt aUPos, TInt aPos,TInt aDrive, CFsPluginFactory* aPluginFactory); |
67 static CFsPlugin* FindByUniquePosition(TInt aPos); |
67 static CFsPlugin* FindByUniquePosition(TInt aPos); |
68 |
68 |
69 static TInt InitPlugin(CFsPlugin& aPlugin, RLibrary aLibrary); |
69 static TInt InitPlugin(CFsPlugin& aPlugin, RLibrary aLibrary); |
70 static void TransferRequests(CPluginThread* aPluginThread); |
70 static void TransferRequests(CPluginThread* aPluginThread); |
71 static void CancelPlugin(CFsPlugin* aPlugin,CSessionFs* aSession); |
71 static void CancelPlugin(CFsPlugin* aPlugin,CSessionFs* aSession); |
72 static TInt ChainCount(); |
72 static TInt ChainCount(); |
73 static TInt Plugin(CFsPlugin*& aPlugin, TInt aPos); |
73 static TInt Plugin(CFsPlugin*& aPlugin, TInt aPos); |
74 |
74 |
75 static void LockChain(); |
75 static void ReadLockChain(); |
|
76 static void WriteLockChain(); |
76 static void UnlockChain(); |
77 static void UnlockChain(); |
77 |
78 |
78 static CFsPluginConn* CreatePluginConnL(TInt aUniquePosition, TUint aClientId); |
79 static CFsPluginConn* CreatePluginConnL(TInt aUniquePosition, TUint aClientId); |
79 static CFsPluginConn* GetPluginConnFromHandle(CSessionFs* aSession, TInt aHandle); |
80 static CFsPluginConn* GetPluginConnFromHandle(CSessionFs* aSession, TInt aHandle); |
80 |
81 |
89 private: |
90 private: |
90 static CFsObjectCon* iPluginFactories; |
91 static CFsObjectCon* iPluginFactories; |
91 static CFsObjectCon* iPluginConns; |
92 static CFsObjectCon* iPluginConns; |
92 |
93 |
93 static RPointerArray<CFsPlugin> iPluginChain; |
94 static RPointerArray<CFsPlugin> iPluginChain; |
94 static RFastLock iChainLock; |
95 static RReadWriteLock iChainLock; |
95 |
96 |
96 static CFsSyncMessageScheduler* iScheduler; |
97 static CFsSyncMessageScheduler* iScheduler; |
97 |
98 |
98 friend class RequestAllocator; |
99 friend class RequestAllocator; |
99 }; |
100 }; |