-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathTarContents.hpp
78 lines (71 loc) · 1.59 KB
/
TarContents.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#pragma once
#include <iostream>
#include <fstream>
#include <sstream>
#include <string>
#include <memory>
using namespace std;
namespace libtarpp
{
class TarContents
{
string name;
string mode;
string uid;
string gid;
string size;
string mtime;
string chksum;
string typeflag;
//int lflag;
string linkname;
public:
static const string magic;
static const string version;
private:
string uname;
string gname;
string devmajor;
string devminor;
string prefix;
shared_ptr<istream> stream;
bool isOctal(const string numstring);
bool isNum(const string numstring);
string regulateUGId(const string id);
public:
TarContents();
string getName();
void setName(const string name);
string getMode();
void setMode(const string m);
string getUid();
void setUid(const string id);
string getGid();
void setGid(const string id);
size_t getSize();
void setSize(const size_t& sz);
string getRawSize();
void setRawSize(const string s);
string getMTime();
void setMTime(const string m);
string getChkSum();
void setChkSum(const string c);
void autoChkSum();
string getTypeFlag();
void setTypeFlag(const string f);
string getLinkName();
void setLinkName(const string ln);
string getUName();
void setUName(const string un);
string getGName();
void setGName(const string gn);
string getDevMajor();
void setDevMajor(const string dma);
string getDevMinor();
void setDevMinor(const string dmi);
string getPrefix();
void setPrefix(const string p);
shared_ptr<istream> getStream();
void setStream(shared_ptr<istream> s);
};
}