text: #ifndef SCHEDCORE_H
  #define SCHEDCORE_H
  
  config_require(utilities/iquery)
  
      /*
       * Values for schedType field
       */
  #define SCHED_TYPE_PERIODIC   1
  #define SCHED_TYPE_CALENDAR   2
  #define SCHED_TYPE_ONESHOT    3
  
      /*
       * Schedule flags
       */
  #define SCHEDULE_FLAG_ENABLED    0x01    /* for schedAdminStatus  */
  #define SCHEDULE_FLAG_ACTIVE     0x02    /* for schedRowStatus    */
  #define SCHEDULE_FLAG_VALID      0x04    /* for row creation/undo */
  
      /*
       * All Schedule-MIB OCTET STRING objects are either short (32-char)
       *   tags, or SnmpAdminString values (i.e. 255 characters)
       */
  #define SCHED_STR1_LEN      32
  #define SCHED_STR2_LEN     255
  
      /*
       * Data structure for a schedTable row entry 
       */
  struct schedTable_entry {
      /*
       * Index values 
       */
      char            schedOwner[SCHED_STR1_LEN+1];
      char            schedName[ SCHED_STR1_LEN+1];
  
      /*
       * Column values - schedule actions
       */
      char            schedDescr[SCHED_STR2_LEN+1];
      u_long          schedInterval;
      char            schedWeekDay;
      char            schedMonth[2];
      char            schedDay[4+4];
      char            schedHour[3];
      char            schedMinute[8];
      char            schedContextName[SCHED_STR1_LEN+1];
      oid             schedVariable[   MAX_OID_LEN   ];
      size_t          schedVariable_len;
      long            schedValue;
  
      /*
       * Column values - schedule control
       */
      long            schedType;
      u_long          schedFailures;
      long            schedLastFailure;
      time_t          schedLastFailed;
      long            schedStorageType;
      u_long          schedTriggers;
  
      /*
       * Supporting values
       */
      time_t          schedLastRun;
      time_t          schedNextRun;
      unsigned int    schedCallbackID;
      netsnmp_session *session;
      long            flags;
  };
  
  /*
   * function declarations 
   */
  extern netsnmp_tdata *schedule_table;
  void             init_schedule_container(void);
  void             init_schedCore(void);
  
  netsnmp_tdata_row *
        schedTable_createEntry(const char *schedOwner, const char *schedName);
  void  schedTable_removeEntry(netsnmp_tdata_row *row);
  void  sched_nextTime(        struct schedTable_entry *entry );
  void  sched_nextRowTime(     netsnmp_tdata_row *row );
  
  #endif                          /* SCHEDCORE_H */
  