GNU Radio 3.6.4.2 C++ API
gr_block_registry.h
Go to the documentation of this file.
1 #ifndef GR_BLOCK_REGISTRY_H
2 #define GR_BLOCK_REGISTRY_H
3 
4 #include <map>
5 #include <gr_basic_block.h>
6 
7 #ifndef GR_BASIC_BLOCK_H
8 class gr_basic_block;
9 class gr_block;
10 #endif
11 
13  public:
15 
16  long block_register(gr_basic_block* block);
17  void block_unregister(gr_basic_block* block);
18 
19  std::string register_symbolic_name(gr_basic_block* block);
20  void register_symbolic_name(gr_basic_block* block, std::string name);
21 
23 
24  void register_primitive(std::string blk, gr_block* ref);
25  void unregister_primitive(std::string blk);
26  void notify_blk(std::string blk);
27 
28  private:
29 
30  //typedef std::map< long, gr_basic_block_sptr > blocksubmap_t;
31  typedef std::map< long, gr_basic_block* > blocksubmap_t;
32  typedef std::map< std::string, blocksubmap_t > blockmap_t;
33 
34  blockmap_t d_map;
35  pmt::pmt_t d_ref_map;
36  std::map< std::string, gr_block*> primitive_map;
37 
38 };
39 
41 
42 #endif
43 
void register_primitive(std::string blk, gr_block *ref)
std::string register_symbolic_name(gr_basic_block *block)
void unregister_primitive(std::string blk)
gr_block_registry global_block_registry
void block_unregister(gr_basic_block *block)
Definition: gr_block.h:37
gr_basic_block_sptr block_lookup(pmt::pmt_t symbol)
long block_register(gr_basic_block *block)
The abstract base class for all signal processing blocks.Basic blocks are the bare abstraction of an ...
Definition: gr_basic_block.h:52
VOLK_API $kern pname $kern name
A function pointer to the dispatcher implementation.
boost::intrusive_ptr< pmt_base > pmt_t
typedef for shared pointer (transparent reference counting). See http://www.boost.org/libs/smart_ptr/smart_ptr.htm
Definition: pmt.h:54
void notify_blk(std::string blk)
Definition: gr_block_registry.h:12