16#include "CommonSecuritySetting.h"
19#include "ProxyReaderApi.h"
25#include "IllegalArgumentException.h"
26#include "KeypleAssert.h"
32using namespace calypsonet::terminal::calypso::transaction;
33using namespace calypsonet::terminal::card;
34using namespace keyple::core::util;
35using namespace keyple::core::util::cpp::exception;
53 const std::shared_ptr<CalypsoSam> calypsoSam)
final
55 Assert::getInstance().notNull(samReader,
"samReader")
56 .notNull(calypsoSam,
"calypsoSam");
58 Assert::getInstance().isTrue(calypsoSam->getProductType() != CalypsoSam::ProductType::UNKNOWN,
61 auto proxy = std::dynamic_pointer_cast<ProxyReaderApi>(samReader);
63 throw IllegalArgumentException(
"The provided 'samReader' must implement 'ProxyReaderApi'");
66 auto adapter = std::dynamic_pointer_cast<CalypsoSamAdapter>(calypsoSam);
68 throw IllegalArgumentException(
"The provided 'calypsoSam' must be an instance of " \
69 "'CalypsoSamAdapter'");
72 mControlSamReader = std::dynamic_pointer_cast<ProxyReaderApi>(samReader);
73 mControlSam = std::dynamic_pointer_cast<CalypsoSamAdapter>(calypsoSam);
75 return *mCurrentInstance;
85 Assert::getInstance().notNull(service,
"service");
87 mSamRevocationServiceSpi = service;
89 return *mCurrentInstance;
101 return mControlSamReader;
125 return mSamRevocationServiceSpi;
132 S* mCurrentInstance =
dynamic_cast<S*
>(
this);
137 std::shared_ptr<ProxyReaderApi> mControlSamReader;
142 std::shared_ptr<CalypsoSamAdapter> mControlSam;
147 std::shared_ptr<SamRevocationServiceSpi> mSamRevocationServiceSpi;
std::shared_ptr< CalypsoSamAdapter > getControlSam() const
std::shared_ptr< SamRevocationServiceSpi > getSamRevocationServiceSpi() const
S & setControlSamResource(const std::shared_ptr< CardReader > samReader, const std::shared_ptr< CalypsoSam > calypsoSam) final
S & setSamRevocationService(const std::shared_ptr< SamRevocationServiceSpi > service) final
std::shared_ptr< ProxyReaderApi > getControlSamReader() const