00001 #ifndef OSDL_MODEL_H_
00002 #define OSDL_MODEL_H_
00003
00004
00005 #include "OSDLActiveObject.h"
00006 #include "OSDLEngineCommon.h"
00007
00008 #include "Ceylan.h"
00009
00010
00011 #include <string>
00012 #include <list>
00013
00014
00015
00016
00017 namespace OSDL
00018 {
00019
00020
00021 namespace MVC
00022 {
00023
00024
00035 class OSDL_DLL Model : public Ceylan::Model,
00036 public Engine::ActiveObject
00037 {
00038
00039
00040 public:
00041
00042
00067 explicit Model(
00068 bool autoRegister = true,
00069 Events::Period period = 1,
00070 Engine::ObjectSchedulingPolicy policy = Engine::relaxed,
00071 Engine::Weight weight = 1 )
00072 throw( Engine::SchedulingException ) ;
00073
00074
00103 explicit Model( bool autoRegister,
00104 const SimulationTickList & triggeringStates,
00105 bool absolutelyDefined = true,
00106 Engine::ObjectSchedulingPolicy policy = Engine::relaxed,
00107 Engine::Weight weight = 1 )
00108 throw( Engine::SchedulingException ) ;
00109
00110
00140 explicit Model(
00141 bool autoRegister,
00142 Events::SimulationTick triggerTick,
00143 bool absolutelyDefined = true,
00144 Engine::ObjectSchedulingPolicy policy = Engine::relaxed,
00145 Engine::Weight weight = 1 )
00146 throw( Engine::SchedulingException ) ;
00147
00148
00149
00155 virtual ~Model() throw() ;
00156
00157
00169 virtual const std::string toString(
00170 Ceylan::VerbosityLevels level = Ceylan::high )
00171 const throw() ;
00172
00173
00174
00175 } ;
00176
00177 }
00178
00179 }
00180
00181
00182 #endif // OSDL_MODEL_H_