april  1.0.0
...
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
eventline.h
Go to the documentation of this file.
1 /* ========================================================================= */
2 /* ------------------------------------------------------------------------- *//*
12 
13 
14  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
15  Please read COPYING and README files in root folder
16  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
17 */
18 /* ------------------------------------------------------------------------- */
19 /* ========================================================================= */
20 #ifndef __EVENTLINE_INC__
21 #define __EVENTLINE_INC__
22 //
23 //
24 //
25 //
26 /* INCLUDES ------------------------------------------------------------ */
27 
28 #include <april/april.h>
29 #include <april/logic/component.h>
30 #include <april/logic/uniqueid.h>
31 #include <april/logic/eventdata.h>
32 #include <libbbb/1/list2d.h>
33 
34 /* INCLUDES ============================================================ */
35 //
36 //
37 //
38 //
39 /* DEFINITIONS --------------------------------------------------------- */
40 
41 namespace april {
42 class World;
43 class EventData;
44 
45 /* DEFINITIONS ========================================================= */
46 //
47 //
48 //
49 //
50 /* CLASS --------------------------------------------------------------- */
51 
55 class
57  EventLine : public Component {
58  BBM_TRACK( EventLine );
59 
60  //
61  //
62  //
63  //
64  /* DEFINITIONS ----------------------------------------------------- */
65 
66  friend class World;
67 
68  /* DEFINITIONS ===================================================== */
69  //
70  //
71  //
72  //
73  /* DATA ------------------------------------------------------------ */
74 
75 private:
76 
78  World * world_;
79 
81  ID id_;
82 
84  List2Dh event_data_;
85 
87  EventData * last_;
88 
90  unsigned int max_count_;
91 
92  /* DATA ============================================================ */
93  //
94  //
95  //
96  //
97  /* FUNCTIONS ------------------------------------------------------- */
98 
99 public:
100 
101 
103  EventLine ( World * w, ID id, unsigned int max_count = 100 );
104 
106  static EventLine * fromStg ( World * w, QSettings & s );
107 
108 protected:
109 
111  EventLine ( World * w );
112 
113 
115  virtual ~EventLine ( void );
116 
117 public:
118 
120  inline World * world ( void ) const
121  { return world_; }
122 
124  inline ID identificator ( void ) const
125  { return id_; }
126 
128  inline unsigned int dataCount ( void ) const
129  { return (unsigned int) event_data_.count(); }
130 
132 
137  bool postActivity ( EventData * ed );
138 
140 
143  void discardOldEntries ( void );
144 
146  inline EventData * firstEventData ( void ) const
147  { return firstEventData_(this); }
148 
150  EventData * lastEventData ( void );
151 
153  unsigned int maxEntries ( void ) const
154  { return max_count_; }
155 
157  virtual bool save ( QSettings & s ) const;
158 
160  virtual bool load ( QSettings & s );
161 
162  /* FUNCTIONS ======================================================= */
163  //
164  //
165  //
166  //
167 
168 }; /* class EventLine */
169 
170 /* CLASS =============================================================== */
171 //
172 //
173 //
174 //
175 
176 } // namespace april
177 
178 #endif // __EVENTLINE_INC__
179 /* ------------------------------------------------------------------------- */
180 /* ========================================================================= */