visitor.h
上传用户:dfhlxjd
上传日期:2007-01-07
资源大小:12k
文件大小:1k
源码类别:

Shell编程

开发平台:

Visual C++

  1. //----------------------------------------
  2. // (c) Reliable Software 1997
  3. //----------------------------------------
  4. #ifndef _visitor_H_INCLUDED
  5. #define _visitor_H_INCLUDED
  6. #include <windows.h>
  7. #include "path.h"
  8. class Visitor;
  9. class Traversal
  10. {
  11. public:
  12.     Traversal (Path & path, Visitor & visitor);
  13.     Traversal (char const * directoryName, Visitor & visitor);
  14. private:
  15.     void TraverseTree (Path & path);
  16. private:
  17.     Visitor & _visitor;
  18. };
  19. class Visitor
  20. {
  21. public:
  22.     virtual ~Visitor ()
  23.     {}
  24.     virtual bool Visit (char const * name) { return false; }
  25. };
  26. class Sizer: public Visitor
  27. {
  28. public:
  29.     Sizer ()
  30.         : _totalSize (0)
  31.     {}
  32.     bool Visit (char const * name);
  33.     ULONG GetTotalSize () const { return _totalSize; }
  34. private:
  35.     ULONG _totalSize;
  36. };
  37. #endif // _visitor_H_INCLUDED