You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@nifi.apache.org by GitBox <gi...@apache.org> on 2022/07/20 15:42:07 UTC
[GitHub] [nifi-minifi-cpp] fgerlits commented on a diff in pull request #1354: MINIFICPP-1860 Integrate readability clang-tidy checks in CI
fgerlits commented on code in PR #1354:
URL: https://github.com/apache/nifi-minifi-cpp/pull/1354#discussion_r925685975
##########
libminifi/src/c2/C2Agent.cpp:
##########
@@ -254,7 +256,7 @@ void C2Agent::serializeMetrics(C2Payload &metric_payload, const std::string &nam
const auto payloads = std::count_if(begin(metrics), end(metrics), [](const state::response::SerializedResponseNode& metric) { return !metric.children.empty() || metric.keep_empty; });
metric_payload.reservePayloads(metric_payload.getNestedPayloads().size() + payloads);
for (const auto &metric : metrics) {
- if (metric.children.size() > 0 || (metric.children.size() == 0 && metric.keep_empty)) {
+ if (!metric.children.empty() || (metric.children.empty() && metric.keep_empty)) {
Review Comment:
minor, but I think this would read better (and would be slightly shorter) as
```suggestion
if (metric.keep_empty || !metric.children.empty()) {
```
##########
main/AgentDocs.h:
##########
@@ -26,7 +26,7 @@ class AgentDocs {
public:
void generate(const std::string &docsdir, std::ostream &genStream);
private:
- [[nodiscard]] inline std::string extractClassName(const std::string &processor) const;
+ [[nodiscard]] static inline std::string extractClassName(const std::string &processor);
Review Comment:
this isn't really `inline`
##########
extensions/standard-processors/tests/unit/GetFileTests.cpp:
##########
@@ -40,9 +40,9 @@ namespace {
class GetFileTestController {
public:
GetFileTestController();
- [[nodiscard]] std::string getFullPath(const std::string filename) const;
+ [[nodiscard]] std::string getFullPath(const std::string& filename) const;
[[nodiscard]] std::string getInputFilePath() const;
- void setProperty(const core::Property& property, const std::string& value);
+ void setProperty(const core::Property& property, const std::string& value) const;
Review Comment:
Does clang-tidy want us to mark `setProperty()` `const`? It modifies the state of the contained `test_plan_`, so I would not call it `const`. It can only be marked `const` because `test_plan_` is a pointer.
##########
libminifi/src/core/Processor.cpp:
##########
@@ -304,18 +303,13 @@ bool Processor::isThrottledByBackpressure() const {
}
return false;
})();
Review Comment:
`isThrottledByOutgoing` could be rewritten with `ranges::any_of` (or two of them) similar to `isForcedByIncomingCycle`
##########
extensions/http-curl/client/HTTPClient.cpp:
##########
@@ -437,29 +439,24 @@ void HTTPClient::setFollowRedirects(bool follow) {
}
bool HTTPClient::isValidHttpHeaderField(std::string_view field_name) {
- if (field_name.size() == 0) {
+ if (field_name.empty()) {
return false;
}
// RFC822 3.1.2: The field-name must be composed of printable ASCII characters
// (i.e., characters that have values between 33. and 126., decimal, except colon).
- for (auto ch : field_name) {
- if (ch < 33 || ch > 126 || ch == ':') {
- return false;
- }
- }
- return true;
+ return ranges::all_of(field_name, [](char c) { return c >= 33 && c <= 126 && c != ':'; });
}
std::string HTTPClient::replaceInvalidCharactersInHttpHeaderFieldName(std::string_view field_name) {
- if (field_name.size() == 0) {
+ if (field_name.empty()) {
return "X-MiNiFi-Empty-Attribute-Name";
}
std::string result;
// RFC822 3.1.2: The field-name must be composed of printable ASCII characters
// (i.e., characters that have values between 33. and 126., decimal, except colon).
- for (auto ch : field_name) {
+ for (auto ch : field_name) { // NOLINT(readability-use-anyofallof)
Review Comment:
Instead of the NOLINT, we could change this to a `transform` (also changing the parameter type to `std::string`):
```c++
#include "range/v3/action/transform.hpp"
// ...
ranges::actions::transform(field_name, [](char ch) {
return (ch >= 33 && ch <= 126 && ch != ':') ? ch : '-';
});
return field_name;
```
Or if you want to keep a `string_view`, then this works:
```c++
#include "range/v3/view/transform.hpp"
#include "range/v3/range/conversion.hpp"
// ...
return ranges::views::transform(field_name, [](char ch) {
return (ch >= 33 && ch <= 126 && ch != ':') ? ch : '-';
}) | ranges::to<std::string>();
```
although it's less nice IMO.
##########
libminifi/src/core/Processor.cpp:
##########
@@ -304,18 +303,13 @@ bool Processor::isThrottledByBackpressure() const {
}
return false;
})();
- bool isForcedByIncomingCycle = ([&] {
- for (auto &inConn : incoming_connections_) {
- auto connection = dynamic_cast<Connection*>(inConn);
- if (!connection) {
- continue;
- }
- if (partOfCycle(connection) && connection->isFull()) {
- return true;
- }
+ bool isForcedByIncomingCycle = ranges::any_of(incoming_connections_, [&](auto& inConn) {
+ auto connection = dynamic_cast<Connection*>(inConn);
+ if (!connection) {
+ return false;
}
- return false;
- })();
+ return partOfCycle(connection) && connection->isFull();
Review Comment:
this could be
```c++
return connection && partOfCycle(connection) && connection->isFull();
```
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: issues-unsubscribe@nifi.apache.org
For queries about this service, please contact Infrastructure at:
users@infra.apache.org