Keypop Card C++ API 2.0.0
Reference Card API for C++
CardResponseApi.hpp
Go to the documentation of this file.
1/******************************************************************************
2 * Copyright (c) 2025 Calypso Networks Association https://calypsonet.org/ *
3 * *
4 * This program and the accompanying materials are made available under the *
5 * terms of the MIT License which is available at *
6 * https://opensource.org/licenses/MIT. *
7 * *
8 * SPDX-License-Identifier: MIT *
9 ******************************************************************************/
10
11#pragma once
12
13#include <memory>
14#include <ostream>
15#include <string>
16#include <vector>
17
19
20namespace keypop {
21namespace card {
22
44public:
48 virtual ~CardResponseApi() = default;
49
56 virtual const std::vector<std::shared_ptr<ApduResponseApi>>&
58 = 0;
59
67 virtual bool isLogicalChannelOpen() const = 0;
68
72 friend std::ostream&
73 operator<<(std::ostream& os, const CardResponseApi& cra) {
74 os << "CARD_RESPONSE_API: {"
75 << "APDU_RESPONSES: " << cra.getApduResponses() << ", "
76 << "IS_LOGICAL_CHANNEL_OPEN: " << cra.isLogicalChannelOpen() << "}";
77
78 return os;
79 }
80
84 friend std::ostream&
85 operator<<(std::ostream& os, const std::shared_ptr<CardResponseApi> cra) {
86 if (cra) {
87 os << *cra.get();
88 } else {
89 os << "CARD_RESPONSE_API: null";
90 }
91
92 return os;
93 }
94};
95
96} /* namespace card */
97} /* namespace keypop */
friend std::ostream & operator<<(std::ostream &os, const CardResponseApi &cra)
virtual bool isLogicalChannelOpen() const =0
virtual ~CardResponseApi()=default
virtual const std::vector< std::shared_ptr< ApduResponseApi > > & getApduResponses() const =0