9#ifndef ZYPPNG_PROGRESSOBSERVER_H 
   10#define ZYPPNG_PROGRESSOBSERVER_H 
   12#include <zypp-core/zyppng/base/Base> 
   13#include <zypp-core/zyppng/base/Signals> 
   14#include <zypp-core/zyppng/pipelines/Expected> 
   56    void    inc         ( 
double inc = 1.0, 
const std::optional<std::string> &newLabel = {} );
 
   62    inline static ProgressObserverRef 
makeSubTask( ProgressObserverRef parentProgress, 
float weight = 1.0, 
const std::string &
label = std::string(), 
int steps = 100  ) {
 
   63      if ( parentProgress ) 
return parentProgress->makeSubTask( weight, 
label, 
steps );
 
 
   78    inline static void increase( ProgressObserverRef 
progress,  
double inc = 1.0, 
const std::optional<std::string> &newLabel = {} ) {
 
 
   98    const std::vector<zyppng::ProgressObserverRef> &
children();
 
  101    const std::string &
label () 
const;
 
  103    void registerSubTask ( 
const ProgressObserverRef& child, 
float weight = 1.0 );
 
  105    ProgressObserverRef 
makeSubTask( 
float weight = 1.0 ,
const std::string &
label = std::string(), 
int steps = 100 );
 
 
  119  namespace operators {
 
  130      template <progress_helper_mode mode>
 
  133        progress_helper( ProgressObserverRef &&progressObserver, std::optional<std::string> &&newStr, 
double inc )
 
 
  139        template <
typename T>
 
  142          return std::forward<T>(t);
 
 
 
  173        template <
typename T>
 
  176          return std::forward<T>(t);
 
 
 
  198        template <
typename T>
 
  201          return std::forward<T>(t);
 
 
 
 
  229    inline auto incProgress( ProgressObserverRef progressObserver, 
double progrIncrease = 1.0, std::optional<std::string> newStr = {} ) {
 
  230      return detail::progress_helper<detail::progress_helper_mode::Increase>( std::move(progressObserver), std::move(newStr), progrIncrease );
 
 
  237    inline auto setProgress( ProgressObserverRef progressObserver, 
double progrValue, std::optional<std::string> newStr = {} ) {
 
  238      return detail::progress_helper<detail::progress_helper_mode::Set>( std::move(progressObserver), std::move(newStr), progrValue );
 
 
function< bool(const ProgressData &)> ReceiverFnc
Most simple version of progress reporting The percentage in most cases.
SignalProxy< void(ProgressObserver &sender, double current) > sigValueChanged()
SignalProxy< void(ProgressObserver &sender)> sigStarted()
void inc(double inc=1.0, const std::optional< std::string > &newLabel={})
SignalProxy< void(ProgressObserver &sender, FinishResult result)> sigFinished()
static void setSteps(ProgressObserverRef progress, int steps)
static void increase(ProgressObserverRef progress, double inc=1.0, const std::optional< std::string > &newLabel={})
void setBaseSteps(int steps)
static void setLabel(ProgressObserverRef progress, const std::string &label)
ZYPP_DECL_PRIVATE_CONSTR_ARGS(ProgressObserver, const std::string &label=std::string(), int steps=100)
static void setCurrent(ProgressObserverRef progress, double curr)
static ProgressObserverRef makeSubTask(ProgressObserverRef parentProgress, float weight=1.0, const std::string &label=std::string(), int steps=100)
const std::vector< zyppng::ProgressObserverRef > & children()
SignalProxy< void(ProgressObserver &sender, double steps)> sigStepsChanged()
zypp::ProgressData::ReceiverFnc makeProgressDataReceiver()
const std::string & label() const
static void setup(ProgressObserverRef progress, const std::string &label=std::string(), int steps=100)
static void finish(ProgressObserverRef progress, ProgressObserver::FinishResult result=ProgressObserver::Success)
void setCurrent(double curr)
SignalProxy< void(ProgressObserver &sender, double progress)> sigProgressChanged()
static void start(ProgressObserverRef progress)
void setFinished(FinishResult result=Success)
SignalProxy< void(ProgressObserver &sender, ProgressObserverRef child)> sigNewSubprogress()
void registerSubTask(const ProgressObserverRef &child, float weight=1.0)
SignalProxy< void(ProgressObserver &sender, const std::string &str)> sigLabelChanged()
String related utilities and Regular expression matching.
auto setProgress(ProgressObserverRef progressObserver, double progrValue, std::optional< std::string > newStr={})
auto finishProgress(ProgressObserverRef progressObserver, ProgressObserver::FinishResult result=ProgressObserver::Success)
auto setProgressLabel(ProgressObserverRef progressObserver, std::string newStr)
auto incProgress(ProgressObserverRef progressObserver, double progrIncrease=1.0, std::optional< std::string > newStr={})
auto startProgress(ProgressObserverRef progressObserver)
ProgressObserver::FinishResult _result
ProgressObserverRef _progressObserver
progress_helper(ProgressObserverRef &&progressObserver, ProgressObserver::FinishResult result=ProgressObserver::Success)
progress_helper(ProgressObserverRef &&progressObserver)
ProgressObserverRef _progressObserver
std::optional< std::string > _newString
progress_helper(ProgressObserverRef &&progressObserver, std::optional< std::string > &&newStr, double inc)
ProgressObserverRef _progressObserver
#define ZYPP_ADD_CREATE_FUNC(Class)
#define ZYPP_DECLARE_PRIVATE(Class)
#define ZYPP_FWD_DECL_TYPE_WITH_REFS(T)