versadac  1
versadac - Scalable Recorder Firmware
mc_dataList.h
1 /*******************************************************************************
2 FILE : mc_dataList.h
3 VERSION : $Id: mc_dataList.h 4938 2006-10-10 14:20:18Z martinto $
4 SYSTEM : __GNUC__ on vxworks
5 DESCRIPTION : Master comms data list class - holds and manages a list of mc_data
6  objects
7 *******************************************************************************/
8 
9 #ifndef __MC_DATALIST_H
10 #define __MC_DATALIST_H
11 #include "semLib.h"
12 class mc_dataRead;
13 class mc_dataWrite;
14 #include "ENUM_MCStatus.h"
15 #include <stdio.h>
16 #include "stdtypes.h"
17 
18 class mc_data;
19 
21 {
22  public:
23  mc_dataList();
24 
25  virtual ~mc_dataList();
26  void addToList(mc_data *z_data);
27  void removeFromList(mc_data *z_data);
28  mc_data *getNextInList();
29  void printTo(FILE*);
30  void setBoundaries(uint16 z_numberOfBoundaries, uint16 *z_boundaries);
31  void setMaxBlockSize(uint16 z_maxBlockSize){m_maxBlockSize = z_maxBlockSize;};
32  void setMergeEnable(bool z_enable){m_mergeEnabled = z_enable;m_listContentChanged = TRUE;};
33  void setStatus(ENUM_MCStatus z_status);
34  ENUM_MCStatus getDataStatus(void);
35 
36  private:
37  void lock();
38  void unlock();
39  void addToWorkingList();
40  void checkForIdleData();
41  void merge();
42  void demerge();
43  mc_data *m_list;
44  mc_data *m_addedList;
45  mc_data *m_lastData;
46  SEM_ID m_semaphore;
47  uint16 m_maxBlockSize;
48  uint16 m_numberOfBoundaries;
49  uint16 *m_boundaries;
50  bool m_listContentChanged;
51  bool m_listContainsIdleData;
52  bool m_mergeEnabled;
53 };
54 
55 #endif
56 
Definition: mc_dataRead.h:13
Definition: mc_data.h:17
Definition: mc_dataWrite.h:12
Definition: mc_dataList.h:20