blob: e89d5de53ccab064e4b319188aab487a38bbb81e [file] [log] [blame] [edit]
#ifndef THIRD_PARTY_MILOTIC_INTERNAL_CC_PROXY_UTILS_THREAD_H_
#define THIRD_PARTY_MILOTIC_INTERNAL_CC_PROXY_UTILS_THREAD_H_
#include "absl/status/status.h"
namespace milotic {
// MiloticThread is an abstract class that defines the interface for a thread.
// It is used to allow different thread implementations to be used in different
// environments. We will use this to allow the use of std::thread in gBMC and
// ClosureThread (thread/thread.h) in google3.
class MiloticThread {
public:
MiloticThread() = default;
virtual absl::Status Start() = 0;
virtual void Join() = 0;
virtual ~MiloticThread() = default;
};
} // namespace milotic
#endif // THIRD_PARTY_MILOTIC_INTERNAL_CC_PROXY_UTILS_THREAD_H_