#include "Warnings.h"
#include <stdio.h>
Warnings::Warnings()
: fWarnings()
{
}
Warnings::~Warnings()
{
for (int32 i = 0; BString* warning = (BString*)fWarnings.ItemAt(i); i++)
delete warning;
}
Warnings*
Warnings::GetCurrentWarnings()
{
return fCurrentWarnings;
}
void
Warnings::SetCurrentWarnings(Warnings* warnings)
{
fCurrentWarnings = warnings;
}
void
Warnings::AddWarning(BString warning)
{
fWarnings.AddItem(new BString(warning));
}
void
Warnings::AddWarning(const char* format,...)
{
va_list args;
va_start(args, format);
AddWarningV(format, args);
va_end(args);
}
void
Warnings::AddWarningV(const char* format, va_list arg)
{
char buffer[2048];
vsprintf(buffer, format, arg);
AddWarning(BString(buffer));
}
void
Warnings::AddCurrentWarning(BString warning)
{
if (Warnings* currentWarnings = GetCurrentWarnings())
currentWarnings->AddWarning(warning);
}
void
Warnings::AddCurrentWarning(const char* format,...)
{
va_list args;
va_start(args, format);
AddCurrentWarningV(format, args);
va_end(args);
}
void
Warnings::AddCurrentWarningV(const char* format, va_list arg)
{
char buffer[2048];
vsprintf(buffer, format, arg);
AddCurrentWarning(BString(buffer));
}
int32
Warnings::CountWarnings() const
{
return fWarnings.CountItems();
}
const char*
Warnings::WarningAt(int32 index) const
{
const char* result = NULL;
if (BString* warning = (BString*)fWarnings.ItemAt(index))
result = warning->String();
return result;
}
Warnings* Warnings::fCurrentWarnings = NULL;