Keyple Card Generic C++ Library - 3.1.2
Component of the Keyple C++ middleware
ApduRequestAdapter.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/ApduRequestAdapter.hpp"
15
16#include <memory>
17#include <string>
18#include <vector>
19
20#include "keyple/core/util/cpp/KeypleStd.hpp"
21
22namespace keyple {
23namespace card {
24namespace generic {
25
26const int ApduRequestAdapter::DEFAULT_SUCCESSFUL_CODE = 0x9000;
27
28ApduRequestAdapter::ApduRequestAdapter(const std::vector<uint8_t>& apdu)
29: mApdu(apdu)
30, mSuccessfulStatusWords({ApduRequestAdapter::DEFAULT_SUCCESSFUL_CODE})
31{
32}
33
34ApduRequestAdapter&
35ApduRequestAdapter::addSuccessfulStatusWord(const int successfulStatusWord)
36{
37 mSuccessfulStatusWords.push_back(successfulStatusWord);
38
39 return *this;
40}
41
42ApduRequestAdapter&
43ApduRequestAdapter::setInfo(const std::string& info)
44{
45 mInfo = info;
46
47 return *this;
48}
49
50const std::vector<uint8_t>&
51ApduRequestAdapter::getApdu() const
52{
53 return mApdu;
54}
55
56void
57ApduRequestAdapter::setApdu(const std::vector<std::uint8_t>& apdu)
58{
59 mApdu = apdu;
60}
61
62const std::vector<int>&
63ApduRequestAdapter::getSuccessfulStatusWords() const
64{
65 return mSuccessfulStatusWords;
66}
67
68const std::string&
69ApduRequestAdapter::getInfo() const
70{
71 return mInfo;
72}
73
74std::ostream&
75operator<<(std::ostream& os, const std::shared_ptr<ApduRequestAdapter> ara)
76{
77 os << "APDU_REQUEST_ADAPTER: {"
78 << "DEFAULT_SUCCESSFUL_CODE = " << ara->DEFAULT_SUCCESSFUL_CODE << ", "
79 << "APDU = " << ara->mApdu << ", "
80 << "SUCCESSFUL_STATUS_WORD = " << ara->mSuccessfulStatusWords << ", "
81 << "INFO = " << ara->mInfo << "}";
82
83 return os;
84}
85
86} /* namespace generic */
87} /* namespace card */
88} /* namespace keyple */
std::ostream & operator<<(std::ostream &os, const std::shared_ptr< ApduRequestAdapter > ara)