Lhaz
読み取り中…
検索中…
一致する文字列を見つけられません
tar.h
[詳解]
1/*==========================================================================*/
2/* Lhaz TARクラス lhaz@chitora.jp */
3/*==========================================================================*/
4#ifndef _CTAR_H
5#define _CTAR_H
6
7#include <stdio.h>
8#include <time.h>
9#include "lhazarc.h"
10#include "../zlib/zlib.h"
11#include "mybuf.h"
12#include "mystr.h"
13
14class CTAR {
15public:
17 //
18 CTAR(const MYSTR& arcname);
19 virtual ‾CTAR(void);
20 //
21 static long CalcSum(char* s, size_t size);
22 static CTAR* Create(ARCHIVE::TYPE type, gzFile fptar, FILE* fp, const char* arcname = NULL);
23 //
24 bool Compress(const char* name);
25 COMPLETE Extract(bool& overwrite, bool& skipflag, bool verify, bool show_progress);
26 bool Get(unsigned long* crc = NULL);
27 char* GetMagicCode(void) { return MagicCode; }
28 char* GetName(void) const { return Name; }
29 LONGLONG GetSize(void) const { return Size; }
30 time_t GetTime(void) const { return Time; }
31 char GetType(void) const { return Type; }
32 bool IsDir(void) const { return mIsDir; }
33 void SetZoneIdentifer(const MYBUF& zi) { ZoneIdentifier = zi; }
34 bool SkipData(void);
35 virtual size_t TarRead(void *buf, size_t size, unsigned long* crc = NULL) = 0;
36 bool WriteBlank(void);
37 bool WriteHeader(FILE* fp);
38
39protected:
40 LONGLONG Size;
42
43private:
44 static const char MAGIC_CODE[8];
45 static const char MAGIC_CODE_GNU[8];
46 static const char LONG_LINK[];
47 //
48 char* Name;
49 char Atrib[8];
50 char UserID[8];
51 char GroupID[8];
52 char SizeOct[12];
53 time_t Time;
54 char TimeOct[12];
56 char CheckSumOct[8];
57 char Type;
58 char Link[100];
59 char MagicCode[8];
60 char UserName[32];
61 char GroupName[32];
62 char MjDeviceNum[8];
63 char MnDeviceNum[8];
65 char CreateTime[12];
66 char Offset[12];
67 char Dummy[512 - 100 - 8 - 8 - 8 - 12 - 12 - 8 - 1 - 100 - 8 - 32 - 32 - 8 - 8 - 12 - 12 - 12];
68 char Prefix[155];
69 char Pad[12];
70 //
71 MYSTR ArcName;
73 bool mIsDir;
74 //
75 bool ReadCalcSum(char* d, size_t size, long& sum, unsigned long* crc = NULL);
76 bool WriteHeader(void);
77 bool WriteData(const char* name);
78 bool isDir(char type, char* name);
79 virtual int TarSeek(fpos_t offset, int origin) = 0;
80 virtual size_t TarWrite(const void* buf, size_t size, bool eof = false) = 0;
81
82};
83
84#endif
TYPE
Definition lhazarc.h:28
Definition tar.h:14
char Atrib[8]
Definition tar.h:49
bool isDir(char type, char *name)
isDir
Definition tar.cpp:180
char Link[100]
Definition tar.h:58
time_t GetTime(void) const
Definition tar.h:30
char Offset[12]
Definition tar.h:66
virtual size_t TarRead(void *buf, size_t size, unsigned long *crc=NULL)=0
char MagicCode[8]
Definition tar.h:59
char CheckSumOct[8]
Definition tar.h:56
void SetZoneIdentifer(const MYBUF &zi)
Definition tar.h:33
static const char LONG_LINK[]
Definition tar.h:23
char TimeOct[12]
Definition tar.h:54
static CTAR * Create(ARCHIVE::TYPE type, gzFile fptar, FILE *fp, const char *arcname=NULL)
Create
Definition tar.cpp:69
static long CalcSum(char *s, size_t size)
CalcSum
Definition tar.cpp:396
virtual int TarSeek(fpos_t offset, int origin)=0
bool WriteHeader(void)
Definition tar.cpp:421
COMPLETE Extract(bool &overwrite, bool &skipflag, bool verify, bool show_progress)
Extract
Definition tar.cpp:207
static const char MAGIC_CODE[8]
Definition tar.h:21
bool WriteData(const char *name)
Definition tar.cpp:489
char CreateTime[12]
Definition tar.h:65
bool IsDir(void) const
Definition tar.h:32
virtual size_t TarWrite(const void *buf, size_t size, bool eof=false)=0
char GroupID[8]
Definition tar.h:51
char MjDeviceNum[8]
Definition tar.h:62
long CheckSum
Definition tar.h:55
char Prefix[155]
Definition tar.h:68
COMPLETE
Definition tar.h:16
@ ARC_NO_ERROR
Definition tar.h:16
@ ARC_STOPPED
Definition tar.h:16
@ ARC_CANTOPEN
Definition tar.h:16
@ ARC_ERROR
Definition tar.h:16
@ ARC_CANCELED
Definition tar.h:16
bool Get(unsigned long *crc=NULL)
Get
Definition tar.cpp:84
char MnDeviceNum[8]
Definition tar.h:63
char GroupName[32]
Definition tar.h:61
MYSTR ArcName
Definition tar.h:71
static const char MAGIC_CODE_GNU[8]
Definition tar.h:22
char SizeOct[12]
Definition tar.h:52
LONGLONG GetSize(void) const
Definition tar.h:29
time_t Time
Definition tar.h:53
bool mIsDir
Definition tar.h:73
char GetType(void) const
Definition tar.h:31
char * GetMagicCode(void)
Definition tar.h:27
char UserID[8]
Definition tar.h:50
bool SkipData(void)
SkipData
Definition tar.cpp:194
bool Compress(const char *name)
Compress
Definition tar.cpp:278
bool ReadCalcSum(char *d, size_t size, long &sum, unsigned long *crc=NULL)
ReadCalcSum
Definition tar.cpp:408
LONGLONG Size
Definition tar.h:40
long CalcedSum
Definition tar.h:72
bool WriteBlank(void)
WriteBlank
Definition tar.cpp:518
char * Name
Definition tar.h:48
virtual ‾CTAR(void)
Destructor
Definition tar.cpp:61
char * GetName(void) const
Definition tar.h:28
char Pad[12]
Definition tar.h:69
char UserName[32]
Definition tar.h:60
MYBUF ZoneIdentifier
Definition tar.h:41
char LastAccessTime[12]
Definition tar.h:64
char Type
Definition tar.h:57
char Dummy[512 - 100 - 8 - 8 - 8 - 12 - 12 - 8 - 1 - 100 - 8 - 32 - 32 - 8 - 8 - 12 - 12 - 12]
Definition tar.h:67
Archive