loudmouth/lm-connection.h
author Mikael Berthe <mikael@lilotux.net>
Mon, 25 Jan 2021 20:59:00 +0100
changeset 740 f1bb5e7e9477
parent 690 7ccf2113ec5f
permissions -rw-r--r--
Bump version to 1.5.4
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 -*- */
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     2
/*
99
81e9d035de02 2004-10-05 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 91
diff changeset
     3
 * Copyright (C) 2003 Imendio AB
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     4
 *
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     6
 * modify it under the terms of the GNU Lesser General Public License as
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     7
 * published by the Free Software Foundation; either version 2 of the
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     8
 * License, or (at your option) any later version.
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     9
 *
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    10
 * This program is distributed in the hope that it will be useful,
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    13
 * Lesser General Public License for more details.
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    14
 *
50e230cf7818 Initial revision
hallski <hallski>
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: 643
diff changeset
    16
 * License along with this program; if not, see <https://www.gnu.org/licenses>
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    17
 */
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    18
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    19
#ifndef __LM_CONNECTION_H__
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    20
#define __LM_CONNECTION_H__
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    21
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    22
#if !defined (LM_INSIDE_LOUDMOUTH_H) && !defined (LM_COMPILATION)
188
a99cacb7a907 2006-11-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 101
diff changeset
    23
#error "Only <loudmouth/loudmouth.h> can be included directly, this file may disappear or change contents."
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    24
#endif
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    25
68
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
    26
#include <loudmouth/lm-message.h>
66
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 62
diff changeset
    27
#include <loudmouth/lm-proxy.h>
68
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
    28
#include <loudmouth/lm-ssl.h>
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    29
101
a8abfbc8c005 2004-10-22 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 99
diff changeset
    30
G_BEGIN_DECLS
a8abfbc8c005 2004-10-22 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 99
diff changeset
    31
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    32
/**
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    33
 * LM_CONNECTION:
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    34
 * @o: pointer to cast
607
e2bd14357c9a Some style fixes
Frank Zschockelt <lm@freakysoft.de>
parents: 529
diff changeset
    35
 *
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    36
 * Convenience macro used to cast a pointer to a #LmConnection.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    37
 */
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    38
#define LM_CONNECTION(o) (LmConnection *) o;
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    39
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    40
/**
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    41
 * LM_CONNECTION_DEFAULT_PORT:
607
e2bd14357c9a Some style fixes
Frank Zschockelt <lm@freakysoft.de>
parents: 529
diff changeset
    42
 *
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    43
 * Default jabber client port.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    44
 */
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    45
#define LM_CONNECTION_DEFAULT_PORT     5222
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    46
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    47
/**
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    48
 * LM_CONNECTION_DEFAULT_PORT_SSL:
607
e2bd14357c9a Some style fixes
Frank Zschockelt <lm@freakysoft.de>
parents: 529
diff changeset
    49
 *
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    50
 * Default jabber client port when using SSL encryption.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    51
 */
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    52
#define LM_CONNECTION_DEFAULT_PORT_SSL 5223
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    53
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    54
typedef struct _LmConnection LmConnection;
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    55
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    56
typedef struct LmMessageHandler LmMessageHandler;
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    57
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    58
/**
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    59
 * LmHandlerResult:
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    60
 * @LM_HANDLER_RESULT_REMOVE_MESSAGE: Stop calling message handlers. The message handler returning this declares the message has been handled and should be removed.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    61
 * @LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS: Return to continue the calling handlers from the handler list. This declares that another handlers should handle the message.
607
e2bd14357c9a Some style fixes
Frank Zschockelt <lm@freakysoft.de>
parents: 529
diff changeset
    62
 *
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    63
 * The return type of an LmMessageHandler. This determines whether more message handlers should be called.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    64
 */
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    65
typedef enum {
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_HANDLER_RESULT_REMOVE_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
    67
    LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    68
} LmHandlerResult;
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    69
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    70
/**
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    71
 * LmHandlerPriority:
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    72
 * @LM_HANDLER_PRIORITY_LAST: Call the handler after all handlers with #NORMAL and #FIRST priority.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    73
 * @LM_HANDLER_PRIORITY_NORMAL: Called before handlers with priority #LAST and after those with #FIRST.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    74
 * @LM_HANDLER_PRIORITY_FIRST: These are called before all other handlers.
607
e2bd14357c9a Some style fixes
Frank Zschockelt <lm@freakysoft.de>
parents: 529
diff changeset
    75
 *
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    76
 * Since the handlers decide whether to stop the calling chain with there return values it's sometimes decirable to be able to set priority. For example a handler that only logs all incoming messages and then pass the message on to another handler wants to have priority %LM_HANDLER_PRIORITY_FIRST. An handler that should take all messages that wasn't handled by anything else would want to have priority %LM_HANDLER_PRIORITY_LAST. If several handlers have the same priority nothing can be said about the order the handlers will be called in.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    77
 */
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    78
typedef enum {
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
    79
    LM_HANDLER_PRIORITY_LAST   = 1,
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
    80
    LM_HANDLER_PRIORITY_NORMAL = 2,
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
    81
    LM_HANDLER_PRIORITY_FIRST  = 3
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    82
} LmHandlerPriority;
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    83
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    84
/**
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    85
 * LmDisconnectReason:
643
e7ef923056d7 Minor documentation fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 609
diff changeset
    86
 * @LM_DISCONNECT_REASON_OK:
e7ef923056d7 Minor documentation fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 609
diff changeset
    87
 * @LM_DISCONNECT_REASON_PING_TIME_OUT: Connection to the server timed out.
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    88
 * @LM_DISCONNECT_REASON_HUP: The socket emitted that the connection was hung up.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    89
 * @LM_DISCONNECT_REASON_ERROR: A generic error somewhere in the transport layer.
643
e7ef923056d7 Minor documentation fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 609
diff changeset
    90
 * @LM_DISCONNECT_REASON_RESOURCE_CONFLICT:
e7ef923056d7 Minor documentation fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 609
diff changeset
    91
 * @LM_DISCONNECT_REASON_INVALID_XML:
e7ef923056d7 Minor documentation fixes
Myhailo Danylenko <isbear@ukrpost.net>
parents: 609
diff changeset
    92
 * @LM_DISCONNECT_REASON_UNKNOWN: An unknown error.
607
e2bd14357c9a Some style fixes
Frank Zschockelt <lm@freakysoft.de>
parents: 529
diff changeset
    93
 *
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    94
 * Sent with #LmDisconnectFunction to describe why a connection was closed.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
    95
 */
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    96
typedef enum {
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
    97
    LM_DISCONNECT_REASON_OK,
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
    98
    LM_DISCONNECT_REASON_PING_TIME_OUT,
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
    99
    LM_DISCONNECT_REASON_HUP,
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
   100
    LM_DISCONNECT_REASON_ERROR,
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
   101
    LM_DISCONNECT_REASON_RESOURCE_CONFLICT,
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
   102
    LM_DISCONNECT_REASON_INVALID_XML,
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
   103
    LM_DISCONNECT_REASON_UNKNOWN
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   104
} LmDisconnectReason;
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   105
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   106
/**
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   107
 * LmConnectionState:
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   108
 * @LM_CONNECTION_STATE_CLOSED: The connection is closed.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   109
 * @LM_CONNECTION_STATE_OPENING: The connection is in the process of opening.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   110
 * @LM_CONNECTION_STATE_OPEN: The connection is open.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   111
 * @LM_CONNECTION_STATE_AUTHENTICATING: The connection is in the process of authenticating.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   112
 * @LM_CONNECTION_STATE_AUTHENTICATED: The connection is authenticated and is ready to start sending/receiving messages.
607
e2bd14357c9a Some style fixes
Frank Zschockelt <lm@freakysoft.de>
parents: 529
diff changeset
   113
 *
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   114
 * Describes the current state of an #LmConnection.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   115
 */
57
6b168a8917f7 2003-12-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 15
diff changeset
   116
typedef enum {
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
   117
    LM_CONNECTION_STATE_CLOSED,
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
   118
    LM_CONNECTION_STATE_OPENING,
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
   119
    LM_CONNECTION_STATE_OPEN,
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
   120
    LM_CONNECTION_STATE_AUTHENTICATING,
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
   121
    LM_CONNECTION_STATE_AUTHENTICATED
59
ef952e8c114d 2003-12-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
   122
} LmConnectionState;
ef952e8c114d 2003-12-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
   123
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   124
/**
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   125
 * LmResultFunction:
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   126
 * @connection: an #LmConnection
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   127
 * @success: the result, %TRUE if operation succeeded, otherwise %FALSE
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   128
 * @user_data: User data passed when function being called.
607
e2bd14357c9a Some style fixes
Frank Zschockelt <lm@freakysoft.de>
parents: 529
diff changeset
   129
 *
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   130
 * Callback for informing if an asynchronous operation was successful.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   131
 */
