00001 #ifndef MESSAGEFACILITY_EXTENSIONS_QT_MF_MSG_H
00002 #define MESSAGEFACILITY_EXTENSIONS_QT_MF_MSG_H
00003
00004
00005
00006
00007 #include <QtCore/QString>
00008 #include <QtGui/QColor>
00009
00010 #include <string>
00011 #include <vector>
00012 #include <list>
00013 #include <map>
00014
00015 #include "messagefacility/Utilities/ELseverityLevel.h"
00016 #include <sys/time.h>
00017
00018 namespace mf
00019 {
00020 class ErrorObj;
00021 }
00022
00026 enum sev_code_t
00027 {
00028 SDEBUG,
00029 SINFO,
00030 SWARNING,
00031 SERROR
00032 };
00033
00037 class qt_mf_msg
00038 {
00039 public:
00043 qt_mf_msg(std::string hostname, std::string category, std::string application, pid_t pid, timeval time);
00044
00045 qt_mf_msg() {}
00046 qt_mf_msg(const qt_mf_msg&) = default;
00047
00048
00054 QString const& text(bool mode) const { return mode ? shortText_ : text_; }
00059 QColor const& color() const { return color_; }
00064 sev_code_t sev() const { return sev_; }
00069 QString const& host() const { return host_; }
00074 QString const& cat() const { return cat_; }
00079 QString const& app() const { return app_; }
00084 timeval time() const { return time_; }
00089 size_t seq() const { return seq_; }
00090
00091 void setSeverity(mf::ELseverityLevel sev);
00092 void setSeverityLevel(sev_code_t sev) { sev_ = sev; }
00093 void setMessage(std::string prefix, int iteration, std::string msg);
00094 void setHostAddr(std::string hostaddr) { hostaddr_ = QString(hostaddr.c_str()).toHtmlEscaped(); }
00095 void setFileName(std::string file) { file_ = QString(file.c_str()).toHtmlEscaped(); }
00096 void setLineNumber(std::string line) { line_ = QString(line.c_str()).toHtmlEscaped(); }
00097 void setModule(std::string module) { module_ = QString(module.c_str()).toHtmlEscaped(); }
00098 void setEventID(std::string eventID) { eventID_ = QString(eventID.c_str()).toHtmlEscaped(); }
00099
00100 void updateText();
00101 private:
00102
00103 QString text_;
00104 QString shortText_;
00105 QColor color_;
00106 sev_code_t sev_;
00107 QString host_;
00108 QString cat_;
00109 QString app_;
00110 timeval time_;
00111 size_t seq_;
00112 static size_t sequence;
00113
00114 QString msg_;
00115 QString application_;
00116 QString pid_;
00117 QString hostaddr_;
00118 QString file_;
00119 QString line_;
00120 QString module_;
00121 QString eventID_;
00122 QString sourceType_;
00123 int sourceSequence_;
00124 };
00125
00129 typedef std::list<qt_mf_msg> msgs_t;
00130
00134 class msg_iter_t
00135 {
00136 public:
00137
00142 msg_iter_t(msgs_t::iterator it)
00143 {
00144 iter_ = it;
00145 seq_ = it->seq();
00146 }
00147
00153 bool operator==(msg_iter_t const& other) const
00154 {
00155 return seq_ == other.seq_;
00156 }
00157
00163 bool operator<(msg_iter_t const& other) const
00164 {
00165 return seq_ < other.seq_;
00166 }
00167
00172 msgs_t::iterator get() const { return iter_; };
00173
00174
00175 private:
00176
00177 msgs_t::iterator iter_;
00178 size_t seq_;
00179 };
00180
00184 typedef std::list<msg_iter_t> msg_iters_t;
00188 typedef std::map<QString, msg_iters_t> msg_iters_map_t;
00189
00190 #endif