schedule: create 'class Scheduler' with implementation 'class DefaultScheduler'
[model-checker.git] / schedule.h
index 28f5b8d0fa864794f54f6b5788aec859412b8b8f..eb0f68c74be5cdf101fca6f6c6166680c6f21d90 100644 (file)
@@ -4,16 +4,18 @@
 #include "libthreads.h"
 #include "model.h"
 
-struct scheduler {
-       void (*init)(void);
-       void (*exit)(void);
-       void (*add_thread)(struct thread *t);
-       struct thread * (*next_thread)(void);
-       struct thread * (*get_current_thread)(void);
-
-       void *priv;
+class Scheduler {
+public:
+       virtual void add_thread(struct thread *t) = 0;
+       virtual struct thread * next_thread(void) = 0;
+       virtual struct thread * get_current_thread(void) = 0;
 };
 
-void scheduler_init(ModelChecker *mod);
+class DefaultScheduler: public Scheduler {
+public:
+       void add_thread(struct thread *t);
+       struct thread * next_thread(void);
+       struct thread * get_current_thread(void);
+};
 
 #endif /* __SCHEDULE_H__ */