57
6b168a8917f7 2003-12-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 15
diff changeset
   132
typedef void          (* LmResultFunction)     (LmConnection       *connection,
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
   133
                                                gboolean            success,
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
   134
                                                gpointer            user_data);
57
6b168a8917f7 2003-12-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 15
diff changeset
   135
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   136
/**
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   137
 * LmDisconnectFunction:
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   138
 * @connection: an #LmConnection
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   139
 * @reason: the reason the connection was closed.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   140
 * @user_data: User data passed when function being called.
607
e2bd14357c9a Some style fixes
Frank Zschockelt <lm@freakysoft.de>
parents: 529
diff changeset
   141
 *
417
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   142
 * Callback called when a connection is closed.
364c17252e5f Added inlined documentation from generated through the Gtk-doc migration script.
Mikael Hallendal <micke@imendio.com>
parents: 415
diff changeset
   143
 */
529
6bb284696153 More style fixes
Mikael Hallendal <micke@imendio.com>
parents: 518
diff changeset
   144
typedef void         (* LmDisconnectFunction) (LmConnection       *connection,
6bb284696153 More style fixes
Mikael Hallendal <micke@imendio.com>
parents: 518
diff changeset
   145
                                               LmDisconnectReason  reason,
6bb284696153 More style fixes
Mikael Hallendal <micke@imendio.com>
parents: 518
diff changeset
   146
                                               gpointer            user_data);
57
6b168a8917f7 2003-12-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 15
diff changeset
   147
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   148
LmConnection *lm_connection_new               (const gchar        *server);
82
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 70
diff changeset
   149
LmConnection *lm_connection_new_with_context  (const gchar        *server,
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
   150
                                               GMainContext       *context);
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   151
gboolean      lm_connection_open              (LmConnection       *connection,
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
   152
                                               LmResultFunction    function,
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
   153
                                               gpointer            user_data,
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
   154
                                               GDestroyNotify      notify,
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
   155
                                               GError            **error);
57
6b168a8917f7 2003-12-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 15
diff changeset
   156
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   157
gboolean      lm_connection_open_and_block    (LmConnection       *connection,
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
   158
                                               GError            **error);
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   159
90
3f4b38614416 2004-08-25 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 89
diff changeset
   160
void          lm_connection_cancel_open       (LmConnection      *connection);
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   161
gboolean      lm_connection_close             (LmConnection       *connection,
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
   162
                                               GError            **error);
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   163
gboolean      lm_connection_authenticate      (LmConnection       *connection,
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
   164
                                               const gchar        *username,
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
   165
                                               const gchar        *password,
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
   166
                                               const gchar        *resource,
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
   167
                                               LmResultFunction    function,
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
   168
                                               gpointer            user_data,
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
   169
                                               GDestroyNotify      notify,
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
   170
                                               GError            **error);
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   171
gboolean
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   172
lm_connection_authenticate_and_block          (LmConnection       *connection,
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
   173
                                               const gchar        *username,
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
   174
                                               const gchar        *password,
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
   175
                                               const gchar        *resource,
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
   176
                                               GError            **error);
394
03933ba2fb40 Added lm_connection_get_keep_alive.
Mikael Hallendal <micke@imendio.com>
parents: 332
diff changeset
   177
guint         lm_connection_get_keep_alive_rate (LmConnection     *connection);
90
3f4b38614416 2004-08-25 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 89
diff changeset
   178
void        lm_connection_set_keep_alive_rate (LmConnection       *connection,
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
   179
                                               guint               rate);
90
3f4b38614416 2004-08-25 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 89
diff changeset
   180
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   181
gboolean      lm_connection_is_open           (LmConnection       *connection);
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   182
gboolean      lm_connection_is_authenticated  (LmConnection       *connection);
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   183
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   184
const gchar * lm_connection_get_server        (LmConnection       *connection);
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   185
void          lm_connection_set_server        (LmConnection       *connection,
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
   186
                                               const gchar        *server);
89
e756a937e540 2004-08-09 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 87
diff changeset
   187
void          lm_connection_set_jid           (LmConnection       *connection,
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
   188
                                               const gchar        *jid);
