LCOV - code coverage report
Current view: top level - shared_model/backend/protobuf/query_responses/impl - proto_error_query_response.cpp (source / functions) Hit Total Coverage
Test: cleared_cor.info Lines: 14 16 87.5 %
Date: 2019-03-07 14:46:43 Functions: 10 22 45.5 %

          Line data    Source code
       1             : /**
       2             :  * Copyright Soramitsu Co., Ltd. All Rights Reserved.
       3             :  * SPDX-License-Identifier: Apache-2.0
       4             :  */
       5             : 
       6             : #include "backend/protobuf/query_responses/proto_error_query_response.hpp"
       7             : #include "utils/variant_deserializer.hpp"
       8             : 
       9             : namespace shared_model {
      10             :   namespace proto {
      11             : 
      12             :     template <typename QueryResponseType>
      13             :     ErrorQueryResponse::ErrorQueryResponse(QueryResponseType &&response)
      14         156 :         : CopyableProto(std::forward<QueryResponseType>(response)),
      15             :           variant_{[this] {
      16         156 :             auto &&ar = proto_->error_response();
      17             : 
      18         156 :             unsigned which = ar.GetDescriptor()
      19         156 :                                  ->FindFieldByName("reason")
      20         156 :                                  ->enum_type()
      21         156 :                                  ->FindValueByNumber(ar.reason())
      22         156 :                                  ->index();
      23         156 :             return shared_model::detail::
      24             :                 variant_impl<ProtoQueryErrorResponseListType>::template load<
      25             :                     ProtoQueryErrorResponseVariantType>(
      26         156 :                     std::forward<decltype(ar)>(ar), which);
      27           0 :           }()},
      28         156 :           ivariant_{QueryErrorResponseVariantType{variant_}} {}
      29             : 
      30             :     template ErrorQueryResponse::ErrorQueryResponse(
      31             :         ErrorQueryResponse::TransportType &);
      32             :     template ErrorQueryResponse::ErrorQueryResponse(
      33             :         const ErrorQueryResponse::TransportType &);
      34             :     template ErrorQueryResponse::ErrorQueryResponse(
      35             :         ErrorQueryResponse::TransportType &&);
      36             : 
      37             :     ErrorQueryResponse::ErrorQueryResponse(const ErrorQueryResponse &o)
      38           0 :         : ErrorQueryResponse(o.proto_) {}
      39             : 
      40             :     ErrorQueryResponse::ErrorQueryResponse(ErrorQueryResponse &&o) noexcept
      41         156 :         : ErrorQueryResponse(std::move(o.proto_)) {}
      42             : 
      43             :     const ErrorQueryResponse::QueryErrorResponseVariantType &
      44             :     ErrorQueryResponse::get() const {
      45         106 :       return ivariant_;
      46             :     }
      47             : 
      48             :     const ErrorQueryResponse::ErrorMessageType &
      49             :     ErrorQueryResponse::errorMessage() const {
      50           3 :       return proto_->error_response().message();
      51             :     }
      52             : 
      53             :     ErrorQueryResponse::ErrorCodeType ErrorQueryResponse::errorCode() const {
      54          26 :       return proto_->error_response().error_code();
      55             :     }
      56             : 
      57             :   }  // namespace proto
      58             : }  // namespace shared_model

Generated by: LCOV version 1.13