versadac  1
versadac - Scalable Recorder Firmware
uhh_walker.h
1 /*****************************************************************************
2 FILE : U H H _ W A L K E R . H
3 VERSION : $Id: uhh_walker.h 4938 2006-10-10 14:20:18Z martinto $
4 AUTHOR : Dave Storey
5 SYSTEM : Gnu C++
6 DESCRIPTION : Uhh Walker class declaration
7 *****************************************************************************/
8 
9 #if !defined __UHH_WALKER_H
10 #define __UHH_WALKER_H
11 
12 #include "uhh_filewalker.h"
13 #include "ENUM_UhhNav_Direction.h"
14 #include "ENUM_UhhMsg_Err.h"
15 
16 
17 class UhhWalker : public UhhHeap
18 {
19 public:
20 
21  UhhWalker(UhhGroupHist *z_pGroupHist, UhhDataItem *z_pWalkItem,
22  bool z_bAcquireMsgs);
23  UhhWalker(UhhGroupHist *z_pGroupHist, UhhMessageItem *z_pWalkItem);
24  ~UhhWalker();
25  ENUM_UhhMsg_Err nextDataRecord(ENUM_UhhWalkCode *z_peCode,
26  double z_dTixLatest);
27  ENUM_UhhMsg_Err prevDataRecord(ENUM_UhhWalkCode *z_peCode,
28  double z_dTixLatest,
29  bool z_bStopAtSample);
30  ENUM_UhhMsg_Err prevMsgRecord(ENUM_UhhWalkCode *z_peCode,
31  double z_dEarliestTix);
32  UhhSegHdr *getSegHdr(){return m_pSegHdrCopy;}
33  void setMessageAcquisition(bool z_bAcquire);
34  void setMessageFilter(sint32 z_nCategories);
35  ENUM_UhhMsg_Err setTix(sint32 *z_pnCfgChanges, double z_dTix);
36  ENUM_UhhMsg_Err setTixEarliest(double *z_pdTix);
37  ENUM_UhhMsg_Err setTixLatest(double *z_pdTix);
38  void sliceDeleted(UhhSlice * z_pSli);
39 
40 private:
41 
42  // Private methods
43 
44  ENUM_UhhMsg_Err moveToFile(UhhSlice *z_pSlice);
45 
46 
47  // Private members
48 
49  UhhGroupHist *m_pGroupHist; // Group history being walked
50  UhhDataItem *m_pWalkItem; // Item for current walking data
51  bool m_bAcquireMsgs; // Whether messages should be acquired
52  bool m_bAcquireSamples; // Whether samples are being acquired
53 
54  UhhMessageItem *m_pMsgWalkItem; // message walking data
55  sint32 m_nMsgFilter; // bitmask representing categories of
56  // interest when retrieving ONLY messages
57 
58 
59  UhhSlice *m_pSlice; // Current slice
60  UhhFileWalker *m_pFileWalker; // File walker
61  UhhSegHdr *m_pSegHdrCopy; // Our own copy of current segment header
62 };
63 
64 
65 #endif
Definition: uhh_seghdr.h:116
Definition: uhh_dataitem.h:53
Definition: uhh_messageitem.h:17
Definition: uhh_grouphist.h:118
Definition: uhh_walker.h:17
Definition: uhh_filewalker.h:35
Definition: uhh_heap.h:31
Definition: uhh_grouphist.h:52