1
0
Fork 0
libreoffice/comphelper/source/misc/errcode.cxx
Daniel Baumann 8e63e14cf6
Adding upstream version 4:25.2.3.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
2025-06-22 16:20:04 +02:00

174 lines
5.1 KiB
C++

/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/*
* This file is part of the LibreOffice project.
*
* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
*
* This file incorporates work covered by the following license notice:
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed
* with this work for additional information regarding copyright
* ownership. The ASF licenses this file to you under the Apache
* License, Version 2.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.apache.org/licenses/LICENSE-2.0 .
*/
#include <comphelper/errcode.hxx>
#include <rtl/ustrbuf.hxx>
#include <o3tl/runtimetooustring.hxx>
UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) OUString ErrCode::toString() const
{
std::u16string_view pWarningError;
if (IsWarning())
pWarningError = u"Warning";
else
pWarningError = u"Error";
std::u16string_view pArea;
switch (GetArea())
{
case ErrCodeArea::Io:
pArea = u"Io";
break;
case ErrCodeArea::Sfx:
pArea = u"Sfx";
break;
case ErrCodeArea::Inet:
pArea = u"Inet";
break;
case ErrCodeArea::Vcl:
pArea = u"Vcl";
break;
case ErrCodeArea::Svx:
pArea = u"Svx";
break;
case ErrCodeArea::So:
pArea = u"So";
break;
case ErrCodeArea::Sbx:
pArea = u"Sbx";
break;
case ErrCodeArea::Uui:
pArea = u"Uui";
break;
case ErrCodeArea::Sc:
pArea = u"Sc";
break;
case ErrCodeArea::Sd:
pArea = u"Sd";
break;
case ErrCodeArea::Sw:
pArea = u"Sw";
break;
}
std::u16string_view pClass;
switch (GetClass())
{
case ErrCodeClass::NONE:
pClass = u"NONE";
break;
case ErrCodeClass::Abort:
pClass = u"Abort";
break;
case ErrCodeClass::General:
pClass = u"General";
break;
case ErrCodeClass::NotExists:
pClass = u"NotExists";
break;
case ErrCodeClass::AlreadyExists:
pClass = u"AlreadyExists";
break;
case ErrCodeClass::Access:
pClass = u"Access";
break;
case ErrCodeClass::Path:
pClass = u"Path";
break;
case ErrCodeClass::Locking:
pClass = u"Locking";
break;
case ErrCodeClass::Parameter:
pClass = u"Parameter";
break;
case ErrCodeClass::Space:
pClass = u"Space";
break;
case ErrCodeClass::NotSupported:
pClass = u"NotSupported";
break;
case ErrCodeClass::Read:
pClass = u"Read";
break;
case ErrCodeClass::Write:
pClass = u"Write";
break;
case ErrCodeClass::Unknown:
pClass = u"Unknown";
break;
case ErrCodeClass::Version:
pClass = u"Version";
break;
case ErrCodeClass::Format:
pClass = u"Format";
break;
case ErrCodeClass::Create:
pClass = u"Create";
break;
case ErrCodeClass::Import:
pClass = u"Import";
break;
case ErrCodeClass::Export:
pClass = u"Export";
break;
case ErrCodeClass::So:
pClass = u"So";
break;
case ErrCodeClass::Sbx:
pClass = u"Sbx";
break;
case ErrCodeClass::Runtime:
pClass = u"Runtime";
break;
case ErrCodeClass::Compiler:
pClass = u"Compiler";
break;
}
return toHexString() + "(" + pWarningError + " Area:" + pArea + " Class:" + pClass
+ " Code:" + OUString::number(GetCode()) + ")";
}
COMPHELPER_DLLPUBLIC std::ostream& operator<<(std::ostream& os, const ErrCode& err)
{
os << err.toString();
return os;
}
UNLESS_MERGELIBS(COMPHELPER_DLLPUBLIC) OUString ErrCodeMsg::toString() const
{
OUString s = mnCode.toString();
if (!maArg1.isEmpty())
s += " arg1=" + maArg1;
if (!maArg2.isEmpty())
s += " arg2=" + maArg2;
#ifdef LIBO_ERRMSG_USE_SOURCE_LOCATION
if (!moLoc)
s += OUString::Concat(" func=") + o3tl::runtimeToOUString(moLoc->function_name()) + " src="
+ o3tl::runtimeToOUString(moLoc->file_name()) + ":" + OUString::number(moLoc->line());
#endif
return s;
}
COMPHELPER_DLLPUBLIC std::ostream& operator<<(std::ostream& os, const ErrCodeMsg& err)
{
os << err.toString();
return os;
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */