summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTor Lillqvist <tml@collabora.com>2021-04-27 16:42:15 +0300
committerTor Lillqvist <tml@collabora.com>2021-04-29 14:15:46 +0200
commit04f41048afd7af36428ef6dd849ea3d7c61e2ec9 (patch)
treeda597a9df9dc05a1adca813e54e35e0e7c4be34a
parent576082417393d8be35aea998a13fd3f79551db1c (diff)
Introduce a new class NamedEvent to be used by the upcoming AsyncEvent, too
Don't use the term "profile id" as what we mean is the event *name* (as used in the Chrome Trace Event format). Change-Id: Id58a10f4c5f8a095ae75b9bf74131b70659ee701 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/114783 Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Tor Lillqvist <tml@collabora.com>
-rw-r--r--comphelper/source/misc/traceevent.cxx6
-rw-r--r--include/comphelper/profilezone.hxx7
-rw-r--r--include/comphelper/traceevent.hxx15
3 files changed, 20 insertions, 8 deletions
diff --git a/comphelper/source/misc/traceevent.cxx b/comphelper/source/misc/traceevent.cxx
index d95cb1fd9067..bd8a336d37ea 100644
--- a/comphelper/source/misc/traceevent.cxx
+++ b/comphelper/source/misc/traceevent.cxx
@@ -42,7 +42,7 @@ void TraceEvent::addRecording(const OUString& sObject)
g_aRecording.emplace_back(sObject);
}
-void TraceEvent::addInstantEvent(const char* sProfileId)
+void TraceEvent::addInstantEvent(const char* sName)
{
TimeValue aSystemTime;
osl_getSystemTime(&aSystemTime);
@@ -57,7 +57,7 @@ void TraceEvent::addInstantEvent(const char* sProfileId)
addRecording("{"
"\"name:\""
- + OUString(sProfileId, strlen(sProfileId), RTL_TEXTENCODING_UTF8)
+ + OUString(sName, strlen(sName), RTL_TEXTENCODING_UTF8)
+ "\","
"\"ph\":\"i\","
"\"ts\":"
@@ -106,7 +106,7 @@ void ProfileZone::addRecording()
// Generate a single "Complete Event" (type X)
TraceEvent::addRecording("{"
"\"name\":\""
- + OUString(m_sProfileId, strlen(m_sProfileId), RTL_TEXTENCODING_UTF8)
+ + OUString(m_sName, strlen(m_sName), RTL_TEXTENCODING_UTF8)
+ "\","
"\"ph\":\"X\","
"\"ts\":"
diff --git a/include/comphelper/profilezone.hxx b/include/comphelper/profilezone.hxx
index de38a0dad985..2e0777295aa6 100644
--- a/include/comphelper/profilezone.hxx
+++ b/include/comphelper/profilezone.hxx
@@ -19,11 +19,10 @@
namespace comphelper
{
-class COMPHELPER_DLLPUBLIC ProfileZone : public TraceEvent
+class COMPHELPER_DLLPUBLIC ProfileZone : public NamedEvent
{
static int s_nNesting; // level of nested zones.
- const char *m_sProfileId;
long long m_nCreateTime;
int m_nPid;
int m_nNesting;
@@ -35,8 +34,8 @@ class COMPHELPER_DLLPUBLIC ProfileZone : public TraceEvent
// Note that the char pointer is stored as such in the ProfileZone object and used in the
// destructor, so be sure to pass a pointer that stays valid for the duration of the object's
// lifetime.
- ProfileZone(const char *sProfileId)
- : m_sProfileId(sProfileId ? sProfileId : "(null)")
+ ProfileZone(const char* sName)
+ : NamedEvent(sName)
{
if (s_bRecording)
{
diff --git a/include/comphelper/traceevent.hxx b/include/comphelper/traceevent.hxx
index ff66a834e639..7e988bd063f0 100644
--- a/include/comphelper/traceevent.hxx
+++ b/include/comphelper/traceevent.hxx
@@ -13,6 +13,8 @@
#include <sal/config.h>
#include <atomic>
+#include <memory>
+#include <set>
#include <osl/process.h>
#include <osl/time.h>
@@ -32,7 +34,7 @@ protected:
static void addRecording(const OUString& sObject);
public:
- static void addInstantEvent(const char* sProfileId);
+ static void addInstantEvent(const char* sName);
static void startRecording();
static void stopRecording();
@@ -40,6 +42,17 @@ public:
static css::uno::Sequence<OUString> getRecordingAndClear();
};
+class COMPHELPER_DLLPUBLIC NamedEvent : public TraceEvent
+{
+protected:
+ const char* m_sName;
+
+ NamedEvent(const char* sName)
+ : m_sName(sName ? sName : "(null)")
+ {
+ }
+};
+
} // namespace comphelper
#endif // INCLUDED_COMPHELPER_TRACEEVENT_HXX