12 class CLASS_DECL_ACME item :
32 item(
const item & item) :
33 m_pathUser(item.m_pathUser),
34 m_pathFinal(item.m_pathFinal),
35 m_flags(item.m_flags),
36 m_strName(item.m_strName)
43 item(const ::file::path & pathUser, const ::file::path & pathFinal) :
45 m_pathFinal(pathFinal),
46 m_strName(pathUser.name())
49 if (m_pathFinal.has_character())
52 if (m_pathFinal.flags() & e_flag_final_path)
55 m_flags += e_flag_final_path;
70 item(const ::file::path & pathUser, const ::file::path & pathFinal,
const e_flag &
flags) :
72 m_pathFinal(pathFinal),
74 m_strName(pathUser.name())
77 if (m_pathFinal.has_character())
80 if (m_pathFinal.flags() & e_flag_final_path)
83 m_flags += e_flag_final_path;
99 const ::file::path & user_path()
const {
return m_pathUser.has_character() ? m_pathUser : m_pathFinal; }
100 const ::file::path & final_path()
const {
return m_pathFinal.has_character() ? m_pathFinal : m_pathUser; }
102 ::file::path & user_path_reference() {
return m_pathUser; }
103 ::file::path & final_path_reference() {
return m_pathFinal; }
106 virtual void set_user_path(const ::file::path & pathUser) { m_pathUser = pathUser; m_flags -= e_flag_final_path;}
107 virtual void set_final_path(const ::file::path & pathFinal) { ASSERT(pathFinal.flags() & e_flag_final_path); m_pathFinal = pathFinal; m_flags += e_flag_final_path; }
110 virtual e_type get_final_path_type()
const {
return m_pathFinal.m_etype; }
111 virtual void set_final_path_type(
const e_type & etype) { m_pathFinal.m_etype = etype; }
114 inline bool has_final_path()
const {
return m_flags.has(e_flag_final_path); }
116 virtual void truncate();
117 virtual ::i32_boolean is_folder()
const;
118 virtual bool exists()
const;
119 virtual ::i32_boolean is_file()
const;
121 virtual void erase();
122 virtual void create_folder();
124 virtual ::file::listing_base list();
126 virtual ::filesize size()
const;
127 virtual class ::time last_modified_time()
const;
128 virtual void set_last_modified_time(
const class ::time &
time);