Do ignore empty recipients when checking names
[modest] / src / modest-plugin.c
1 /* Copyright (c) 2008, Nokia Corporation
2  * All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are
6  * met:
7  *
8  * * Redistributions of source code must retain the above copyright
9  *   notice, this list of conditions and the following disclaimer.
10  * * Redistributions in binary form must reproduce the above copyright
11  *   notice, this list of conditions and the following disclaimer in the
12  *   documentation and/or other materials provided with the distribution.
13  * * Neither the name of the Nokia Corporation nor the names of its
14  *   contributors may be used to endorse or promote products derived from
15  *   this software without specific prior written permission.
16  *
17  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
18  * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
20  * PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER
21  * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24  * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
25  * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
26  * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
27  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28  */
29
30 #include <modest-plugin.h>
31 #include <modest-runtime.h>
32
33 G_DEFINE_TYPE (ModestPlugin, modest_plugin, G_TYPE_OBJECT)
34
35 static void   modest_plugin_class_init (ModestPluginClass *klass);
36 static void   modest_plugin_finalize   (GObject *obj);
37
38 #define MODEST_PLUGIN_GET_PRIVATE(o)     (G_TYPE_INSTANCE_GET_PRIVATE ((o), \
39                                                                        MODEST_TYPE_PLUGIN, \
40                                                                        ModestPluginPrivate))
41
42 static GObjectClass *parent_class = NULL;
43
44 /* globals */
45
46 static void
47 modest_plugin_class_init (ModestPluginClass *klass)
48 {
49         GObjectClass *object_class;
50         object_class = (GObjectClass *) klass;
51
52         parent_class = g_type_class_peek_parent (klass);
53         object_class->finalize = modest_plugin_finalize;
54 }
55
56 static void
57 modest_plugin_init (ModestPlugin *obj)
58 {
59         
60 }
61
62 static void   
63 modest_plugin_finalize   (GObject *obj)
64 {
65         G_OBJECT_CLASS (parent_class)->finalize (obj);
66 }
67
68 ModestPlugin*
69 modest_plugin_new (void)
70 {
71         ModestPlugin *plugin;
72
73         plugin = g_object_new (MODEST_TYPE_PLUGIN, NULL);
74
75         g_type_module_use (G_TYPE_MODULE (plugin));
76         g_type_module_unuse (G_TYPE_MODULE (plugin));
77
78         return plugin;
79 }
80
81 ModestAccountMgr *
82 modest_plugin_get_account_mgr (void)
83 {
84         /* This is for avoiding including modest runtime itself */
85         return modest_runtime_get_account_mgr ();
86 }
87
88 ModestProtocolRegistry *
89 modest_plugin_get_protocol_registry (void)
90 {
91         /* This is for avoiding including modest runtime itself */
92         return modest_runtime_get_protocol_registry ();
93 }
94
95 ModestTnyAccountStore *
96 modest_plugin_get_account_store (void)
97 {
98         /* This is for avoiding including modest runtime itself */
99         return modest_runtime_get_account_store ();
100 }
101
102 ModestMailOperationQueue *
103 modest_plugin_get_mail_operation_queue (void)
104 {
105         /* This is for avoiding including modest runtime itself */
106         return modest_runtime_get_mail_operation_queue ();
107 }
108
109 const gchar *
110 modest_plugin_get_api_version (ModestPlugin *plugin)
111 {
112         ModestPluginClass *plugin_class;
113
114         plugin_class = MODEST_PLUGIN_GET_CLASS (plugin);
115         if (plugin_class->get_version)
116                 return plugin_class->get_version ();
117         else
118                 return NULL;
119 }