Differences From Artifact [7fa423ba9f8ebe92]:
- File        
src/output.d
- 2012-07-14 12:29:17 - part of checkin [9d4aca73fa] on branch trunk - GUI+Solver revived. (user: kinaba) [annotate]
 
To Artifact [3f9e2911ee63dc4e]:
- File        
src/output.d
- 2012-07-14 14:22:32 - part of checkin [a0c3529225] on branch trunk - code cleanup (user: kinaba) [annotate]
 
    1  import util;                                                                           1  import util;
    2  import game;                                                                           2  import game;
    3  import driver;                                                                         3  import driver;
    4  import core.stdc.signal;                                                               4  import core.stdc.signal;
    5                                                                                         5  
    6  class NilOutput : GameObserver                                                         6  class NilOutput : GameObserver
    7  {                                                                                      7  {
    8          this(const(Game) g) {}                                                   |     8          this(in Game g) {}
    9          override void on_game_changed(char c, const(Game) g, bool finished) {}   |     9          override void on_game_changed(char c, in Game g, bool finished) {}
   10  }                                                                                     10  }
   11                                                                                        11  
   12  class StdOutput : GameObserver                                                        12  class StdOutput : GameObserver
   13  {                                                                                     13  {
   14          this(const(Game) g) {}                                                   |    14          this(in Game g) {}
   15          override void on_game_changed(char c, const(Game) g, bool finished)      |    15          override void on_game_changed(char c, in Game g, bool finished)
   16          {                                                                             16          {
   17                  stdout.write(c);                                                      17                  stdout.write(c);
   18                  stdout.flush();                                                       18                  stdout.flush();
   19          }                                                                             19          }
   20  }                                                                                     20  }
   21                                                                                        21  
   22  class GuardedOutput : GameObserver                                                    22  class GuardedOutput : GameObserver
   23  {                                                                                     23  {
   24          this(const(Game) g)                                                      |    24          this(in Game g)
   25          {                                                                             25          {
   26                  setup_sigint_handling();                                              26                  setup_sigint_handling();
   27                  ideal_log ~= g.score_if_abort_now;                                    27                  ideal_log ~= g.score_if_abort_now;
   28          }                                                                             28          }
   29                                                                                        29  
   30          override void on_game_changed(char c, const(Game) g, bool finished)      |    30          override void on_game_changed(char c, in Game g, bool finished)
   31          {                                                                             31          {
   32                  log ~= c;                                                             32                  log ~= c;
   33                  score_log ~= g.score;                                                 33                  score_log ~= g.score;
   34                  ideal_log ~= g.score_if_abort_now;                                    34                  ideal_log ~= g.score_if_abort_now;
   35                  if(finished)                                                          35                  if(finished)
   36                          flush();                                                      36                          flush();
   37          }                                                                             37          }