32 lines
588 B
C
32 lines
588 B
C
|
// LazyInitializable.h
|
||
|
|
||
|
#ifndef USERLAND_FS_LAZY_INITIALIZABLE_H
|
||
|
#define USERLAND_FS_LAZY_INITIALIZABLE_H
|
||
|
|
||
|
#include <OS.h>
|
||
|
|
||
|
namespace UserlandFSUtil {
|
||
|
|
||
|
class LazyInitializable {
|
||
|
public:
|
||
|
LazyInitializable();
|
||
|
LazyInitializable(bool init);
|
||
|
virtual ~LazyInitializable();
|
||
|
|
||
|
status_t Access();
|
||
|
status_t InitCheck() const;
|
||
|
|
||
|
protected:
|
||
|
virtual status_t FirstTimeInit() = 0;
|
||
|
|
||
|
protected:
|
||
|
status_t fInitStatus;
|
||
|
sem_id fInitSemaphore;
|
||
|
};
|
||
|
|
||
|
} // namespace UserlandFSUtil
|
||
|
|
||
|
using UserlandFSUtil::LazyInitializable;
|
||
|
|
||
|
#endif // USERLAND_FS_LAZY_INITIALIZABLE_H
|