diff options
author | bertrand <Bertrand.Guiheneuf@inria.fr> | 1999-04-21 04:23:48 +0800 |
---|---|---|
committer | Bertrand Guiheneuf <bertrand@src.gnome.org> | 1999-04-21 04:23:48 +0800 |
commit | bba607613cf4ce59fa72e6fe841003e2d71a0aa9 (patch) | |
tree | 87617cd42bfe2d2cd8135bd99fc6478494ce46b4 /camel | |
parent | 9fc7c06fc4f7decdf8c753eb5237216eb6902e3b (diff) | |
download | gsoc2013-evolution-bba607613cf4ce59fa72e6fe841003e2d71a0aa9.tar gsoc2013-evolution-bba607613cf4ce59fa72e6fe841003e2d71a0aa9.tar.gz gsoc2013-evolution-bba607613cf4ce59fa72e6fe841003e2d71a0aa9.tar.bz2 gsoc2013-evolution-bba607613cf4ce59fa72e6fe841003e2d71a0aa9.tar.lz gsoc2013-evolution-bba607613cf4ce59fa72e6fe841003e2d71a0aa9.tar.xz gsoc2013-evolution-bba607613cf4ce59fa72e6fe841003e2d71a0aa9.tar.zst gsoc2013-evolution-bba607613cf4ce59fa72e6fe841003e2d71a0aa9.zip |
basic abstract service class.
1999-04-20 bertrand <Bertrand.Guiheneuf@inria.fr>
* camel/camel-service.c (camel_service_class_init):
basic abstract service class.
svn path=/trunk/; revision=860
Diffstat (limited to 'camel')
-rw-r--r-- | camel/camel-service.c | 104 | ||||
-rw-r--r-- | camel/camel-service.h | 13 | ||||
-rw-r--r-- | camel/camel-store.c | 2 |
3 files changed, 116 insertions, 3 deletions
diff --git a/camel/camel-service.c b/camel/camel-service.c index 6f9d6a07cc..57df967c5e 100644 --- a/camel/camel-service.c +++ b/camel/camel-service.c @@ -28,7 +28,11 @@ static GtkObjectClass *camel_service_parent_class=NULL; /* Returns the class for a CamelService */ #define CSERV_CLASS(so) CAMEL_SERVICE_CLASS (GTK_OBJECT(so)->klass) - +static void camel_service_connect(CamelService *service); +static void camel_service_connect_to_with_login_passwd(CamelService *service, GString *host, GString *login, GString *passwd); +static void camel_service_connect_to_with_login_passwd_port(CamelService *service, GString *host, GString *login, GString *passwd, guint port); +static gboolean camel_service_is_connected(CamelService *service); +static void camel_service_set_connected(CamelService *service, gboolean state); static void camel_service_class_init (CamelServiceClass *camel_service_class) @@ -36,6 +40,13 @@ camel_service_class_init (CamelServiceClass *camel_service_class) camel_service_parent_class = gtk_type_class (gtk_object_get_type ()); /* virtual method definition */ + camel_service_class->connect = camel_service_connect; + camel_service_class->connect_to_with_login_passwd = camel_service_connect_to_with_login_passwd; + camel_service_class->connect_to_with_login_passwd_port = camel_service_connect_to_with_login_passwd_port; + camel_service_class->is_connected = camel_service_is_connected; + camel_service_class->set_connected = camel_service_set_connected; + + /* virtual method overload */ } @@ -71,3 +82,94 @@ camel_service__get_type (void) + + +/** + * camel_service_connect : connect to a service + * + * connect to the service using the parameters + * stored in the session it is initialized with + * WARNING: session not implemented for the moment + * + * @service: object to connect + **/ +static void +camel_service_connect(CamelService *service) +{ + +} + + + +/** + * camel_service_connect_to:login:password : connect to the specified address + * + * Connect to the service, but do not use the session + * default parameters to retrieve server's address + * + * @service: object to connect + * @host: host to connect to + * @login: user name used to log in + * @passwd: password used to log in + **/ +static void +camel_service_connect_to_with_login_passwd(CamelService *service, GString *host, GString *login, GString *passwd) +{ + camel_service_set_connected(service, TRUE); +} + + +/** + * camel_service_connect_to:login:password : connect to the specified address + * + * Connect to the service, but do not use the session + * default parameters to retrieve server's address + * + * @service: object to connect + * @host: host to connect to + * @login: user name used to log in + * @passwd: password used to log in + * @port: port to connect to + * + **/ +static void +camel_service_connect_to_with_login_passwd_port(CamelService *service, GString *host, GString *login, GString *passwd, guint port) +{ + camel_service_set_connected(service, TRUE); +} + + + + +/** + * camel_service_is_connected: test if the service object is connected + * + * + * @service: object to test + * + **/ +static gboolean +camel_service_is_connected(CamelService *service) +{ + return service->connected; +} + + +/** + * camel_service_set_connected: set the connected state + * + * This routine has to be called by providers to set the + * connection state, mainly when the service is disconnected + * wheras the close() method has not been called. + * + * @service: object to set the state of + * @state: connected/disconnected + * + **/ +static void +camel_service_set_connected(CamelService *service, gboolean state) +{ + service->connected = state; +} + + diff --git a/camel/camel-service.h b/camel/camel-service.h index 57449b189c..7c0e74b066 100644 --- a/camel/camel-service.h +++ b/camel/camel-service.h @@ -32,7 +32,6 @@ extern "C" { #endif /* __cplusplus }*/ #include <gtk/gtk.h> -#include "camel-folder.h" #define CAMEL_SERVICE_TYPE (camel_service_get_type ()) #define CAMEL_SERVICE(obj) (GTK_CHECK_CAST((obj), CAMEL_SERVICE_TYPE, CamelService)) @@ -42,13 +41,23 @@ extern "C" { typedef struct { - GtkObject parent_object; + GtkObject parent_object; + + gboolean connected; + } CamelService; typedef struct { GtkObjectClass parent_class; + + void (*connect) (CamelService *service); + void (*connect_to_with_login_passwd) (CamelService *service, GString *host, GString *login, GString *passwd); + void (*connect_to_with_login_passwd_port) (CamelService *service, GString *host, GString *login, GString *passwd, guint port); + gboolean (*is_connected) (CamelService *service); + void (*set_connected) (CamelService *service, gboolean state); + } CamelServiceClass; diff --git a/camel/camel-store.c b/camel/camel-store.c index 2bcdf28d2b..93b05d8460 100644 --- a/camel/camel-store.c +++ b/camel/camel-store.c @@ -169,3 +169,5 @@ camel_store_get_default_folder(CamelStore *store) return NULL; } + + |