/users/dtb26/GITROOT/VetSim-Core/include/execution.h

00001 
00023 #ifndef EXECUTION_H_
00024 #define EXECUTION_H_
00025 
00026 #ifdef __cplusplus
00027 extern "C" {
00028 #endif
00029 
00030 #include "messaging.h"
00031 
00041 typedef struct scheduler Scheduler;
00042 
00044 typedef struct executor Executor;
00045 
00046 typedef void (*sched_callback)(Message *message, void *state);
00047 
00049 typedef enum scheduler_filter_time {
00050         BEFORE, 
00051         AFTER 
00052 } Scheduler_filter_time;
00053 
00063 typedef struct execution_controller {
00068         void (*run)(Executor * executor);
00069 
00071         void (*stop)(Executor * executor);
00072 } Execution_Controller;
00073 
00075 typedef struct execution {
00076         Executor *(*open_executor)();
00077 
00081         Scheduler *(*open_scheduler)(Executor * executor, Channel * channel);
00082 
00091         void (*set_scheduler_timing)(Scheduler * scheduler, uint16_t interval,
00092                         uint32_t start);
00093 
00108         void (*set_scheduler_message)(Scheduler *scheduler, Message *message);
00109 
00119         void (*set_scheduler_filter)(Scheduler *scheduler,
00120                         Scheduler_filter_time when, sched_callback fn, void *state);
00121 
00130         void (*start_scheduler)(Scheduler *scheduler);
00131 
00132         void (*stop_scheduler)(Scheduler *scheduler);
00133 
00147         void (*manage_conection)(Executor *executor, Connection *connection);
00148 
00155         Execution_Controller * (*get_controller)();
00156 
00157 } Execution;
00158 
00159 #ifdef __cplusplus
00160 }
00161 #endif
00162 
00171 #endif /* EXECUTION_H_ */

Generated on Thu Sep 27 11:11:48 2012 for VetSim by  doxygen 1.4.7