diff options
Diffstat (limited to 'src/zencore/session.cpp')
| -rw-r--r-- | src/zencore/session.cpp | 30 |
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 |