2
* Copyright (C) 2009 Intel Corporation
4
* This library is free software; you can redistribute it and/or
5
* modify it under the terms of the GNU Lesser General Public
6
* License as published by the Free Software Foundation; either
7
* version 2.1 of the License, or (at your option) version 3.
9
* This library 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 GNU
12
* Lesser General Public License for more details.
14
* You should have received a copy of the GNU Lesser General Public
15
* License along with this library; if not, write to the Free Software
16
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
20
#ifndef __SYNCEVO_SESSION_H__
21
#define __SYNCEVO_SESSION_H__
23
#include <glib-object.h>
24
#include "syncevo-dbus-types.h"
28
enum SyncevoSessionError{
29
SYNCEVO_SESSION_ERROR_NO_DBUS_OBJECT = 1,
32
#define SYNCEVO_SESSION_DBUS_SERVICE "org.syncevolution"
33
#define SYNCEVO_SESSION_DBUS_INTERFACE "org.syncevolution.Session"
35
#define SYNCEVO_TYPE_SESSION (syncevo_session_get_type ())
36
#define SYNCEVO_SESSION(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), SYNCEVO_TYPE_SESSION, SyncevoSession))
37
#define SYNCEVO_IS_SESSION(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), SYNCEVO_TYPE_SESSION))
39
typedef struct _SyncevoSession {
40
GObject parent_object;
43
typedef struct _SyncevoSessionClass {
44
GObjectClass parent_class;
46
void (*status_changed) (SyncevoSession *session,
47
SyncevoSessionStatus status,
49
SyncevoSourceStatuses *source_statuses);
51
void (*progress_changed) (SyncevoSession *session,
53
SyncevoSourceProgresses *source_progresses);
55
} SyncevoSessionClass;
57
GType syncevo_session_get_type (void);
59
typedef void (*SyncevoSessionGenericCb) (SyncevoSession *session,
63
typedef void (*SyncevoSessionGetConfigCb) (SyncevoSession *session,
64
SyncevoConfig *config,
67
void syncevo_session_get_config (SyncevoSession *session,
69
SyncevoSessionGetConfigCb callback,
72
void syncevo_session_set_config (SyncevoSession *session,
75
SyncevoConfig *config,
76
SyncevoSessionGenericCb callback,
79
typedef void (*SyncevoSessionGetReportsCb) (SyncevoSession *session,
80
SyncevoReports *reports,
83
void syncevo_session_get_reports (SyncevoSession *session,
86
SyncevoSessionGetReportsCb callback,
89
void syncevo_session_sync (SyncevoSession *session,
91
SyncevoSourceModes *source_modes,
92
SyncevoSessionGenericCb callback,
95
void syncevo_session_abort (SyncevoSession *session,
96
SyncevoSessionGenericCb callback,
99
void syncevo_session_suspend (SyncevoSession *session,
100
SyncevoSessionGenericCb callback,
103
typedef void (*SyncevoSessionGetStatusCb) (SyncevoSession *session,
104
SyncevoSessionStatus status,
106
SyncevoSourceStatuses *source_statuses,
109
void syncevo_session_get_status (SyncevoSession *session,
110
SyncevoSessionGetStatusCb callback,
113
typedef void (*SyncevoSessionGetProgressCb) (SyncevoSession *session,
115
SyncevoSourceProgresses *source_progresses,
118
void syncevo_session_get_progress (SyncevoSession *session,
119
SyncevoSessionGetProgressCb callback,
122
void syncevo_session_check_source (SyncevoSession *session,
124
SyncevoSessionGenericCb callback,
127
void syncevo_session_restore (SyncevoSession *session,
128
const char *backup_dir,
129
const gboolean before,
130
const char **sources,
131
SyncevoSessionGenericCb callback,
134
const char *syncevo_session_get_path (SyncevoSession *session);
136
SyncevoSession *syncevo_session_new (const char *path);