haiku/src/apps/softwareupdater/CheckManager.h

81 lines
2.2 KiB
C++

/*
* Copyright 2013-2017, Haiku, Inc. All Rights Reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Ingo Weinhold <ingo_weinhold@gmx.de>
* Rene Gollent <rene@gollent.com>
* Brian Hill <supernova@tycho.email>
*/
#ifndef CHECK_MANAGER_H
#define CHECK_MANAGER_H
#include <Bitmap.h>
#include <package/DaemonClient.h>
#include <package/manager/PackageManager.h>
#include "constants.h"
#include "SoftwareUpdaterWindow.h"
class ProblemWindow;
//using namespace BPackageKit;
using BPackageKit::BPackageInstallationLocation;
using BPackageKit::BPrivate::BDaemonClient;
using BPackageKit::BManager::BPrivate::BPackageManager;
class CheckManager : public BPackageManager,
private BPackageManager::UserInteractionHandler {
public:
CheckManager(
BPackageInstallationLocation location,
bool verbose);
void CheckNetworkConnection();
virtual void JobFailed(BSupportKit::BJob* job);
virtual void JobAborted(BSupportKit::BJob* job);
void NoUpdatesNotification();
private:
// UserInteractionHandler
virtual void HandleProblems();
virtual void ConfirmChanges(bool fromMostSpecific);
virtual void Warn(status_t error, const char* format, ...);
virtual void ProgressPackageDownloadStarted(
const char* packageName);
virtual void ProgressPackageDownloadActive(
const char* packageName,
float completionPercentage,
off_t bytes, off_t totalBytes);
virtual void ProgressPackageDownloadComplete(
const char* packageName);
virtual void ProgressPackageChecksumStarted(
const char* packageName);
virtual void ProgressPackageChecksumComplete(
const char* packageName);
private:
void _CountUpdates(InstalledRepository&
installationRepository,
int32& updateCount);
void _SendNotification(const char* title,
const char* text);
private:
BPackageManager::ClientInstallationInterface
fClientInstallationInterface;
ProblemWindow* fProblemWindow;
bool fVerbose;
BString fNotificationId;
BString fHeaderChecking;
BString fTextContacting;
};
#endif // CHECK_MANAGER_H