libzypp  17.3.1
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 stampCommand ()
 Log info about the current process. 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 Pathnamefname ()
 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

◆ HistoryLog() [1/2]

zypp::HistoryLog::HistoryLog ( const HistoryLog )
private

◆ HistoryLog() [2/2]

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

Constructor with an optional root directory.

Parameters
rootdiractual target root directory

Definition at line 152 of file HistoryLog.cc.

◆ ~HistoryLog()

zypp::HistoryLog::~HistoryLog ( )

Definition at line 158 of file HistoryLog.cc.

Member Function Documentation

◆ operator=()

HistoryLog& zypp::HistoryLog::operator= ( const HistoryLog )
private

◆ setRoot()

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 163 of file HistoryLog.cc.

◆ fname()

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

Get the current log file path.

Definition at line 179 of file HistoryLog.cc.

◆ comment()

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 188 of file HistoryLog.cc.

◆ stampCommand()

void zypp::HistoryLog::stampCommand ( )

Log info about the current process.

Definition at line 220 of file HistoryLog.cc.

◆ install()

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

Log installation (or update) of a package.

Definition at line 232 of file HistoryLog.cc.

◆ remove()

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

Log removal of a package.

Definition at line 261 of file HistoryLog.cc.

◆ addRepository()

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

Log a newly added repository.

Parameters
repoinfo about the added repository

Definition at line 289 of file HistoryLog.cc.

◆ removeRepository()

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

Log recently removed repository.

Parameters
repoinfo about the removed repository

Definition at line 301 of file HistoryLog.cc.

◆ modifyRepository()

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 312 of file HistoryLog.cc.


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