A little toolkit for single-quad fragment shader demos
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
2.3 KiB

  1. /**
  2. * @file FileSystemEvent.h
  3. * @author Erik Zenker
  4. * @date 01.11.2012
  5. * @copyright Gnu Public License
  6. **/
  7. #pragma once
  8. #include <string>
  9. #include <sys/inotify.h>
  10. namespace filesystem = std::experimental::filesystem;
  11. /**
  12. * @brief Container for events on filesystem.
  13. * @class FileSystemEvent
  14. * FileSystemEvent.h
  15. * "include/FileSystemEvent.h"
  16. *
  17. *
  18. **/
  19. class FileSystemEvent {
  20. public:
  21. FileSystemEvent(int wd, uint32_t mask, const filesystem::path path);
  22. ~FileSystemEvent();
  23. std::string getMaskString() const;
  24. /* Member */
  25. int wd;
  26. uint32_t mask;
  27. filesystem::path path;
  28. std::optional<filesystem::path> recursive_root_path;
  29. private:
  30. std::string maskToString(uint32_t events) const;
  31. };
  32. inline FileSystemEvent::FileSystemEvent(const int wd, uint32_t mask, const filesystem::path path) :
  33. wd(wd),
  34. mask(mask),
  35. path(path),
  36. recursive_root_path{} {}
  37. inline FileSystemEvent::~FileSystemEvent(){
  38. }
  39. inline std::string FileSystemEvent::getMaskString() const{
  40. return maskToString(mask);
  41. }
  42. inline std::string FileSystemEvent::maskToString(uint32_t mask) const{
  43. std::string maskString = "";
  44. if(IN_ACCESS & mask)
  45. maskString.append("IN_ACCESS ");
  46. if(IN_ATTRIB & mask)
  47. maskString.append("IN_ATTRIB ");
  48. if(IN_CLOSE_WRITE & mask)
  49. maskString.append("IN_CLOSE_WRITE ");
  50. if(IN_CLOSE_NOWRITE & mask)
  51. maskString.append("IN_CLOSE_NOWRITE ");
  52. if(IN_CREATE & mask)
  53. maskString.append("IN_CREATE ");
  54. if(IN_DELETE & mask)
  55. maskString.append("IN_DELETE ");
  56. if(IN_DELETE_SELF & mask)
  57. maskString.append("IN_DELETE_SELF ");
  58. if(IN_MODIFY & mask)
  59. maskString.append("IN_MODIFY ");
  60. if(IN_MOVE_SELF & mask)
  61. maskString.append("IN_MOVE_SELF ");
  62. if(IN_MOVED_FROM & mask)
  63. maskString.append("IN_MOVED_FROM ");
  64. if(IN_MOVED_TO & mask)
  65. maskString.append("IN_MOVED_TO ");
  66. if(IN_OPEN & mask)
  67. maskString.append("IN_OPEN ");
  68. if(IN_ISDIR & mask)
  69. maskString.append("IN_ISDIR ");
  70. if(IN_UNMOUNT & mask)
  71. maskString.append("IN_UNMOUNT ");
  72. if(IN_Q_OVERFLOW & mask)
  73. maskString.append("IN_Q_OVERFLOW ");
  74. if(IN_CLOSE & mask)
  75. maskString.append("IN_CLOSE ");
  76. if(IN_IGNORED & mask)
  77. maskString.append("IN_IGNORED ");
  78. if(IN_ONESHOT & mask)
  79. maskString.append("IN_ONESHOT ");
  80. return maskString;
  81. }