summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvenkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-04-14 17:38:51 +0000
committervenkita <venkita@ae88bc3d-4319-0410-8dbf-d08b4c9d3795>2003-04-14 17:38:51 +0000
commit02b70d21b5b2fb3c8ef6c74cb838526f18b2956e (patch)
tree62378d6f650fed55f79e1053d458b41b7298ad92
parent0642389ac480f28e58fdf945fae9b24b85ed8d38 (diff)
downloadATCD-02b70d21b5b2fb3c8ef6c74cb838526f18b2956e.tar.gz
*** empty log message ***
-rw-r--r--Kokyu/Kokyu.cpp37
-rw-r--r--Kokyu/Kokyu.h24
-rw-r--r--Kokyu/Makefile3
3 files changed, 63 insertions, 1 deletions
diff --git a/Kokyu/Kokyu.cpp b/Kokyu/Kokyu.cpp
index ef5c190711b..9398e3d92cc 100644
--- a/Kokyu/Kokyu.cpp
+++ b/Kokyu/Kokyu.cpp
@@ -42,4 +42,41 @@ create_dispatcher (const ConfigInfoSet& config_info_set)
return disp;
}
+ACE_INLINE void
+DSRT_Dispatcher::implementation (DSRT_Dispatcher_Impl* impl)
+{
+ dispatcher_impl_ = impl;
+}
+
+int
+DSRT_Dispatcher::schedule (guid_t guid, const QoSDescriptor& qos)
+{
+ return dispatcher_impl_->schedule (guid, qos);
+}
+
+ACE_INLINE int
+DSRT_Dispatcher::update_schedule (guid_t guid, const QoSDescriptor& qos)
+{
+ return dispatcher_impl_->update_schedule (guid, qos);
+}
+
+ACE_INLINE int
+DSRT_Dispatcher::cancel_schedule (guid_t guid, const QoSDescriptor& qos)
+{
+ return dispatcher_impl_->cancel_schedule (guid, qos);
+}
+
+DSRT_Dispatcher*
+Dispatcher_Factory::
+create_DSRT_dispatcher (const DSRT_ConfigInfo& config_info)
+{
+ DSRT_Dispatcher_Impl* tmp;
+ ACE_NEW_RETURN (tmp, DSRT_Dispatcher_Impl, (DSRT_Dispatcher*)0);
+ DSRT_Dispatcher* disp;
+ ACE_NEW_RETURN (disp, DSRT_Dispatcher, (DSRT_Dispatcher*)0);
+ disp->implementation (tmp);
+ tmp->init (config_info);
+ return disp;
+}
+
}
diff --git a/Kokyu/Kokyu.h b/Kokyu/Kokyu.h
index 4d18b0d9399..669d86f7131 100644
--- a/Kokyu/Kokyu.h
+++ b/Kokyu/Kokyu.h
@@ -83,6 +83,7 @@ namespace Kokyu
Priority_t preemption_priority_;
Deadline_t deadline_;
Execution_Time_t execution_time_;
+ Importance_t importance_;
};
class Kokyu_Export Dispatch_Command
@@ -107,6 +108,27 @@ namespace Kokyu
};
class Dispatcher_Impl;
+ class DSRT_Dispatcher_Impl;
+
+ enum DSRT_Sched_t {SCHED_MIF};
+
+ struct DSRT_ConfigInfo
+ {
+ DSRT_Sched_t scheduler_type_;
+ };
+
+ typedef int guid_t;
+ class Kokyu_Export DSRT_Dispatcher
+ {
+ public:
+ int schedule (guid_t guid, const QoSDescriptor&);
+ int update_schedule (guid_t guid, const QoSDescriptor&);
+ int cancel_schedule (guid_t guid, const QoSDescriptor&);
+ void implementation (DSRT_Dispatcher_Impl*);
+
+ private:
+ DSRT_Dispatcher_Impl* dispatcher_impl_;
+ };
class Kokyu_Export Dispatcher
{
@@ -123,6 +145,7 @@ namespace Kokyu
public:
//@@ Should we return auto_ptr<Dispatcher> instead?
static Dispatcher* create_dispatcher (const ConfigInfoSet&);
+ static DSRT_Dispatcher* create_DSRT_dispatcher (const DSRT_ConfigInfo&);
};
} //end of namespace
@@ -131,6 +154,7 @@ namespace Kokyu
#endif /* __ACE_INLINE__ */
#include "Dispatcher_Impl.h"
+#include "DSRT_Dispatcher_Impl.h"
#include "ace/post.h"
#endif /* KOKYU_H */
diff --git a/Kokyu/Makefile b/Kokyu/Makefile
index 5d6a5302e0b..87ea9a38270 100644
--- a/Kokyu/Makefile
+++ b/Kokyu/Makefile
@@ -13,7 +13,8 @@ CPP_SRCS += \
Kokyu \
Dispatcher_Impl \
Dispatcher_Task \
- Default_Dispatcher_Impl
+ Default_Dispatcher_Impl \
+ DSRT_Dispatcher_Impl
FILES = $(CPP_SRCS)
DEFS = $(addsuffix .h,$(FILES))