/* * Copyright (C) 2013 Emeric Poupon * * This file is part of LMS. * * LMS is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * LMS 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 General Public License for more details. * * You should have received a copy of the GNU General Public License * along with LMS. If not, see . */ #include #include "MediaDirectory.hpp" namespace Database { MediaDirectorySettings::MediaDirectorySettings() : _manualScanRequested(false), _updatePeriod(Never) { } MediaDirectory::MediaDirectory(boost::filesystem::path p, Type type) : _type(type), _path(p.string()) { } MediaDirectorySettings::pointer MediaDirectorySettings::get(Wt::Dbo::Session& session) { MediaDirectorySettings::pointer res; res = session.find().where("id = ?").bind(1); // TODO bind necessary? if (!res) res = session.add( new MediaDirectorySettings()); return res; } MediaDirectory::pointer MediaDirectory::create(Wt::Dbo::Session& session, boost::filesystem::path p, Type type) { return session.add( new MediaDirectory( p, type ) ); } void MediaDirectory::eraseAll(Wt::Dbo::Session& session) { std::vector dirs = getAll(session); BOOST_FOREACH(MediaDirectory::pointer dir, dirs) dir.remove(); } std::vector MediaDirectory::getAll(Wt::Dbo::Session& session) { Wt::Dbo::collection< MediaDirectory::pointer > res = session.find(); return std::vector(res.begin(), res.end()); } std::vector MediaDirectory::getByType(Wt::Dbo::Session& session, Type type) { Wt::Dbo::collection< MediaDirectory::pointer > res = session.find().where("type = ?").bind (type); return std::vector(res.begin(), res.end()); } MediaDirectory::pointer MediaDirectory::get(Wt::Dbo::Session& session, boost::filesystem::path p, Type type) { return session.find().where("path = ?").where("type = ?").bind( p.string()).bind(type); } } // namespace Database