2
* This file is part of the Ubuntu TV Media Scanner
3
* Copyright (C) 2012-2013 Canonical Ltd.
5
* This program is free software: you can redistribute it and/or modify
6
* it under the terms of the GNU Lesser General Public License version 3 as
7
* published by the Free Software Foundation.
9
* This program is distributed in the hope that it will be useful,
10
* but WITHOUT ANY WARRANTY; without even the implied warranty of
11
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12
* GNU Lesser General Public License for more details.
14
* You should have received a copy of the GNU Lesser General Public License
15
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17
* Contact: Jim Hodapp <jim.hodapp@canonical.com>
18
* Authored by: Mathias Hasselmann <mathias@openismus.com>
20
#ifndef MEDIASCANNER_DECLARATIONS_H
21
#define MEDIASCANNER_DECLARATIONS_H
26
// C++ Standard Library
29
// Forward declarations of some types to avoid hard dependency on GLib,
30
// Grilo or Lucene++ to avoid hard dependencies for API users that don't
31
// use that features. Especially Lucene++ doesn't guarantee source
34
typedef struct _GFile GFile;
35
typedef struct _GKeyFile GKeyFile;
36
typedef struct _GList GList;
37
typedef struct _GParamSpec GParamSpec;
38
typedef struct _GValue GValue;
39
typedef struct _GVariant GVariant;
41
typedef struct _GstDiscovererInfo GstDiscovererInfo;
42
typedef struct _GstDiscovererStreamInfo GstDiscovererStreamInfo;
43
typedef struct _GstDiscovererAudioInfo GstDiscovererAudioInfo;
44
typedef struct _GstDiscovererVideoInfo GstDiscovererVideoInfo;
46
typedef uint32_t GQuark;
47
typedef unsigned long GType; // NOLINT: runtime/int
49
typedef uint32_t GrlKeyID;
53
template<typename T> class shared_ptr;
55
namespace filesystem {
57
// template<class String, class Traits> class basic_path;
60
} // namespace filesystem
64
template<typename T> class basic_format;
66
typedef basic_format<char> format;
67
typedef basic_format<wchar_t> wformat;
74
template<typename> class Collection;
76
typedef boost::shared_ptr<class Analyzer> AnalyzerPtr;
77
typedef boost::shared_ptr<class Directory> DirectoryPtr;
78
typedef boost::shared_ptr<class Document> DocumentPtr;
79
typedef boost::shared_ptr<class Fieldable> FieldablePtr;
80
typedef boost::shared_ptr<class IndexReader> IndexReaderPtr;
81
typedef boost::shared_ptr<class IndexWriter> IndexWriterPtr;
82
typedef boost::shared_ptr<class Query> QueryPtr;
83
typedef boost::shared_ptr<class Term> TermPtr;
87
namespace mediascanner {
90
template<typename T> struct CopyHelper;
92
} // namespace internal
99
class MediaRootManager;
100
class MetadataResolver;
103
class WritableMediaIndex;
105
template<typename T> class MediaIndexFacade;
107
template<typename T, typename CopyHelper = internal::CopyHelper<T> >
110
typedef boost::shared_ptr<CommitPolicy> CommitPolicyPtr;
111
typedef boost::shared_ptr<MediaRootManager> MediaRootManagerPtr;
112
typedef boost::shared_ptr<MetadataResolver> MetadataResolverPtr;
113
typedef boost::shared_ptr<TaskManager> TaskManagerPtr;
115
typedef boost::filesystem::path FileSystemPath;
117
} // namespace mediascanner
119
#endif // MEDIASCANNER_DECLARATIONS_H