[ex] throw exceptions during basic pcsc

This commit is contained in:
giomba 2019-08-13 09:08:38 +02:00
parent ad215c1ab4
commit 29c6178567
4 changed files with 22 additions and 7 deletions

4
Ex.cpp
View File

@ -8,6 +8,10 @@ Ex::Ex(const char* msg) {
this->msg = std::string(msg); this->msg = std::string(msg);
} }
Ex::Ex(const std::string& msg) {
this->msg = msg;
}
/* /*
Ex::Ex(const char* msg, int n) { Ex::Ex(const char* msg, int n) {
this->msg = std::string(msg) + ": " + strerror(n); this->msg = std::string(msg) + ": " + strerror(n);

2
Ex.h
View File

@ -11,7 +11,7 @@ class Ex {
public: public:
explicit Ex(); explicit Ex();
explicit Ex(const char* msg); explicit Ex(const char* msg);
explicit Ex(const char* msg, int errn); explicit Ex(const std::string& msg);
friend std::ostream& operator<<(std::ostream&, const Ex&); friend std::ostream& operator<<(std::ostream&, const Ex&);
}; };

View File

@ -1,11 +1,18 @@
#include "read_dati_personali.h" #include "read_dati_personali.h"
#define CHECK(f, rv) \ /*
if (SCARD_S_SUCCESS != rv) \ ``
{ \ pcsc_stringify_error()
printf("[E] " f ": %s\n", pcsc_stringify_error(rv)); \ The returned string uses a Thread-Local Storage (TLS) buffer and is valid: [...]
return -1; \ only while the thread on which it was obtained is alive.
} ''
*/
#define CHECK(what, rv) \
if (rv != SCARD_S_SUCCESS) { \
char message[256]; \
sprintf(message, what ": %s\n", pcsc_stringify_error(rv)); \
throw ExPCSC(message); \
}
int read_dati_personali_c(char** output_buffer, size_t* len) { int read_dati_personali_c(char** output_buffer, size_t* len) {
LONG rv; LONG rv;

View File

@ -5,8 +5,12 @@
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <string>
#include <winscard.h> #include <winscard.h>
#include "Ex.h"
int read_dati_personali_c(char** output_buffer, size_t* len); int read_dati_personali_c(char** output_buffer, size_t* len);
#endif #endif