89
e756a937e540 2004-08-09 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 87
diff changeset
   189
const gchar * lm_connection_get_jid           (LmConnection       *connection);
307
f169e9281745 Rename lm_conn_get_effective_jid() to lm_conn_get_full_jid() to
Senko Rasic <senko.rasic@collabora.co.uk>
parents: 306
diff changeset
   190
gchar *       lm_connection_get_full_jid      (LmConnection       *connection);
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   191
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   192
guint         lm_connection_get_port          (LmConnection       *connection);
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   193
void          lm_connection_set_port          (LmConnection       *connection,
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
   194
                                               guint               port);
57
6b168a8917f7 2003-12-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 15
diff changeset
   195
68
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
   196
LmSSL *       lm_connection_get_ssl           (LmConnection       *connection);
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
   197
void          lm_connection_set_ssl           (LmConnection       *connection,
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
   198
                                               LmSSL              *ssl);
66
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 62
diff changeset
   199
LmProxy *     lm_connection_get_proxy         (LmConnection       *connection);
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 62
diff changeset
   200
void          lm_connection_set_proxy         (LmConnection       *connection,
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
   201
                                               LmProxy            *proxy);
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   202
gboolean      lm_connection_send              (LmConnection       *connection,
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
   203
                                               LmMessage          *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
   204
                                               GError            **error);
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   205
gboolean      lm_connection_send_with_reply   (LmConnection       *connection,
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
   206
                                               LmMessage          *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
   207
                                               LmMessageHandler   *handler,
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
   208
                                               GError            **error);
607
e2bd14357c9a Some style fixes
Frank Zschockelt <lm@freakysoft.de>
parents: 529
diff changeset
   209
LmMessage *
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   210
lm_connection_send_with_reply_and_block       (LmConnection       *connection,
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
   211
                                               LmMessage          *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
   212
                                               GError            **error);
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   213
void
609
8dab2a5c2123 Added lm_connection_unregister_reply_handler()
Frank Zschockelt <flm@freakysoft.de>
parents: 607
diff changeset
   214
lm_connection_unregister_reply_handler        (LmConnection     *connection,
8dab2a5c2123 Added lm_connection_unregister_reply_handler()
Frank Zschockelt <flm@freakysoft.de>
parents: 607
diff changeset
   215
                                               LmMessageHandler *handler);
8dab2a5c2123 Added lm_connection_unregister_reply_handler()
Frank Zschockelt <flm@freakysoft.de>
parents: 607
diff changeset
   216
void
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   217
lm_connection_register_message_handler        (LmConnection       *connection,
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
   218
                                               LmMessageHandler   *handler,
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
   219
                                               LmMessageType       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
   220
                                               LmHandlerPriority   priority);
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   221
void
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   222
lm_connection_unregister_message_handler      (LmConnection       *connection,
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
   223
                                               LmMessageHandler   *handler,
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
   224
                                               LmMessageType       type);
607
e2bd14357c9a Some style fixes
Frank Zschockelt <lm@freakysoft.de>
parents: 529
diff changeset
   225
void
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   226
lm_connection_set_disconnect_function         (LmConnection       *connection,
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
   227
                                               LmDisconnectFunction function,
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
   228
                                               gpointer             user_data,
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
   229
                                               GDestroyNotify       notify);
607
e2bd14357c9a Some style fixes
Frank Zschockelt <lm@freakysoft.de>
parents: 529
diff changeset
   230
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   231
gboolean      lm_connection_send_raw          (LmConnection       *connection,
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
   232
                                               const gchar        *str,
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
   233
                                               GError            **error);
59
ef952e8c114d 2003-12-19 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
   234
LmConnectionState lm_connection_get_state     (LmConnection       *connection);
308
7e2050a6df75 Added lm_connection_get_client_host (forward-port from LM1.2).
Senko Rasic <senko.rasic@collabora.co.uk>
parents: 307
diff changeset
   235
gchar *       lm_connection_get_local_host    (LmConnection       *connection);
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   236
LmConnection* lm_connection_ref               (LmConnection       *connection);
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   237
void          lm_connection_unref             (LmConnection       *connection);
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   238
101
a8abfbc8c005 2004-10-22 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 99
diff changeset
   239
G_END_DECLS
a8abfbc8c005 2004-10-22 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 99
diff changeset
   240
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
   241
#endif /* __LM_CONNECTION_H__ */