#ifndef CNS_H #define CNS_H #include #include #include #include #include #include #include #include #include #include #include #include // QT -- What to export //#define CNS Q_DECL_EXPORT CNS // PCSCLITE // -------------------------------------------------------------------- int read_dati_personali_c(char** output_buffer, int* len); // EXCEPTIONS // -------------------------------------------------------------------- /* `explicit` specifier forces constructors to not being implicitly called */ class Ex { private: std::string msg; public: explicit Ex(); explicit Ex(const char* msg); explicit Ex(const std::string& msg); friend std::ostream& operator<<(std::ostream&, const Ex&); }; /* Parent::Parent makes classes inherit their constructors from parents (C++11) */ class ExPCSC : public Ex { using Ex::Ex; }; // CNS // -------------------------------------------------------------------- enum Sex { F, M }; class CNS { private: QString nome; QString cognome; QDate dataNascita; QString comuneNascita; QString comuneResidenza; QString codiceFiscale; Sex sesso; QDate dataRilascio; QDate dataScadenza; public: void fromSmartCard(void); friend QTextStream& operator<<(QTextStream& os, const CNS& cns); }; #endif