diff options
author | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2020-09-03 19:12:17 +0800 |
---|---|---|
committer | ꦌ ꦫꦶ ꦏ꧀ꦦꦿ ꦧ ꦮ ꦑ ꦩ ꦭ꧀ <erik@darapsa.co.id> | 2020-09-03 19:12:17 +0800 |
commit | baa0e6cbb67912530d80d218712e6ca1e423f4dc (patch) | |
tree | be1abc1a2f543d8f639c2a4e3d84d238620c9c2b | |
parent | 8ebcf88c02932f93ede84bc016aedb5d55dc19a7 (diff) |
logIn as static member functions
-rw-r--r-- | admin.cxx | 32 | ||||
-rw-r--r-- | member.cxx | 29 | ||||
-rw-r--r-- | qicclient/admin.hxx | 19 | ||||
-rw-r--r-- | qicclient/member.hxx | 16 |
4 files changed, 50 insertions, 46 deletions
@@ -1,9 +1,25 @@ #include <cstddef> +#include <memory> #include <icclient/admin.h> #include "qicclient/admin.hxx" namespace QICClient { + std::shared_ptr<Admin> Admin::logIn(QString const& username, + QString const& password, QString const& successPage, + QString const& nextPage, QString const& failPage, + size_t (*handler)(void*, size_t, size_t, void*)) + { + auto admin = new Admin{}; + admin->setData(icclient_admin_login(username.toLatin1().constData(), + password.toLatin1().constData(), + successPage.toLatin1().constData(), + nextPage.toLatin1().constData(), + failPage.toLatin1().constData(), + handler)); + return std::shared_ptr<Admin>{admin}; + } + void Admin::setUserName(QString const& userName) { if (m_userName != userName) { @@ -11,7 +27,6 @@ namespace QICClient { emit userNameChanged(); } } - void Admin::setPassword(QString const& password) { if (m_password != password) { @@ -19,7 +34,6 @@ namespace QICClient { emit passwordChanged(); } } - void Admin::setName(QString const& name) { if (m_name != name) { @@ -27,7 +41,6 @@ namespace QICClient { emit nameChanged(); } } - void Admin::setSuper(bool super) { if (m_super != super) { @@ -59,19 +72,6 @@ namespace QICClient { if (m_data != data) m_data = data; } - void Admin::logIn(QString const& username, QString const& password, - QString const& successPage, QString const& nextPage, - QString const& failPage, - size_t (*handler)(void*, size_t, size_t, void*)) - { - setData(icclient_admin_login(username.toLatin1().constData(), - password.toLatin1().constData(), - successPage.toLatin1().constData(), - nextPage.toLatin1().constData(), - failPage.toLatin1().constData(), - handler)); - } - void Admin::newItem(QString const& description, QString const& comment, QString const& price, QString const& imagePath) { @@ -1,9 +1,25 @@ #include <cstddef> +#include <memory> #include <icclient/member.h> #include "qicclient/member.hxx" namespace QICClient { + std::shared_ptr<Member> Member::logIn(QString const& username, + QString const& password, QString const& successPage, + QString const& nextPage, QString const& failPage, + size_t (*handler)(void*, size_t, size_t, void*)) + { + auto member = new Member{}; + member->setData(icclient_member_login(username.toLatin1().constData(), + password.toLatin1().constData(), + successPage.toLatin1().constData(), + nextPage.toLatin1().constData(), + failPage.toLatin1().constData(), + handler)); + return std::shared_ptr<Member>{member}; + } + void Member::setUserName(QString const& userName) { if (m_userName != userName) { @@ -256,19 +272,6 @@ namespace QICClient { if (m_data != data) m_data = data; } - void Member::logIn(QString const& username, QString const& password, - QString const& successPage, QString const& nextPage, - QString const& failPage, - size_t (*handler)(void*, size_t, size_t, void*)) - { - setData(icclient_member_login(username.toLatin1().constData(), - password.toLatin1().constData(), - successPage.toLatin1().constData(), - nextPage.toLatin1().constData(), - failPage.toLatin1().constData(), - handler)); - } - void Member::account(QString const& firstName, QString const& lastName, QString const& address1, QString const& address2, QString const& city, QString const& state, QString const& zip, diff --git a/qicclient/admin.hxx b/qicclient/admin.hxx index 1e728cb..f19f167 100644 --- a/qicclient/admin.hxx +++ b/qicclient/admin.hxx @@ -22,9 +22,17 @@ namespace QICClient { m_userName{""}, m_password{""}, m_name{""}, - m_super{false} + m_super{false}, + m_data{nullptr} {} ~Admin() {} + static std::shared_ptr<Admin> logIn(QString const& username, + QString const& password, + QString const& successPage = nullptr, + QString const& nextPage = nullptr, + QString const& failPage = nullptr, + size_t (*handler)(void*, size_t, size_t, + void*) = nullptr); QString const& userName() const { return m_userName; } QString const& password() const { return m_password; } @@ -36,13 +44,6 @@ namespace QICClient { void setName(QString const& name); void setSuper(bool super); - void logIn(QString const& username, QString const& password, - QString const& successPage = nullptr, - QString const& nextPage = nullptr, - QString const& failPage = nullptr, - size_t (*handler)(void*, size_t, size_t, - void*) = nullptr); - public slots: void newItem(QString const& description, QString const& comment, QString const& price, QString const& imagePath); @@ -60,7 +61,7 @@ namespace QICClient { QString m_name; bool m_super; icclient_admin* m_data; - void setData(icclient_admin* data); + inline void setData(icclient_admin* data); }; } diff --git a/qicclient/member.hxx b/qicclient/member.hxx index 86289c0..864d353 100644 --- a/qicclient/member.hxx +++ b/qicclient/member.hxx @@ -56,6 +56,13 @@ namespace QICClient { m_data{nullptr} {} ~Member() {} + static std::shared_ptr<Member> logIn(QString const& username, + QString const& password, + QString const& successPage = nullptr, + QString const& nextPage = nullptr, + QString const& failPage = nullptr, + size_t (*handler)(void*, size_t, size_t, + void*) = nullptr); QString const& userName() const { return m_userName; } QString const& userNick() const { return m_userNick; } @@ -97,13 +104,6 @@ namespace QICClient { void setPhoneDay(QString const& phoneDay); void setEmail(QString const& email); - void logIn(QString const& username, QString const& password, - QString const& successPage = nullptr, - QString const& nextPage = nullptr, - QString const& failPage = nullptr, - size_t (*handler)(void*, size_t, size_t, - void*) = nullptr); - public slots: void account(QString const& firstName, QString const& lastName, QString const& address1, QString const& address2, @@ -156,7 +156,7 @@ namespace QICClient { QString m_phoneDay; QString m_email; icclient_member* m_data; - void setData(icclient_member* data); + inline void setData(icclient_member* data); }; } |