aboutsummaryrefslogtreecommitdiff
path: root/src/zencore/session.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zencore/session.cpp')
-rw-r--r--src/zencore/session.cpp30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/zencore/session.cpp b/src/zencore/session.cpp
index 50c47c628..d6386e43b 100644
--- a/src/zencore/session.cpp
+++ b/src/zencore/session.cpp
@@ -12,6 +12,10 @@ static Oid GlobalSessionId;
static Oid::String_t GlobalSessionString;
static std::once_flag SessionInitFlag;
+static Oid GlobalParentSessionId;
+static Oid::String_t GlobalParentSessionString;
+static std::mutex GlobalParentSessionMutex;
+
Oid
GetSessionId()
{
@@ -32,4 +36,30 @@ GetSessionIdString()
return std::string_view(GlobalSessionString, Oid::StringLength);
}
+void
+SetParentSessionId(const Oid& ParentSessionId)
+{
+ std::lock_guard<std::mutex> Lock(GlobalParentSessionMutex);
+ GlobalParentSessionId = ParentSessionId;
+ GlobalParentSessionId.ToString(GlobalParentSessionString);
+}
+
+Oid
+GetParentSessionId()
+{
+ std::lock_guard<std::mutex> Lock(GlobalParentSessionMutex);
+ return GlobalParentSessionId;
+}
+
+std::string_view
+GetParentSessionIdString()
+{
+ std::lock_guard<std::mutex> Lock(GlobalParentSessionMutex);
+ if (GlobalParentSessionId == Oid::Zero)
+ {
+ return {};
+ }
+ return std::string_view(GlobalParentSessionString, Oid::StringLength);
+}
+
} // namespace zen