SST 15.0
Structural Simulation Toolkit
stopAction.h
1// Copyright 2009-2025 NTESS. Under the terms
2// of Contract DE-NA0003525 with NTESS, the U.S.
3// Government retains certain rights in this software.
4//
5// Copyright (c) 2009-2025, NTESS
6// All rights reserved.
7//
8// This file is part of the SST software package. For license
9// information, see the LICENSE file in the top level directory of the
10// distribution.
11
12#ifndef SST_CORE_STOPACTION_H
13#define SST_CORE_STOPACTION_H
14
15#include "sst/core/action.h"
16#include "sst/core/output.h"
17
18#include <cinttypes>
19#include <iostream>
20
21namespace SST {
22
23/**
24 * Action which causes the Simulation to end
25 */
26class StopAction : public Action
27{
28private:
29 std::string message;
30 bool print_message;
31
32public:
33 StopAction()
34 {
35 setPriority(STOPACTIONPRIORITY);
36 print_message = false;
37 }
38
39 /** Create a new StopAction which includes a message to be printed when it fires
40 */
41 explicit StopAction(const std::string& msg)
42 {
43 setPriority(STOPACTIONPRIORITY);
44 print_message = true;
45 message = msg;
46 }
47
48 void execute() override
49 {
50 if ( print_message ) {
51 Output::getDefaultObject().output("%s\n", message.c_str());
52 }
54 delete this;
55 }
56
57 void print(const std::string& header, Output& out) const override
58 {
59 out.output("%s StopAction to be delivered at %" PRIu64 "\n", header.c_str(), getDeliveryTime());
60 }
61
62 void serialize_order(SST::Core::Serialization::serializer& ser) override
63 {
64 Action::serialize_order(ser);
65 SST_SER(message);
66 SST_SER(print_message);
67 }
68 ImplementSerializable(SST::StopAction)
69};
70
71} // namespace SST
72
73#endif // SST_CORE_STOPACTION_H
void endSimulation()
Called to signal to the Simulation object to end the simulation.
Definition action.cc:21
void setPriority(uint64_t priority)
Set the priority of the Activity.
Definition activity.h:198
SimTime_t getDeliveryTime() const
Return the time at which this Activity will be delivered.
Definition activity.h:148
This class is basically a wrapper for objects to declare the order in which their members should be s...
Definition serializer.h:45
Output object provides consistent method for outputting data to stdout, stderr and/or sst debug file.
Definition output.h:54
void output(uint32_t line, const char *file, const char *func, const char *format,...) const
Output the message with formatting as specified by the format parameter.
Definition output.h:185
void execute() override
Function which will be called when the time for this Activity comes to pass.
Definition stopAction.h:48
StopAction(const std::string &msg)
Create a new StopAction which includes a message to be printed when it fires.
Definition stopAction.h:41