Changeset 13901 for trunk


Ignore:
Timestamp:
05/26/12 10:53:35 (13 years ago)
Author:
tbretz
Message:
Added a state for booting and the script depth during boot.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/dimctrl.cc

    r13897 r13901  
    11#ifndef FACT_DimCtrl
    22#define FACT_DimCtrl
     3
     4#include <boost/lexical_cast.hpp>
    35
    46#include "Main.h"
     
    168170    }
    169171
     172    int ChangeState(int qos, const Time &time=Time())
     173    {
     174        ostringstream pid;
     175        pid << getpid();
     176
     177        fLabel = qos;
     178
     179        string msg;
     180        switch (fLabel)
     181        {
     182        case -4: msg = "Boot:"+boost::lexical_cast<string>(Readline::GetScriptDepth()); break;
     183        case -3: msg = "End";   break;
     184        case -2: msg = "Load";  break;
     185        case -1: msg = "Start"; break;
     186        default:
     187            {
     188                ostringstream out;
     189                out << "Label " << fLabel;
     190                msg = out.str();
     191            }
     192        }
     193
     194        msg += ": "+Readline::GetScript()+" [";
     195        if (!fScriptUser.empty())
     196            msg += fScriptUser+":"+pid.str();
     197        msg += "]";
     198
     199        if (fDebug)
     200            MessageDimTX::Write(time, Line(msg, fLabel<-1 ? '=' :'-'), 90);
     201
     202        fSrvState.setQuality(fLabel);
     203        return fSrvState.Update(msg);
     204    }
     205
    170206    int Write(const Time &time, const std::string &txt, int qos=kMessage)
    171207    {
    172208        if (txt=="")
    173         {
    174             ostringstream pid;
    175             pid << getpid();
    176 
    177             fLabel = qos;
    178 
    179             string msg;
    180             switch (fLabel)
    181             {
    182             case -3: msg = "End";   break;
    183             case -2: msg = "Load";  break;
    184             case -1: msg = "Start"; break;
    185             default:
    186                 {
    187                     ostringstream out;
    188                     out << "Label " << fLabel;
    189                     msg = out.str();
    190                 }
    191             }
    192 
    193             msg += ": "+Readline::GetScript()+" [";
    194             if (!fScriptUser.empty())
    195                 msg += fScriptUser+":"+pid.str();
    196             msg += "]";
    197 
    198             if (fDebug)
    199                 MessageDimTX::Write(time, Line(msg, fLabel<-1 ? '=' :'-'), 90);
    200 
    201             fSrvState.setQuality(fLabel);
    202             return fSrvState.Update(msg);
    203         }
     209            return ChangeState(qos, time);
    204210
    205211        if (qos<fVerbosity)
     
    249255            DimServer::start("DIM_CONTROL");
    250256            //sleep(1);
    251             fSrvState.setQuality(-3);
    252             fSrvState.Update("[boot]");
     257            ChangeState(-4);
    253258        }
    254259
Note: See TracChangeset for help on using the changeset viewer.