403Webshell
Server IP : 216.92.14.13  /  Your IP : 216.73.217.126
Web Server : Apache
System : Linux vps4089.pairvps.com 5.15.0-190-generic #200-Ubuntu SMP Fri Aug 7 15:06:04 UTC 2026 x86_64
User : rmlac2fmr ( 1040637)
PHP Version : 8.2.32
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /usr/include/apt-pkg/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/include/apt-pkg/install-progress.h
#ifndef PKGLIB_IPROGRESS_H
#define PKGLIB_IPROGRESS_H

#include <apt-pkg/macros.h>

#include <string>
#include <vector>
#include <signal.h>
#include <unistd.h>

namespace APT {
namespace Progress {

 class PackageManager;
 APT_PUBLIC PackageManager* PackageManagerProgressFactory();

 class APT_PUBLIC PackageManager
 {
 private:
    /** \brief dpointer placeholder */
    void * const d;

 protected:
    std::string progress_str;
    float percentage;
    int last_reported_progress;

 public:
    PackageManager();
    virtual ~PackageManager();

    /* Global Start/Stop */
    virtual void Start(int /*child_pty*/=-1) {};
    virtual void Stop() {};

    /* When dpkg is invoked (may happen multiple times for each
     * install/remove block
    */
    virtual void StartDpkg() {};

    virtual pid_t fork() {return ::fork(); };

    virtual void Pulse() {};
    virtual long GetPulseInterval() {
         return 50000000;
    };

    virtual bool StatusChanged(std::string PackageName,
                               unsigned int StepsDone,
                               unsigned int TotalSteps,
                               std::string HumanReadableAction);
    virtual void Error(std::string /*PackageName*/,
                       unsigned int /*StepsDone*/,
                       unsigned int /*TotalSteps*/,
                       std::string /*ErrorMessage*/) {}
    virtual void ConffilePrompt(std::string /*PackageName*/,
                                unsigned int /*StepsDone*/,
                                unsigned int /*TotalSteps*/,
                                std::string /*ConfMessage*/) {}
 };

 class APT_PUBLIC PackageManagerProgressFd : public PackageManager
 {
    void * const d;
 protected:
    int OutStatusFd;
    int StepsDone;
    int StepsTotal;
    void WriteToStatusFd(std::string msg);

 public:
    explicit PackageManagerProgressFd(int progress_fd);
    virtual ~PackageManagerProgressFd();

    virtual void StartDpkg() APT_OVERRIDE;
    virtual void Stop() APT_OVERRIDE;

    virtual bool StatusChanged(std::string PackageName,
                               unsigned int StepsDone,
                               unsigned int TotalSteps,
                               std::string HumanReadableAction) APT_OVERRIDE;
    virtual void Error(std::string PackageName,
                       unsigned int StepsDone,
                       unsigned int TotalSteps,
                          std::string ErrorMessage) APT_OVERRIDE;
    virtual void ConffilePrompt(std::string PackageName,
                                unsigned int StepsDone,
                                unsigned int TotalSteps,
                                   std::string ConfMessage) APT_OVERRIDE;

 };

 class APT_PUBLIC PackageManagerProgressDeb822Fd : public PackageManager
 {
    void * const d;
 protected:
    int OutStatusFd;
    int StepsDone;
    int StepsTotal;
    void WriteToStatusFd(std::string msg);

 public:
    explicit PackageManagerProgressDeb822Fd(int progress_fd);
    virtual ~PackageManagerProgressDeb822Fd();

    virtual void StartDpkg() APT_OVERRIDE;
    virtual void Stop() APT_OVERRIDE;

    virtual bool StatusChanged(std::string PackageName,
                               unsigned int StepsDone,
                               unsigned int TotalSteps,
                               std::string HumanReadableAction) APT_OVERRIDE;
    virtual void Error(std::string PackageName,
                       unsigned int StepsDone,
                       unsigned int TotalSteps,
                          std::string ErrorMessage) APT_OVERRIDE;
    virtual void ConffilePrompt(std::string PackageName,
                                unsigned int StepsDone,
                                unsigned int TotalSteps,
                                   std::string ConfMessage) APT_OVERRIDE;
 };

 class APT_PUBLIC PackageManagerFancy : public PackageManager
 {
    void * const d;
 private:
    APT_HIDDEN static void staticSIGWINCH(int);
    static std::vector<PackageManagerFancy*> instances;
    static sighandler_t SIGWINCH_orig;
    static volatile sig_atomic_t SIGWINCH_flag;
    APT_HIDDEN void CheckSIGWINCH();
    APT_HIDDEN bool DrawStatusLine();

 protected:
    void SetupTerminalScrollArea(int nr_rows);
    void HandleSIGWINCH(int); // for abi compatibility, do not use

    typedef struct {
       int rows;
       int columns;
    } TermSize;
    TermSize GetTerminalSize();

    sighandler_t old_SIGWINCH; // for abi compatibility, do not use
    int child_pty;

 public:
    PackageManagerFancy();
    virtual ~PackageManagerFancy();
    virtual void Pulse() APT_OVERRIDE;
    virtual void Start(int child_pty=-1) APT_OVERRIDE;
    virtual void Stop() APT_OVERRIDE;
    virtual bool StatusChanged(std::string PackageName,
                               unsigned int StepsDone,
                               unsigned int TotalSteps,
                               std::string HumanReadableAction) APT_OVERRIDE;

    // return a progress bar of the given size for the given progress 
    // percent between 0.0 and 1.0 in the form "[####...]"
    static std::string GetTextProgressStr(float percent, int OutputSize);
 };

 class APT_PUBLIC PackageManagerText : public PackageManager
 {
    void * const d;
 public:
    virtual bool StatusChanged(std::string PackageName,
                               unsigned int StepsDone,
                               unsigned int TotalSteps,
                               std::string HumanReadableAction) APT_OVERRIDE;

    PackageManagerText();
    virtual ~PackageManagerText();
 };


} // namespace Progress
} // namespace APT

#endif

Youez - 2016 - github.com/yon3zu
LinuXploit