summaryrefslogtreecommitdiffstats
path: root/src/modules/UserBackendMysql/UserBackendMysql.h
diff options
context:
space:
mode:
authorMatthias Schiffer <matthias@gamezock.de>2009-08-09 18:52:17 +0200
committerMatthias Schiffer <matthias@gamezock.de>2009-08-09 18:52:17 +0200
commitd7edb4799b63b9bbde25a0d04603476aaf8acd50 (patch)
tree4ef76e718eac041c8ddeff985b67ea70e293f261 /src/modules/UserBackendMysql/UserBackendMysql.h
parent758f3cf98f95fc906c2517c0d4537ce81cf7386d (diff)
downloadmad-d7edb4799b63b9bbde25a0d04603476aaf8acd50.tar
mad-d7edb4799b63b9bbde25a0d04603476aaf8acd50.zip
Renamed UserBackendMysql to UserDBBackendMysql and UserBackendHome to UserConfigBackendHome
Diffstat (limited to 'src/modules/UserBackendMysql/UserBackendMysql.h')
-rw-r--r--src/modules/UserBackendMysql/UserBackendMysql.h159
1 files changed, 0 insertions, 159 deletions
diff --git a/src/modules/UserBackendMysql/UserBackendMysql.h b/src/modules/UserBackendMysql/UserBackendMysql.h
deleted file mode 100644
index c3848c0..0000000
--- a/src/modules/UserBackendMysql/UserBackendMysql.h
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * UserBackendMysql.h
- *
- * Copyright (C) 2008 Matthias Schiffer <matthias@gamezock.de>
- *
- * This program is free software: you can redistribute it and/or modify it
- * under the terms of the GNU Lesser General Public License as published by the
- * Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful, but
- * WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
- * See the GNU Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public License along
- * with this program. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#ifndef MAD_MODULES_USERBACKENDMYSQL_USERBACKENDMYSQL_H_
-#define MAD_MODULES_USERBACKENDMYSQL_USERBACKENDMYSQL_H_
-
-#include <Common/UserDBBackend.h>
-#include <Common/Application.h>
-
-#include <Core/Configurable.h>
-#include <Core/ConfigManager.h>
-
-#include <mysql/mysql.h>
-
-#include <boost/thread/mutex.hpp>
-#include <boost/variant.hpp>
-
-namespace Mad {
-namespace Modules {
-namespace UserBackendMysql {
-
-class UserBackendMysql : public Common::UserDBBackend, private Core::Configurable, private boost::noncopyable {
- private:
- typedef std::map<std::string, boost::variant<std::string, unsigned long> > ArgumentMap;
-
- class Result;
- Result query(const std::string &query, const ArgumentMap &args = ArgumentMap()) throw(Core::Exception);
-
- class Result {
- private:
- friend Result UserBackendMysql::query(const std::string &query, const ArgumentMap &args) throw(Core::Exception);
-
- boost::shared_ptr<MYSQL_RES> result;
-
- unsigned int mysqlErrno;
- const char *error;
-
- Result(MYSQL *mysql) {
- result = boost::shared_ptr<MYSQL_RES>(mysql_store_result(mysql), mysql_free_result);
-
- mysqlErrno = mysql_errno(mysql);
- error = mysql_error(mysql);
- }
-
- public:
- operator bool() const {
- return result;
- }
-
- unsigned int getErrno() const {
- return mysqlErrno;
- }
-
- const char* getError() const {
- return error;
- }
-
- unsigned int getFieldNumber() const {
- return mysql_num_fields(result.get());
- }
-
- my_ulonglong getRowNumber() const {
- return mysql_num_rows(result.get());
- }
-
- MYSQL_ROW getNextRow() {
- return mysql_fetch_row(result.get());
- }
- };
-
- static const std::string name;
-
- Common::Application *application;
-
- std::string host, username, passwd, db, unixSocket;
- uint16_t port;
-
- std::string queryListUsers, queryListGroups;
- std::string queryListUserGroups, queryListGroupUsers;
- std::string queryUserById, queryUserByName;
- std::string queryGroupById, queryGroupByName;
- std::string queryUserGroupTable;
- std::string queryAddUser, queryUpdateUser, queryDeleteUser;
- std::string queryAddGroup, queryUpdateGroup, queryDeleteGroup;
- std::string queryAddUserToGroup, queryDeleteUserFromGroup;
-
- MYSQL *mysql;
-
- boost::posix_time::ptime lastUpdate;
-
- boost::mutex mutex;
-
- protected:
- virtual bool handleConfigEntry(const Core::ConfigEntry &entry, bool handled);
- virtual void configFinished();
-
- virtual boost::shared_ptr<const std::map<unsigned long, Common::UserInfo> > getUserList(boost::posix_time::ptime *timestamp) throw(Core::Exception);
- virtual boost::shared_ptr<const Common::UserInfo> getUserInfo(unsigned long uid, boost::posix_time::ptime *timestamp) throw(Core::Exception);
- virtual boost::shared_ptr<const Common::UserInfo> getUserInfoByName(const std::string &name, boost::posix_time::ptime *timestamp) throw(Core::Exception);
- virtual boost::shared_ptr<const std::set<unsigned long> > getUserGroupList(unsigned long uid, boost::posix_time::ptime *timestamp) throw(Core::Exception);
-
- virtual boost::shared_ptr<const std::map<unsigned long, Common::GroupInfo> > getGroupList(boost::posix_time::ptime *timestamp) throw(Core::Exception);
- virtual boost::shared_ptr<const Common::GroupInfo> getGroupInfo(unsigned long gid, boost::posix_time::ptime *timestamp) throw(Core::Exception);
- virtual boost::shared_ptr<const Common::GroupInfo> getGroupInfoByName(const std::string &name, boost::posix_time::ptime *timestamp) throw(Core::Exception);
- virtual boost::shared_ptr<const std::set<unsigned long> > getGroupUserList(unsigned long gid, boost::posix_time::ptime *timestamp) throw(Core::Exception);
-
- virtual boost::shared_ptr<const std::multimap<unsigned long, unsigned long> > getFullUserGroupList(boost::posix_time::ptime *timestamp) throw(Core::Exception);
-
- virtual void addUser(const Common::UserInfo &userInfo) throw(Core::Exception);
- virtual void updateUser(unsigned long uid, const Common::UserInfo &userInfo) throw(Core::Exception);
- virtual void deleteUser(unsigned long uid) throw(Core::Exception);
-
- virtual void addGroup(const Common::GroupInfo &groupInfo) throw(Core::Exception);
- virtual void updateGroup(unsigned long gid, const Common::GroupInfo &groupInfo) throw(Core::Exception);
- virtual void deleteGroup(unsigned long gid) throw(Core::Exception);
-
- virtual void addUserToGroup(unsigned long uid, unsigned long gid) throw(Core::Exception);
- virtual void deleteUserFromGroup(unsigned long uid, unsigned long gid) throw(Core::Exception);
-
- public:
- UserBackendMysql(Common::Application *application0) : application(application0), port(0), mysql(0), lastUpdate(boost::posix_time::microsec_clock::universal_time()) {
- application->getConfigManager()->registerConfigurable(this);
- }
-
- virtual ~UserBackendMysql() {
- application->getConfigManager()->unregisterConfigurable(this);
-
- if(mysql) {
- mysql_close(mysql);
- mysql = 0;
- }
- }
-
- virtual const std::string& getName() {
- return name;
- }
-};
-
-}
-}
-}
-
-#endif /* MAD_MODULES_USERBACKENDMYSQL_USERBACKENDMYSQL_H_ */