comparison src/core/filesystem.cc @ 393:963047512d34

*: clang-format
author Paper <paper@tflc.us>
date Fri, 07 Nov 2025 07:16:15 -0500
parents c3f717b7321b
children 650a9159a0e7
comparison
equal deleted inserted replaced
392:a72d6d7b3568 393:963047512d34
60 /* Ehhhhh */ 60 /* Ehhhhh */
61 61
62 class Watcher : public IWatcher { 62 class Watcher : public IWatcher {
63 public: 63 public:
64 Watcher(void *opaque, const std::filesystem::path &path, EventHandler handler) 64 Watcher(void *opaque, const std::filesystem::path &path, EventHandler handler)
65 : path_(path) 65 : path_(path), handler_(handler), opaque_(opaque)
66 , handler_(handler)
67 , opaque_(opaque)
68 { 66 {
69 } 67 }
70 68
71 virtual ~Watcher() override 69 virtual ~Watcher() override {}
72 {
73 }
74 70
75 protected: 71 protected:
76 std::filesystem::path path_; 72 std::filesystem::path path_;
77 EventHandler handler_; 73 EventHandler handler_;
78 void *opaque_; 74 void *opaque_;
85 81
86 template<typename T> 82 template<typename T>
87 class StdFilesystemWatcher : public Watcher { 83 class StdFilesystemWatcher : public Watcher {
88 public: 84 public:
89 StdFilesystemWatcher(void *opaque, const std::filesystem::path &path, EventHandler handler) 85 StdFilesystemWatcher(void *opaque, const std::filesystem::path &path, EventHandler handler)
90 : Watcher(opaque, path, handler) 86 : Watcher(opaque, path, handler)
91 { 87 {
92 } 88 }
93 89
94 virtual ~StdFilesystemWatcher() override 90 virtual ~StdFilesystemWatcher() override {}
95 {
96 }
97 91
98 virtual void Process() override 92 virtual void Process() override
99 { 93 {
100 /* Untoggle all paths. This allows us to only ever 94 /* Untoggle all paths. This allows us to only ever
101 * iterate over the directory ONCE. */ 95 * iterate over the directory ONCE. */
155 149
156 /* TODO this is probably DAMN slow */ 150 /* TODO this is probably DAMN slow */
157 std::vector<PathStatus> paths_; 151 std::vector<PathStatus> paths_;
158 }; 152 };
159 153
160 IWatcher *GetRecursiveFilesystemWatcher(void *opaque, 154 IWatcher *GetRecursiveFilesystemWatcher(void *opaque, const std::filesystem::path &path, IWatcher::EventHandler handler)
161 const std::filesystem::path &path, IWatcher::EventHandler handler)
162 { 155 {
163 /* .... :) */ 156 /* .... :) */
164 return new StdFilesystemWatcher<std::filesystem::recursive_directory_iterator>(opaque, path, handler); 157 return new StdFilesystemWatcher<std::filesystem::recursive_directory_iterator>(opaque, path, handler);
165 } 158 }
166 159