00001 // -*- c++ -*- 00002 // Generated by gtkmmproc -- DO NOT MODIFY! 00003 #ifndef _LIBGNOMEVFSMM_FILE_INFO_H 00004 #define _LIBGNOMEVFSMM_FILE_INFO_H 00005 00006 #include <glibmm.h> 00007 00008 /* $Id: file-info.hg,v 1.11 2004/04/07 17:39:05 murrayc Exp $ */ 00009 // -*- C++ -*- // this is for the .hg, I realize gensig puts one in 00010 00011 /* Copyright 2003 gnome-vfsmm Development Team 00012 * 00013 * This library is free software; you can redistribute it and/or 00014 * modify it under the terms of the GNU Library General Public 00015 * License as published by the Free Software Foundation; either 00016 * version 2 of the License, or (at your option) any later version. 00017 * 00018 * This library is distributed in the hope that it will be useful, 00019 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00020 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00021 * Library General Public License for more details. 00022 * 00023 * You should have received a copy of the GNU Library General Public 00024 * License along with this library; if not, write to the Free 00025 * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. 00026 */ 00027 00028 00029 #include <libgnomevfsmm/enums.h> 00030 #include <libgnomevfsmm/types.h> 00031 00032 00033 namespace Gnome 00034 { 00035 00036 namespace Vfs 00037 { 00038 00039 //TODO: This is actually now a boxed-type, with a get_type() function. 00040 00041 class FileInfo 00042 { 00043 public: 00044 #ifndef DOXYGEN_SHOULD_SKIP_THIS 00045 typedef FileInfo CppObjectType; 00046 typedef GnomeVFSFileInfo BaseObjectType; 00047 #endif /* DOXYGEN_SHOULD_SKIP_THIS */ 00048 00049 static Glib::RefPtr<FileInfo> create(); 00050 00051 // For use with Glib::RefPtr<> only. 00052 void reference() const; 00053 void unreference() const; 00054 00056 GnomeVFSFileInfo* gobj(); 00057 00059 const GnomeVFSFileInfo* gobj() const; 00060 00062 GnomeVFSFileInfo* gobj_copy() const; 00063 00064 protected: 00065 // Do not derive this. Gnome::Vfs::FileInfo can neither be constructed nor deleted. 00066 FileInfo(); 00067 void operator delete(void*, size_t); 00068 00069 private: 00070 // noncopyable 00071 FileInfo(const FileInfo&); 00072 FileInfo& operator=(const FileInfo&); 00073 00074 00075 public: 00076 00077 00080 void clear(); 00081 00085 Glib::ustring get_mime_type() const; 00086 00090 Glib::RefPtr<FileInfo> duplicate(); 00091 00092 00096 std::string get_name() const; 00097 00098 /* Fields which are actually valid in this structure. */ 00099 //GnomeVFSFileInfoFields valid_fields; 00100 00104 FileType get_type() const; 00105 00109 FilePermissions get_permissions() const; 00110 00114 FileFlags get_flags() const; 00115 00116 /* These are only valid if `is_local' is TRUE (see below). */ 00117 //dev_t device; 00118 //GnomeVFSInodeNumber inode; 00119 00120 00124 guint get_link_count() const; 00125 00129 guint get_uid() const; 00130 00134 guint get_gid() const; 00135 00140 FileSize get_size() const; 00141 00146 FileSize get_block_count() const; 00147 00152 guint get_io_block_size() const; 00153 00157 time_t get_access_time() const; 00158 00162 time_t get_modification_time() const; 00163 00167 time_t get_creation_time() const; 00168 00172 std::string get_symlink_name() const; 00173 00178 bool is_symlink() const; 00179 00180 00181 }; 00182 00183 } // namespace Vfs 00184 } // namespace Gnome 00185 00186 00187 namespace Gnome 00188 { 00189 00190 namespace Vfs 00191 { 00192 00198 bool operator==(const FileInfo& lhs, const FileInfo& rhs); 00199 00205 bool operator!=(const FileInfo& lhs, const FileInfo& rhs); 00206 00207 00208 } // namespace Vfs 00209 00210 } // namespace Gnome 00211 00212 00213 namespace Glib 00214 { 00215 00221 Glib::RefPtr<Gnome::Vfs::FileInfo> wrap(GnomeVFSFileInfo* object, bool take_copy = false); 00222 00223 } // namespace Glib 00224 00225 #endif /* _LIBGNOMEVFSMM_FILE_INFO_H */ 00226