aboutsummaryrefslogtreecommitdiffstats
path: root/camel
diff options
context:
space:
mode:
authorbertrand <Bertrand.Guiheneuf@inria.fr>1999-04-21 04:23:48 +0800
committerBertrand Guiheneuf <bertrand@src.gnome.org>1999-04-21 04:23:48 +0800
commitbba607613cf4ce59fa72e6fe841003e2d71a0aa9 (patch)
tree87617cd42bfe2d2cd8135bd99fc6478494ce46b4 /camel
parent9fc7c06fc4f7decdf8c753eb5237216eb6902e3b (diff)
downloadgsoc2013-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.c104
-rw-r--r--camel/camel-service.h13
-rw-r--r--camel/camel-store.c2
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;
}
+
+