/usr/include/mediascanner-2.0/mediascanner/MediaStore.hh is in libmediascanner-2.0-dev 0.111+16.04.20160317-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 | /*
* Copyright (C) 2013 Canonical, Ltd.
*
* Authors:
* Jussi Pakkanen <jussi.pakkanen@canonical.com>
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License version 3 as
* published by the Free Software Foundation.
*
* 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 MEDIASTORE_HH_
#define MEDIASTORE_HH_
#include "MediaStoreBase.hh"
#include<vector>
#include<string>
namespace mediascanner {
enum OpenType {
MS_READ_ONLY,
MS_READ_WRITE
};
struct MediaStorePrivate;
class MediaStoreTransaction;
class MediaStore final : public virtual MediaStoreBase {
private:
MediaStorePrivate *p;
public:
MediaStore(OpenType access, const std::string &retireprefix="");
MediaStore(const std::string &filename, OpenType access, const std::string &retireprefix="");
MediaStore(const MediaStore &other) = delete;
MediaStore& operator=(const MediaStore &other) = delete;
virtual ~MediaStore();
void insert(const MediaFile &m) const;
void remove(const std::string &fname) const;
// Maintain a list of files known to crash GStreamer
// metadata scanner.
void insert_broken_file(const std::string &fname, const std::string &etag) const;
void remove_broken_file(const std::string &fname) const;
bool is_broken_file(const std::string &fname, const std::string &etag) const;
virtual MediaFile lookup(const std::string &filename) const override;
virtual std::vector<MediaFile> query(const std::string &q, MediaType type, const Filter &filter) const override;
virtual std::vector<Album> queryAlbums(const std::string &core_term, const Filter &filter) const override;
virtual std::vector<std::string> queryArtists(const std::string &q, const Filter &filter) const override;
virtual std::vector<MediaFile> getAlbumSongs(const Album& album) const override;
virtual std::string getETag(const std::string &filename) const override;
virtual std::vector<MediaFile> listSongs(const Filter &filter) const override;
virtual std::vector<Album> listAlbums(const Filter &filter) const override;
virtual std::vector<std::string> listArtists(const Filter &filter) const override;
virtual std::vector<std::string>listAlbumArtists(const Filter &filter) const override;
virtual std::vector<std::string>listGenres(const Filter &filter) const override;
virtual bool hasMedia(MediaType type) const override;
size_t size() const;
void pruneDeleted();
void archiveItems(const std::string &prefix);
void restoreItems(const std::string &prefix);
void removeSubtree(const std::string &directory);
MediaStoreTransaction beginTransaction();
};
class MediaStoreTransaction final {
friend MediaStore;
public:
MediaStoreTransaction(MediaStoreTransaction &&other);
~MediaStoreTransaction();
MediaStoreTransaction(const MediaStoreTransaction &other) = delete;
MediaStoreTransaction& operator=(const MediaStoreTransaction &other) = delete;
MediaStoreTransaction& operator=(MediaStoreTransaction &&other);
void commit();
private:
MediaStoreTransaction(MediaStorePrivate *p);
MediaStorePrivate *p;
};
}
#endif
|