| #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_ |