aboutsummaryrefslogtreecommitdiffstats
path: root/camel/camel-mime-message.c
diff options
context:
space:
mode:
Diffstat (limited to 'camel/camel-mime-message.c')
-rw-r--r--camel/camel-mime-message.c189
1 files changed, 185 insertions, 4 deletions
diff --git a/camel/camel-mime-message.c b/camel/camel-mime-message.c
index 8e00bc8211..b3ce5be357 100644
--- a/camel/camel-mime-message.c
+++ b/camel/camel-mime-message.c
@@ -1,5 +1,5 @@
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
-/* camelMimeMessage.c : Abstract class for a mime_message */
+/* camelMimeMessage.c : class for a mime_message */
/*
@@ -13,7 +13,7 @@
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A MESSAGEICULAR PURPOSE. See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
@@ -30,8 +30,24 @@
static CamelMimePartClass *parent_class=NULL;
+static GString *received_date_str;
+static GString *sent_date_str;
+static GString *reply_to_str;
+static GString *subject_str;
+static GString *from_str;
+
+static void _set_received_date (CamelMimeMessage *mime_message, GString *received_date);
+static GString *_get_received_date (CamelMimeMessage *mime_message);
+static GString *_get_sent_date (CamelMimeMessage *mime_message);
+static void _set_reply_to (CamelMimeMessage *mime_message, GString *reply_to);
+static GString *_get_reply_to (CamelMimeMessage *mime_message);
+static void _set_subject (CamelMimeMessage *mime_message, GString *subject);
+static GString *_get_subject (CamelMimeMessage *mime_message);
+static void _set_from (CamelMimeMessage *mime_message, GString *from);
+static GString *_get_from (CamelMimeMessage *mime_message);
+
/* Returns the class for a CamelMimeMessage */
-#define CMP_CLASS(so) CAMEL_MIME_MESSAGE_CLASS (GTK_OBJECT(so)->klass)
+#define CMM_CLASS(so) CAMEL_MIME_MESSAGE_CLASS (GTK_OBJECT(so)->klass)
@@ -39,9 +55,24 @@ static void
camel_mime_message_class_init (CamelMimeMessageClass *camel_mime_message_class)
{
parent_class = gtk_type_class (camel_mime_part_get_type ());
+
+ received_date_str = g_string_new("");
+ sent_date_str = g_string_new("");
+ reply_to_str = g_string_new("Reply-To");
+ subject_str = g_string_new("Subject");
+ from_str = g_string_new("From");
/* virtual method definition */
-
+ camel_mime_message_class->set_received_date = _set_received_date;
+ camel_mime_message_class->get_received_date = _get_received_date;
+ camel_mime_message_class->get_sent_date = _get_sent_date;
+ camel_mime_message_class->set_reply_to = _set_reply_to;
+ camel_mime_message_class->get_reply_to = _get_reply_to;
+ camel_mime_message_class->set_subject = _set_subject;
+ camel_mime_message_class->get_subject = _get_subject;
+ camel_mime_message_class->set_from = _set_from;
+ camel_mime_message_class->get_from = _get_from;
+
/* virtual method overload */
}
@@ -76,3 +107,153 @@ camel_mime_message_get_type (void)
}
+
+
+/* two utils func */
+
+static void
+_set_field (CamelMimeMessage *mime_message, GString *name, GString *value, GString **variable)
+{
+ if (variable) {
+ if (*variable) G_string_free (*variable, TRUE);
+ *variable = value;
+ }
+}
+
+static GString *
+_get_field (CamelMimeMessage *mime_message, GString *name, GString *variable)
+{
+ return variable;
+}
+
+
+
+
+
+static void
+_set_received_date (CamelMimeMessage *mime_message, GString *received_date)
+{
+ _set_field (mime_message, received_date_str, received_date, &(mime_message->received_date));
+}
+
+void
+set_received_date (CamelMimeMessage *mime_message, GString *received_date)
+{
+ CMM_CLASS (mime_message)->set_received_date (mime_message, received_date);
+}
+
+
+static GString *
+_get_received_date (CamelMimeMessage *mime_message)
+{
+ return _get_field (mime_message, received_date_str, mime_message->received_date);
+}
+
+GString *
+get_received_date (CamelMimeMessage *mime_message)
+{
+ return CMM_CLASS (mime_message)->get_received_date (mime_message);
+}
+
+
+
+
+
+
+static GString *
+_get_sent_date (CamelMimeMessage *mime_message)
+{
+ return _get_field (mime_message, sent_date_str, mime_message->sent_date);
+}
+
+GString *
+get_sent_date (CamelMimeMessage *mime_message)
+{
+ return CMM_CLASS (mime_message)->get_sent_date (mime_message);
+}
+
+
+
+
+
+static void
+_set_reply_to (CamelMimeMessage *mime_message, GString *reply_to)
+{
+ _set_field (mime_message, reply_to_str, reply_to, &(mime_message->reply_to));
+}
+
+void
+set_reply_to (CamelMimeMessage *mime_message, GString *reply_to)
+{
+ CMM_CLASS (mime_message)->set_reply_to (mime_message, reply_to);
+}
+
+
+static GString *
+_get_reply_to (CamelMimeMessage *mime_message)
+{
+ return _get_field (mime_message, reply_to_str, mime_message->reply_to);
+}
+
+GString *
+get_reply_to (CamelMimeMessage *mime_message)
+{
+ return CMM_CLASS (mime_message)->get_reply_to (mime_message);
+}
+
+
+
+
+static void
+_set_subject (CamelMimeMessage *mime_message, GString *subject)
+{
+ _set_field (mime_message, subject_str, subject, &(mime_message->subject));
+}
+
+void
+set_subject (CamelMimeMessage *mime_message, GString *subject)
+{
+ CMM_CLASS (mime_message)->set_subject (mime_message, subject);
+}
+
+
+static GString *
+_get_subject (CamelMimeMessage *mime_message)
+{
+ return _get_field (mime_message, subject_str, mime_message->subject);
+}
+
+GString *
+get_subject (CamelMimeMessage *mime_message)
+{
+ return CMM_CLASS (mime_message)->get_subject (mime_message);
+}
+
+
+
+
+static void
+_set_from (CamelMimeMessage *mime_message, GString *from)
+{
+ _set_field (mime_message, from_str, from, &(mime_message->from));
+}
+
+void
+set_from (CamelMimeMessage *mime_message, GString *from)
+{
+ CMM_CLASS (mime_message)->set_from (mime_message, from);
+}
+
+
+static GString *
+_get_from (CamelMimeMessage *mime_message)
+{
+ return _get_field (mime_message, from_str, mime_message->from);
+}
+
+GString *
+get_from (CamelMimeMessage *mime_message)
+{
+ return CMM_CLASS (mime_message)->get_from (mime_message);
+}
+