Index: branches/czw_branch/20101203/ippTasks/register.pro
===================================================================
--- branches/czw_branch/20101203/ippTasks/register.pro	(revision 30118)
+++ branches/czw_branch/20101203/ippTasks/register.pro	(revision 30586)
@@ -9,4 +9,5 @@
 book init regPendingExp
 book init regPendingBurntoolImfile
+book init regDates
 
 macro register.reset
@@ -14,4 +15,5 @@
   book init regPendingExp
   book init regPendingBurntoolImfile
+  book init regDates
 end
 
@@ -21,4 +23,5 @@
   book listbook regPendingExp
   book listbook regPendingBurntoolImfile
+  book listbook regDates
 end
 
@@ -30,4 +33,7 @@
     active true
   end
+  task register.imfile.revert
+    active false
+  end
   task register.exp.load
     active true
@@ -51,4 +57,7 @@
     active false
   end
+  task register.imfile.revert
+    active false
+  end
   task register.exp.load
     active false
@@ -65,5 +74,50 @@
 end
 
-$valid_burntool_value = 14
+macro register.revert.on
+  task register.imfile.revert
+    active true
+  end
+end
+
+macro register.revert.off
+  task register.imfile.revert
+    active false
+  end
+end
+
+macro burntool.on
+  task register.burntool.load
+    active true
+  end
+  task register.burntool.run
+    active true
+  end
+end
+
+macro burntool.off
+  task register.burntool.load
+    active false
+  end
+  task register.burntool.run
+    active false
+  end
+end
+
+macro register.add.date
+  if ($0 != 4) 
+    echo "USAGE: register.add.date (YYYY-MM-DD) (DBNAME) (VALID_BURNTOOL)"
+    break
+  end
+
+   book newpage regDates $1
+   book setword regDates $1 nsState NEW
+   book setword regDates $1 dbname $2
+   book setword regDates $1 valid_burntool $3
+end
+
+
+# $valid_burntool_value = 14
+$sunrise = 17:30:00
+$sunset  = 03:30:00
 
 macro replace.survey.values
@@ -147,4 +201,5 @@
 $regPendingImfile_DB = 0
 $regPendingBurntoolImfile_DB = 0
+$regRevertImfile_DB = 0
 $regPendingExp_DB = 0
 
@@ -265,4 +320,5 @@
     # XXX register_imfile.pl differs from the standard script : it does not have an 'outroot' argument, and it does not take '--redirect'
     $run = register_imfile.pl --exp_id $EXP_ID --tmp_class_id $TMP_CLASS_ID --tmp_exp_name $TMP_EXP_NAME --uri $URI --logfile $logfile --bytes $BYTES --md5sum $MD5SUM
+    $run = $run --sunset $sunset --sunrise $sunrise
     add_standard_args run
 
@@ -295,4 +351,48 @@
   end
 end
+
+task register.imfile.revert
+  host         local
+  periods      -poll 60.0
+  periods      -exec 1800.0
+  periods      -timeout 120.0
+  npending     1
+
+  stdout       NULL
+  stderr       $LOGDIR/register.imfile.revert.log
+
+  task.exec
+    $run = regtool -revertprocessedimfile
+    if ($DB:n == 0) 
+      option DEFAULT
+    else
+      option $DB:$regRevertImfile_DB
+      $run = $run -dbname $DB:$regRevertImfile_DB
+      $regRevertImfile_DB ++
+      if ($regRevertImfile_DB >= $DB:n) set regRevertImfile_DB = 0
+    end
+    add_poll_args run
+    command $run
+  end
+
+  # success
+  task.exit    0
+  end
+
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+
+  task.exit    crash
+    showcommand crash
+  end
+
+  # operation times out
+  task.exit    timeout
+    showcommand timeout
+  end
+end
+
 
 # select exposures ready for register_exp.pl
@@ -463,18 +563,38 @@
   # select entried from the current DB; cycle to the next DB, if it exists
   task.exec
+     book npages regDates -var Npages
+     if ($Npages == 0) 
+       $today = `date -u +%Y-%m-%d`
+       $dbname = $DB:0
+       $valid_burntool = 14
+     else 
+       book getpage regDates $reg_datePAGE -var today
+       book getword regDates $today dbname -var dbname
+       book getword regDates $today valid_burntool -var valid_burntool
+       $reg_datePAGE ++
+       if ($reg_datePAGE >= $Npages) set reg_datePAGE = 0
+     end
+
     $run = regtool -pendingburntoolimfile
-    $today = `date -u +%Y-%m-%d`
+
 # debugging purposes
-#    $today = "2010-12-06"
-    $run = $run -date $today -valid_burntool $valid_burntool_value
-    if ($DB:n == 0)
-      option DEFAULT
-    else
-      # save the DB name for the exit tasks
-      option $DB:$regPendingBurntoolImfile_DB
-      $run = $run -dbname $DB:$regPendingBurntoolImfile_DB
-      $regPendingBurntoolImfile_DB ++
-      if ($regPendingBurntoolImfile_DB >= $DB:n) set regPendingBurntoolImfile_DB = 0
-    end
+#   $today = "2010-12-25"
+    $dateobs_begin = $today\T$sunset
+    $dateobs_end   = $today\T$sunrise
+    $run = $run -dateobs_begin $dateobs_begin -dateobs_end $dateobs_end -valid_burntool $valid_burntool
+    $run = $run -dbname $dbname
+    option $dbname
+#     if ($DB:n == 0)
+#       option DEFAULT
+#     else
+#       # save the DB name for the exit tasks
+#       option $DB:$regPendingBurntoolImfile_DB
+#       $run = $run -dbname $DB:$regPendingBurntoolImfile_DB
+#       if ("$dbname" != "$DB:$regPendingBurntoolImfile_DB")
+#         break
+#       end
+#       $regPendingBurntoolImfile_DB ++
+#       if ($regPendingBurntoolImfile_DB >= $DB:n) set regPendingBurntoolImfile_DB = 0
+#     end
 
 #    echo $run
@@ -574,5 +694,38 @@
 end
 
-    
+task   register.initday.load
+  host            local
+  periods         -poll $LOADPOLL
+  periods         -exec $LOADEXEC
+  periods         -timeout 30
+  trange          0:00:00 1:00:00 -nmax 1
+  npending        1
+
+  task.exec
+    $today = `date -u +%Y-%m-%d`
+    book newpage regDates $today
+    book setword regDates $today nsState NEW
+    book setword regDates $today dbname $DB:0
+    book setword regDates $today valid_burntool 14
+
+    command true
+  end
+
+  task.exit       0
+    # nothing to do here?
+  end
+  # locked list
+  task.exit    default
+    showcommand failure
+  end
+  task.exit    crash
+    showcommand crash
+  end
+  #operation times out?
+  task.exit    timeout
+    showcommand timeout
+  end
+end
+
    
   
