summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--desktop/Library_sofficeapp.mk1
-rw-r--r--desktop/inc/lib/init.hxx2
-rw-r--r--desktop/source/app/crashreport.cxx33
-rw-r--r--desktop/source/app/sofficemain.cxx2
-rw-r--r--desktop/source/app/sofficemain.h2
-rw-r--r--desktop/source/pkgchk/unopkg/unopkg_app.cxx2
-rw-r--r--desktop/source/pkgchk/unopkg/unopkg_main.h2
-rw-r--r--include/desktop/crashreport.hxx57
-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