32using namespace keyple::core::util;
33using namespace keyple::core::util::cpp;
36const std::map<const int, const std::shared_ptr<StatusProperties>>
37 CmdCardAppendRecord::STATUS_TABLE = initStatusTable();
41 const std::vector<uint8_t>& newRecordData)
46 const uint8_t cla = calypsoCardClass.
getValue();
47 const uint8_t p1 = 0x00;
48 const uint8_t p2 = (sfi == 0) ? 0x00 : sfi * 8;
51 std::make_shared<ApduRequestAdapter>(
54 std::stringstream extraInfo;
55 extraInfo <<
"SFI:" << sfi <<
"h";
75const std::map<const int, const std::shared_ptr<StatusProperties>>
76 CmdCardAppendRecord::initStatusTable()
78 std::map<const int, const std::shared_ptr<StatusProperties>> m =
82 std::make_shared<StatusProperties>(
"P1 or P2 value not supported.",
85 std::make_shared<StatusProperties>(
"Lc value not supported.",
86 typeid(CardDataAccessException))});
88 std::make_shared<StatusProperties>(
"Too many modifications in session.",
89 typeid(CardSessionBufferOverflowException))});
91 std::make_shared<StatusProperties>(
"The current EF is not a Cyclic EF.",
92 typeid(CardDataAccessException))});
94 std::make_shared<StatusProperties>(
"Security conditions not fulfilled (no session, " \
96 typeid(CardSecurityContextException))});
98 std::make_shared<StatusProperties>(
"Access forbidden (Never access mode, DF is " \
99 "invalidated, etc..).",
100 typeid(CardAccessForbiddenException))});
102 std::make_shared<StatusProperties>(
"Command not allowed (no current EF).",
103 typeid(CardDataAccessException))});
105 std::make_shared<StatusProperties>(
"File not found.",
106 typeid(CardDataAccessException))});
111const std::map<const int, const std::shared_ptr<StatusProperties>>&
static const std::map< const int, const std::shared_ptr< StatusProperties > > STATUS_TABLE
virtual void addSubName(const std::string &subName) final
virtual void setApduRequest(const std::shared_ptr< ApduRequestAdapter > apduRequest) final
uint8_t getInstructionByte() const
static const CalypsoCardCommand APPEND_RECORD
CmdCardAppendRecord(const CalypsoCardClass calypsoCardClass, const uint8_t sfi, const std::vector< uint8_t > &newRecordData)
bool isSessionBufferUsed() const override
const std::vector< uint8_t > & getData() const
const std::map< const int, const std::shared_ptr< StatusProperties > > & getStatusTable() const override