userlibandfileserver/fileserver/sfile/sf_plugin.cpp
branchRCL_3
changeset 257 3e88ff8f41d5
parent 256 c1f20ce4abcf
equal deleted inserted replaced
256:c1f20ce4abcf 257:3e88ff8f41d5
   245 
   245 
   246 	return((iRegisteredIntercepts[index] & msk) == msk);
   246 	return((iRegisteredIntercepts[index] & msk) == msk);
   247 	}
   247 	}
   248 
   248 
   249 /**
   249 /**
   250    Return ETrue if the request originated from this plugin
   250    Return ETrue if the calling thread is the plugin thread
   251 */
   251 */
   252 TBool CFsPlugin::OriginatedFromPlugin(CFsRequest& aRequest)
   252 TBool CFsPlugin::IsPluginThread(CFsRequest& aRequest)
   253 	{
   253 	{
   254 	if(aRequest.iOwnerPlugin == this)
   254 	if(aRequest.iOwnerPlugin == this)
   255 		return ETrue;
   255 		return ETrue;
   256 
   256 
   257 	if(aRequest.iClientThreadId == iThreadId)
   257 	if(aRequest.iClientThreadId == iThreadId)
   359 	if (r != KErrNone)
   359 	if (r != KErrNone)
   360 		return r;
   360 		return r;
   361 
   361 
   362 
   362 
   363 	CFsPlugin* plugin = this;
   363 	CFsPlugin* plugin = this;
   364 	FsPluginManager::ReadLockChain();
   364 	FsPluginManager::NextPlugin(plugin, &msgRequest,(TBool)ETrue);
   365 	FsPluginManager::NextPlugin(plugin, &msgRequest);
       
   366 	msgRequest.iCurrentPlugin = plugin;
   365 	msgRequest.iCurrentPlugin = plugin;
   367 	msgRequest.Dispatch();
   366 	msgRequest.Dispatch();
   368 	FsPluginManager::UnlockChain();
       
   369 	iThreadP->OperationLockWait();
   367 	iThreadP->OperationLockWait();
   370 
   368 
   371 	aDes.SetLength(len);
   369 	aDes.SetLength(len);
   372 	
   370 	
   373 	return msgRequest.LastError();	// KErrNone;
   371 	return msgRequest.LastError();	// KErrNone;