libzypp
12.16.5
Main Page
Related Pages
Modules
Namespaces
Classes
Files
File List
File Members
HardLocksFile.cc
Go to the documentation of this file.
1
/*---------------------------------------------------------------------\
2
| ____ _ __ __ ___ |
3
| |__ / \ / / . \ . \ |
4
| / / \ V /| _/ _/ |
5
| / /__ | | | | | | |
6
| /_____||_| |_| |_| |
7
| |
8
\---------------------------------------------------------------------*/
12
#include <iostream>
13
#include <fstream>
14
15
#include "
zypp/base/LogTools.h
"
16
#include "
zypp/base/IOStream.h
"
17
#include "
zypp/base/String.h
"
18
19
#include "
zypp/PathInfo.h
"
20
#include "
zypp/TmpPath.h
"
21
#include "
zypp/Date.h
"
22
23
#include "
zypp/target/HardLocksFile.h
"
24
#include "
zypp/PoolQueryUtil.tcc
"
25
26
using
std::endl;
27
29
namespace
zypp
30
{
31
32
namespace
target
33
{
34
35
void
HardLocksFile::load
(
const
Pathname & file_r,
Data
& data_r )
36
{
37
PathInfo pi( file_r );
38
if
( ! pi.isFile() )
39
{
40
WAR
<<
"Can't read "
<< pi << endl;
41
return
;
42
}
43
44
readPoolQueriesFromFile
( file_r, std::back_inserter( data_r ) );
45
46
MIL
<<
"Read "
<< pi << endl;
47
}
48
49
void
HardLocksFile::store
(
const
Pathname & file_r,
const
Data
& data_r )
50
{
51
filesystem::TmpFile
tmp(
filesystem::TmpFile::makeSibling
( file_r ) );
52
filesystem::chmod
( tmp.
path
(), 0644 );
53
54
writePoolQueriesToFile
( tmp.
path
(), data_r.begin(), data_r.end() );
55
56
if
(
true
)
// by now: no error info from writePoolQueriesToFile
57
{
58
filesystem::rename
( tmp.
path
(), file_r );
59
MIL
<<
"Wrote "
<< PathInfo(file_r) << endl;
60
}
61
else
62
{
63
ERR
<<
"Can't write "
<< PathInfo(tmp.
path
()) << endl;
64
}
65
}
66
67
/******************************************************************
68
**
69
** FUNCTION NAME : operator<<
70
** FUNCTION TYPE : std::ostream &
71
*/
72
std::ostream &
operator<<
( std::ostream & str,
const
HardLocksFile
& obj )
73
{
74
str << obj.
file
() <<
' '
;
75
if
( obj.
_dataPtr
)
76
str << obj.
data
();
77
else
78
str <<
"(unloaded)"
;
79
return
str;
80
}
81
83
}
// namespace target
86
}
// namespace zypp
zypp
target
HardLocksFile.cc
Generated by
1.8.2