diff options
Diffstat (limited to 'camel/camel-mime-message.c')
-rw-r--r-- | camel/camel-mime-message.c | 189 |
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); +} + |