IPP Software Navigation Tools IPP Links Communication Pan-STARRS Links

Changeset 15791


Ignore:
Timestamp:
Dec 12, 2007, 9:52:11 AM (18 years ago)
Author:
eugene
Message:

adding gprintSetFileAllThreads vs ThisThread

Location:
trunk/Ohana/src/opihi
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/Ohana/src/opihi/cmd.basic/output.c

    r9039 r15791  
    3131  if ((N = get_argument (argc, argv, "-dump"))) {
    3232    buffer = gprintGetBuffer (dest);
     33    if (buffer == NULL) return (FALSE);
    3334
    3435    /* save the current buffer contents */
     
    3940    /* set the output target to the specified name */
    4041    remove_argument (N, &argc, argv);
    41     gprintSetFile (dest, argv[N]);
     42    gprintSetFileAllThreads (dest, argv[N]);
    4243    remove_argument (N, &argc, argv);
    4344
    4445    /* send the output to the appropriate destination */
    4546    gwrite (output, 1, Noutput, dest);
     47    free (output);
    4648    return (TRUE);
    4749  }
     
    5254  }
    5355
    54   gprintSetFile (dest, argv[1]);
     56  gprintSetFileAllThreads (dest, argv[1]);
    5557  return (TRUE);
    5658}
  • trunk/Ohana/src/opihi/include/shell.h

    r15008 r15791  
    152152void          gprintSetBuffer           PROTO((gpDest dest));
    153153IOBuffer     *gprintGetBuffer           PROTO((gpDest dest));
    154 void          gprintSetFile             PROTO((gpDest dest, char *filename));
     154void          gprintSetFileAllThreads   PROTO((gpDest dest, char *filename));
     155void          gprintSetFileThisThread   PROTO((gpDest dest, char *filename));
     156void          gprintSetFile             PROTO((gpStream *stream, gpDest dest, char *filename));
    155157FILE         *gprintGetFile             PROTO((gpDest dest));
    156158char         *gprintGetName             PROTO((gpDest dest));
  • trunk/Ohana/src/opihi/lib.shell/gprint.c

    r15030 r15791  
    126126}
    127127
    128 void gprintSetFile (gpDest dest, char *filename) {
    129 
    130   gpStream *stream;
    131   stream = gprintGetStream (dest);
     128void gprintSetFileAllThreads (gpDest dest, char *filename) {
     129
     130  int i;
     131
     132  for (i = 0; i < Nstreams; i++) {
     133    if (streams[i].dest != dest) continue;
     134    gprintSetFile (&streams[i], dest, filename);
     135  }
     136  return;
     137}
     138
     139void gprintSetFileThisThread (gpDest dest, char *filename) {
     140
     141  gpStream *stream;
     142  stream = gprintGetStream (dest);
     143
     144  gprintSetFile (stream, dest, filename);
     145  return;
     146}
     147
     148void gprintSetFile (gpStream *stream, gpDest dest, char *filename) {
    132149
    133150  /* if we have an open buffer, free it and null it */
     
    146163  }
    147164skip_close:
    148  
    149   free (stream[0].name);
     165
     166  // if NULL, reuse exising stream name
     167  if (filename != NULL) {
     168    free (stream[0].name);
     169    stream[0].name = strcreate (filename);
     170  }
    150171
    151172  /* we allow the user to set stdout to ERR and stderr to LOG if they want */
    152   if (!strcmp (filename, "stdout")) {
     173  if (!strcmp (stream[0].name, "stdout")) {
    153174    stream[0].file = stdout;
    154     stream[0].name = strcreate (filename);
    155175    goto skip_open;
    156176  }
    157   if (!strcmp (filename, "stderr")) {
     177  if (!strcmp (stream[0].name, "stderr")) {
    158178    stream[0].file = stderr;
    159     stream[0].name = strcreate (filename);
    160179    goto skip_open;
    161180  }
    162181 
    163182  /* open the file */
    164   stream[0].file = fopen (filename, "a");
     183  stream[0].file = fopen (stream[0].name, "a");
    165184  if (stream[0].file == NULL) {
    166     fprintf (stderr, "cannot open file %s\n", filename);
     185    fprintf (stderr, "cannot open file %s\n", stream[0].name);
     186    free (stream[0].name);
    167187    stream[0].file = (dest == GP_LOG) ? stdout : stderr;
    168188    stream[0].name = (dest == GP_LOG) ? strcreate ("stdout") : strcreate("stderr");
    169   } else {
    170     stream[0].name = strcreate (filename);
    171189  }
    172190
    173191skip_open:
    174192  stream[0].mode = GP_FILE;
     193  return;
    175194}
    176195
  • trunk/Ohana/src/opihi/pantasks/ListenClients.c

    r13544 r15791  
    7272  // define server output log files
    7373  if (VarConfig ("PANTASKS_SERVER_STDOUT", "%s", log_stdout) != NULL) {
    74     gprintSetFile (GP_LOG, log_stdout);
     74    gprintSetFileThisThread (GP_LOG, log_stdout);
    7575  } else {
    7676    strcpy (log_stdout, "stdout");
    7777  }
    7878  if (VarConfig ("PANTASKS_SERVER_STDERR", "%s", log_stderr) != NULL) {
    79       gprintSetFile (GP_ERR, log_stderr);
     79    gprintSetFileThisThread (GP_ERR, log_stderr);
    8080  } else {
    8181    strcpy (log_stderr, "stderr");
     
    151151        // return the stderr messages first
    152152        outbuffer = gprintGetBuffer (GP_ERR);
    153         SendMessageFixed (clients[i], outbuffer[0].Nbuffer, outbuffer[0].buffer);
     153        if (outbuffer) {
     154          SendMessageFixed (clients[i], outbuffer[0].Nbuffer, outbuffer[0].buffer);
     155        } else {
     156          SendMessageFixed (clients[i], 0, "");
     157        }         
    154158
    155159        // return the stdout messages first
    156160        outbuffer = gprintGetBuffer (GP_LOG);
    157         SendMessageFixed (clients[i], outbuffer[0].Nbuffer, outbuffer[0].buffer);
     161        if (outbuffer) {
     162          SendMessageFixed (clients[i], outbuffer[0].Nbuffer, outbuffer[0].buffer);
     163        } else {
     164          SendMessageFixed (clients[i], 0, "");
     165        }         
    158166       
    159         /* clear and reset the output buffers */
    160         gprintSetFile (GP_LOG, log_stdout);
    161         gprintSetFile (GP_ERR, log_stderr);
     167        /* clear and reset the output buffers to their last output file names */
     168        gprintSetFileAllThreads (GP_LOG, NULL);
     169        gprintSetFileAllThreads (GP_ERR, NULL);
    162170      }
    163171      free (line);
  • trunk/Ohana/src/opihi/pantasks/controller_threads.c

    r13544 r15791  
    1919  // define server output log files
    2020  if (VarConfig ("PANTASKS_SERVER_STDOUT", "%s", log_stdout) != NULL) {
    21       gprintSetFile (GP_LOG, log_stdout);
     21      gprintSetFileThisThread (GP_LOG, log_stdout);
    2222  }
    2323  if (VarConfig ("PANTASKS_SERVER_STDERR", "%s", log_stderr) != NULL) {
    24       gprintSetFile (GP_ERR, log_stderr);
     24      gprintSetFileThisThread (GP_ERR, log_stderr);
    2525  }
    2626
  • trunk/Ohana/src/opihi/pantasks/input_threads.c

    r15782 r15791  
    2020  // define server output log files
    2121  if (VarConfig ("PANTASKS_SERVER_STDOUT", "%s", log_stdout) != NULL) {
    22       gprintSetFile (GP_LOG, log_stdout);
     22      gprintSetFileThisThread (GP_LOG, log_stdout);
    2323  }
    2424  if (VarConfig ("PANTASKS_SERVER_STDERR", "%s", log_stderr) != NULL) {
    25       gprintSetFile (GP_ERR, log_stderr);
     25      gprintSetFileThisThread (GP_ERR, log_stderr);
    2626  }
    2727
  • trunk/Ohana/src/opihi/pantasks/job_threads.c

    r13544 r15791  
    2121  // define server output log files
    2222  if (VarConfig ("PANTASKS_SERVER_STDOUT", "%s", log_stdout) != NULL) {
    23       gprintSetFile (GP_LOG, log_stdout);
     23      gprintSetFileThisThread (GP_LOG, log_stdout);
    2424  }
    2525  if (VarConfig ("PANTASKS_SERVER_STDERR", "%s", log_stderr) != NULL) {
    26       gprintSetFile (GP_ERR, log_stderr);
     26      gprintSetFileThisThread (GP_ERR, log_stderr);
    2727  }
    2828
  • trunk/Ohana/src/opihi/pantasks/pantasks_server.c.in

    r13549 r15791  
    2929  // define server output log files
    3030  if (VarConfig ("PANTASKS_SERVER_STDOUT", "%s", log_stdout) != NULL) {
    31       gprintSetFile (GP_LOG, log_stdout);
     31      gprintSetFileThisThread (GP_LOG, log_stdout);
    3232  }
    3333  if (VarConfig ("PANTASKS_SERVER_STDERR", "%s", log_stderr) != NULL) {
    34       gprintSetFile (GP_ERR, log_stderr);
     34      gprintSetFileThisThread (GP_ERR, log_stderr);
    3535  }
    3636
  • trunk/Ohana/src/opihi/pantasks/task_threads.c

    r13544 r15791  
    2121  // define server output log files
    2222  if (VarConfig ("PANTASKS_SERVER_STDOUT", "%s", log_stdout) != NULL) {
    23       gprintSetFile (GP_LOG, log_stdout);
     23      gprintSetFileThisThread (GP_LOG, log_stdout);
    2424  }
    2525  if (VarConfig ("PANTASKS_SERVER_STDERR", "%s", log_stderr) != NULL) {
    26       gprintSetFile (GP_ERR, log_stderr);
     26      gprintSetFileThisThread (GP_ERR, log_stderr);
    2727  }
    2828
Note: See TracChangeset for help on using the changeset viewer.