diff options
-rw-r--r-- | desktop/Library_sofficeapp.mk | 1 | ||||
-rw-r--r-- | desktop/inc/lib/init.hxx | 2 | ||||
-rw-r--r-- | desktop/source/app/crashreport.cxx | 33 | ||||
-rw-r--r-- | desktop/source/app/sofficemain.cxx | 2 | ||||
-rw-r--r-- | desktop/source/app/sofficemain.h | 2 | ||||
-rw-r--r-- | desktop/source/pkgchk/unopkg/unopkg_app.cxx | 2 | ||||
-rw-r--r-- | desktop/source/pkgchk/unopkg/unopkg_main.h | 2 | ||||
-rw-r--r-- | include/desktop/crashreport.hxx | 57 | ||||
-rw-r--r-- | include/desktop/dllapi.h (renamed from desktop/source/inc/desktopdllapi.h) | 0 |
9 files changed, 96 insertions, 5 deletions
diff --git a/desktop/Library_sofficeapp.mk b/desktop/Library_sofficeapp.mk index 13b81153ad6b..c7e1e69fbb37 100644 --- a/desktop/Library_sofficeapp.mk +++ b/desktop/Library_sofficeapp.mk @@ -87,6 +87,7 @@ $(eval $(call gb_Library_add_exception_objects,sofficeapp,\ desktop/source/app/check_ext_deps \ desktop/source/app/cmdlineargs \ desktop/source/app/cmdlinehelp \ + desktop/source/app/crashreport \ desktop/source/app/desktopcontext \ desktop/source/app/desktopresid \ desktop/source/app/dispatchwatcher \ diff --git a/desktop/inc/lib/init.hxx b/desktop/inc/lib/init.hxx index d07729731b39..5b386e4820d7 100644 --- a/desktop/inc/lib/init.hxx +++ b/desktop/inc/lib/init.hxx @@ -16,7 +16,7 @@ #include <com/sun/star/lang/XComponent.hpp> #include <memory> #include <map> -#include "../../source/inc/desktopdllapi.h" +#include <desktop/dllapi.h> #include <osl/thread.h> class LOKInteractionHandler; diff --git a/desktop/source/app/crashreport.cxx b/desktop/source/app/crashreport.cxx new file mode 100644 index 000000000000..0bde05979a72 --- /dev/null +++ b/desktop/source/app/crashreport.cxx @@ -0,0 +1,33 @@ +/* -*- 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/. + */ + +#include <desktop/crashreport.hxx> + +#include <string> +#include <fstream> + +osl::Mutex CrashReporter::maMutex; + +#if HAVE_FEATURE_BREAKPAD +void CrashReporter::AddKeyValue(const OUString& rKey, const OUString& rValue) +{ + osl::MutexGuard aGuard(maMutex); + std::string ini_path = getIniFileName(); + std::ofstream ini_file(ini_path, std::ios_base::app); + ini_file << rtl::OUStringToOString(rKey, RTL_TEXTENCODING_UTF8).getStr() << "="; + ini_file << rtl::OUStringToOString(rValue, RTL_TEXTENCODING_UTF8).getStr() << "\n"; +} +#endif + +const char* CrashReporter::getIniFileName() +{ + return "/tmp/dump.ini"; +} + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/desktop/source/app/sofficemain.cxx b/desktop/source/app/sofficemain.cxx index abdcd3777fcb..7acd97c1af01 100644 --- a/desktop/source/app/sofficemain.cxx +++ b/desktop/source/app/sofficemain.cxx @@ -21,7 +21,7 @@ #include <config_features.h> #include <config_folders.h> -#include "desktopdllapi.h" +#include <desktop/dllapi.h> #include "app.hxx" #include "exithelper.h" diff --git a/desktop/source/app/sofficemain.h b/desktop/source/app/sofficemain.h index d0a9988a5c7f..c291df7af295 100644 --- a/desktop/source/app/sofficemain.h +++ b/desktop/source/app/sofficemain.h @@ -20,7 +20,7 @@ #ifndef INCLUDED_DESKTOP_SOURCE_APP_SOFFICEMAIN_H #define INCLUDED_DESKTOP_SOURCE_APP_SOFFICEMAIN_H -#include "desktopdllapi.h" +#include <desktop/dllapi.h> #if defined __cplusplus extern "C" { diff --git a/desktop/source/pkgchk/unopkg/unopkg_app.cxx b/desktop/source/pkgchk/unopkg/unopkg_app.cxx index d3afd077f73e..93fa127fbba7 100644 --- a/desktop/source/pkgchk/unopkg/unopkg_app.cxx +++ b/desktop/source/pkgchk/unopkg/unopkg_app.cxx @@ -18,7 +18,7 @@ */ -#include "desktopdllapi.h" +#include <desktop/dllapi.h> #include "dp_misc.h" #include "unopkg_main.h" #include "unopkg_shared.h" diff --git a/desktop/source/pkgchk/unopkg/unopkg_main.h b/desktop/source/pkgchk/unopkg/unopkg_main.h index 6cac46a08480..bfd9ee69b376 100644 --- a/desktop/source/pkgchk/unopkg/unopkg_main.h +++ b/desktop/source/pkgchk/unopkg/unopkg_main.h @@ -20,7 +20,7 @@ #ifndef INCLUDED_DESKTOP_SOURCE_PKGCHK_UNOPKG_UNOPKG_MAIN_H #define INCLUDED_DESKTOP_SOURCE_PKGCHK_UNOPKG_UNOPKG_MAIN_H -#include "desktopdllapi.h" +#include <desktop/dllapi.h> #if defined __cplusplus extern "C" { diff --git a/include/desktop/crashreport.hxx b/include/desktop/crashreport.hxx new file mode 100644 index 000000000000..ace76c772816 --- /dev/null +++ b/include/desktop/crashreport.hxx @@ -0,0 +1,57 @@ +/* -*- 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/. + */ + +#ifndef INCLUDED_DESKTOP_CRASHREPORT_HXX +#define INCLUDED_DESKTOP_CRASHREPORT_HXX + +#include <desktop/dllapi.h> + +#include <rtl/ustring.hxx> +#include <osl/mutex.hxx> + +#include <config_features.h> + +#include <map> + +/** + * Provides access to the crash reporter service. + * + * Valid keys are: + * * AdapterVendorId + * * AdapterDeviceId + * + */ +class DESKTOP_DLLPUBLIC CrashReporter +{ +public: + static void AddKeyValue(const OUString& rKey, const OUString& rValue); + + const char* getIniFileName(); + +private: + + static std::map<OUString, OUString> maValueMap; + + static osl::Mutex maMutex; +}; + +// Add dummy methods for the non-breakpad case. That allows us to use +// the code without linking to the lib and without adding HAVE_FEATURE_BREAKPAD +// everywhere we want to log something to the crash report system. +#if HAVE_FEATURE_BREAKPAD +#else +void CrashReporter::AddKeyValue(const OUString& /*rKey*/, const OUString& /*rValue*/) +{ +} +#endif + + +#endif + +/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/desktop/source/inc/desktopdllapi.h b/include/desktop/dllapi.h index ebc75f1214ac..ebc75f1214ac 100644 --- a/desktop/source/inc/desktopdllapi.h +++ b/include/desktop/dllapi.h |