This allows to hide unused sources in the user interface.
}
public abstract class MovieSource : Object {
+ public abstract bool active { get; set construct; }
+
public delegate void ReceiveMovieFunction (Movie movie);
public abstract async void get_movies (MovieFilter filter, ReceiveMovieFunction callback, int limit, GLib.Cancellable? cancellable);
private CatalogSqlite sqlite;
public CatalogSource (string _table, string _name, string _description, CatalogSqlite _sqlite) {
+ GLib.Object (active: true);
table = _table;
name = _name;
description = _description;
sqlite = _sqlite;
}
+ public override bool active { get; set construct; }
+
public override async void get_movies (MovieFilter filter, MovieSource.ReceiveMovieFunction callback, int limit, Cancellable? cancellable) {
yield sqlite.query (table, filter, callback, limit, cancellable);
}
public string location;
public string description;
+ public override bool active { get; set construct; }
+
+ public GoogleSource () {
+ GLib.Object (active: true);
+ }
+
public override async void get_movies (MovieFilter filter, MovieSource.ReceiveMovieFunction callback, int limit, Cancellable? cancellable) {
var parser = new GoogleParser ();
}
class IMDBSource : MovieSource {
+ public override bool active { get; set construct; }
+
+ public IMDBSource () {
+ GLib.Object (active: true);
+ }
+
MovieSource.ReceiveMovieFunction _get_callback;
public override async void get_movies (MovieFilter filter, MovieSource.ReceiveMovieFunction callback, int limit, Cancellable? cancellable) {
// IMDb has too many movies