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_account_response.hpp"
7 :
8 : #include <boost/range/numeric.hpp>
9 :
10 : namespace shared_model {
11 : namespace proto {
12 :
13 : template <typename QueryResponseType>
14 : AccountResponse::AccountResponse(QueryResponseType &&queryResponse)
15 27 : : CopyableProto(std::forward<QueryResponseType>(queryResponse)),
16 27 : account_response_{proto_->account_response()},
17 27 : account_roles_{boost::accumulate(
18 27 : account_response_.account_roles(),
19 27 : AccountRolesIdType{},
20 : [](auto &&roles, const auto &role) {
21 28 : roles.push_back(interface::types::RoleIdType(role));
22 28 : return std::move(roles);
23 0 : })},
24 27 : account_{account_response_.account()} {}
25 :
26 : template AccountResponse::AccountResponse(AccountResponse::TransportType &);
27 : template AccountResponse::AccountResponse(
28 : const AccountResponse::TransportType &);
29 : template AccountResponse::AccountResponse(
30 : AccountResponse::TransportType &&);
31 :
32 : AccountResponse::AccountResponse(const AccountResponse &o)
33 0 : : AccountResponse(o.proto_) {}
34 :
35 : AccountResponse::AccountResponse(AccountResponse &&o)
36 27 : : AccountResponse(std::move(o.proto_)) {}
37 :
38 : const interface::Account &AccountResponse::account() const {
39 25 : return account_;
40 : }
41 :
42 : const AccountResponse::AccountRolesIdType &AccountResponse::roles() const {
43 16 : return account_roles_;
44 : }
45 :
46 : } // namespace proto
47 : } // namespace shared_model
|