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-28 16:48:00 +0200
commit9e5b04d1e8c49d5f95173b5074368b1aa24a1e64 (patch)
treedf72f97fe9e7c64f790a98800aeaa104268c7e23
parent92c37610fa6e9fdeebee33a8baf0faf0bb731101 (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/+/114755 Tested-by: Tor Lillqvist <tml@collabora.com> Reviewed-by: Tor Lillqvist <tml@collabora.com>
-rw-r--r--comphelper/source/misc/traceevent.cxx8
-rw-r--r--include/comphelper/profilezone.hxx7
-rw-r--r--include/comphelper/traceevent.hxx15
3 files changed, 21 insertions, 9 deletions
diff --git a/comphelper/source/misc/traceevent.cxx b/comphelper/source/misc/traceevent.cxx
index efe1378d9364..9febf71e2db7 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\":"
@@ -125,7 +125,7 @@ void ProfileZone::addRecording()
void ProfileZone::stopConsole()
{
sal_uInt32 nEndTime = osl_getGlobalTimer();
- std::cerr << "comphelper::ProfileZone: " << m_sProfileId << " finished in "
+ std::cerr << "comphelper::ProfileZone: " << m_sName << " finished in "
<< nEndTime - m_nCreateTime << " ms" << std::endl;
}
diff --git a/include/comphelper/profilezone.hxx b/include/comphelper/profilezone.hxx
index dec5b35928bc..8ef851cfaea1 100644
--- a/include/comphelper/profilezone.hxx
+++ b/include/comphelper/profilezone.hxx
@@ -18,11 +18,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;
bool m_bConsole;
void stopConsole();
@@ -47,8 +46,8 @@ public:
* Similar to the DEBUG macro in sal/log.hxx, don't forget to remove these lines before
* committing.
*/
- ProfileZone(const char* sProfileId, bool bConsole = false)
- : m_sProfileId(sProfileId ? sProfileId : "(null)")
+ ProfileZone(const char* sName, bool bConsole = false)
+ : NamedEvent(sName)
, m_bConsole(bConsole)
{
if (s_bRecording || m_bConsole)
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