File indexing completed on 2025-08-03 08:20:57
0001 #ifndef __GL1MANAGER_H__
0002 #define __GL1MANAGER_H__
0003
0004
0005 #include <iostream>
0006 #include <string>
0007 #include <vector>
0008 #include <deque>
0009 #include <cstdint>
0010
0011 enum GL1ManagerReturnCodes
0012 {
0013 GL1Manager_MATCH = 0,
0014 GL1Manager_MISMATCH = 1,
0015 GL1Manager_INITIALIZING = 2
0016 };
0017
0018
0019
0020
0021
0022
0023 class eventReceiverClient;
0024 class Packet;
0025
0026
0027 class GL1Manager
0028 {
0029 public:
0030
0031 GL1Manager (const char * , const int = 6, const int = 3);
0032 ~GL1Manager();
0033
0034 void Reset();
0035
0036 int getClockSync(const int , Packet * );
0037
0038 int getDelta () const {return event_delta;};
0039 void setDelta (const int d ) {event_delta = d;};
0040 void setVerbosity (const int d ) {verbosity = d;};
0041
0042 int checkPacket (Packet * ) const;
0043 uint32_t getPacketClockDifference (Packet * ) const;
0044
0045 Packet * getGL1Packet();
0046
0047 protected:
0048
0049
0050 int ClockSync(const int evtnr, Packet * p);
0051 Packet * fetchGL1Packet(const int );
0052 int findDelta();
0053
0054 Packet *pgl1;
0055
0056 std::string _hostname;
0057
0058 int eventMatch;
0059 int packetRequested;
0060
0061 eventReceiverClient *erc;
0062 uint32_t desireddiff;
0063 uint32_t previousdiff;
0064 uint32_t clockdiff;
0065 long long gl1_clock;
0066
0067 unsigned int history_length;
0068 int max_discrepancy;
0069 int init_done;
0070
0071 std::deque<long long> previous_GL1clocks;
0072 std::deque<uint32_t> previous_packetclocks;
0073
0074 std::deque<uint32_t> diff_gl1clocks;
0075 std::deque<uint32_t> diff_packetclocks;
0076
0077 int event_delta;
0078 int _broken;
0079 int verbosity;
0080 };
0081
0082 #endif
0083