Keyple Card Generic C++ Library - 4.0.0
Component of the Keyple C++ middleware
CardRequestAdapter.cpp
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (c) 2025 Calypso Networks Association https://calypsonet.org/ *
3 * *
4 * See the NOTICE file(s) distributed with this work for additional *
5 * information regarding copyright ownership. *
6 * *
7 * This program and the accompanying materials are made available under the *
8 * terms of the Eclipse Public License 2.0 which is available at *
9 * http://www.eclipse.org/legal/epl-2.0 *
10 * *
11 * SPDX-License-Identifier: EPL-2.0 *
12 ******************************************************************************/
13
14#include "keyple/card/generic/CardRequestAdapter.hpp"
15
16#include <memory>
17#include <vector>
18
19#include "keyple/card/generic/ApduRequestAdapter.hpp"
20
21namespace keyple {
22namespace card {
23namespace generic {
24
25CardRequestAdapter::CardRequestAdapter(
26 const std::vector<std::shared_ptr<ApduRequestSpi>>& apduRequests,
27 const bool stopOnUnsuccessfulStatusWord)
28: mApduRequests(apduRequests)
29, mStopOnUnsuccessfulStatusWord(stopOnUnsuccessfulStatusWord)
30{
31}
32
33const std::vector<std::shared_ptr<ApduRequestSpi>>&
34CardRequestAdapter::getApduRequests() const
35{
36 return mApduRequests;
37}
38
39bool
40CardRequestAdapter::stopOnUnsuccessfulStatusWord() const
41{
42 return mStopOnUnsuccessfulStatusWord;
43}
44
45std::ostream&
46operator<<(std::ostream& os, const CardRequestAdapter& cra)
47{
48 os << "CARD_REQUEST_ADAPTER: {"
49 << "APDU_REQUESTS = [";
50
51 for (size_t i = 0; i < cra.mApduRequests.size(); i++) {
52 if (i > 0) {
53 os << ", ";
54 }
55 os << std::dynamic_pointer_cast<ApduRequestAdapter>(
56 cra.mApduRequests[i]);
57 }
58
59 os << "], "
60 << "STOP_ON_UNSUCCESSFUL_STATUS_WORD = "
61 << cra.mStopOnUnsuccessfulStatusWord << "}";
62
63 return os;
64}
65
66std::ostream&
67operator<<(std::ostream& os, const std::shared_ptr<CardRequestAdapter> cra)
68{
69 os << *cra.get();
70
71 return os;
72}
73
74} /* namespace generic */
75} /* namespace card */
76} /* namespace keyple */
std::ostream & operator<<(std::ostream &os, const std::shared_ptr< CardRequestAdapter > cra)