aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-disco-store.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-disco-store.c')
-rw-r--r--camel/camel-disco-store.c42
1 files changed, 32 insertions, 10 deletions
diff --git a/camel/camel-disco-store.c b/camel/camel-disco-store.c
index b18d88924c..45207e4538 100644
--- a/camel/camel-disco-store.c
+++ b/camel/camel-disco-store.c
@@ -33,7 +33,7 @@
#define CDS_CLASS(o) (CAMEL_DISCO_STORE_CLASS (CAMEL_OBJECT_GET_CLASS (o)))
-static CamelRemoteStoreClass *remote_store_class = NULL;
+static CamelRemoteStoreClass *parent_class = NULL;
static void disco_construct (CamelService *service, CamelSession *session,
CamelProvider *provider, CamelURL *url,
@@ -51,26 +51,34 @@ static void set_status (CamelDiscoStore *disco_store,
CamelException *ex);
static gboolean can_work_offline (CamelDiscoStore *disco_store);
+static int disco_setv (CamelObject *object, CamelException *ex, CamelArgV *args);
+static int disco_getv (CamelObject *object, CamelException *ex, CamelArgGetV *args);
+
static void
camel_disco_store_class_init (CamelDiscoStoreClass *camel_disco_store_class)
{
+ CamelObjectClass *camel_object_class =
+ CAMEL_OBJECT_CLASS (camel_disco_store_class);
CamelServiceClass *camel_service_class =
CAMEL_SERVICE_CLASS (camel_disco_store_class);
CamelStoreClass *camel_store_class =
CAMEL_STORE_CLASS (camel_disco_store_class);
-
- remote_store_class = CAMEL_REMOTE_STORE_CLASS (camel_type_get_global_classfuncs (camel_remote_store_get_type ()));
-
+
+ parent_class = CAMEL_REMOTE_STORE_CLASS (camel_type_get_global_classfuncs (camel_remote_store_get_type ()));
+
/* virtual method definition */
camel_disco_store_class->set_status = set_status;
camel_disco_store_class->can_work_offline = can_work_offline;
-
+
/* virtual method overload */
+ camel_object_class->setv = disco_setv;
+ camel_object_class->getv = disco_getv;
+
camel_service_class->construct = disco_construct;
camel_service_class->connect = disco_connect;
camel_service_class->disconnect = disco_disconnect;
camel_service_class->cancel_connect = disco_cancel_connect;
-
+
camel_store_class->get_folder = disco_get_folder;
camel_store_class->get_folder_info = disco_get_folder_info;
}
@@ -94,6 +102,20 @@ camel_disco_store_get_type (void)
return camel_disco_store_type;
}
+static int
+disco_setv (CamelObject *object, CamelException *ex, CamelArgV *args)
+{
+ /* CamelDiscoStore doesn't currently have anything to set */
+ return CAMEL_OBJECT_CLASS (parent_class)->setv (object, ex, args);
+}
+
+static int
+disco_getv (CamelObject *object, CamelException *ex, CamelArgGetV *args)
+{
+ /* CamelDiscoStore doesn't currently have anything to get */
+ return CAMEL_OBJECT_CLASS (parent_class)->getv (object, ex, args);
+}
+
static void
disco_construct (CamelService *service, CamelSession *session,
CamelProvider *provider, CamelURL *url,
@@ -101,7 +123,7 @@ disco_construct (CamelService *service, CamelSession *session,
{
CamelDiscoStore *disco = CAMEL_DISCO_STORE (service);
- CAMEL_SERVICE_CLASS (remote_store_class)->construct (service, session, provider, url, ex);
+ CAMEL_SERVICE_CLASS (parent_class)->construct (service, session, provider, url, ex);
if (camel_exception_is_set (ex))
return;
@@ -117,7 +139,7 @@ disco_connect (CamelService *service, CamelException *ex)
status = camel_disco_store_status (store);
if (status != CAMEL_DISCO_STORE_OFFLINE) {
- if (!CAMEL_SERVICE_CLASS (remote_store_class)->connect (service, ex)) {
+ if (!CAMEL_SERVICE_CLASS (parent_class)->connect (service, ex)) {
status = camel_disco_store_status (store);
if (status != CAMEL_DISCO_STORE_OFFLINE)
return FALSE;
@@ -160,7 +182,7 @@ disco_cancel_connect (CamelService *service)
/* Fall back */
store->status = CAMEL_DISCO_STORE_OFFLINE;
- CAMEL_SERVICE_CLASS (remote_store_class)->cancel_connect (service);
+ CAMEL_SERVICE_CLASS (parent_class)->cancel_connect (service);
}
static gboolean
@@ -182,7 +204,7 @@ disco_disconnect (CamelService *service, gboolean clean, CamelException *ex)
}
- return CAMEL_SERVICE_CLASS (remote_store_class)->disconnect (service, clean, ex);
+ return CAMEL_SERVICE_CLASS (parent_class)->disconnect (service, clean, ex);
}
static CamelFolder *