Changeset 14032 for trunk


Ignore:
Timestamp:
06/02/12 12:49:38 (12 years ago)
Author:
tbretz
Message:
Store last state; replaced fixed values by enums
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/DimState.h

    r14015 r14032  
    66class DimState
    77{
     8public:
     9    enum
     10    {
     11        kOffline      = -256,
     12        kNotAvailable = -257,
     13    };
     14
    815protected:
    916    typedef function<void(const EventImp &)> callback;
     
    1522        const bool disconnected = evt.GetSize()==0;
    1623
    17         last = info;
    18         info = make_pair(evt.GetTime(), disconnected ? -256 : evt.GetQoS());
     24        last = cur;
     25        cur  = make_pair(evt.GetTime(), disconnected ? kOffline : evt.GetQoS());
    1926
    2027        msg = disconnected ? "" : evt.GetString();
     
    3542public:
    3643    DimState(const string &n, const string s="STATE") : server(n),
    37         service(n+"/"+s), info(make_pair(Time(), -256))
     44        service(n+"/"+s),
     45        last(make_pair(Time(), kOffline)), cur(make_pair(Time(), kOffline))
    3846    {
    3947    }
     
    4250    }
    4351
    44     string server;
    45     string service;
    46 
    47     pair<Time, int> last;
    48     pair<Time, int> info;
     52    const string server;
     53    const string service;
     54
     55    pair<Time, int32_t> last;
     56    pair<Time, int32_t> cur;
    4957    string msg;
    5058
     
    6068    }
    6169
    62     const Time &time() const { return info.first; }
    63     const int  &state() const { return info.second; }
    64 
    65     bool online() const { return info.second>-256; }
    66 
    67     virtual State description() const { return State(-257, ""); }
     70    const Time    &time() const  { return cur.first; }
     71    const int32_t &state() const { return cur.second; }
     72
     73    bool online() const { return state()>kOffline; }
     74
     75    virtual State description() const { return State(kNotAvailable, ""); }
    6876};
    6977
     
    7583    out << kBold << s.server;
    7684
    77     if (s.state()==-256)
     85    if (s.state()==DimState::kOffline)
    7886        return out << ": Offline";
    7987
    80     if (rc.index==-257)
     88    if (rc.index==DimState::kNotAvailable)
    8189        return out;
    8290
     
    117125        {
    118126            states = State::SplitStates(evt.GetString());
    119             states.push_back(State(-256, "Offline"));
     127            states.push_back(State(kOffline, "Offline"));
    120128        }
    121129    }
     
    127135                return *it;
    128136
    129         return State(-257, "n/a");
     137        return State(kNotAvailable, "n/a");
    130138    }
    131139};
     
    137145        HandlerImp(evt);
    138146
    139         info.second = evt.GetSize()==4 ? evt.GetInt() : -256;
    140         if (info.second==0)
    141             info.second=-256;
     147        cur.second = evt.GetSize()==4 ? evt.GetInt() : kOffline;
     148        if (cur.second==0)
     149            cur.second=kOffline;
    142150
    143151        Callback(evt);
     
    153161
    154162        ostringstream out;
    155         out << "V" << info.second/100 << 'r' << info.second%100;
     163        out << "V" << state()/100 << 'r' << state()%100;
    156164        return out.str();
    157165    }
Note: See TracChangeset for help on using the changeset viewer.