7 #ifndef EMAIL_MANAGER_H
8 #define EMAIL_MANAGER_H
13 #include <boost/shared_ptr.hpp>
14 #include <boost/regex.hpp>
16 #include <carma/fault/DagMLNode.h>
18 #include <carma/util/ConcurrentQueue.h>
21 typedef std::list<std::string> StringList;
22 typedef boost::shared_ptr<class EmailBin> EmailBinPtr;
25 struct EmailBinSettings
37 EmailBin(
const struct EmailBinSettings &settings);
43 bool addFault(
const int frame,
const std::string &name);
46 bool shouldSendEmail()
const;
53 std::string getFileName()
const;
54 std::string getEmailAddress()
const;
58 bool matchesRegex(
const std::string &name)
const;
61 const struct EmailBinSettings settings_;
65 const int hysteresisFrames_;
68 const std::string templateBody_;
73 bool shouldSendEmail_;
79 EmailManager(
const std::string &tab,
const int holdoff);
82 void addFaults(
const int frame,
const DagMLNodeList faults);
85 static void emailThreadEP(EmailManager &This);
90 struct FaultQueueElem {
95 typedef carma::util::ConcurrentQueue<struct FaultQueueElem> FaultQueue;
96 typedef std::list<EmailBinPtr> EmailBinList;
99 unsigned int frames_processed_;
100 unsigned int frames_holdoff_;
102 EmailBinList emailList_;
106 void processElement(
struct FaultQueueElem &elem);
unsigned int frameType
Half second frames since Jan 1, 2000.
Various type definitions for util classes.