fun_ofdm  1.0
802.11a Physical Layer for USRP
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Macros Pages
block.h
Go to the documentation of this file.
1 
9 #ifndef BLOCK_H
10 #define BLOCK_H
11 
22 #define BUFFER_MAX 65536
23 
24 #include <vector>
25 #include <string>
26 
27 namespace fun
28 {
36  class block_base
37  {
38  public:
39 
44  block_base(std::string block_name) :
45  name(block_name)
46  {
47  }
48 
54  virtual void work() = 0;
55 
59  std::string name;
60  };
61 
68  template<typename I, typename O>
69  class block : public block_base
70  {
71  public:
72 
79  block(std::string block_name) :
80  block_base(block_name)
81  {
82  input_buffer.reserve(BUFFER_MAX);
83  output_buffer.reserve(BUFFER_MAX);
84  }
85 
94  virtual void work() = 0;
95 
103  std::vector<I> input_buffer;
104 
111  std::vector<O> output_buffer;
112  };
113 
114 }
115 
116 #endif // BLOCK_H