Stroika Library 3.0d16
 
Loading...
Searching...
No Matches
Activity.cpp
1/*
2 * Copyright(c) Sophist Solutions, Inc. 1990-2025. All rights reserved
3 */
4#include "Stroika/Foundation/StroikaPreComp.h"
5
6#include <list>
7
8#include "Activity.h"
9
10using namespace Stroika::Foundation;
12using namespace Stroika::Foundation::Execution;
13
14/*
15 ********************************************************************************
16 ****************** Execution::CaptureCurrentActivities *************************
17 ********************************************************************************
18 */
20{
21 list<Activity<>> rv;
22 // no locks needed because thread local
23 for (const Private_::Activities_::StackElt_* si = Private_::Activities_::sTop_; si != nullptr; si = si->fPrev) {
24 AssertNotNull (si->fActivity);
25 rv.push_front (Activity<>{si->fActivity->AsString ()}); // push_front to reverse the list
26 }
28 for (auto i = rv.begin (); i != rv.end (); ++i) {
29 result.Push (*i);
30 }
31 return result;
32}
#define AssertNotNull(p)
Definition Assertions.h:333
nonvirtual void Push(ArgByValueType< value_type > item)
Definition Stack.inl:59
Containers::Stack< Activity<> > CaptureCurrentActivities()
Returns a copyable preservable version of the current activities stack.
Definition Activity.cpp:19