KizarmProbe.
 Vše Třídy Soubory Funkce Proměnné Výčty Hodnoty výčtu Definice maker Skupiny Stránky
baselayer.h
Zobrazit dokumentaci tohoto souboru.
1 #ifndef BASELAYER_H
2 #define BASELAYER_H
3 #include <stdlib.h>
4 #include <stdint.h>
5 
6 // Vnitřní makra gcc, g++
7 #if __ARM_EABI__ && __ARM_ARCH_6M__
8  #define ARCH_CM0 1
9 #endif //__ARM_EABI__ ...
10 
11 #if ARCH_CM0
12  #define debug(...)
13 #else // ARCH_CM0
14  #ifdef DEBUG
15  #define debug printf
16  #else // DEBUG
17  #define debug(...)
18  #endif // DEBUG
19 #endif // ARCH_CM0
20 
30 class BaseLayer {
32  public:
35  BaseLayer () {
36  pUp = NULL;
37  pDown = NULL;
38  };
44  virtual uint32_t Up (char* data, uint32_t len) {
45  if (pUp) return pUp->Up (data, len);
46  return 0;
47  };
53  virtual uint32_t Down (char* data, uint32_t len) {
54  if (pDown) return pDown->Down (data, len);
55  return len;
56  };
62  bl.setUp (this); // ta spodní bude volat při Up tuto třídu
63  setDown (&bl ); // a tato třída bude volat při Down tu spodní
64  return *this;
65  };
69  BaseLayer* getDown (void) const { return pDown; };
70  protected:
74  void setUp (BaseLayer* p) { pUp = p; };
78  void setDown (BaseLayer* p) { pDown = p; };
79  private:
80  // Ono to je vlastně oboustranně vázaný spojový seznam.
81  BaseLayer* pUp;
82  BaseLayer* pDown;
83 };
85 
86 #endif // BASELAYER_H
virtual BaseLayer & operator+=(BaseLayer &bl)
Definition: baselayer.h:61
BaseLayer()
Definition: baselayer.h:35
virtual uint32_t Down(char *data, uint32_t len)
Definition: baselayer.h:53
void setUp(BaseLayer *p)
Definition: baselayer.h:74
virtual uint32_t Up(char *data, uint32_t len)
Definition: baselayer.h:44
[BaseLayer example]
Definition: baselayer.h:31
BaseLayer * getDown(void) const
Definition: baselayer.h:69
void setDown(BaseLayer *p)
Definition: baselayer.h:78