JwaSchedule.pas
上传用户:davidchvip
上传日期:2009-07-28
资源大小:1749k
文件大小:5k
源码类别:

Windows编程

开发平台:

Delphi

  1. {******************************************************************************}
  2. {                                                                       }
  3. { Scheduler API interface Unit for Object Pascal                               }
  4. {                                                                       }
  5. { Portions created by Microsoft are Copyright (C) 1995-2001 Microsoft          }
  6. { Corporation. All Rights Reserved.                                            }
  7. {                 }
  8. { The original file is: schedule.h, released June 2000. The original Pascal    }
  9. { code is: Schedule.pas, released December 2000. The initial developer of the  }
  10. { Pascal code is Marcel van Brakel (brakelm@chello.nl).                        }
  11. {                                                                              }
  12. { Portions created by Marcel van Brakel are Copyright (C) 1999-2001            }
  13. { Marcel van Brakel. All Rights Reserved.                                      }
  14. {                 }
  15. { Obtained through: Joint Endeavour of Delphi Innovators (Project JEDI)        }
  16. {                }
  17. { You may retrieve the latest version of this file at the Project JEDI home    }
  18. { page, located at http://delphi-jedi.org or my personal homepage located at   }
  19. { http://members.chello.nl/m.vanbrakel2                                        }
  20. {                }
  21. { The contents of this file are used with permission, subject to the Mozilla   }
  22. { Public License Version 1.1 (the "License"); you may not use this file except }
  23. { in compliance with the License. You may obtain a copy of the License at      }
  24. { http://www.mozilla.org/MPL/MPL-1.1.html                                      }
  25. {                                                                              }
  26. { Software distributed under the License is distributed on an "AS IS" basis,   }
  27. { WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License for }
  28. { the specific language governing rights and limitations under the License.    }
  29. {                                                                              }
  30. { Alternatively, the contents of this file may be used under the terms of the  }
  31. { GNU Lesser General Public License (the  "LGPL License"), in which case the   }
  32. { provisions of the LGPL License are applicable instead of those above.        }
  33. { If you wish to allow use of your version of this file only under the terms   }
  34. { of the LGPL License and not to allow others to use your version of this file }
  35. { under the MPL, indicate your decision by deleting  the provisions above and  }
  36. { replace  them with the notice and other provisions required by the LGPL      }
  37. { License.  If you do not delete the provisions above, a recipient may use     }
  38. { your version of this file under either the MPL or the LGPL License.          }
  39. {                 }
  40. { For more information about the LGPL: http://www.gnu.org/copyleft/lesser.html }
  41. {                 }
  42. {******************************************************************************}
  43. unit JwaSchedule;
  44. {$WEAKPACKAGEUNIT}
  45. {$HPPEMIT ''}
  46. {$HPPEMIT '#include "schedule.h"'}
  47. {$HPPEMIT ''}
  48. {$I WINDEFINES.INC}
  49. interface
  50. uses
  51.   JwaWinType;
  52. //
  53. // The DS and FRS use the same structure to represent different schedules.
  54. // The DS uses a 15-minute polling schedule. FRS uses a 60-minute
  55. // start/stop schedule. Hence, the schedule for the system volume is
  56. // a special case because we only have the DS schedule to work from.
  57. // We will work around this problem by treating the 15
  58. // -minute polling schedule as a 60-minute start/stop schedule.
  59. // Replication is enabled for any hour that has any of the four
  60. // 15-minute bits set.
  61. //
  62. // When the ReplicationSchedule is not present the default is
  63. // "always replicate."
  64. //
  65. //
  66. // Only the interval schedule is currently implemented. Others are ignored.
  67. //
  68. const
  69.   SCHEDULE_INTERVAL      = 0; // schedule as understood by NT5
  70.   {$EXTERNALSYM SCHEDULE_INTERVAL}
  71.   SCHEDULE_BANDWIDTH     = 1; // bandwidth as understood by NT5
  72.   {$EXTERNALSYM SCHEDULE_BANDWIDTH}
  73.   SCHEDULE_PRIORITY      = 2; // priority as understood by NT5
  74.   {$EXTERNALSYM SCHEDULE_PRIORITY}
  75. //
  76. // Schedule Header
  77. //
  78. // Each schedule blob begins with n array of schedule headers that
  79. // specify the number and type of schedules contained in the blob.
  80. //
  81. type
  82.   PSCHEDULE_HEADER = ^SCHEDULE_HEADER;
  83.   {$EXTERNALSYM PSCHEDULE_HEADER}
  84.   _SCHEDULE_HEADER = record
  85.     Type_: ULONG;       // one of the SCHEDULE_ ordinals
  86.     Offset: ULONG;      // offset from start of schedule structure
  87.   end;
  88.   {$EXTERNALSYM _SCHEDULE_HEADER}
  89.   SCHEDULE_HEADER = _SCHEDULE_HEADER;
  90.   {$EXTERNALSYM SCHEDULE_HEADER}
  91.   TScheduleHeader = SCHEDULE_HEADER;
  92.   PScheduleHeader = PSCHEDULE_HEADER;
  93. //
  94. // Schedule
  95. //
  96.   PSCHEDULE = ^_SCHEDULE;
  97.   {$EXTERNALSYM PSCHEDULE}
  98.   _SCHEDULE = record
  99.     Size: ULONG;           // inclusive size in bytes
  100.     Bandwidth: ULONG;
  101.     NumberOfSchedules: ULONG;
  102.     Schedules: array [0..0] of SCHEDULE_HEADER;
  103.   end;
  104.   {$EXTERNALSYM _SCHEDULE}
  105.   //SCHEDULE = _SCHEDULE;
  106.   //{$EXTERNALSYM SCHEDULE}
  107.   TSchedule = _SCHEDULE;
  108. // The above structure is followed by the Data buffer and the
  109. // SCHEDULE_HEADER contains offsets to refer to the appropriate
  110. // parts in the data buffer.
  111. const
  112.   SCHEDULE_DATA_ENTRIES = (7 * 24);    // 7 days X 24 hours
  113.   {$EXTERNALSYM SCHEDULE_DATA_ENTRIES}
  114.   
  115. implementation
  116. end.