You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

FreeFareDevice.cpp 1.1KB

12345678910111213141516171819202122232425262728293031323334353637
  1. //
  2. // Created by robin on 7/22/16.
  3. //
  4. #include "libnfc_cpptools/FreeFareDevice.h"
  5. #include "FreeFareDeviceInternal.h"
  6. namespace LibNfc
  7. {
  8. namespace FreeFare
  9. {
  10. FreeFareDevice::FreeFareDevice(std::shared_ptr<LibNfc::Core::NfcDevice> device)
  11. : _device(device),
  12. _freeFareDevice(std::make_shared<FreeFareDeviceInternal>(_device->getDevice()))
  13. {
  14. }
  15. LibNfc::Utils::Result<std::vector<std::shared_ptr<FreeFareTag>>> FreeFareDevice::getTags() const
  16. {
  17. if (!_device->isOpened()) {
  18. return LibNfc::Utils::Result<std::vector<std::shared_ptr<FreeFareTag>>>::error("Device is not opened");
  19. }
  20. auto tagsResult = _freeFareDevice->getTags();
  21. if (!tagsResult) {
  22. return LibNfc::Utils::Result<std::vector<std::shared_ptr<FreeFareTag>>>::error(tagsResult);
  23. }
  24. auto tags = tagsResult.getData();
  25. std::vector<std::shared_ptr<FreeFareTag>> tagsBusiness;
  26. for (auto tag : tags) {
  27. tagsBusiness.push_back(std::make_shared<FreeFareTag>(tag));
  28. }
  29. return LibNfc::Utils::Result<std::vector<std::shared_ptr<FreeFareTag>>>::ok(tagsBusiness);
  30. }
  31. }; // FreeFare
  32. }; // LibNfc