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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>LCOV - lcov.info - /usr/include/apt-pkg/fileutl.h</title>
<link rel="stylesheet" type="text/css" href="../../../gcov.css">
</head>
<body>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="title">LTP GCOV extension - code coverage report</td></tr>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr>
<td width="100%">
<table cellpadding=1 border=0 width="100%">
<tr>
<td class="headerItem" width="20%">Current view:</td>
<td class="headerValue" width="80%" colspan=4><a href="../../../index.html">directory</a> - <a href="index.html">usr/include/apt-pkg</a> - fileutl.h</td>
</tr>
<tr>
<td class="headerItem" width="20%">Test:</td>
<td class="headerValue" width="80%" colspan=4>lcov.info</td>
</tr>
<tr>
<td class="headerItem" width="20%">Date:</td>
<td class="headerValue" width="20%">2008-08-14</td>
<td width="20%"></td>
<td class="headerItem" width="20%">Instrumented lines:</td>
<td class="headerValue" width="20%">6</td>
</tr>
<tr>
<td class="headerItem" width="20%">Code covered:</td>
<td class="headerValue" width="20%">100.0 %</td>
<td width="20%"></td>
<td class="headerItem" width="20%">Executed lines:</td>
<td class="headerValue" width="20%">6</td>
</tr>
</table>
</td>
</tr>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
</table>
<table cellpadding=0 cellspacing=0 border=0>
<tr>
<td><br></td>
</tr>
<tr>
<td><pre class="source">
<span class="lineNum"> 1 </span> : // -*- mode: cpp; mode: fold -*-
<span class="lineNum"> 2 </span> : // Description /*{{{*/
<span class="lineNum"> 3 </span> : // $Id: fileutl.h,v 1.26 2001/05/07 05:06:52 jgg Exp $
<span class="lineNum"> 4 </span> : /* ######################################################################
<span class="lineNum"> 5 </span> :
<span class="lineNum"> 6 </span> : File Utilities
<span class="lineNum"> 7 </span> :
<span class="lineNum"> 8 </span> : CopyFile - Buffered copy of a single file
<span class="lineNum"> 9 </span> : GetLock - dpkg compatible lock file manipulation (fcntl)
<span class="lineNum"> 10 </span> : FileExists - Returns true if the file exists
<span class="lineNum"> 11 </span> : SafeGetCWD - Returns the CWD in a string with overrun protection
<span class="lineNum"> 12 </span> :
<span class="lineNum"> 13 </span> : The file class is a handy abstraction for various functions+classes
<span class="lineNum"> 14 </span> : that need to accept filenames.
<span class="lineNum"> 15 </span> :
<span class="lineNum"> 16 </span> : This source is placed in the Public Domain, do with it what you will
<span class="lineNum"> 17 </span> : It was originally written by Jason Gunthorpe.
<span class="lineNum"> 18 </span> :
<span class="lineNum"> 19 </span> : ##################################################################### */
<span class="lineNum"> 20 </span> : /*}}}*/
<span class="lineNum"> 21 </span> : #ifndef PKGLIB_FILEUTL_H
<span class="lineNum"> 22 </span> : #define PKGLIB_FILEUTL_H
<span class="lineNum"> 23 </span> :
<span class="lineNum"> 24 </span> :
<span class="lineNum"> 25 </span> : #include <string>
<span class="lineNum"> 26 </span> :
<span class="lineNum"> 27 </span> : using std::string;
<span class="lineNum"> 28 </span> :
<span class="lineNum"> 29 </span> : class FileFd
<span class="lineNum"> 30 </span> : {
<span class="lineNum"> 31 </span> : protected:
<span class="lineNum"> 32 </span> : int iFd;
<span class="lineNum"> 33 </span> :
<span class="lineNum"> 34 </span> : enum LocalFlags {AutoClose = (1<<0),Fail = (1<<1),DelOnFail = (1<<2),
<span class="lineNum"> 35 </span> : HitEof = (1<<3)};
<span class="lineNum"> 36 </span> : unsigned long Flags;
<span class="lineNum"> 37 </span> : string FileName;
<span class="lineNum"> 38 </span> :
<span class="lineNum"> 39 </span> : public:
<span class="lineNum"> 40 </span> : enum OpenMode {ReadOnly,WriteEmpty,WriteExists,WriteAny,WriteTemp};
<span class="lineNum"> 41 </span> :
<span class="lineNum"> 42 </span> : inline bool Read(void *To,unsigned long Size,bool AllowEof)
<span class="lineNum"> 43 </span> : {
<span class="lineNum"> 44 </span> : unsigned long Jnk;
<span class="lineNum"> 45 </span> : if (AllowEof)
<span class="lineNum"> 46 </span> : return Read(To,Size,&Jnk);
<span class="lineNum"> 47 </span> : return Read(To,Size);
<span class="lineNum"> 48 </span> : }
<span class="lineNum"> 49 </span> : bool Read(void *To,unsigned long Size,unsigned long *Actual = 0);
<span class="lineNum"> 50 </span> : bool Write(const void *From,unsigned long Size);
<span class="lineNum"> 51 </span> : bool Seek(unsigned long To);
<span class="lineNum"> 52 </span> : bool Skip(unsigned long To);
<span class="lineNum"> 53 </span> : bool Truncate(unsigned long To);
<span class="lineNum"> 54 </span> : unsigned long Tell();
<span class="lineNum"> 55 </span> : unsigned long Size();
<span class="lineNum"> 56 </span> : bool Open(string FileName,OpenMode Mode,unsigned long Perms = 0666);
<span class="lineNum"> 57 </span> : bool Close();
<span class="lineNum"> 58 </span> : bool Sync();
<span class="lineNum"> 59 </span> :
<span class="lineNum"> 60 </span> : // Simple manipulators
<span class="lineNum"> 61 </span> : inline int Fd() {return iFd;};
<span class="lineNum"> 62 </span> : inline void Fd(int fd) {iFd = fd;};
<span class="lineNum"> 63 </span><span class="lineCov"> 32 : inline bool IsOpen() {return iFd >= 0;};</span>
<span class="lineNum"> 64 </span> : inline bool Failed() {return (Flags & Fail) == Fail;};
<span class="lineNum"> 65 </span> : inline void EraseOnFailure() {Flags |= DelOnFail;};
<span class="lineNum"> 66 </span> : inline void OpFail() {Flags |= Fail;};
<span class="lineNum"> 67 </span> : inline bool Eof() {return (Flags & HitEof) == HitEof;};
<span class="lineNum"> 68 </span> : inline string &Name() {return FileName;};
<span class="lineNum"> 69 </span> :
<span class="lineNum"> 70 </span><span class="lineCov"> 53 : FileFd(string FileName,OpenMode Mode,unsigned long Perms = 0666) : iFd(-1), </span>
<span class="lineNum"> 71 </span><span class="lineCov"> 53 : Flags(0) </span>
<span class="lineNum"> 72 </span> : {
<span class="lineNum"> 73 </span><span class="lineCov"> 53 : Open(FileName,Mode,Perms);</span>
<span class="lineNum"> 74 </span><span class="lineCov"> 53 : };</span>
<span class="lineNum"> 75 </span><span class="lineCov"> 15 : FileFd(int Fd = -1) : iFd(Fd), Flags(AutoClose) {};</span>
<span class="lineNum"> 76 </span> : FileFd(int Fd,bool) : iFd(Fd), Flags(0) {};
<span class="lineNum"> 77 </span> : virtual ~FileFd();
<span class="lineNum"> 78 </span> : };
<span class="lineNum"> 79 </span> :
<span class="lineNum"> 80 </span> : bool RunScripts(const char *Cnf);
<span class="lineNum"> 81 </span> : bool CopyFile(FileFd &From,FileFd &To);
<span class="lineNum"> 82 </span> : int GetLock(string File,bool Errors = true);
<span class="lineNum"> 83 </span> : bool FileExists(string File);
<span class="lineNum"> 84 </span> : string SafeGetCWD();
<span class="lineNum"> 85 </span> : void SetCloseExec(int Fd,bool Close);
<span class="lineNum"> 86 </span> : void SetNonBlock(int Fd,bool Block);
<span class="lineNum"> 87 </span> : bool WaitFd(int Fd,bool write = false,unsigned long timeout = 0);
<span class="lineNum"> 88 </span> : pid_t ExecFork();
<span class="lineNum"> 89 </span> : bool ExecWait(pid_t Pid,const char *Name,bool Reap = false);
<span class="lineNum"> 90 </span> :
<span class="lineNum"> 91 </span> : // File string manipulators
<span class="lineNum"> 92 </span> : string flNotDir(string File);
<span class="lineNum"> 93 </span> : string flNotFile(string File);
<span class="lineNum"> 94 </span> : string flNoLink(string File);
<span class="lineNum"> 95 </span> : string flExtension(string File);
<span class="lineNum"> 96 </span> : string flCombine(string Dir,string File);
<span class="lineNum"> 97 </span> :
<span class="lineNum"> 98 </span> : #endif
</pre>
</td>
</tr>
</table>
<br>
<table width="100%" border=0 cellspacing=0 cellpadding=0>
<tr><td class="ruler"><img src="../../../glass.png" width=3 height=3 alt=""></td></tr>
<tr><td class="versionInfo">Generated by: <a href="http://ltp.sourceforge.net/coverage/lcov.php" target="_parent">LTP GCOV extension version 1.6</a></td></tr>
</table>
<br>
</body>
</html>
|