.. _program_listing_file_libspookyaction_include_pn532_desfire_pcd.hpp: Program Listing for File desfire_pcd.hpp ======================================== |exhale_lsh| :ref:`Return to documentation for file ` (``libspookyaction/include/pn532/desfire_pcd.hpp``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp // // Created by Pietro Saccardi on 04/01/2021. // #ifndef PN532_DESFIRE_PCD_HPP #define PN532_DESFIRE_PCD_HPP #include #include namespace pn532 { class desfire_pcd final : public desfire::pcd { std::shared_ptr _pcd; std::uint8_t _target; pn532::result _last_result; [[nodiscard]] inline controller &ctrl(); public: inline desfire_pcd(std::shared_ptr controller, std::uint8_t target_logical_index); [[nodiscard]] inline std::uint8_t target_logical_index() const; [[nodiscard]] inline controller &tag_reader(); [[nodiscard]] inline controller const &tag_reader() const; [[nodiscard]] inline pn532::result last_result() const; std::optional communicate(bin_data const &data) override; }; }// namespace pn532 namespace pn532 { desfire_pcd::desfire_pcd(std::shared_ptr controller, std::uint8_t target_logical_index) : _pcd{std::move(controller)}, _target{target_logical_index}, _last_result{rf_status{false, false, internal_error_code::none}} { } controller &desfire_pcd::ctrl() { return *_pcd; } std::uint8_t desfire_pcd::target_logical_index() const { return _target; } pn532::result desfire_pcd::last_result() const { return _last_result; } controller &desfire_pcd::tag_reader() { return *_pcd; } controller const &desfire_pcd::tag_reader() const { return *_pcd; } }// namespace pn532 #endif//PN532_DESFIRE_PCD_HPP