STAMINA/STORM 0.1
Infinite state-space truncator which generates a probability within a window
BaseThread.h
1
7#ifndef STAMINA_BUILDER_THREADS_BASETHREAD_H
8#define STAMINA_BUILDER_THREADS_BASETHREAD_H
9
10#include <thread>
11#include <shared_mutex>
12
13#include "stamina/builder/__storm_needed_for_builder.h"
14
15namespace stamina {
16 namespace builder {
17 // Forward-declare StaminaModelBuilder class
18 template<typename ValueType, typename RewardModelType, typename StateType>
19 class StaminaModelBuilder;
20
21 namespace threads {
22 using namespace storm::builder;
27 template <typename StateType, typename RewardModelType, typename ValueType>
28 class BaseThread {
29 public:
40 virtual void mainLoop() = 0;
44 void startThread();
54 void join();
55 void terminate();
56 protected:
57 bool finished;
58 private:
60 std::thread * threadLoop;
61 };
62 } // namespace threads
63 } // namespace builder
64} // namespace stamina
65
66
67#endif // STAMINA_BUILDER_THREADS_BASETHREAD_H
Definition: BaseThread.h:28
BaseThread(StaminaModelBuilder< ValueType, RewardModelType, StateType > *parent)
Definition: BaseThread.cpp:10
const StaminaModelBuilder< ValueType, RewardModelType, StateType > * getParent()
Definition: BaseThread.cpp:21
void startThread()
Definition: BaseThread.cpp:27
Definition: ExplicitTruncatedModelBuilder.cpp:40