chxavfilesystemwatcher.h
上传用户:dangjiwu
上传日期:2013-07-19
资源大小:42019k
文件大小:2k
源码类别:

Symbian

开发平台:

Visual C++

  1. /************************************************************************
  2.  * chxavfilesystemwatcher.h
  3.  * -------------------------
  4.  *
  5.  * Synopsis:
  6.  * Encapsulates active object file system monitoring; watches a directory and
  7.  * its children and executes an event handler when an event under that path
  8.  * occurs
  9.  * 
  10.  * Intended to be used by a single class client (multiple client support should
  11.  * be implemented by the event handler)
  12.  * 
  13.  * Target:
  14.  * Symbian OS
  15.  *
  16.  *
  17.  * (c) 1995-2003 RealNetworks, Inc. Patents pending. All rights reserved.
  18.  *
  19.  ************************************************************************/ 
  20. #ifndef _chxavfilesystemwatcher_h_
  21. #define _chxavfilesystemwatcher_h_
  22. // Include from this project...
  23. #include "chxavactivewatcher.h"
  24. #include "chxavrefptr.h"
  25.  
  26. // class CHXAvFileSystemWatcher
  27. class CHXAvFileSystemWatcher
  28. : public CHXAvActiveWatcher
  29. {
  30. public:
  31.     CHXAvFileSystemWatcher(RFs& fs = CCoeEnv::Static()->FsSession());
  32.     ~CHXAvFileSystemWatcher();
  33.     void ConstructL();
  34.     void SetWatchPathL(const TDesC& path);
  35.     void SetNotifyType(TNotifyType type);
  36. protected:
  37. // epActiveWatcher implementation
  38.     void DoIssueRequest(const CHXAvActiveCmplPtr& spActive);
  39.     void DoCancelRequest(const CHXAvActiveCmplPtr& spActive);
  40. private:
  41.     refptr<HBufC>       m_spWatchPath;
  42.     RFs& m_fs;
  43.     TNotifyType         m_notifyType;
  44.   
  45. };
  46. ////////////////////////////////////////////////////////
  47. // see f32file.h
  48. //
  49. // ENotifyEntry, ENotifyAll, ENotifyFile, ENotifyDir, ENotifyAttributes, ENotifyWrite, ENotifyDisk
  50. //
  51. // not sure if we can OR these; ENotifyWrite, ENotifyAttributes may only work if file is given as path
  52. //
  53. inline
  54. void CHXAvFileSystemWatcher::SetNotifyType(TNotifyType type)
  55. {
  56.     m_notifyType = type;
  57. }
  58. #endif // _chxavfilesystemwatcher_h_