1 /* ide-vcs-initializer.c
2 *
3 * Copyright 2016-2019 Christian Hergert <chergert@redhat.com>
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 *
18 * SPDX-License-Identifier: GPL-3.0-or-later
19 */
20
21 #define G_LOG_DOMAIN "ide-vcs-initializer"
22
23 #include "config.h"
24
25 #include "ide-vcs-initializer.h"
26
G_DEFINE_INTERFACE(IdeVcsInitializer,ide_vcs_initializer,IDE_TYPE_OBJECT)27 G_DEFINE_INTERFACE (IdeVcsInitializer, ide_vcs_initializer, IDE_TYPE_OBJECT)
28
29 static void
30 ide_vcs_initializer_default_init (IdeVcsInitializerInterface *iface)
31 {
32 }
33
34 void
ide_vcs_initializer_initialize_async(IdeVcsInitializer * self,GFile * file,GCancellable * cancellable,GAsyncReadyCallback callback,gpointer user_data)35 ide_vcs_initializer_initialize_async (IdeVcsInitializer *self,
36 GFile *file,
37 GCancellable *cancellable,
38 GAsyncReadyCallback callback,
39 gpointer user_data)
40 {
41 g_return_if_fail (IDE_IS_VCS_INITIALIZER (self));
42 g_return_if_fail (G_IS_FILE (file));
43 g_return_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable));
44
45 IDE_VCS_INITIALIZER_GET_IFACE (self)->initialize_async (self, file, cancellable, callback, user_data);
46 }
47
48 gboolean
ide_vcs_initializer_initialize_finish(IdeVcsInitializer * self,GAsyncResult * result,GError ** error)49 ide_vcs_initializer_initialize_finish (IdeVcsInitializer *self,
50 GAsyncResult *result,
51 GError **error)
52 {
53 g_return_val_if_fail (IDE_IS_VCS_INITIALIZER (self), FALSE);
54 g_return_val_if_fail (G_IS_ASYNC_RESULT (result), FALSE);
55
56 return IDE_VCS_INITIALIZER_GET_IFACE (self)->initialize_finish (self, result, error);
57 }
58
59 gchar *
ide_vcs_initializer_get_title(IdeVcsInitializer * self)60 ide_vcs_initializer_get_title (IdeVcsInitializer *self)
61 {
62 g_return_val_if_fail (IDE_IS_VCS_INITIALIZER (self), NULL);
63
64 if (IDE_VCS_INITIALIZER_GET_IFACE (self)->get_title)
65 return IDE_VCS_INITIALIZER_GET_IFACE (self)->get_title (self);
66
67 return g_strdup (G_OBJECT_TYPE_NAME (self));
68 }
69