SST 12.1.0
Structural Simulation Toolkit
stopAction.h
1// Copyright 2009-2022 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-2022, 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:
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 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 ) { Output::getDefaultObject().output("%s\n", message.c_str()); }
52 }
53
54 void print(const std::string& header, Output& out) const override
55 {
56 out.output("%s StopAction to be delivered at %" PRIu64 "\n", header.c_str(), getDeliveryTime());
57 }
58};
59
60} // namespace SST
61
62#endif // SST_CORE_STOPACTION_H
An Action is a schedulable Activity which is not an Event.
Definition: action.h:27
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:181
SimTime_t getDeliveryTime() const
Return the time at which this Activity will be delivered.
Definition: activity.h:144
Output object provides consistent method for outputting data to stdout, stderr and/or sst debug file.
Definition: output.h:52
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:182
Action which causes the Simulation to end.
Definition: stopAction.h:27
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