Kallisto Linux API
Library for interacting with Kallisto devices
bluetooth_scanner_filter.hpp
Go to the documentation of this file.
1 
42 #ifndef BLUETOOTH_SCANNER_FILTER_HPP_
43 #define BLUETOOTH_SCANNER_FILTER_HPP_
44 
45 #include <string>
46 #include <vector>
47 #include <algorithm>
48 #include <regex>
49 #include <memory>
50 #include <utility>
51 
52 namespace kallisto {
53 namespace bluetooth {
54 
65 class BluetoothScannerFilter {
66 private:
68  std::vector<std::string> m_include_macs;
70  std::vector<std::string> m_exclude_macs;
72  std::vector<std::string> m_include_names;
74  std::vector<std::string> m_exclude_names;
75 
79  BluetoothScannerFilter(std::vector<std::string>& include_macs, std::vector<std::string>& exclude_macs,
80  std::vector<std::string>& include_names, std::vector<std::string>& exclude_names);
81 
82 public:
87 
91  BluetoothScannerFilter(const BluetoothScannerFilter& filter);
92 
96  BluetoothScannerFilter& operator=(const BluetoothScannerFilter& filter);
97 
101  BluetoothScannerFilter(BluetoothScannerFilter&& configuration);
102 
106  BluetoothScannerFilter& operator=(BluetoothScannerFilter&& configuration);
107 
136  bool filter(std::string name, std::string mac);
138  class Builder {
139  private:
141  std::vector<std::string> m_include_macs;
143  std::vector<std::string> m_exclude_macs;
145  std::vector<std::string> m_include_names;
147  std::vector<std::string> m_exclude_names;
148 
152  Builder(Builder const&) = delete;
153  Builder(Builder&&) = delete;
154  void operator=(Builder const&) = delete;
155  void operator=(Builder &&) = delete;
156 
162  static bool isValidMacAddress(const std::string mac);
163 
164  public:
168  Builder();
169 
173  ~Builder();
174 
184  Builder& includeDeviceWithMac(std::string mac);
185 
195  Builder& includeDeviceWithMacIn(std::vector<std::string>& macs);
196 
206  Builder& excludeDeviceWithMac(std::string mac);
207 
217  Builder& excludeDeviceWithMacIn(std::vector<std::string>& macs);
218 
228  Builder& includeDeviceWhoseNameContains(std::string name);
229 
239  Builder& includeDeviceWhoseNameContains(std::vector<std::string>& names);
240 
250  Builder& excludeDeviceWhoseNameContains(std::string name);
251 
261  Builder& excludeDeviceWhoseNameContains(std::vector<std::string>& names);
262 
269 
278  };
279 };
280 
281 } /* namespace bluetooth */
282 } /* namespace kallisto */
283 
284 #endif /* BLUETOOTH_SCANNER_HPP_ */
Builder & includeDeviceWithMacIn(std::vector< std::string > &macs)
Builder & excludeDeviceWhoseNameContains(std::string name)
Definition: bluetooth_adapter.hpp:52
Definition: bluetooth_scanner_filter.hpp:64
Builder & includeDeviceWhoseNameContains(std::string name)
BluetoothScannerFilter & operator=(const BluetoothScannerFilter &filter)
bool filter(std::string name, std::string mac)
Builder & excludeDeviceWithMacIn(std::vector< std::string > &macs)
Definition: bluetooth_scanner_filter.hpp:137