file_monitor.hpp
Go to the documentation of this file.
00001 /* 00002 Copyright 2005-2007 Adobe Systems Incorporated 00003 Distributed under the MIT License (see accompanying file LICENSE_1_0_0.txt 00004 or a copy at http://stlab.adobe.com/licenses.html) 00005 */ 00006 00007 /****************************************************************************************************/ 00008 00009 #ifndef ADOBE_FILE_MONITOR_HPP 00010 #define ADOBE_FILE_MONITOR_HPP 00011 00012 /****************************************************************************************************/ 00013 00014 #include <adobe/config.hpp> 00015 00016 #include <boost/filesystem/path.hpp> 00017 #include <boost/function.hpp> 00018 00019 /****************************************************************************************************/ 00020 00021 namespace adobe { 00022 00023 /****************************************************************************************************/ 00024 00025 enum file_monitor_event_t 00026 { 00027 file_monitor_contents_changed_k = 0, 00028 file_monitor_other_k // later expand this to deleted, moved, renamed, etc. 00029 }; 00030 00031 typedef boost::filesystem::path file_monitor_path_type; 00032 00033 typedef boost::function<void (const file_monitor_path_type& path, file_monitor_event_t what)> file_monitor_callback_t; 00034 00035 /****************************************************************************************************/ 00036 00037 } // namespace adobe 00038 00039 /****************************************************************************************************/ 00040 00041 #include <adobe/future/platform_file_monitor_impl.hpp> 00042 00043 /****************************************************************************************************/ 00044 00045 namespace adobe { 00046 00047 /****************************************************************************************************/ 00048 00049 class file_monitor_t 00050 { 00051 public: 00052 file_monitor_t(); 00053 00054 file_monitor_t(const file_monitor_path_type& path, const file_monitor_callback_t& proc); 00055 00056 void set_path(const file_monitor_path_type& path); 00057 00058 void monitor(const file_monitor_callback_t& proc); 00059 00060 private: 00061 file_monitor_platform_data_t plat_m; 00062 }; 00063 00064 /****************************************************************************************************/ 00065 00066 } // namespace adobe 00067 00068 /****************************************************************************************************/ 00069 00070 #endif 00071 00072 /****************************************************************************************************/ |