localisation/apparchitecture/apserv/APSRECUTIL.CPP
branchSymbian3
changeset 57 b8d18c84f71c
parent 6 c108117318cb
equal deleted inserted replaced
56:aa99f2208aad 57:b8d18c84f71c
     1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
     1 // Copyright (c) 1997-2009 Nokia Corporation and/or its subsidiary(-ies).
     2 // All rights reserved.
     2 // All rights reserved.
     3 // This component and the accompanying materials are made available
     3 // This component and the accompanying materials are made available
     4 // under the terms of the License "Eclipse Public License v1.0"
     4 // under the terms of "Eclipse Public License v1.0"
     5 // which accompanies this distribution, and is available
     5 // which accompanies this distribution, and is available
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     6 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
     7 //
     7 //
     8 // Initial Contributors:
     8 // Initial Contributors:
     9 // Nokia Corporation - initial contribution.
     9 // Nokia Corporation - initial contribution.
    11 // Contributors:
    11 // Contributors:
    12 //
    12 //
    13 // Description:
    13 // Description:
    14 // Classes for synchronous and asynchronous file recognitions (of a directory)
    14 // Classes for synchronous and asynchronous file recognitions (of a directory)
    15 // 
    15 // 
       
    16 // apsrecutil.cpp
    16 //
    17 //
    17 
    18 
    18 
    19 
    19 #include "APSRECUTIL.H"
    20 #include "APSRECUTIL.H"
    20 #include "APSRECCACHE.h"
    21 #include "APSRECCACHE.h"
    21 
    22 
    22 //////////////////////////////
    23 //
    23 // CRecognitionResult
    24 // CRecognitionResult
    24 //////////////////////////////
    25 //
    25 
    26 
    26 CRecognitionResult* CRecognitionResult::NewL(const TDesC& aFileName, const TDataRecognitionResult& aRecognitionResult)
    27 CRecognitionResult* CRecognitionResult::NewL(const TDesC& aFileName, const TDataRecognitionResult& aRecognitionResult)
    27 	{
    28 	{
    28 	ASSERT(aFileName.Find(_L("\\")) == KErrNotFound); // the filename should not contain any path
    29 	ASSERT(aFileName.Find(_L("\\")) == KErrNotFound); // the filename should not contain any path
    29 
    30 
    49 	}
    50 	}
    50 
    51 
    51 void CRecognitionResult::Get(TDataRecognitionResult& aRecognitionResult)
    52 void CRecognitionResult::Get(TDataRecognitionResult& aRecognitionResult)
    52 	{
    53 	{
    53 	if(iUid == KNullUid)
    54 	if(iUid == KNullUid)
    54 
       
    55 		{
       
    56 		aRecognitionResult.iDataType = TDataType(*iDataType);
    55 		aRecognitionResult.iDataType = TDataType(*iDataType);
    57 		}
       
    58 	else
    56 	else
    59 		{
       
    60 		aRecognitionResult.iDataType = TDataType(iUid);
    57 		aRecognitionResult.iDataType = TDataType(iUid);
    61 		}
    58 	
    62 	aRecognitionResult.iConfidence = iConfidence;
    59 	aRecognitionResult.iConfidence = iConfidence;
    63 	}
    60 	}
    64 	
    61 	
    65 
    62 
    66 
    63 
    77 	aWriteStream.WriteL(*iDataType);
    74 	aWriteStream.WriteL(*iDataType);
    78 	aWriteStream.WriteInt32L(iUid.iUid);
    75 	aWriteStream.WriteInt32L(iUid.iUid);
    79 	aWriteStream.WriteInt32L(iConfidence);
    76 	aWriteStream.WriteInt32L(iConfidence);
    80 	}
    77 	}
    81 	
    78 	
    82 ///////////////////////////////////
    79 //
    83 // CDirectoryRecognitionResult
    80 // CDirectoryRecognitionResult
    84 ///////////////////////////////////
    81 //
    85 
    82 
    86 CDirectoryRecognitionResult::CDirectoryRecognitionResult(HBufC* aPath, HBufC8* aDataTypeFilter)
    83 CDirectoryRecognitionResult::CDirectoryRecognitionResult(HBufC* aPath, HBufC8* aDataTypeFilter)
    87 	: iPath(aPath), iDataTypeFilter(aDataTypeFilter)
    84 	: iPath(aPath), iDataTypeFilter(aDataTypeFilter)
    88 	{
    85 	{
    89 	iRequiredBufferSize = sizeof(TUint);
    86 	iRequiredBufferSize = sizeof(TUint);
    94 	delete iPath;
    91 	delete iPath;
    95 	delete iDataTypeFilter;
    92 	delete iDataTypeFilter;
    96 	
    93 	
    97 	const TInt count = iEntries.Count();
    94 	const TInt count = iEntries.Count();
    98 	for(TInt i = 0; i < count; i++)
    95 	for(TInt i = 0; i < count; i++)
    99 		{
       
   100 		iEntries[i]->Close();
    96 		iEntries[i]->Close();
   101 		}
    97 
   102 	iEntries.Reset();
    98 	iEntries.Reset();
   103 	}
    99 	}
   104 
   100 
   105 void CDirectoryRecognitionResult::AppendL(CRecognitionResult* aEntry)
   101 void CDirectoryRecognitionResult::AppendL(CRecognitionResult* aEntry)
   106 	{
   102 	{
   119 
   115 
   120 void CDirectoryRecognitionResult::WriteToStreamL(RWriteStream& aWriteStream)
   116 void CDirectoryRecognitionResult::WriteToStreamL(RWriteStream& aWriteStream)
   121 	{
   117 	{
   122 	aWriteStream.WriteUint32L(iEntries.Count());
   118 	aWriteStream.WriteUint32L(iEntries.Count());
   123 	for (TInt i=0; i < iEntries.Count(); i++)
   119 	for (TInt i=0; i < iEntries.Count(); i++)
   124 		{
       
   125 		iEntries[i]->WriteToStreamL(aWriteStream);
   120 		iEntries[i]->WriteToStreamL(aWriteStream);
   126 		}
   121 		
   127 	aWriteStream.CommitL();
   122 	aWriteStream.CommitL();
   128 	}
   123 	}
   129 
   124 
   130 //////////////////////////////////////////////////////////
   125 //
   131 // CFileRecognitionUtility
   126 // CFileRecognitionUtility
   132 //////////////////////////////////////////////////////////
   127 //
   133 
   128 
   134 CFileRecognitionUtility::CFileRecognitionUtility(CApaAppListServer& aServer, TInt aMaxBufSize, RFs& aFs)
   129 CFileRecognitionUtility::CFileRecognitionUtility(CApaAppArcServer& aServer, TInt aMaxBufSize, RFs& aFs)
   135 	: CActive(0), 
   130 	: CActive(0), 
   136 	  iServer(aServer), 
   131 	  iServer(aServer), 
   137 	  iMaxBufSize(aMaxBufSize), 
   132 	  iMaxBufSize(aMaxBufSize), 
   138 	  iFs(aFs),
   133 	  iFs(aFs),
   139 	  iIndex(0),
   134 	  iIndex(0),
   160 
   155 
   161 	ReadDirectoryL();
   156 	ReadDirectoryL();
   162 
   157 
   163 	// recognize files and calculate size of buffer
   158 	// recognize files and calculate size of buffer
   164 	for(iIndex=0;iIndex<iEntryList->Count();iIndex++)
   159 	for(iIndex=0;iIndex<iEntryList->Count();iIndex++)
   165 		{
       
   166 		RecognizeFileL();
   160 		RecognizeFileL();
   167 		}
       
   168 		
   161 		
   169 	delete iEntryList;
   162 	delete iEntryList;
   170 	iEntryList = NULL;
   163 	iEntryList = NULL;
   171 	}
   164 	}
   172 
   165 
   191 	}
   184 	}
   192 	
   185 	
   193 TInt CFileRecognitionUtility::BufferSizeL() const
   186 TInt CFileRecognitionUtility::BufferSizeL() const
   194 	{
   187 	{
   195 	const TInt preferredBufferSize = iServer.DataRecognizerPreferredBufSizeL();
   188 	const TInt preferredBufferSize = iServer.DataRecognizerPreferredBufSizeL();
   196 	TInt bufSize=Min(preferredBufferSize,iMaxBufSize);
   189 	TInt bufSize = Min(preferredBufferSize,iMaxBufSize);
   197 	if (bufSize<1)
   190 	if (bufSize < 1)
   198 		{
   191 		bufSize = 8; // sensible minimum.
   199 		bufSize=8; // sensible minimum.
   192 
   200 		}
       
   201 	return bufSize;
   193 	return bufSize;
   202 	}
   194 	}
   203 
   195 
   204 void CFileRecognitionUtility::RecognizeFileL()
   196 void CFileRecognitionUtility::RecognizeFileL()
   205 	{
   197 	{
   271 void CFileRecognitionUtility::DoCancel()
   263 void CFileRecognitionUtility::DoCancel()
   272 	{
   264 	{
   273 	iIndex = 0;
   265 	iIndex = 0;
   274 	iStep = 0;
   266 	iStep = 0;
   275 	}
   267 	}
       
   268