ARPDAS_QNX6 1.0
|
00001 #ifndef DGCOL_H_INCLUDED 00002 #define DGCOL_H_INCLUDED 00003 #include "DG_data.h" 00004 #include <list> 00005 00006 /** 00007 TSCHK_CHECK: set if we need to make some sort of timestamp check 00008 TSCHK_REQUIRED: set if we have determined that we must issue a new timestamp 00009 TSCHK_RTIME: The check to be performed is based on a need to resynch with realtime 00010 TSCHK_IMPLICIT: The timestamp is required due to MFCtr rollover 00011 */ 00012 #define TSCHK_RTIME 1 00013 #define TSCHK_IMPLICIT 2 00014 #define TSCHK_CHECK 4 00015 #define TSCHK_REQUIRED 8 00016 00017 /** 00018 * collector is the portion of the collection processing that 00019 * is implemented in the tmpplib. 00020 */ 00021 class collector : public data_generator { 00022 public: 00023 collector(); 00024 virtual ~collector(); 00025 void init(); 00026 void event(enum dg_event evt); 00027 DG_data *receive(const char *name, void *data, int data_size, int synch); 00028 protected: 00029 void commit_tstamp( mfc_t MFCtr, time_t time ); 00030 static unsigned short majf_row, minf_row; 00031 unsigned short next_minor_frame; 00032 private: 00033 std::list<DG_data *> data_clients; 00034 }; 00035 00036 /** 00037 * tmc_collector is the portion of the collection processing that 00038 * is implemented in source code generated by tmc (colmain.skel) 00039 */ 00040 class tmc_collector : public collector { 00041 public: 00042 void service_row_timer(); 00043 void init_senders(); 00044 void event(enum dg_event evt); 00045 private: 00046 void ts_check(); // don't know how to get to this one from a timer 00047 short ts_checks; 00048 int rowlets; 00049 }; 00050 00051 #endif 00052 00053