libzypp 17.37.17
reporthelper.h
Go to the documentation of this file.
1/*---------------------------------------------------------------------\
2| ____ _ __ __ ___ |
3| |__ / \ / / . \ . \ |
4| / / \ V /| _/ _/ |
5| / /__ | | | | | | |
6| /_____||_| |_| |_| |
7| |
8\---------------------------------------------------------------------*/
12#ifndef ZYPP_NG_REPORTHELPER_INCLUDED
13#define ZYPP_NG_REPORTHELPER_INCLUDED
14
15#include <zypp-common/PublicKey.h>
16#include <zypp/KeyContext.h>
17#include <zypp/KeyRing.h>
18#include <zypp/Digest.h>
22#include <zypp/ng/context.h>
24
25#include <zypp/ZYppCallbacks.h>
26
27namespace zyppng {
28
30
31 namespace detail {
32 template <typename ContextRefType, typename Report>
34
35 template <typename Report>
36 class ReportHolder<ContextRef, Report>
37 {};
38
39 template <typename Report>
40 class ReportHolder<SyncContextRef, Report>
41 {
42 public:
43 ReportHolder() : _d( std::make_shared<zypp::callback::SendReport<Report>>() ){}
44
45 ReportHolder(const ReportHolder &) = default;
47 ReportHolder &operator=(const ReportHolder &) = default;
49
50 auto &operator->() {
51 return *_d;
52 }
53
54 std::shared_ptr<zypp::callback::SendReport<Report>> _d;
55 };
56 }
57
58 template<typename ZyppContextRef>
60 public:
65
66 const ZyppContextRef &zyppContext() {
67 return _ctx;
68 }
69
70 static constexpr bool async () {
71 return std::is_same<ZyppContextRef, ContextRef>();
72 }
73
74 protected:
75 BasicReportHelper( ZyppContextRef &&ctx );
76 ZyppContextRef _ctx;
77 };
78
79 template<typename ZyppContextRef>
80 class DigestReportHelper : public BasicReportHelper<ZyppContextRef> {
81 public:
82 using BasicReportHelper<ZyppContextRef>::async;
83
84 DigestReportHelper(ZyppContextRef r)
85 : BasicReportHelper<ZyppContextRef>(std::move(r)) {}
86
91
92 bool askUserToAcceptNoDigest ( const zypp::Pathname &file );
93 bool askUserToAccepUnknownDigest ( const zypp::Pathname &file, const std::string &name );
94 bool askUserToAcceptWrongDigest ( const zypp::Pathname &file, const std::string &requested, const std::string &found );
95
96 private:
98 };
99
100 template<typename ZyppContextRef>
101 class KeyRingReportHelper : public BasicReportHelper<ZyppContextRef> {
102 public:
103 using BasicReportHelper<ZyppContextRef>::async;
104
105 KeyRingReportHelper(ZyppContextRef r)
106 : BasicReportHelper<ZyppContextRef>(std::move(r)) {}
107
112
113 // -- Key Ring reports -- //
114
115 bool askUserToAcceptUnsignedFile( const std::string &file, const zypp::KeyContext &keycontext = {} );
116
117 zypp::KeyRingReport::KeyTrust askUserToAcceptKey( const zypp::PublicKey &key, const zypp::KeyContext &keycontext = {} );
118
119 bool askUserToAcceptPackageKey( const zypp::PublicKey &key_r, const zypp::KeyContext &keycontext_r = {} );
120
121 void infoVerify( const std::string & file_r, const zypp::PublicKeyData & keyData_r, const zypp::KeyContext &keycontext = {} );
122
123 void reportAutoImportKey( const std::list<zypp::PublicKeyData> & keyDataList_r, const zypp::PublicKeyData & keySigning_r, const zypp::KeyContext &keyContext_r );
124
125 bool askUserToAcceptVerificationFailed( const std::string &file, const zypp::PublicKey &key, const zypp::KeyContext &keycontext = {} );
126
127 bool askUserToAcceptUnknownKey( const std::string &file, const std::string &id, const zypp::KeyContext &keycontext = {} );
128
129 private:
131
132 };
133
134 template<typename ZyppContextRef>
135 class JobReportHelper : public BasicReportHelper<ZyppContextRef> {
136 public:
137 using BasicReportHelper<ZyppContextRef>::async;
138
139 JobReportHelper(ZyppContextRef r)
140 : BasicReportHelper<ZyppContextRef>(std::move(r)) {}
141
146
148 bool debug( std::string msg_r, UserData userData_r = UserData() );
149
151 bool info( std::string msg_r, UserData userData_r = UserData() );
152
154 bool warning( std::string msg_r, UserData userData_r = UserData() );
155
157 bool error( std::string msg_r, UserData userData_r = UserData() );
158
160 bool important( std::string msg_r, UserData userData_r = UserData() );
161
163 bool data( std::string msg_r, UserData userData_r = UserData() );
164
165 };
166}
167
168
169#endif //ZYPP_NG_REPORTHELPER_INCLUDED
BasicReportHelper(const BasicReportHelper &)=default
BasicReportHelper(BasicReportHelper &&)=default
static constexpr bool async()
const ZyppContextRef & zyppContext()
BasicReportHelper & operator=(BasicReportHelper &&)=default
BasicReportHelper & operator=(const BasicReportHelper &)=default
DigestReportHelper & operator=(const DigestReportHelper &)=default
bool askUserToAccepUnknownDigest(const zypp::Pathname &file, const std::string &name)
DigestReportHelper(ZyppContextRef r)
detail::ReportHolder< ZyppContextRef, zypp::DigestReport > _report
DigestReportHelper(DigestReportHelper &&)=default
DigestReportHelper(const DigestReportHelper &)=default
bool askUserToAcceptWrongDigest(const zypp::Pathname &file, const std::string &requested, const std::string &found)
bool askUserToAcceptNoDigest(const zypp::Pathname &file)
DigestReportHelper & operator=(DigestReportHelper &&)=default
bool important(std::string msg_r, UserData userData_r=UserData())
send important message text
JobReportHelper & operator=(const JobReportHelper &)=default
JobReportHelper(ZyppContextRef r)
bool error(std::string msg_r, UserData userData_r=UserData())
send error text
bool warning(std::string msg_r, UserData userData_r=UserData())
send warning text
JobReportHelper(JobReportHelper &&)=default
JobReportHelper & operator=(JobReportHelper &&)=default
bool debug(std::string msg_r, UserData userData_r=UserData())
send debug message text
bool data(std::string msg_r, UserData userData_r=UserData())
send data message
bool info(std::string msg_r, UserData userData_r=UserData())
send message text
JobReportHelper(const JobReportHelper &)=default
KeyRingReportHelper & operator=(const KeyRingReportHelper &)=default
bool askUserToAcceptPackageKey(const zypp::PublicKey &key_r, const zypp::KeyContext &keycontext_r={})
void reportAutoImportKey(const std::list< zypp::PublicKeyData > &keyDataList_r, const zypp::PublicKeyData &keySigning_r, const zypp::KeyContext &keyContext_r)
bool askUserToAcceptUnsignedFile(const std::string &file, const zypp::KeyContext &keycontext={})
KeyRingReportHelper & operator=(KeyRingReportHelper &&)=default
void infoVerify(const std::string &file_r, const zypp::PublicKeyData &keyData_r, const zypp::KeyContext &keycontext={})
KeyRingReportHelper(KeyRingReportHelper &&)=default
detail::ReportHolder< ZyppContextRef, zypp::KeyRingReport > _report
bool askUserToAcceptVerificationFailed(const std::string &file, const zypp::PublicKey &key, const zypp::KeyContext &keycontext={})
KeyRingReportHelper(const KeyRingReportHelper &)=default
zypp::KeyRingReport::KeyTrust askUserToAcceptKey(const zypp::PublicKey &key, const zypp::KeyContext &keycontext={})
bool askUserToAcceptUnknownKey(const std::string &file, const std::string &id, const zypp::KeyContext &keycontext={})
KeyRingReportHelper(ZyppContextRef r)
ReportHolder & operator=(const ReportHolder &)=default
std::shared_ptr< zypp::callback::SendReport< Report > > _d
ReportHolder & operator=(ReportHolder &&)=default
Definition Arch.h:364
Callbacks light.
Definition Callback.h:146
Easy-to use interface to the ZYPP dependency resolver.
zypp::callback::UserData UserData
Definition userrequest.h:18
KeyTrust
User reply options for the askUserToTrustKey callback.
Definition KeyRing.h:54
#define ZYPP_FWD_DECL_REFS(T)
Definition zyppglobal.h:119