diff options
author | Lars Amsel <lars.amsel@ni.com> | 2021-07-13 12:28:11 +0200 |
---|---|---|
committer | Aaron Rossetto <aaron.rossetto@ni.com> | 2021-07-20 07:20:47 -0500 |
commit | 0dc4d06450f9a39c780fc91ffb73317d606c5098 (patch) | |
tree | 1e1fe1eac8fb93408dc81423e01a6eb283ba9abd /host/lib | |
parent | 4e2d3a0aba20e99e6da41759212b2e2865c5c616 (diff) | |
download | uhd-0dc4d06450f9a39c780fc91ffb73317d606c5098.tar.gz uhd-0dc4d06450f9a39c780fc91ffb73317d606c5098.tar.bz2 uhd-0dc4d06450f9a39c780fc91ffb73317d606c5098.zip |
rfnoc: allow find_blocks to search by device number or block count.
In current implementation it is not possible to find all blocks of
a device by calling find_blocks("0/"). The same is true for the
block count. This is caused by the valid block id regex which
requires a block name. This regex is used to validate the block
name as well as to match block ids in search.
This fix looses the requirement for the block name to allow
searches by device number and block count and also extends the
is_valid_block_id method to require the block name match to be
non empty (which restores the previous behaviour at this point).
Diffstat (limited to 'host/lib')
-rw-r--r-- | host/lib/rfnoc/block_id.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/host/lib/rfnoc/block_id.cpp b/host/lib/rfnoc/block_id.cpp index 85c8a7e75..da14632b2 100644 --- a/host/lib/rfnoc/block_id.cpp +++ b/host/lib/rfnoc/block_id.cpp @@ -42,9 +42,9 @@ bool block_id_t::is_valid_blockname(const std::string& block_name) return std::regex_match(block_name, std::regex(VALID_BLOCKNAME_REGEX)); } -bool block_id_t::is_valid_block_id(const std::string& block_name) +bool block_id_t::is_valid_block_id(const std::string& block_id) { - return std::regex_match(block_name, std::regex(VALID_BLOCKID_REGEX)); + return std::regex_match(block_id, std::regex(VALID_BLOCKID_REGEX)); } std::string block_id_t::to_string() const @@ -66,7 +66,7 @@ bool block_id_t::match(const std::string& block_str) { std::cmatch matches; if (not std::regex_match( - block_str.c_str(), matches, std::regex(VALID_BLOCKID_REGEX))) { + block_str.c_str(), matches, std::regex(MATCH_BLOCKID_REGEX))) { return false; } try { |