libpurple/purplehistoryadapter.c

Thu, 29 Feb 2024 21:36:49 -0600

author
Gary Kramlich <grim@reaperworld.com>
date
Thu, 29 Feb 2024 21:36:49 -0600
changeset 42614
b75a5bbf6c35
parent 42594
eddde70cedd8
child 42767
8cf1d11b59c1
permissions
-rw-r--r--

Remove the micro version from since tags for libpurple part 3

This has been split up into multiple commits because otherwise it's just too
many files.

Testing Done:
Compiled

Reviewed at https://reviews.imfreedom.org/r/2990/

41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
1 /*
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
2 * Purple - Internet Messaging Library
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
4 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
7 * source distribution.
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
8 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
9 * This library is free software; you can redistribute it and/or modify it
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
10 * under the terms of the GNU General Public License as published by the Free
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
11 * Software Foundation; either version 2 of the License, or (at your option)
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
12 * any later version.
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
13 *
42594
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
14 * This library is distributed in the hope that it will be useful, but WITHOUT
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
15 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
16 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
17 * more details.
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
18 *
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
19 * You should have received a copy of the GNU General Public License along with
eddde70cedd8 Create a test for verifying license headers and correct the ones that were wrong
Gary Kramlich <grim@reaperworld.com>
parents: 42303
diff changeset
20 * this library; if not, see <https://www.gnu.org/licenses/>.
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
21 */
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
22
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
23 #include "purplehistoryadapter.h"
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
24
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
25 #include "purpleprivate.h"
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
26
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
27 typedef struct {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
28 gchar *id;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
29 gchar *name;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
30 } PurpleHistoryAdapterPrivate;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
31
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
32 enum {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
33 PROP_0,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
34 PROP_ID,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
35 PROP_NAME,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
36 N_PROPERTIES,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
37 };
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
38 static GParamSpec *properties[N_PROPERTIES] = {NULL, };
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
39
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
40 G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(PurpleHistoryAdapter,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
41 purple_history_adapter, G_TYPE_OBJECT)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
42
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
43 /******************************************************************************
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
44 * Helpers
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
45 *****************************************************************************/
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
46 static void
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
47 purple_history_adapter_set_id(PurpleHistoryAdapter *adapter, const gchar *id) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
48 PurpleHistoryAdapterPrivate *priv = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
49
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
50 priv = purple_history_adapter_get_instance_private(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
51
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
52 g_free(priv->id);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
53 priv->id = g_strdup(id);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
54
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
55 g_object_notify_by_pspec(G_OBJECT(adapter), properties[PROP_ID]);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
56 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
57
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
58 static void
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
59 purple_history_adapter_set_name(PurpleHistoryAdapter *adapter,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
60 const gchar *name)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
61 {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
62 PurpleHistoryAdapterPrivate *priv = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
63
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
64 priv = purple_history_adapter_get_instance_private(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
65
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
66 g_free(priv->name);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
67 priv->name = g_strdup(name);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
68
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
69 g_object_notify_by_pspec(G_OBJECT(adapter), properties[PROP_NAME]);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
70 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
71
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
72 /******************************************************************************
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
73 * GObject Implementation
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
74 *****************************************************************************/
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
75 static void
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
76 purple_history_adapter_get_property(GObject *obj, guint param_id,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
77 GValue *value, GParamSpec *pspec)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
78 {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
79 PurpleHistoryAdapter *adapter = PURPLE_HISTORY_ADAPTER(obj);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
80
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
81 switch(param_id) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
82 case PROP_ID:
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
83 g_value_set_string(value,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
84 purple_history_adapter_get_id(adapter));
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
85 break;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
86 case PROP_NAME:
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
87 g_value_set_string(value,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
88 purple_history_adapter_get_name(adapter));
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
89 break;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
90 default:
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
91 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
92 break;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
93 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
94 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
95
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
96 static void
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
97 purple_history_adapter_set_property(GObject *obj, guint param_id,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
98 const GValue *value, GParamSpec *pspec)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
99 {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
100 PurpleHistoryAdapter *adapter = PURPLE_HISTORY_ADAPTER(obj);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
101
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
102 switch(param_id) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
103 case PROP_ID:
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
104 purple_history_adapter_set_id(adapter,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
105 g_value_get_string(value));
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
106 break;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
107 case PROP_NAME:
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
108 purple_history_adapter_set_name(adapter,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
109 g_value_get_string(value));
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
110 break;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
111 default:
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
112 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
113 break;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
114 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
115 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
116
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
117 static void
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
118 purple_history_adapter_finalize(GObject *obj) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
119 PurpleHistoryAdapter *adapter = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
120 PurpleHistoryAdapterPrivate *priv = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
121
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
122 adapter = PURPLE_HISTORY_ADAPTER(obj);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
123 priv = purple_history_adapter_get_instance_private(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
124
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
125 g_clear_pointer(&priv->id, g_free);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
126 g_clear_pointer(&priv->name, g_free);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
127
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
128 G_OBJECT_CLASS(purple_history_adapter_parent_class)->finalize(obj);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
129 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
130
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
131 static void
41960
c8a4853205e3 Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41090
diff changeset
132 purple_history_adapter_init(G_GNUC_UNUSED PurpleHistoryAdapter *adapter) {
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
133 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
134
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
135 static void
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
136 purple_history_adapter_class_init(PurpleHistoryAdapterClass *klass) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
137 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
138
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
139 obj_class->get_property = purple_history_adapter_get_property;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
140 obj_class->set_property = purple_history_adapter_set_property;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
141 obj_class->finalize = purple_history_adapter_finalize;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
142
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
143 /**
42303
52c26807d91a Fix a number of issues with the documentation for properties
Gary Kramlich <grim@reaperworld.com>
parents: 41960
diff changeset
144 * PurpleHistoryAdapter:id:
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
145 *
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
146 * The ID of the adapter. Used for preferences and other things that need
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
147 * to address it.
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
148 *
42614
b75a5bbf6c35 Remove the micro version from since tags for libpurple part 3
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
149 * Since: 3.0
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
150 */
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
151 properties[PROP_ID] = g_param_spec_string(
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
152 "id", "id", "The identifier of the adapter",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
153 NULL,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
154 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
155 );
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
156
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
157 /**
42303
52c26807d91a Fix a number of issues with the documentation for properties
Gary Kramlich <grim@reaperworld.com>
parents: 41960
diff changeset
158 * PurpleHistoryAdapter:name:
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
159 *
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
160 * The name of the adapter.
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
161 *
42614
b75a5bbf6c35 Remove the micro version from since tags for libpurple part 3
Gary Kramlich <grim@reaperworld.com>
parents: 42594
diff changeset
162 * Since: 3.0
41090
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
163 */
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
164 properties[PROP_NAME] = g_param_spec_string(
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
165 "name", "name", "The name of the adapter",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
166 NULL,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
167 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
168 );
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
169
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
170 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
171 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
172
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
173 /******************************************************************************
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
174 * Private API
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
175 *****************************************************************************/
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
176 gboolean
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
177 purple_history_adapter_activate(PurpleHistoryAdapter *adapter, GError **error)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
178 {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
179 PurpleHistoryAdapterClass *klass = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
180
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
181 g_return_val_if_fail(PURPLE_IS_HISTORY_ADAPTER(adapter), FALSE);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
182
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
183 klass = PURPLE_HISTORY_ADAPTER_GET_CLASS(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
184 if(klass != NULL && klass->activate != NULL) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
185 return klass->activate(adapter, error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
186 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
187
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
188 g_set_error(error, PURPLE_HISTORY_ADAPTER_DOMAIN, 0,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
189 "%s does not implement the activate function.",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
190 G_OBJECT_TYPE_NAME(G_OBJECT(adapter)));
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
191
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
192 return FALSE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
193 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
194
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
195 gboolean
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
196 purple_history_adapter_deactivate(PurpleHistoryAdapter *adapter,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
197 GError **error)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
198 {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
199 PurpleHistoryAdapterClass *klass = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
200
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
201 g_return_val_if_fail(PURPLE_IS_HISTORY_ADAPTER(adapter), FALSE);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
202
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
203 klass = PURPLE_HISTORY_ADAPTER_GET_CLASS(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
204 if(klass != NULL && klass->deactivate != NULL) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
205 return klass->deactivate(adapter, error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
206 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
207
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
208 g_set_error(error, PURPLE_HISTORY_ADAPTER_DOMAIN, 0,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
209 "%s does not implement the deactivate function.",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
210 G_OBJECT_TYPE_NAME(G_OBJECT(adapter)));
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
211
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
212 return FALSE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
213 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
214
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
215 /******************************************************************************
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
216 * Public API
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
217 *****************************************************************************/
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
218 const gchar *
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
219 purple_history_adapter_get_id(PurpleHistoryAdapter *adapter) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
220 PurpleHistoryAdapterPrivate *priv = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
221
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
222 g_return_val_if_fail(PURPLE_IS_HISTORY_ADAPTER(adapter), NULL);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
223
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
224 priv = purple_history_adapter_get_instance_private(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
225
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
226 return priv->id;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
227 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
228
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
229 const gchar *
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
230 purple_history_adapter_get_name(PurpleHistoryAdapter *adapter) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
231 PurpleHistoryAdapterPrivate *priv = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
232
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
233 g_return_val_if_fail(PURPLE_IS_HISTORY_ADAPTER(adapter), NULL);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
234
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
235 priv = purple_history_adapter_get_instance_private(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
236
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
237 return priv->name;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
238 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
239
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
240 GList *
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
241 purple_history_adapter_query(PurpleHistoryAdapter *adapter,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
242 const gchar *query,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
243 GError **error)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
244 {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
245 PurpleHistoryAdapterClass *klass = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
246
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
247 g_return_val_if_fail(PURPLE_IS_HISTORY_ADAPTER(adapter), NULL);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
248 g_return_val_if_fail(query != NULL, NULL);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
249
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
250 klass = PURPLE_HISTORY_ADAPTER_GET_CLASS(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
251 if(klass != NULL && klass->query != NULL) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
252 return klass->query(adapter, query, error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
253 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
254
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
255 g_set_error(error, PURPLE_HISTORY_ADAPTER_DOMAIN, 0,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
256 "%s does not implement the query function.",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
257 G_OBJECT_TYPE_NAME(G_OBJECT(adapter)));
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
258
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
259 return NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
260 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
261
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
262 gboolean
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
263 purple_history_adapter_remove(PurpleHistoryAdapter *adapter,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
264 const gchar *query,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
265 GError **error)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
266 {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
267 PurpleHistoryAdapterClass *klass = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
268
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
269 g_return_val_if_fail(PURPLE_IS_HISTORY_ADAPTER(adapter), FALSE);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
270 klass = PURPLE_HISTORY_ADAPTER_GET_CLASS(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
271
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
272 if(klass != NULL && klass->remove != NULL) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
273 return klass->remove(adapter, query, error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
274 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
275
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
276 g_set_error(error, PURPLE_HISTORY_ADAPTER_DOMAIN, 0,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
277 "%s does not implement the remove function.",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
278 G_OBJECT_TYPE_NAME(G_OBJECT(adapter)));
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
279
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
280 return FALSE;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
281 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
282
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
283 gboolean
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
284 purple_history_adapter_write(PurpleHistoryAdapter *adapter,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
285 PurpleConversation *conversation,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
286 PurpleMessage *message,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
287 GError **error)
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
288 {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
289 PurpleHistoryAdapterClass *klass = NULL;
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
290
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
291 g_return_val_if_fail(PURPLE_IS_HISTORY_ADAPTER(adapter), FALSE);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
292 g_return_val_if_fail(PURPLE_IS_MESSAGE(message), FALSE);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
293 g_return_val_if_fail(PURPLE_IS_CONVERSATION(conversation), FALSE);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
294
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
295 klass = PURPLE_HISTORY_ADAPTER_GET_CLASS(adapter);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
296 if(klass != NULL && klass->write != NULL) {
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
297 return klass->write(adapter, conversation, message, error);
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
298 }
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
299
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
300 g_set_error(error, PURPLE_HISTORY_ADAPTER_DOMAIN, 0,
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
301 "%s does not implement the write function.",
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
302 G_OBJECT_TYPE_NAME(G_OBJECT(adapter)));
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
303
741992355ead GSoC History API including sqlite history adapter
James Culver <rewtguy@gmail.com>
parents:
diff changeset
304 return FALSE;
41960
c8a4853205e3 Bump C standard to C99 for libpurple files and fix warnings
Elliott Sales de Andrade <quantum.analyst@gmail.com>
parents: 41090
diff changeset
305 }

mercurial