file_move_helper.h

Go to the documentation of this file.
00001 class file_move_callback_manager
00002 {
00003 public:
00004         void on_library_add_items(const pfc::list_base_const_t<metadb_handle_ptr> & p_data);
00005         void on_library_remove_items(const pfc::list_base_const_t<metadb_handle_ptr> & p_data);
00006 
00007         void on_moved(const pfc::string_list_const & p_from,const pfc::string_list_const & p_to);
00008         void on_copied(const pfc::string_list_const & p_from,const pfc::string_list_const & p_to);
00009 
00010         void on_hint(const pfc::list_base_const_t<metadb_handle_ptr> & p_list,const pfc::list_base_const_t<const file_info*> & p_infos,const pfc::list_base_const_t<t_filestats> & p_stats);
00011 
00012         void run_callback();
00013 private:
00014         metadb_handle_list m_removed;
00015         metadb_handle_list m_added;
00016 
00017         pfc::string_list_impl m_copy_from,m_copy_to;
00018         pfc::string_list_impl m_move_from,m_move_to;
00019 
00020         metadb_handle_list m_hint_handles;
00021         pfc::list_t<file_info_const_impl> m_hint_infos;
00022         pfc::list_t<t_filestats> m_hint_stats;
00023 };
00024 
00025 class file_move_helper
00026 {
00027 public:
00028         file_move_helper();
00029         ~file_move_helper();
00030         file_move_helper(const file_move_helper & p_src);
00031         bool take_snapshot(const char * p_path,abort_callback & p_abort);
00032         bool on_moved(const char * p_path,abort_callback & p_abort);
00033         bool on_copied(const char * p_path,abort_callback & p_abort);
00034         bool on_moved(const char * p_path,abort_callback & p_abort,file_move_callback_manager & p_cb);
00035         bool on_copied(const char * p_path,abort_callback & p_abort,file_move_callback_manager & p_cb);
00036         
00037         static bool g_on_deleted(const pfc::list_base_const_t<const char *> & p_files);
00038 
00039         static t_size g_filter_dead_files_sorted_make_mask(pfc::list_base_t<metadb_handle_ptr> & p_data,const pfc::list_base_const_t<const char*> & p_dead,bit_array_var & p_mask);
00040         static t_size g_filter_dead_files_sorted(pfc::list_base_t<metadb_handle_ptr> & p_data,const pfc::list_base_const_t<const char*> & p_dead);
00041         static t_size g_filter_dead_files(pfc::list_base_t<metadb_handle_ptr> & p_data,const pfc::list_base_const_t<const char*> & p_dead);
00042 
00043 private:
00044 
00045         struct t_entry
00046         {
00047                 playable_location_impl m_location;
00048                 file_info_impl m_info;
00049                 t_filestats m_stats;
00050                 bool m_have_info;
00051         };
00052         
00053         metadb_handle_list m_source_handles;
00054 
00055         pfc::array_t<t_entry> m_data;
00056 
00057         const char * get_source_path() const;
00058 
00059         void make_new_item_list(pfc::list_base_t<metadb_handle_ptr> & p_out,const char * p_path,file_move_callback_manager & p_cb);
00060 };

Generated on Fri Apr 25 18:49:33 2008 for foobar2000 SDK by  doxygen 1.5.5