32 #ifndef __FILE_SCAN_H__
33 #define __FILE_SCAN_H__
38 #include "sbIFileScan.h"
44 #include <nsILocalFile.h>
45 #include <nsIMutableArray.h>
46 #include <nsINetUtil.h>
48 #include <nsStringGlue.h>
49 #include <nsServiceManagerUtils.h>
50 #include <nsComponentManagerUtils.h>
51 #include <nsHashKeys.h>
52 #include <nsISimpleEnumerator.h>
53 #include <nsTHashtable.h>
57 #include <nsIThread.h>
58 #include <nsIRunnable.h>
61 #define SONGBIRD_FILESCAN_CONTRACTID \
62 "@songbirdnest.com/Songbird/FileScan;1"
63 #define SONGBIRD_FILESCAN_CLASSNAME \
64 "Songbird Media Scan Interface"
66 #define SONGBIRD_FILESCAN_CID \
67 { 0x411dd545, 0xead0, 0x41c4, { 0x8b, 0xa1, 0x69, 0x7d, 0xbe, 0x5c, 0x67, 0xea } }
69 #define SONGBIRD_FILESCANQUERY_CONTRACTID \
70 "@songbirdnest.com/Songbird/FileScanQuery;1"
71 #define SONGBIRD_FILESCANQUERY_CLASSNAME \
72 "Songbird Media Scan Query Interface"
74 #define SONGBIRD_FILESCANQUERY_CID \
75 { 0x7bb22470, 0xe03d, 0x4220, { 0xac, 0x93, 0xac, 0x70, 0x70, 0xa, 0xf6, 0xab } }
87 const PRBool & bRecurse,
95 NS_DECL_SBIFILESCANQUERY
100 PRBool *aOutIsFlaggedExtension);
184 #endif // __FILE_SCAN_H__
std::deque< nsCOMPtr< nsIFile > > entrystack_t
PRBool VerifyFileExtension(const nsAString &strExtension, PRBool *aOutIsFlaggedExtension)
nsresult ScanDirectory(sbIFileScanQuery *pQuery)
PRLock * m_ScanQueryQueueLock
PRBool m_bWantLibraryContentURIs
std::deque< nsCOMPtr< nsIFile > > fileentrystack_t
PRLock * m_pExtensionsLock
PRLock * m_pFlaggedFileExtensionsLock
queryqueue_t m_ScanQueryQueue
nsresult StartProcessScanQueriesProcessor()
std::deque< sbIDirectoryEnumerator * > dirstack_t
The callback to the sbIFileScanQuery interface.
virtual ~sbFileScanQuery()
PRLock * m_pCurrentPathLock
void RunProcessScanQueries()
nsCOMPtr< nsINetUtil > mNetUtil
nsTHashtable< nsStringHashKey > m_FlaggedExtensions
nsString m_strCurrentPath
std::deque< sbIFileScanQuery * > queryqueue_t
nsCOMPtr< sbIFileScanCallback > m_pCallback
PRBool m_ThreadShouldShutdown
nsString GetExtensionFromFilename(const nsAString &strFilename)
nsCOMPtr< nsIMutableArray > m_pFileStack
nsString m_lastSeenExtension
The engine in which to execute sbIFileScanQuery objects.
PRLock * m_pDirectoryLock
nsCOMPtr< nsIMutableArray > m_pFlaggedFileStack
PRInt32 m_ScanQueryProcessorIsRunning
An object to scan through the files of a folder (and optionally subfolders)
nsTHashtable< nsStringHashKey > m_Extensions