SoapySDR  0.5.4-g68d0793c
Vendor and platform neutral SDR interface library
Registry.hpp
Go to the documentation of this file.
1 
11 #pragma once
12 #include <SoapySDR/Config.hpp>
13 #include <SoapySDR/Version.hpp>
14 #include <SoapySDR/Types.hpp>
15 #include <vector>
16 #include <string>
17 #include <map>
18 
19 namespace SoapySDR
20 {
21 
23 class Device;
24 
26 typedef KwargsList (*FindFunction)(const Kwargs &);
27 
29 typedef Device* (*MakeFunction)(const Kwargs &);
30 
32 typedef std::map<std::string, FindFunction> FindFunctions;
33 
35 typedef std::map<std::string, MakeFunction> MakeFunctions;
36 
41 {
42 public:
43 
51  Registry(const std::string &name, const FindFunction &find, const MakeFunction &make, const std::string &abi);
52 
54  ~Registry(void);
55 
60  static FindFunctions listFindFunctions(void);
61 
66  static MakeFunctions listMakeFunctions(void);
67 
68 private:
69  std::string _name;
70 };
71 
72 }
Device *(* MakeFunction)(const Kwargs &)
typedef for a device factory function
Definition: Registry.hpp:29
std::vector< Kwargs > KwargsList
Typedef for a list of key-word dictionaries.
Definition: Types.hpp:25
std::map< std::string, std::string > Kwargs
Typedef for a dictionary of key-value string arguments.
Definition: Types.hpp:22
std::map< std::string, MakeFunction > MakeFunctions
typedef for a dictionary of make functions
Definition: Registry.hpp:35
Definition: Registry.hpp:40
std::map< std::string, FindFunction > FindFunctions
typedef for a dictionary of find functions
Definition: Registry.hpp:32
Definition: Device.hpp:22
Definition: Device.hpp:31
KwargsList(* FindFunction)(const Kwargs &)
typedef for a device enumeration function
Definition: Registry.hpp:26
#define SOAPY_SDR_API
Definition: Config.h:41