Keyple Card Calypso C++ Library 2.1.0
Reference Terminal Reader API for C++
CardSelectorAdapter.cpp
Go to the documentation of this file.
1/**************************************************************************************************
2 * Copyright (c) 2022 Calypso Networks Association https://calypsonet.org/ *
3 * *
4 * See the NOTICE file(s) distributed with this work for additional information regarding *
5 * copyright ownership. *
6 * *
7 * This program and the accompanying materials are made available under the terms of the Eclipse *
8 * Public License 2.0 which is available at http://www.eclipse.org/legal/epl-2.0 *
9 * *
10 * SPDX-License-Identifier: EPL-2.0 *
11 **************************************************************************************************/
12
13#include "CardSelectorAdapter.h"
14
15/* Keyple Core Util */
16#include "ByteArrayUtil.h"
17
18namespace keyple {
19namespace card {
20namespace calypso {
21
22using namespace keyple::core::util;
23
24const int CardSelectorAdapter::DEFAULT_SUCCESSFUL_CODE = 0x9000;
25
27: mFileOccurrence(FileOccurrence::FIRST),
28 mFileControlInformation(FileControlInformation::FCI),
29 mSuccessfulSelectionStatusWords({DEFAULT_SUCCESSFUL_CODE}) {}
30
32 const std::string& cardProtocol)
33{
34 mCardProtocol = cardProtocol;
35
36 return *this;
37}
38
39CardSelectorSpi& CardSelectorAdapter::filterByPowerOnData(const std::string& powerOnDataRegex)
40{
41 mPowerOnDataRegex = powerOnDataRegex;
42
43 return *this;
44}
45
46CardSelectorSpi& CardSelectorAdapter::filterByDfName(const std::vector<uint8_t>& aid)
47{
48 mAid = aid;
49
50 return *this;
51}
52
53CardSelectorSpi& CardSelectorAdapter::filterByDfName(const std::string& aid)
54{
55 return filterByDfName(ByteArrayUtil::fromHex(aid));
56}
57
58CardSelectorSpi& CardSelectorAdapter::setFileOccurrence(const FileOccurrence fileOccurrence)
59{
60 mFileOccurrence = fileOccurrence;
61
62 return *this;
63}
64
66 const FileControlInformation fileControlInformation)
67{
68 mFileControlInformation = fileControlInformation;
69
70 return *this;
71}
72
73CardSelectorSpi& CardSelectorAdapter::addSuccessfulStatusWord(const int statusWord)
74{
75 mSuccessfulSelectionStatusWords.push_back(statusWord);
76
77 return *this;
78}
79
80const std::string& CardSelectorAdapter::getCardProtocol() const
81{
82 return mCardProtocol;
83}
84
86{
87 return mPowerOnDataRegex;
88}
89
90const std::vector<uint8_t>& CardSelectorAdapter::getAid() const
91{
92 return mAid;
93}
94
96{
97 return mFileOccurrence;
98}
99
101{
102 return mFileControlInformation;
103}
104
106{
107 return mSuccessfulSelectionStatusWords;
108}
109
110}
111}
112}
const std::string & getPowerOnDataRegex() const override
CardSelectorSpi & addSuccessfulStatusWord(const int statusWord)
const std::vector< int > & getSuccessfulSelectionStatusWords() const override
CardSelectorSpi & setFileOccurrence(const FileOccurrence fileOccurrence)
const std::vector< uint8_t > & getAid() const override
CardSelectorSpi & filterByCardProtocol(const std::string &cardProtocol)
CardSelectorSpi & filterByDfName(const std::vector< uint8_t > &aid)
CardSelectorSpi & setFileControlInformation(const FileControlInformation fileControlInformation)
FileOccurrence getFileOccurrence() const override
const std::string & getCardProtocol() const final
FileControlInformation getFileControlInformation() const override
CardSelectorSpi & filterByPowerOnData(const std::string &powerOnDataRegex)
CardSelectorSpi::FileOccurrence FileOccurrence
CardSelectorSpi::FileControlInformation FileControlInformation