Mercurial > malikania
view database/sqlite/src/sqlite_character_dao.cpp @ 106:f8c6d2244795
Server: rework model and dao
author | David Demelier <markand@malikania.fr> |
---|---|
date | Mon, 04 Sep 2017 19:41:18 +0200 |
parents | |
children |
line wrap: on
line source
/* * sqlite_character_dao.cpp -- character_dao for SQLite * * Copyright (c) 2013-2017 David Demelier <markand@malikania.fr> * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ #include <malikania/server/db/character.hpp> #include <malikania/server/db/character_dao.hpp> #include "common.hpp" namespace mlk { namespace server { class sqlite_character_dao : public character_dao { public: void save(character&) override; void remove(character&) override; void set_name(character&, const std::string&) override; }; void sqlite_character_dao::save(character& ch) { const std::string sql( "INSERT INTO character(name) VALUES (?)" ); mlk::server::sqlite::exec(sql, {ch.name()}); ch.set_id(sqlite3_last_insert_rowid(mlk::server::sqlite::handle)); } void sqlite_character_dao::remove(character& ch) { const std::string sql( "DELETE" " FROM character" " WHERE id = ?" ); mlk::server::sqlite::exec(sql, {ch.id()}); } void sqlite_character_dao::set_name(character& ch, const std::string& name) { const std::string sql( "UPDATE character" " SET name = ?" " WHERE id = ?" ); mlk::server::sqlite::exec(sql, {name, ch.id()}); } } // !server } // !mlk extern "C" { BOOST_SYMBOL_EXPORT std::unique_ptr<mlk::server::character_dao> mlk_character_dao() { return std::make_unique<mlk::server::sqlite_character_dao>(); } } // !C