00001 #ifndef CLASSLIB_TAR_MEMBER_H 00002 # define CLASSLIB_TAR_MEMBER_H 00003 00004 //<<<<<< INCLUDES >>>>>> 00005 00006 # include "classlib/zip/TarConstants.h" 00007 # include "classlib/iobase/Filename.h" 00008 00009 namespace lat { 00010 //<<<<<< PUBLIC DEFINES >>>>>> 00011 //<<<<<< PUBLIC CONSTANTS >>>>>> 00012 //<<<<<< PUBLIC TYPES >>>>>> 00013 //<<<<<< PUBLIC VARIABLES >>>>>> 00014 //<<<<<< PUBLIC FUNCTIONS >>>>>> 00015 //<<<<<< CLASS DECLARATIONS >>>>>> 00016 00027 class TarMember : public TarConstants 00028 { 00029 public: 00030 TarMember (Filename name); 00031 TarMember (const TarMember &x); 00032 TarMember &operator= (const TarMember &x); 00033 ~TarMember (void); 00034 00035 Filename name (void) const; 00036 int mode (void) const; 00037 unsigned mtime (void) const; 00038 IOOffset size (void) const; 00039 int uid (void) const; 00040 std::string uname (void) const; 00041 int gid (void) const; 00042 std::string gname (void) const; 00043 Type type (void) const; 00044 Filename linkname (void) const; 00045 int devmajor (void) const; 00046 int devminor (void) const; 00047 00048 void name (Filename name); 00049 void mode (int value); 00050 void mtime (unsigned value); 00051 void size (IOOffset value); 00052 void uid (int value); 00053 void uname (const std::string &name); 00054 void gid (int value); 00055 void gname (const std::string &name); 00056 void type (Type value); 00057 void type (char value); 00058 void linkname (Filename value); 00059 void device (int major, int minor); 00060 00061 private: 00062 Filename m_name; //< Name of the archive member 00063 unsigned m_mtime; //< Modification time 00064 // unsigned m_atime; //< Last access time (GNU extension) 00065 // unsigned m_ctime; //< Creation time (GNU extension) 00066 IOOffset m_size; //< File size 00067 int m_mode; //< UNIX file mode 00068 int m_uid; //< File owner id 00069 std::string m_uname; //< File owner name 00070 int m_gid; //< File group id 00071 std::string m_gname; //< File group name 00072 Type m_type; //< File type 00073 Filename m_link; //< Symlink target for links 00074 int m_devmajor; //< Device major number for devices 00075 int m_devminor; //< Device minor number for devices 00076 bool m_ok; //< Flag to indicate the file is ok 00077 }; 00078 00079 //<<<<<< INLINE PUBLIC FUNCTIONS >>>>>> 00080 //<<<<<< INLINE MEMBER FUNCTIONS >>>>>> 00081 00082 } // namespace lat 00083 #endif // CLASSLIB_TAR_MEMBER_H