author | Mikael Berthe <mikael@lilotux.net> |
Mon, 13 Jun 2022 18:01:27 +0200 | |
changeset 745 | 7785b42dd7bc |
parent 690 | 7ccf2113ec5f |
permissions | -rw-r--r-- |
516
4dd3aa6b83e5
Change the tab width to 4 steps in the emacs headers
Mikael Hallendal <micke@imendio.com>
parents:
515
diff
changeset
|
1 |
/* -*- Mode: C; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
2 |
/* |
426
ab47db6da589
LmSimpleIO now implements the LmXmppWriter interface.
Mikael Hallendal <micke@imendio.com>
parents:
423
diff
changeset
|
3 |
* Copyright (C) 2008 Imendio AB |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
4 |
* |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
5 |
* This program is free software; you can redistribute it and/or |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
6 |
* modify it under the terms of the GNU Lesser General Public License as |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
7 |
* published by the Free Software Foundation; either version 2 of the |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
8 |
* License, or (at your option) any later version. |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
9 |
* |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
10 |
* This program is distributed in the hope that it will be useful, |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
11 |
* but WITHOUT ANY WARRANTY; without even the implied warranty of |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
12 |
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
13 |
* Lesser General Public License for more details. |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
14 |
* |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
15 |
* You should have received a copy of the GNU Lesser General Public |
690
7ccf2113ec5f
Update the postal address of the FSF
Frank Zschockelt <lm@freakysoft.de>
parents:
518
diff
changeset
|
16 |
* License along with this program; if not, see <https://www.gnu.org/licenses> |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
17 |
*/ |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
18 |
|
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
19 |
#include <config.h> |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
20 |
|
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
21 |
#include "lm-xmpp-writer.h" |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
22 |
|
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
23 |
static void xmpp_writer_base_init (LmXmppWriterIface *iface); |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
24 |
|
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
25 |
GType |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
26 |
lm_xmpp_writer_get_type (void) |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
27 |
{ |
518
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
28 |
static GType iface_type = 0; |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
29 |
|
518
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
30 |
if (!iface_type) { |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
31 |
static const GTypeInfo iface_info = { |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
32 |
sizeof (LmXmppWriterIface), |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
33 |
(GBaseInitFunc) xmpp_writer_base_init, |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
34 |
(GBaseFinalizeFunc) NULL, |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
35 |
}; |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
36 |
|
518
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
37 |
iface_type = g_type_register_static (G_TYPE_INTERFACE, |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
38 |
"LmXmppWriterIface", |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
39 |
&iface_info, |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
40 |
0); |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
41 |
|
518
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
42 |
g_type_interface_add_prerequisite (iface_type, G_TYPE_OBJECT); |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
43 |
} |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
44 |
|
518
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
45 |
return iface_type; |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
46 |
} |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
47 |
|
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
48 |
static void |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
49 |
xmpp_writer_base_init (LmXmppWriterIface *iface) |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
50 |
{ |
518
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
51 |
static gboolean initialized = FALSE; |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
52 |
|
518
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
53 |
if (!initialized) { |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
54 |
/* create interface signals here. */ |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
55 |
initialized = TRUE; |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
56 |
} |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
57 |
} |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
58 |
|
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
59 |
void |
426
ab47db6da589
LmSimpleIO now implements the LmXmppWriter interface.
Mikael Hallendal <micke@imendio.com>
parents:
423
diff
changeset
|
60 |
lm_xmpp_writer_send_message (LmXmppWriter *writer, LmMessage *message) |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
61 |
{ |
518
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
62 |
if (!LM_XMPP_WRITER_GET_IFACE(writer)->send_message) { |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
63 |
g_assert_not_reached (); |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
64 |
} |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
65 |
|
518
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
66 |
LM_XMPP_WRITER_GET_IFACE(writer)->send_message (writer, message); |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
67 |
} |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
68 |
|
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
69 |
void |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
70 |
lm_xmpp_writer_send_text (LmXmppWriter *writer, |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
71 |
const gchar *buf, |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
72 |
gsize len) |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
73 |
{ |
518
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
74 |
if (!LM_XMPP_WRITER_GET_IFACE(writer)->send_text) { |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
75 |
g_assert_not_reached (); |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
76 |
} |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
77 |
|
518
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
78 |
LM_XMPP_WRITER_GET_IFACE(writer)->send_text (writer, buf, len); |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
79 |
} |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
80 |
|
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
81 |
void |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
82 |
lm_xmpp_writer_flush (LmXmppWriter *writer) |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
83 |
{ |
518
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
84 |
if (!LM_XMPP_WRITER_GET_IFACE(writer)->flush) { |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
85 |
g_assert_not_reached (); |
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
86 |
} |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
87 |
|
518
cdd6a0c5b439
Went over all of the files and made sure they all were indented the same way.
Mikael Hallendal <micke@imendio.com>
parents:
516
diff
changeset
|
88 |
LM_XMPP_WRITER_GET_IFACE(writer)->flush (writer); |
423
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
89 |
} |
9987db86f2ef
Added LmXmppWriter interface
Mikael Hallendal <micke@imendio.com>
parents:
diff
changeset
|
90 |