aboutsummaryrefslogtreecommitdiffstats
path: root/src/direct_bt/BTDeviceRegistry.cpp
Commit message (Collapse)AuthorAgeFilesLines
* BT[Device|Security]Registry: Inline static func definition in header and add ↵Sven Gothel2021-09-011-20/+20
| | | | noexcept, include 'em in DirectBT.hpp
* BTDeviceRegistry::DeviceQuery: Use explicit enum type distinguishing address ↵Sven Gothel2021-08-051-3/+3
| | | | or name to allow empty EUI48Sub for all devices
* BTDeviceRegistry, BTSecurityRegistry: Expose universal pattern matching, fix ↵Sven Gothel2021-08-051-25/+25
| | | | | | | | | | | | | | | basic use cases Universal methods use a 'matcher' interface (Java) or function pointer (C++), which can be defined 'on the fly' using lambda expressions. Basic use cases BTDeviceRegistry: - use 'contains' in general to match for awaited, processed etc devices Basic use cases BTDeviceRegistry: - For getOrCreate() uses 'equals' for a 100% match - For sec_level use getStartOf() with actual address and name - For PASSKEY etc use getStartOf() with actual addess only - no fuzzy name
* BTDeviceRegistry: Replace print*() to get*String() and clarify method names ↵Sven Gothel2021-08-041-23/+24
| | | | (C++ and Java)
* BTDeviceRegistry + BTSecurityRegistry: Expose underlying collection (C++ and ↵Sven Gothel2021-08-041-63/+38
| | | | Java)
* BTDeviceRegistry.[cpp/java]: Bring back unordered_set/HashSet for ↵Sven Gothel2021-08-011-22/+55
| | | | | | | devicesInProcessing and devicesProcessed for O(1) processing. Add hash_code()/hashCode() and equality operation to DeviceID using BDAddressAndType only, allowing devicesInProcessing and devicesProcessed to be mostly operated within O(1).
* dbt_scanner10/DBTScanner10: Extract BTDeviceRegistry and BTSecurityRegistry ↵Sven Gothel2021-07-311-0/+174
to lib, support full EUI84Sub and name-sub pattern matching Same naming-schema and functionality C++/Java Due to using EUI48Sub and name-sub pattern matching, we naturally had to drop the hash-set fast-lookup approach. However, looking up device names via pattern-matching is essential to handle device groups, i.e. - specific security settings (level, passkey, ..) - actually accepting them to connect (waitForDevices)