Source code

Revision control

Copy as Markdown

Other Tools

// UpdateCallbackConsole.h↩
#ifndef __UPDATE_CALLBACK_CONSOLE_H↩
#define __UPDATE_CALLBACK_CONSOLE_H↩
#include "../../../Common/StdOutStream.h"
#include "../Common/Update.h"
#include "PercentPrinter.h"
struct CErrorPathCodes↩
{↩
FStringVector Paths;↩
CRecordVector<DWORD> Codes;↩
void AddError(const FString &path, DWORD systemError)↩
{↩
Paths.Add(path);↩
Codes.Add(systemError);↩
}↩
void Clear()↩
{↩
Paths.Clear();↩
Codes.Clear();↩
}↩
};↩
class CCallbackConsoleBase↩
{↩
protected:↩
CPercentPrinter _percent;↩
CStdOutStream *_so;↩
CStdOutStream *_se;↩
void CommonError(const FString &path, DWORD systemError, bool isWarning);↩
HRESULT ScanError_Base(const FString &path, DWORD systemError);↩
HRESULT OpenFileError_Base(const FString &name, DWORD systemError);↩
HRESULT ReadingFileError_Base(const FString &name, DWORD systemError);↩
public:↩
bool NeedPercents() const { return _percent._so != NULL; };↩
bool StdOutMode;↩
bool NeedFlush;↩
unsigned PercentsNameLevel;↩
unsigned LogLevel;↩
AString _tempA;↩
UString _tempU;↩
CCallbackConsoleBase():↩
StdOutMode(false),↩
NeedFlush(false),↩
PercentsNameLevel(1),↩
LogLevel(0)↩
{}↩
void SetWindowWidth(unsigned width) { _percent.MaxLen = width - 1; }↩
void Init(CStdOutStream *outStream, CStdOutStream *errorStream, CStdOutStream *percentStream)↩
{↩
FailedFiles.Clear();↩
_so = outStream;↩
_se = errorStream;↩
_percent._so = percentStream;↩
}↩
void ClosePercents2()↩
{↩
if (NeedPercents())↩
_percent.ClosePrint(true);↩
}↩
void ClosePercents_for_so()↩
{↩
if (NeedPercents() && _so == _percent._so)↩
_percent.ClosePrint(false);↩
}↩
CErrorPathCodes FailedFiles;↩
CErrorPathCodes ScanErrors;↩
HRESULT PrintProgress(const wchar_t *name, const char *command, bool showInLog);↩
};↩
class CUpdateCallbackConsole: public IUpdateCallbackUI2, public CCallbackConsoleBase↩
{↩
// void PrintPropPair(const char *name, const wchar_t *val);↩
public:↩
#ifndef _NO_CRYPTO↩
bool PasswordIsDefined;↩
UString Password;↩
bool AskPassword;↩
#endif
bool DeleteMessageWasShown;↩
CUpdateCallbackConsole()↩
: DeleteMessageWasShown(false)↩
#ifndef _NO_CRYPTO↩
, PasswordIsDefined(false)↩
, AskPassword(false)↩
#endif
{}↩
/*↩
void Init(CStdOutStream *outStream)↩
{↩
CCallbackConsoleBase::Init(outStream);↩
}↩
*/
// ~CUpdateCallbackConsole() { if (NeedPercents()) _percent.ClosePrint(); }↩
INTERFACE_IUpdateCallbackUI2(;)↩
};↩
#endif