2 * Copyright (c) 2023 Samsung Electronics Co., Ltd All Rights Reserved
4 * Licensed under the Apache License, Version 2.0 (the License);
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an AS IS BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
22 #include <sys/inotify.h>
25 #include <string_view>
31 enum class FileMonitorEvent : int {
39 virtual void OnFileChanged(FileMonitorEvent event) = 0;
42 FileMonitor(const std::string_view file_path, IEvent* listener);
44 FileMonitor(const FileMonitor&) = delete;
45 FileMonitor& operator=(const FileMonitor&) = delete;
48 std::filesystem::path parent_path_;
49 std::filesystem::path file_name_;
52 GIOChannel* channel_ = nullptr;
54 bool disposed_ = false;
58 static gboolean OnEventReceived(GIOChannel* channel,
63 } // namespace launchpad
65 #endif // FILE_MONITOR_