libpurple/protocol.c

Tue, 03 Aug 2021 03:04:06 -0500

author
Gary Kramlich <grim@reaperworld.com>
date
Tue, 03 Aug 2021 03:04:06 -0500
changeset 41007
90d2dee9b3dc
parent 40985
ddc26be7f597
child 41037
c2043b9692f6
permissions
-rw-r--r--

Fix the includes for the purpleenums rename

Testing Done:
Full build after a `meson --wipe`

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

36560
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
1 /*
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
2 * Purple - Internet Messaging Library
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
3 * Copyright (C) Pidgin Developers <devel@pidgin.im>
36560
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
4 *
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
5 * Purple is the legal property of its developers, whose names are too numerous
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
6 * to list here. Please refer to the COPYRIGHT file distributed with this
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
7 * source distribution.
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
8 *
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
9 * This program is free software; you can redistribute it and/or modify
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
10 * it under the terms of the GNU General Public License as published by
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
11 * the Free Software Foundation; either version 2 of the License, or
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
12 * (at your option) any later version.
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
13 *
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
14 * This program is distributed in the hope that it will be useful,
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
17 * GNU General Public License for more details.
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
18 *
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
19 * You should have received a copy of the GNU General Public License
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
20 * along with this program; if not, see <https://www.gnu.org/licenses/>.
36560
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
21 */
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
22
36560
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
23 #include "protocol.h"
59acaa1605f4 Added protocol.c and protocols.h
Ankit Vani <a@nevitus.org>
parents:
diff changeset
24
41007
90d2dee9b3dc Fix the includes for the purpleenums rename
Gary Kramlich <grim@reaperworld.com>
parents: 40985
diff changeset
25 #include "purpleenums.h"
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
26
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
27 enum {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
28 PROP_0,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
29 PROP_ID,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
30 PROP_NAME,
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
31 PROP_DESCRIPTION,
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
32 PROP_OPTIONS,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
33 N_PROPERTIES,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
34 };
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
35 static GParamSpec *properties[N_PROPERTIES] = { NULL, };
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
36
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
37 typedef struct {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
38 gchar *id;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
39 gchar *name;
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
40 gchar *description;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
41
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
42 PurpleProtocolOptions options;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
43 } PurpleProtocolPrivate;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
44
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
45 G_DEFINE_ABSTRACT_TYPE_WITH_PRIVATE(PurpleProtocol, purple_protocol,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
46 G_TYPE_OBJECT)
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
47
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
48 /******************************************************************************
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
49 * Helpers
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
50 *****************************************************************************/
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
51 static void
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
52 purple_protocol_set_id(PurpleProtocol *protocol, const gchar *id) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
53 PurpleProtocolPrivate *priv = NULL;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
54
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
55 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
56 g_free(priv->id);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
57 priv->id = g_strdup(id);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
58
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
59 g_object_notify_by_pspec(G_OBJECT(protocol), properties[PROP_ID]);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
60 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
61
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
62 static void
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
63 purple_protocol_set_name(PurpleProtocol *protocol, const gchar *name) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
64 PurpleProtocolPrivate *priv = NULL;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
65
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
66 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
67 g_free(priv->name);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
68 priv->name = g_strdup(name);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
69
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
70 g_object_notify_by_pspec(G_OBJECT(protocol), properties[PROP_NAME]);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
71 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
72
36686
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
73 static void
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
74 purple_protocol_set_description(PurpleProtocol *protocol, const gchar *description) {
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
75 PurpleProtocolPrivate *priv = NULL;
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
76
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
77 priv = purple_protocol_get_instance_private(protocol);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
78 g_free(priv->description);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
79 priv->description = g_strdup(description);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
80
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
81 g_object_notify_by_pspec(G_OBJECT(protocol), properties[PROP_DESCRIPTION]);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
82 }
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
83
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
84 static void
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
85 purple_protocol_set_options(PurpleProtocol *protocol,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
86 PurpleProtocolOptions options)
36686
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
87 {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
88 PurpleProtocolPrivate *priv = NULL;
36686
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
89
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
90 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
91 priv->options = options;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
92
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
93 g_object_notify_by_pspec(G_OBJECT(protocol), properties[PROP_OPTIONS]);
36686
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
94 }
9807e4acf281 Added PurpleProtocolOverrideFlags and purple_protocol_override()
Ankit Vani <a@nevitus.org>
parents: 36681
diff changeset
95
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
96 /******************************************************************************
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
97 * GObject Implementation
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
98 *****************************************************************************/
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
99 static void
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
100 purple_protocol_get_property(GObject *obj, guint param_id, GValue *value,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
101 GParamSpec *pspec)
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
102 {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
103 PurpleProtocol *protocol = PURPLE_PROTOCOL(obj);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
104
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
105 switch(param_id) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
106 case PROP_ID:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
107 g_value_set_string(value, purple_protocol_get_id(protocol));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
108 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
109 case PROP_NAME:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
110 g_value_set_string(value, purple_protocol_get_name(protocol));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
111 break;
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
112 case PROP_DESCRIPTION:
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
113 g_value_set_string(value, purple_protocol_get_description(protocol));
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
114 break;
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
115 case PROP_OPTIONS:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
116 g_value_set_flags(value, purple_protocol_get_options(protocol));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
117 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
118 default:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
119 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
120 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
121 }
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
122 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
123
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
124 static void
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
125 purple_protocol_set_property(GObject *obj, guint param_id, const GValue *value,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
126 GParamSpec *pspec)
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
127 {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
128 PurpleProtocol *protocol = PURPLE_PROTOCOL(obj);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
129
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
130 switch(param_id) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
131 case PROP_ID:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
132 purple_protocol_set_id(protocol, g_value_get_string(value));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
133 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
134 case PROP_NAME:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
135 purple_protocol_set_name(protocol, g_value_get_string(value));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
136 break;
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
137 case PROP_DESCRIPTION:
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
138 purple_protocol_set_description(protocol, g_value_get_string(value));
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
139 break;
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
140 case PROP_OPTIONS:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
141 purple_protocol_set_options(protocol, g_value_get_flags(value));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
142 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
143 default:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
144 G_OBJECT_WARN_INVALID_PROPERTY_ID(obj, param_id, pspec);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
145 break;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
146 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
147 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
148
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
149 static void
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
150 purple_protocol_init(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
151 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
152
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
153 static void
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
154 purple_protocol_finalize(GObject *object) {
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
155 PurpleProtocol *protocol = PURPLE_PROTOCOL(object);
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
156 PurpleProtocolPrivate *priv = NULL;
36681
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
157 GList *accounts, *l;
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
158
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
159 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
160
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
161 g_clear_pointer(&priv->id, g_free);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
162 g_clear_pointer(&priv->name, g_free);
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
163 g_clear_pointer(&priv->description, g_free);
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
164 /* I'm not sure that we can finalize a protocol plugin if an account is
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
165 * still using it.. Right now accounts don't ref protocols, but maybe
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
166 * they should?
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
167 */
36681
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
168 accounts = purple_accounts_get_all_active();
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
169 for (l = accounts; l != NULL; l = l->next) {
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
170 PurpleAccount *account = PURPLE_ACCOUNT(l->data);
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
171 if (purple_account_is_disconnected(account))
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
172 continue;
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
173
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
174 if (purple_strequal(priv->id, purple_account_get_protocol_id(account)))
36681
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
175 purple_account_disconnect(account);
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
176 }
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
177
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
178 g_list_free(accounts);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
179
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
180 /* these seem to be fallbacks if the subclass protocol doesn't do it's own
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
181 * clean up? I kind of want to delete them... - gk 2021-03-03
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
182 */
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
183 purple_request_close_with_handle(protocol);
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
184 purple_notify_close_with_handle(protocol);
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
185
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
186 purple_signals_disconnect_by_handle(protocol);
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
187 purple_signals_unregister_by_instance(protocol);
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
188
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
189 purple_prefs_disconnect_by_handle(protocol);
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
190
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
191 G_OBJECT_CLASS(purple_protocol_parent_class)->finalize(object);
36681
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
192 }
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
193
9c38716c8eb7 Moved protocol class members to instance. Protocol definitions now require *_init, *_class_init instead of *_base_init.
Ankit Vani <a@nevitus.org>
parents: 36637
diff changeset
194 static void
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
195 purple_protocol_class_init(PurpleProtocolClass *klass) {
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
196 GObjectClass *obj_class = G_OBJECT_CLASS(klass);
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
197
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
198 obj_class->get_property = purple_protocol_get_property;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
199 obj_class->set_property = purple_protocol_set_property;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
200 obj_class->finalize = purple_protocol_finalize;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
201
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
202 /**
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
203 * PurpleProtocol::id:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
204 *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
205 * The identifier for the protocol.
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
206 */
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
207 properties[PROP_ID] = g_param_spec_string(
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
208 "id", "id",
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
209 "The identifier for the protocol",
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
210 NULL,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
211 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
212
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
213 /**
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
214 * PurpleProtocol::name:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
215 *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
216 * The name to show in user interface for the protocol.
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
217 */
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
218 properties[PROP_NAME] = g_param_spec_string(
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
219 "name", "name",
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
220 "The name of the protocol to show in the user interface",
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
221 NULL,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
222 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
223
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
224 /**
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
225 * PurpleProtocol::description:
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
226 *
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
227 * The description to show in user interface for the protocol.
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
228 */
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
229 properties[PROP_DESCRIPTION] = g_param_spec_string(
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
230 "description", "description",
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
231 "The description of the protocol to show in the user interface",
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
232 NULL,
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
233 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
234
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
235 /**
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
236 * PurpleProtocol::options:
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
237 *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
238 * The #PurpleProtocolOptions for the protocol.
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
239 */
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
240 properties[PROP_OPTIONS] = g_param_spec_flags(
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
241 "options", "options",
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
242 "The options for the protocol",
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
243 PURPLE_TYPE_PROTOCOL_OPTIONS,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
244 0,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
245 G_PARAM_READWRITE | G_PARAM_CONSTRUCT_ONLY | G_PARAM_STATIC_STRINGS);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
246
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
247 g_object_class_install_properties(obj_class, N_PROPERTIES, properties);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
248 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
249
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
250 /******************************************************************************
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
251 * Public API
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
252 *****************************************************************************/
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
253 const gchar *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
254 purple_protocol_get_id(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
255 PurpleProtocolPrivate *priv = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
256
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
257 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
258
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
259 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
260
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
261 return priv->id;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
262 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
263
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
264 const gchar *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
265 purple_protocol_get_name(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
266 PurpleProtocolPrivate *priv = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
267
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
268 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
269
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
270 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
271
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
272 return priv->name;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
273 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
274
40985
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
275 const gchar *
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
276 purple_protocol_get_description(PurpleProtocol *protocol) {
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
277 PurpleProtocolPrivate *priv = NULL;
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
278
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
279 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
280
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
281 priv = purple_protocol_get_instance_private(protocol);
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
282
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
283 return priv->description;
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
284 }
ddc26be7f597 Add description to PurpleProtocol
Prateek Pardeshi <prateekpardeshi6@gmail.com>
parents: 40813
diff changeset
285
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
286 PurpleProtocolOptions
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
287 purple_protocol_get_options(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
288 PurpleProtocolPrivate *priv = NULL;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
289
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
290 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), 0);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
291
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
292 priv = purple_protocol_get_instance_private(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
293
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
294 return priv->options;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
295 }
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
296
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
297 GList *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
298 purple_protocol_get_user_splits(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
299 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
300
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
301 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
302
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
303 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
304 if(klass != NULL && klass->get_user_splits != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
305 return klass->get_user_splits(protocol);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
306 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
307
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
308 return NULL;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
309 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
310
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
311 GList *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
312 purple_protocol_get_account_options(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
313 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
314
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
315 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
316
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
317 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
318 if(klass != NULL && klass->get_account_options != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
319 return klass->get_account_options(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
320 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
321
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
322 return NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
323 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
324
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
325 PurpleBuddyIconSpec *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
326 purple_protocol_get_icon_spec(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
327 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
328
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
329 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
330
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
331 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
332 if(klass != NULL && klass->get_buddy_icon_spec != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
333 return klass->get_buddy_icon_spec(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
334 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
335
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
336 return NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
337 }
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
338
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
339 PurpleWhiteboardOps *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
340 purple_protocol_get_whiteboard_ops(PurpleProtocol *protocol) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
341 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
342
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
343 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
344
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
345 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
346 if(klass != NULL && klass->get_whiteboard_ops != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
347 return klass->get_whiteboard_ops(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
348 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
349
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
350 return NULL;
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
351 }
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
352
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
353 void
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
354 purple_protocol_login(PurpleProtocol *protocol, PurpleAccount *account) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
355 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
356
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
357 g_return_if_fail(PURPLE_IS_PROTOCOL(protocol));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
358 g_return_if_fail(PURPLE_IS_ACCOUNT(account));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
359
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
360 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
361 if(klass != NULL && klass->login != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
362 klass->login(account);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
363 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
364 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
365
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
366 void
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
367 purple_protocol_close(PurpleProtocol *protocol, PurpleConnection *gc) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
368 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
369
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
370 g_return_if_fail(PURPLE_IS_PROTOCOL(protocol));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
371 g_return_if_fail(PURPLE_IS_CONNECTION(gc));
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
372
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
373 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
374 if(klass != NULL && klass->close != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
375 klass->close(gc);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
376 }
36722
49872e1ec30e Defined the new interface functions
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
377 }
49872e1ec30e Defined the new interface functions
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
378
49872e1ec30e Defined the new interface functions
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
379 GList *
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
380 purple_protocol_get_status_types(PurpleProtocol *protocol,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
381 PurpleAccount *account)
36722
49872e1ec30e Defined the new interface functions
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
382 {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
383 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
384
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
385 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
386 g_return_val_if_fail(PURPLE_IS_ACCOUNT(account), NULL);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
387
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
388 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
389 if(klass != NULL && klass->status_types != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
390 return klass->status_types(account);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
391 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
392
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
393 return NULL;
36722
49872e1ec30e Defined the new interface functions
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
394 }
49872e1ec30e Defined the new interface functions
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
395
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
396 const gchar *
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
397 purple_protocol_get_list_icon(PurpleProtocol *protocol, PurpleAccount *account,
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
398 PurpleBuddy *buddy)
36722
49872e1ec30e Defined the new interface functions
Ankit Vani <a@nevitus.org>
parents: 36719
diff changeset
399 {
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
400 PurpleProtocolClass *klass = NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
401
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
402 g_return_val_if_fail(PURPLE_IS_PROTOCOL(protocol), NULL);
36617
be16459a68e9 Finished implementation of protocol object and interface stuff in protocol.[ch].
Ankit Vani <a@nevitus.org>
parents: 36560
diff changeset
403
40813
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
404 klass = PURPLE_PROTOCOL_GET_CLASS(protocol);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
405 if(klass != NULL && klass->list_icon != NULL) {
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
406 return klass->list_icon(account, buddy);
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
407 }
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
408
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
409 return NULL;
71305a7d7423 Modernize PurpleProtocol
Gary Kramlich <grim@reaperworld.com>
parents: 40708
diff changeset
410 }

mercurial