libzypp  13.10.6
zypp::HistoryLog Class Reference

Writing the zypp history fileReference counted signleton for writhing the zypp history file. More...

#include <HistoryLog.h>

Public Member Functions

 HistoryLog (const Pathname &rootdir=Pathname())
 Constructor with an optional root directory. More...
 
 ~HistoryLog ()
 
void comment (const std::string &comment, bool timestamp=false)
 Log a comment (even multiline). More...
 
void install (const PoolItem &pi)
 Log installation (or update) of a package. More...
 
void remove (const PoolItem &pi)
 Log removal of a package. More...
 
void addRepository (const RepoInfo &repo)
 Log a newly added repository. More...
 
void removeRepository (const RepoInfo &repo)
 Log recently removed repository. More...
 
void modifyRepository (const RepoInfo &oldrepo, const RepoInfo &newrepo)
 Log certain modifications to a repository. More...
 

Static Public Member Functions

static void setRoot (const Pathname &root)
 Set new root directory to the default history log file path. More...
 
static const Pathname & fname ()
 Get the current log file path. More...
 

Private Member Functions

 HistoryLog (const HistoryLog &)
 
HistoryLogoperator= (const HistoryLog &)
 

Detailed Description

Writing the zypp history file

Reference counted signleton for writhing the zypp history file.

The history file is opened on demand and closed when the last HistoryLog object drops its reference. Thus HistoryLog objects should be local to those functions, writing the log, and must not be stored permanently.

* some method ()
* {
* PoolItem pi;
* ...
* HistoryLog().install(pi);
* ...
* HistoryLog().comment(someMessage);
* }
*
Note
Take care to set proper target root dir if needed. Either pass it via the constructor, or set it via setRoot(Pathname) method. The default location of the file is determined by zypp::ZConfig::historyLogPath (default: /var/log/zypp/history).
Todo:
The implementation as pseudo signleton is questionable. Use shared_ptr instead of handcrafted ref/unref. Manage multiple logs at different locations.

Definition at line 55 of file HistoryLog.h.

Constructor & Destructor Documentation

zypp::HistoryLog::HistoryLog ( const HistoryLog )
private
zypp::HistoryLog::HistoryLog ( const Pathname &  rootdir = Pathname())

Constructor with an optional root directory.

Parameters
rootdiractual target root directory

Definition at line 120 of file HistoryLog.cc.

zypp::HistoryLog::~HistoryLog ( )

Definition at line 126 of file HistoryLog.cc.

Member Function Documentation

HistoryLog& zypp::HistoryLog::operator= ( const HistoryLog )
private
void zypp::HistoryLog::setRoot ( const Pathname &  root)
static

Set new root directory to the default history log file path.

This path will be prepended to the default log file path. This should be done where there is a potential that the target root has changed.

Parameters
rootnew root directory.

Definition at line 131 of file HistoryLog.cc.

const Pathname & zypp::HistoryLog::fname ( )
static

Get the current log file path.

Definition at line 147 of file HistoryLog.cc.

void zypp::HistoryLog::comment ( const std::string &  comment,
bool  timestamp = false 
)

Log a comment (even multiline).

Parameters
commentthe comment
timestampwhether to include a timestamp at the start of the comment

Definition at line 156 of file HistoryLog.cc.

void zypp::HistoryLog::install ( const PoolItem pi)

Log installation (or update) of a package.

Definition at line 188 of file HistoryLog.cc.

void zypp::HistoryLog::remove ( const PoolItem pi)

Log removal of a package.

Definition at line 217 of file HistoryLog.cc.

void zypp::HistoryLog::addRepository ( const RepoInfo repo)

Log a newly added repository.

Parameters
repoinfo about the added repository

Definition at line 245 of file HistoryLog.cc.

void zypp::HistoryLog::removeRepository ( const RepoInfo repo)

Log recently removed repository.

Parameters
repoinfo about the removed repository

Definition at line 257 of file HistoryLog.cc.

void zypp::HistoryLog::modifyRepository ( const RepoInfo oldrepo,
const RepoInfo newrepo 
)

Log certain modifications to a repository.

Parameters
oldrepoinfo about the old repository
newrepoinfo about the new repository

Definition at line 268 of file HistoryLog.cc.


The documentation for this class was generated from the following files: