bindings: cxx: require default values for output requests
authorBartosz Golaszewski <bartekgola@gmail.com>
Mon, 19 Feb 2018 09:51:17 +0000 (10:51 +0100)
committerBartosz Golaszewski <bartekgola@gmail.com>
Mon, 19 Feb 2018 09:51:39 +0000 (10:51 +0100)
Require users to provide default values to line_bulk::request() when
direction is output.

Signed-off-by: Bartosz Golaszewski <bartekgola@gmail.com>
bindings/cxx/line_bulk.cpp

index ec0d724db1808fc8bf99088977e373b7abf724f3..106c30713a28c1cdb59788e91c3ba296855967fe 100644 (file)
@@ -104,6 +104,9 @@ void line_bulk::request(const line_request& config, const std::vector<int> defau
        if (!default_vals.empty() && this->size() != default_vals.size())
                throw ::std::invalid_argument("the number of default values must correspond with the number of lines");
 
+       if (config.request_type == line_request::DIRECTION_OUTPUT && default_vals.empty())
+               throw ::std::invalid_argument("default values are required for output mode");
+
        ::gpiod_line_request_config conf;
        ::gpiod_line_bulk bulk;
        int rv;