53
53
static guint signals[LAST_SIGNAL] = {0};
63
56
_reader_stream_opened_cb(GibberXmppReader *reader,
64
57
const gchar *to, const gchar *from,
100
92
priv = GIBBER_XMPP_CONNECTION_GET_PRIVATE (obj);
102
if (priv->streaming) {
103
priv->writer = gibber_xmpp_writer_new();
104
priv->reader = gibber_xmpp_reader_new();
105
priv->stream_opened = FALSE;
107
g_signal_connect(priv->reader, "stream-opened",
108
G_CALLBACK(_reader_stream_opened_cb), obj);
109
g_signal_connect(priv->reader, "stream-closed",
110
G_CALLBACK(_reader_stream_closed_cb), obj);
112
priv->writer = gibber_xmpp_writer_new_no_stream();
113
priv->reader = gibber_xmpp_reader_new_no_stream();
114
priv->stream_opened = TRUE;
94
priv->writer = gibber_xmpp_writer_new();
95
priv->reader = gibber_xmpp_reader_new();
96
priv->stream_opened = FALSE;
98
g_signal_connect(priv->reader, "stream-opened",
99
G_CALLBACK(_reader_stream_opened_cb), obj);
100
g_signal_connect(priv->reader, "stream-closed",
101
G_CALLBACK(_reader_stream_closed_cb), obj);
117
102
g_signal_connect(priv->reader, "received-stanza",
118
103
G_CALLBACK(_reader_received_stanza_cb), obj);
124
gibber_xmpp_connection_set_property (GObject *object,
129
GibberXmppConnection *conn = GIBBER_XMPP_CONNECTION(object);
130
GibberXmppConnectionPrivate *priv = GIBBER_XMPP_CONNECTION_GET_PRIVATE(conn);
132
switch (property_id) {
134
priv->streaming = g_value_get_boolean(value);
137
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
143
gibber_xmpp_connection_get_property (GObject *object,
147
GibberXmppConnection *conn = GIBBER_XMPP_CONNECTION(object);
148
GibberXmppConnectionPrivate *priv = GIBBER_XMPP_CONNECTION_GET_PRIVATE(conn);
150
switch (property_id) {
152
g_value_set_boolean(value, priv->streaming);
155
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, property_id, pspec);
161
109
gibber_xmpp_connection_init (GibberXmppConnection *obj) {
162
110
obj->transport = NULL;
177
124
object_class->finalize = gibber_xmpp_connection_finalize;
179
126
object_class->constructor = gibber_xmpp_connection_constructor;
180
object_class->get_property = gibber_xmpp_connection_get_property;
181
object_class->set_property = gibber_xmpp_connection_set_property;
184
128
signals[STREAM_OPENED] =
185
129
g_signal_new("stream-opened",
214
158
g_cclosure_marshal_VOID__VOID,
217
param_spec = g_param_spec_boolean ("streaming",
219
"Whether this is an streaming"
222
G_PARAM_CONSTRUCT_ONLY |
224
G_PARAM_STATIC_NAME |
225
G_PARAM_STATIC_BLURB);
226
g_object_class_install_property(object_class, PROP_STREAMING, param_spec);
270
201
new_connection(GibberTransport *transport, gboolean stream) {
271
202
GibberXmppConnection * result;
273
result = g_object_new(GIBBER_TYPE_XMPP_CONNECTION, "streaming", stream, NULL);
204
result = g_object_new(GIBBER_TYPE_XMPP_CONNECTION, NULL);
275
206
if (transport != NULL) {
276
207
gibber_xmpp_connection_engage(result, transport);