00001 #ifndef tmp_h 00002 #define tmp_h 00003 00004 #include <list> 00005 #include <string> 00006 00008 class Tmp 00009 { 00010 private: 00011 00012 typedef std::list<std::string> tmp_file_list; 00013 typedef tmp_file_list::iterator tmp_file_list_it; 00014 00015 tmp_file_list files; 00016 tmp_file_list own_files; 00017 00018 bool valid; 00019 00020 int nfiles; 00021 00022 long pid; 00023 00024 bool use_tmp; 00025 bool no_erase; 00026 00027 public: 00028 00029 Tmp( bool use_tmp, bool no_erase ); 00030 ~Tmp(); 00031 00032 std::string get_tmp_file(); 00033 00035 bool register_tmp_file( std::string file ); 00036 00037 private: 00038 bool can_write( std::string file ); 00039 00041 bool read_dir(); 00042 00043 bool is_unique( std::string file ); 00044 }; 00045 00046 #endif