• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List
  • Globals

newmonitor/get4/SubEvent.h (r3879/r3826)

Go to the documentation of this file.
00001 #ifndef GET4_SUBEVENT_H
00002 #define GET4_SUBEVENT_H
00003 
00004 #include "base/SubEvent.h"
00005 
00006 #include "roc/Message.h"
00007 
00008 #include <vector>
00009 
00010 namespace get4 {
00011 
00012 
00013    /*
00014     * Extended message container. Keeps original ROC message, but adds full timestamp and
00015     * optionally corrected adc valules.
00016     * Note that extended messages inside the vector will be sorted after full timestamp
00017     * by the TRocProc::FinalizeEvent
00018     *
00019     */
00020 
00021    class MessageExtended {
00022       protected:
00023          /* original roc message*/
00024          roc::Message fMessage;
00025 
00026          /* full time stamp without correction*/
00027          double fGlobalTime;
00028 
00029       public:
00030 
00031          MessageExtended() :
00032             fMessage(),
00033             fGlobalTime(0.)
00034          {
00035          }
00036 
00037          MessageExtended(const roc::Message& msg, double globaltm) :
00038             fMessage(msg),
00039             fGlobalTime(globaltm)
00040          {
00041          }
00042 
00043          MessageExtended(const MessageExtended& src) :
00044             fMessage(src.fMessage),
00045             fGlobalTime(src.fGlobalTime)
00046          {
00047          }
00048 
00049          MessageExtended& operator=(const MessageExtended& src)
00050          {
00051             fMessage = src.fMessage;
00052             fGlobalTime = src.fGlobalTime;
00053             return *this;
00054          }
00055 
00056          ~MessageExtended() {}
00057 
00058          /* this is used for timesorting the messages in the filled vectors */
00059          bool operator<(const MessageExtended &rhs) const
00060             { return (fGlobalTime < rhs.fGlobalTime); }
00061 
00062          const roc::Message& msg() const { return fMessage; }
00063 
00064          double GetGlobalTime() const { return fGlobalTime; }
00065    };
00066 
00067 
00068    class SubEvent : public base::SubEvent {
00069       public:
00070          std::vector<get4::MessageExtended> fExtMessages;   
00071 
00072          SubEvent() : base::SubEvent(), fExtMessages()  {}
00073          virtual ~SubEvent() {}
00074 
00075          virtual void Reset()
00076          {
00077             fExtMessages.clear();
00078          }
00079    };
00080 
00081 }
00082 
00083 
00084 
00085 #endif

Generated on Thu Dec 13 2012 04:52:22 for ROCsoft by  doxygen 1.7.1