// UpdateCallbackConsole.h
#ifndef __UPDATE_CALLBACK_CONSOLE_H
#define __UPDATE_CALLBACK_CONSOLE_H
#include "../../../Common/StdOutStream.h"
#include "../Common/Update.h"
#include "PercentPrinter.h"
class CCallbackConsoleBase
{
bool m_WarningsMode;
protected:
CPercentPrinter m_PercentPrinter;
CStdOutStream *OutStream;
HRESULT CanNotFindError_Base(const wchar_t *name, DWORD systemError);
public:
bool EnablePercents;
bool StdOutMode;
CCallbackConsoleBase():
m_PercentPrinter(1 << 16),
StdOutMode(false),
EnablePercents(true),
m_WarningsMode(false)
{}
void Init(CStdOutStream *outStream)
{
FailedFiles.Clear();
FailedCodes.Clear();
OutStream = outStream;
m_PercentPrinter.OutStream = outStream;
}
UStringVector FailedFiles;
CRecordVector<HRESULT> FailedCodes;
UStringVector CantFindFiles;
CRecordVector<HRESULT> CantFindCodes;
};
class CUpdateCallbackConsole: public IUpdateCallbackUI2, public CCallbackConsoleBase
{
bool m_NeedBeClosed;
bool m_NeedNewLine;
public:
#ifndef _NO_CRYPTO
bool PasswordIsDefined;
UString Password;
bool AskPassword;
#endif
CUpdateCallbackConsole()
#ifndef _NO_CRYPTO
:
PasswordIsDefined(false),
AskPassword(false)
#endif
{}
void Init(CStdOutStream *outStream)
{
m_NeedBeClosed = false;
m_NeedNewLine = false;
CCallbackConsoleBase::Init(outStream);
}
~CUpdateCallbackConsole() { Finilize(); }
INTERFACE_IUpdateCallbackUI2(;)
};
#endif