Changeset 3370 in Sophya for trunk/SophyaPI/PIext/pistdimgapp.cc


Ignore:
Timestamp:
Oct 31, 2007, 11:49:04 PM (18 years ago)
Author:
ansari
Message:

Adaptation pour redirection stdout/err a travers un fichier ds PIATmpxxx/, Reza 31/10/2007

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/SophyaPI/PIext/pistdimgapp.cc

    r3366 r3370  
    162162m[5] = new PIMenu(Menubar(),"Special");
    163163m[5]->AppendItem("CloseAll", 10601);
    164 m[5]->AppendCheckItem("Red.Out/Err", 10602);
     164// m[5]->AppendCheckItem("Red.Out/Err", 10602);
    165165m[5]->AppendCheckItem("Catch SigFPE", 10603);
    166166m[5]->AppendCheckItem("Catch SigSEGV", 10604);
     
    257257mCons->AcceptCmd(true, 50);
    258258consolecont->Show();
    259 redirecout = false;
    260 // RedirectStdOutErr(true);  pas par defaut
     259redirecout = NORED_OE;
     260RedirectStdOutErr(NORED_OE);  // pas de redirect par defaut
    261261
    262262mFgScSz = sfgsz;
     
    17391739
    17401740/* --Methode-- */
    1741 void PIStdImgApp::RedirectStdOutErr(bool fg)
    1742 {
    1743 if (fg) {
    1744   RedirectOutStream(mCons);
    1745   RedirectErrStream(mCons);
    1746   m[5]->SetStateMsg(10602, true);
    1747   redirecout = true;
    1748   }
    1749 else {
    1750   RedirectOutStream(NULL);
    1751   RedirectErrStream(NULL);
    1752   m[5]->SetStateMsg(10602, false);
    1753   redirecout = false;
    1754   }
     1741void PIStdImgApp::RedirectStdOutErr(RED_OUTERR_FLG redflg)
     1742{
     1743if (redflg == redirecout) return;
     1744string fnout = ObjMgr()->GetTmpDir() + "/sout.log";
     1745string fnerr = ObjMgr()->GetTmpDir() + "/serr.log";
     1746bool drfg = false;
     1747PIConsole* pcons = NULL;
     1748switch (redflg) {
     1749  case NORED_OE :
     1750    pcons = NULL;
     1751    break;
     1752  case CONSRED_OE :
     1753    pcons = mCons;
     1754    drfg = false;
     1755    break;
     1756  case DOUBLERED_OE:
     1757    pcons = mCons;
     1758    drfg = true;
     1759    break;
     1760}
     1761
     1762char piva =  PIVA_Def;
     1763RedirectOutStream(pcons, fnout, drfg, piva);
     1764// ancienne maniere redirect, avec pipe : RedirectOutStream(pcons, piva);
     1765piva = PIVA_Red;
     1766RedirectErrStream(pcons, fnerr, drfg, piva);
     1767// ancienne maniere redirect, avec pipe : RedirectErrStream(pcons, piva);
     1768 
     1769//  m[5]->SetStateMsg(10602, false);
     1770redirecout = redflg;
    17551771return;
    17561772}
     
    23162332    CloseAllWindows();
    23172333    break;
    2318   case 10602:
     2334    /*
     2335 case 10602:
    23192336    RedirectStdOutErr(*((bool*)data));
    23202337    break;
     2338    */
    23212339  case 10603:
    23222340  case 10604:
Note: See TracChangeset for help on using the changeset viewer.