libzypp 17.37.17
HistoryLogData.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
9
13#ifndef ZYPP_HISTORYLOGDATA_H_
14#define ZYPP_HISTORYLOGDATA_H_
15
16#include <iosfwd>
17
18#include <zypp-core/Globals.h>
19#include <zypp/Date.h>
20#include <zypp/Edition.h>
21#include <zypp/Arch.h>
22#include <zypp/CheckSum.h>
23#include <zypp/Url.h>
24#include <zypp/Patch.h>
25
26#define HISTORY_LOG_DATE_FORMAT "%Y-%m-%d %H:%M:%S"
27
29namespace zypp
30{
38 {
39 static const HistoryActionID NONE ZYPP_API;
40
41 static const HistoryActionID INSTALL ZYPP_API;
42 static const HistoryActionID REMOVE ZYPP_API;
43 static const HistoryActionID REPO_ADD ZYPP_API;
44 static const HistoryActionID REPO_REMOVE ZYPP_API;
45 static const HistoryActionID REPO_CHANGE_ALIAS ZYPP_API;
46 static const HistoryActionID REPO_CHANGE_URL ZYPP_API;
47 static const HistoryActionID STAMP_COMMAND ZYPP_API;
48 static const HistoryActionID PATCH_STATE_CHANGE ZYPP_API;
49
63
65
66 HistoryActionID(ID id) : _id(id) {}
67
68 explicit HistoryActionID(const std::string & strval_r);
69
70 ID toEnum() const { return _id; }
71
72 static HistoryActionID::ID parse(const std::string & strval_r);
73
74 const std::string & asString(bool pad = false) const;
75
76 private:
78 };
79
81 inline bool operator==( const HistoryActionID & lhs, const HistoryActionID & rhs )
82 { return lhs.toEnum() == rhs.toEnum(); }
83
85 inline bool operator!=( const HistoryActionID & lhs, const HistoryActionID & rhs )
86 { return lhs.toEnum() != rhs.toEnum(); }
87
89 std::ostream & operator << (std::ostream & str, const HistoryActionID & id);
91
106 {
107 public:
110
111 using FieldVector = std::vector<std::string>;
112 using size_type = FieldVector::size_type;
113 using const_iterator = FieldVector::const_iterator;
114
115 public:
120 explicit HistoryLogData( FieldVector & fields_r, size_type expect_r = 2 );
121
126 HistoryLogData( FieldVector & fields_r, HistoryActionID action_r, size_type expect_r = 2 );
127
129 virtual ~HistoryLogData();
130
141 static Ptr create( FieldVector & fields_r );
142
143 public:
145 bool empty() const;
146
148 size_type size() const;
149
151 const_iterator begin() const;
152
154 const_iterator end() const;
155
160 const std::string & optionalAt( size_type idx_r ) const;
162 const std::string & operator[]( size_type idx_r ) const
163 { return optionalAt( idx_r ); }
164
169 const std::string & at( size_type idx_r ) const;
170
171 public:
172 enum Index
173 {
176 };
177
178 public:
179 Date date() const;
180 HistoryActionID action() const;
181
182 public:
183 class Impl;
184 private:
186 protected:
188 };
189
191 std::ostream & operator<<( std::ostream & str, const HistoryLogData & obj );
193
200 {
201 public:
208
209 public:
222
223 public:
224 std::string name() const;
225 Edition edition() const;
226 Arch arch() const;
227 std::string reqby() const;
228 std::string repoAlias() const;
229 CheckSum checksum() const;
230 std::string userdata() const;
231 };
232
233 //PATCH SEVERITY CATEGORY OLDSTATE NEWSTATE
240 {
241 public:
248
249 public:
264
265 public:
266 std::string name() const;
267 Edition edition() const;
268 Arch arch() const;
269 std::string repoAlias() const;
270 Patch::SeverityFlag severity() const;
271 Patch::Category category() const;
272 std::string oldstate() const;
273 std::string newstate() const;
274 std::string userdata() const;
275 };
276
277
284 {
285 public:
291 HistoryLogDataRemove( FieldVector & fields_r );
292
293 public:
304
305 public:
306 std::string name() const;
307 Edition edition() const;
308 Arch arch() const;
309 std::string reqby() const;
310 std::string userdata() const;
311 };
312
319 {
320 public:
327
328 public:
337
338 public:
339 std::string alias() const;
340 Url url() const;
341 std::string userdata() const;
342 };
343
350 {
351 public:
358
359 public:
367
368 public:
369 std::string alias() const;
370 std::string userdata() const;
371 };
372
379 {
380 public:
387
388 public:
397
398 public:
399 std::string oldAlias() const;
400 std::string newAlias() const;
401 std::string userdata() const;
402 };
403
410 {
411 public:
418
419 public:
428
429 public:
430 std::string alias() const;
431 Url newUrl() const;
432 std::string userdata() const;
433 };
434
442 {
443 public:
450
451 public:
460
461 public:
462 std::string executedBy() const;
463 std::string command() const;
464 std::string userdata() const;
465 };
466
467} // namespace zypp
469#endif /* ZYPP_HISTORYLOGDATA_H_ */
Architecture.
Definition Arch.h:37
Store and operate on date (time_t).
Definition Date.h:33
Edition represents [epoch:]version[-release]
Definition Edition.h:61
HistoryLogDataInstall(FieldVector &fields_r)
Ctor moving FieldVector (via swap).
shared_ptr< const HistoryLogDataInstall > constPtr
shared_ptr< HistoryLogDataInstall > Ptr
Index
< indices of known fields
@ REQBY_INDEX
requested by (user@hostname, pid:appname, or empty (solver))
@ ARCH_INDEX
package architecture
@ USERDATA_INDEX
userdata/transactionID
@ REPOALIAS_INDEX
repository providing the package
@ CHEKSUM_INDEX
package checksum
shared_ptr< const HistoryLogDataRemove > constPtr
Index
< indices of known fields
@ REQBY_INDEX
requested by (user@hostname, pid:appname, or empty (solver))
@ ARCH_INDEX
package architecture
@ USERDATA_INDEX
userdata/transactionID
@ EDITION_INDEX
package edition
HistoryLogDataRemove(FieldVector &fields_r)
Ctor moving FieldVector (via swap).
shared_ptr< HistoryLogDataRemove > Ptr
shared_ptr< HistoryLogDataRepoAdd > Ptr
shared_ptr< const HistoryLogDataRepoAdd > constPtr
Index
< indices of known fields
@ ALIAS_INDEX
repository alias
@ USERDATA_INDEX
userdata/transactionID
HistoryLogDataRepoAdd(FieldVector &fields_r)
Ctor moving FieldVector (via swap).
shared_ptr< HistoryLogDataRepoAliasChange > Ptr
@ NEWALIAS_INDEX
repositories new alias
@ USERDATA_INDEX
userdata/transactionID
@ OLDALIAS_INDEX
repositories old alias
shared_ptr< const HistoryLogDataRepoAliasChange > constPtr
HistoryLogDataRepoAliasChange(FieldVector &fields_r)
Ctor moving FieldVector (via swap).
Index
< indices of known fields
@ USERDATA_INDEX
userdata/transactionID
HistoryLogDataRepoRemove(FieldVector &fields_r)
Ctor moving FieldVector (via swap).
shared_ptr< const HistoryLogDataRepoRemove > constPtr
shared_ptr< HistoryLogDataRepoRemove > Ptr
Index
< indices of known fields
@ NEWURL_INDEX
repositories new url
@ USERDATA_INDEX
userdata/transactionID
HistoryLogDataRepoUrlChange(FieldVector &fields_r)
Ctor moving FieldVector (via swap).
shared_ptr< HistoryLogDataRepoUrlChange > Ptr
shared_ptr< const HistoryLogDataRepoUrlChange > constPtr
shared_ptr< HistoryLogDataStampCommand > Ptr
HistoryLogDataStampCommand(FieldVector &fields_r)
Ctor moving FieldVector (via swap).
Index
< indices of known fields
@ COMMAND_INDEX
the commandline executed
@ USER_INDEX
executed by user@hostname
@ USERDATA_INDEX
userdata/transactionID
shared_ptr< const HistoryLogDataStampCommand > constPtr
A zypp history log line split into fields.
static Ptr create(FieldVector &fields_r)
Factory method creating HistoryLogData classes.
HistoryLogData & operator=(const HistoryLogData &)
no base class assign
const_iterator end() const
Iterator pointing behind the last element in vector.
std::vector< std::string > FieldVector
shared_ptr< const HistoryLogData > constPtr
FieldVector::const_iterator const_iterator
const std::string & optionalAt(size_type idx_r) const
Access (optional) field by number.
const_iterator begin() const
Iterator pointing to 1st element in vector (or end()).
FieldVector::size_type size_type
Index
< indices of known fields
@ ACTION_INDEX
HistoryActionID.
const std::string & operator[](size_type idx_r) const
This is an overloaded member function, provided for convenience. It differs from the above function o...
bool empty() const
Whether FieldVector is empty.
RWCOW_pointer< Impl > _pimpl
Implementation class.
HistoryLogData(FieldVector &fields_r, size_type expect_r=2)
Ctor moving FieldVector (via swap).
shared_ptr< HistoryLogData > Ptr
size_type size() const
Number of fields in vector.
shared_ptr< const HistoryLogPatchStateChange > constPtr
Index
< indices of known fields
@ OLDSTATE_INDEX
the state of the patch before the change
@ NEWSTATE_INDEX
the state of the patch after the change
@ REPOALIAS_INDEX
repository providing the patch
@ USERDATA_INDEX
userdata/transactionID
HistoryLogPatchStateChange(FieldVector &fields_r)
Ctor moving FieldVector (via swap).
shared_ptr< HistoryLogPatchStateChange > Ptr
SeverityFlag
Possible severity levels for (security) patches.
Definition Patch.h:76
Url manipulation class.
Definition Url.h:93
String related utilities and Regular expression matching.
Url details namespace.
Definition UrlBase.cc:58
Easy-to use interface to the ZYPP dependency resolver.
std::ostream & operator<<(std::ostream &str, const SerialNumber &obj)
const Arch Arch_armv7hnl Arch_armv7nhl ZYPP_API
Definition Arch.h:247
Enumeration of known history actions.
bool operator==(const HistoryActionID &lhs, const HistoryActionID &rhs)
const std::string & asString(bool pad=false) const
static const HistoryActionID NONE ZYPP_API
static HistoryActionID::ID parse(const std::string &strval_r)
bool operator!=(const HistoryActionID &lhs, const HistoryActionID &rhs)
RW_pointer supporting 'copy on write' functionality.
Definition PtrTypes.h:469
Provides API related macros.