LCOV - code coverage report
Current view: top level - shared_model/utils - query_error_response_visitor.hpp (source / functions) Hit Total Coverage
Test: cleared_cor.info Lines: 1 2 50.0 %
Date: 2019-03-07 14:46:43 Functions: 6 180 3.3 %

          Line data    Source code
       1             : /**
       2             :  * Copyright Soramitsu Co., Ltd. All Rights Reserved.
       3             :  * SPDX-License-Identifier: Apache-2.0
       4             :  */
       5             : 
       6             : #ifndef IROHA_QUERY_ERROR_RESPONSE_VISITOR_HPP
       7             : #define IROHA_QUERY_ERROR_RESPONSE_VISITOR_HPP
       8             : 
       9             : #include <boost/variant.hpp>
      10             : #include "common/visitor.hpp"
      11             : #include "interfaces/query_responses/error_query_response.hpp"
      12             : 
      13             : namespace shared_model {
      14             :   namespace interface {
      15             :     template <typename Error>
      16             :     class QueryErrorResponseChecker : public boost::static_visitor<bool> {
      17             :      public:
      18             :       bool operator()(
      19             :           const shared_model::interface::ErrorQueryResponse &status) const {
      20          51 :         return iroha::visit_in_place(status.get(),
      21             :                                      [](const Error &) { return true; },
      22             :                                      [](const auto &) { return false; });
      23             :       }
      24             : 
      25             :       template <typename T>
      26             :       bool operator()(const T &) const {
      27           0 :         return false;
      28             :       }
      29             :     };
      30             : 
      31             :     template <typename Error, typename QueryVariant>
      32             :     bool checkForQueryError(QueryVariant &&query) {
      33             :       return boost::apply_visitor(
      34             :           shared_model::interface::QueryErrorResponseChecker<Error>(),
      35             :           std::forward<QueryVariant>(query));
      36             :     }
      37             :   }  // namespace interface
      38             : }  // namespace shared_model
      39             : 
      40             : #endif  // IROHA_QUERY_ERROR_RESPONSE_VISITOR_HPP

Generated by: LCOV version 1.13