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: coverage_cleared.info Lines: 13 15 86.7 %
Date: 2018-12-05 17:11:35 Functions: 9 26 34.6 %

          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         146 :         : CopyableProto(std::forward<QueryResponseType>(response)),
      15             :           variant_{[this] {
      16          96 :             auto &&ar = proto_->error_response();
      17             : 
      18          96 :             unsigned which = ar.GetDescriptor()
      19          96 :                                  ->FindFieldByName("reason")
      20          96 :                                  ->enum_type()
      21          96 :                                  ->FindValueByNumber(ar.reason())
      22          96 :                                  ->index();
      23          96 :             return shared_model::detail::
      24             :                 variant_impl<ProtoQueryErrorResponseListType>::template load<
      25             :                     ProtoQueryErrorResponseVariantType>(
      26          96 :                     std::forward<decltype(ar)>(ar), which);
      27           0 :           }},
      28         146 :           ivariant_{detail::makeLazyInitializer(
      29             :               [this] { return QueryErrorResponseVariantType(*variant_); })} {}
      30             : 
      31             :     template ErrorQueryResponse::ErrorQueryResponse(
      32             :         ErrorQueryResponse::TransportType &);
      33             :     template ErrorQueryResponse::ErrorQueryResponse(
      34             :         const ErrorQueryResponse::TransportType &);
      35             :     template ErrorQueryResponse::ErrorQueryResponse(
      36             :         ErrorQueryResponse::TransportType &&);
      37             : 
      38             :     ErrorQueryResponse::ErrorQueryResponse(const ErrorQueryResponse &o)
      39           0 :         : ErrorQueryResponse(o.proto_) {}
      40             : 
      41             :     ErrorQueryResponse::ErrorQueryResponse(ErrorQueryResponse &&o) noexcept
      42         146 :         : ErrorQueryResponse(std::move(o.proto_)) {}
      43             : 
      44             :     const ErrorQueryResponse::QueryErrorResponseVariantType &
      45             :     ErrorQueryResponse::get() const {
      46          96 :       return *ivariant_;
      47             :     }
      48             : 
      49             :     const ErrorQueryResponse::ErrorMessageType &
      50             :     ErrorQueryResponse::errorMessage() const {
      51           2 :       return proto_->error_response().message();
      52             :     }
      53             : 
      54             :   }  // namespace proto
      55             : }  // namespace shared_model

Generated by: LCOV version 1.13