00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef OSDL_PROGRAMMED_ACTIVE_OBJECT_H_
00028 #define OSDL_PROGRAMMED_ACTIVE_OBJECT_H_
00029
00030
00031
00032 #include "OSDLActiveObject.h"
00033 #include "OSDLEngineCommon.h"
00034
00035
00036 #include <string>
00037 #include <list>
00038
00039
00040
00041
00042 namespace OSDL
00043 {
00044
00045
00046
00047 namespace Engine
00048 {
00049
00050
00051
00052
00071 class OSDL_DLL ProgrammedActiveObject: public ActiveObject
00072 {
00073
00074
00075 public:
00076
00077
00078
00107 explicit ProgrammedActiveObject(
00108 const SimulationTickList & activationTicks,
00109 bool absolutelyDefined = true,
00110 bool autoRegister = true,
00111 ObjectSchedulingPolicy policy = relaxed,
00112 Weight weight = 1 ) ;
00113
00114
00115
00141 explicit ProgrammedActiveObject(
00142 Events::SimulationTick activationTick,
00143 bool absolutelyDefined = true,
00144 bool autoRegister = false,
00145 ObjectSchedulingPolicy policy = relaxed,
00146 Weight weight = 1 ) ;
00147
00148
00149
00157 virtual ~ProgrammedActiveObject() throw() ;
00158
00159
00160
00161
00162
00163
00164
00165
00166
00174 virtual void registerToScheduler() ;
00175
00176
00177
00185 virtual void unregisterFromScheduler() ;
00186
00187
00188
00189
00190
00191
00192
00193
00194
00202 bool areProgrammedActivationsAbsolute() const ;
00203
00204
00205
00216 void absoluteProgrammedActivationsWanted( bool on ) ;
00217
00218
00219
00229 virtual const SimulationTickList & getProgrammedActivations()
00230 const ;
00231
00232
00233
00252 virtual void setProgrammedActivations(
00253 const SimulationTickList & newActivationsList ) ;
00254
00255
00256
00274 virtual void addProgrammedActivations(
00275 const SimulationTickList & additionalActivationsList ) ;
00276
00277
00278
00290 virtual void onRegistering() ;
00291
00292
00293
00306 virtual const std::string toString(
00307 Ceylan::VerbosityLevels level = Ceylan::high ) const ;
00308
00309
00310
00311
00312 protected:
00313
00314
00315
00316
00317
00318
00319
00320
00321
00322 #pragma warning( push )
00323 #pragma warning( disable: 4251 )
00324
00332 SimulationTickList _programmedTicks ;
00333
00334 #pragma warning( pop )
00335
00336
00337
00347 bool _absoluteTicks ;
00348
00349
00350
00351 } ;
00352
00353
00354 }
00355
00356 }
00357
00358
00359
00360 #endif // OSDL_PROGRAMMED_ACTIVE_OBJECT_H_
00361