DSRSwarm.m
上传用户:shenzhenrh
上传日期:2013-05-12
资源大小:2904k
文件大小:2k
源码类别:

信息检索与抽取

开发平台:

Unix_Linux

  1. /*
  2. Name:         DSRSwarm.m
  3. Description:  DynamicScheduleRepeatSwarm implementation
  4. Test suite:   activity
  5. */
  6. #import "DSRSwarm.h"
  7. #import <activity.h>
  8. #import <defobj/defalloc.h>
  9. int stimes[10] = { 0, 0, 0, 0, 0,
  10.    0, 0, 0, 0, 0 };
  11. int timer = 0;
  12. @implementation DSRSwarm
  13. - buildActions
  14. {
  15.   firstSchedule = [Schedule createBegin: getZone (self)];
  16.   [firstSchedule setRepeatInterval: 10];
  17.   firstSchedule = [firstSchedule createEnd];
  18.   
  19.   secondSchedule = [Schedule createBegin: getZone (self)];
  20.   secondSchedule = [secondSchedule createEnd];
  21.   
  22.   [firstSchedule at: 3 createActionTo: self message: M(empty)];
  23.   [secondSchedule at: 0 createActionTo: self 
  24.   message: M(schedulePrintOkOnFirstScheduleAfterCurrentTime)];
  25.   [secondSchedule at: 6 createActionTo: self 
  26.   message: M(schedulePrintOkOnFirstScheduleBeforeCurrentTime)];
  27.   [secondSchedule at: 30 createActionTo: self 
  28.   message: M(stopRunning)];
  29.   return self;
  30. }
  31. - activateIn: swarmContext 
  32. {
  33.   [super activateIn: swarmContext];
  34.   [firstSchedule activateIn: self];
  35.   [secondSchedule activateIn: self];
  36.   return self;
  37. }
  38. - schedulePrintOkOnFirstScheduleAfterCurrentTime
  39. {
  40.   [firstSchedule at: (timeval_t) getCurrentTime () + 1 createActionTo: self 
  41.  message: M(printOk)];
  42.   return self;
  43. }
  44. - schedulePrintOkOnFirstScheduleBeforeCurrentTime
  45. {
  46.   [firstSchedule at: (timeval_t) getCurrentTime () - 1 createActionTo: self 
  47.  message: M(printOk)];
  48.   return self;
  49. }
  50. - empty
  51. {
  52.   return self;
  53. }
  54. - printOk
  55. {
  56.   printf ("%d: Ok!n", (int) getCurrentTime ());
  57.   fflush (stdout);
  58.   stimes[timer++] = (int) getCurrentTime ();
  59.   return self;
  60. }
  61. - stopRunning
  62. {
  63.   [getTopLevelActivity () terminate];
  64.   return self;
  65. }
  66. @end