loudmouth/lm-internals.h
author hallski <hallski>
Sun, 10 Sep 2006 22:09:45 +0000
changeset 175 5e665ffe3e9c
parent 133 f7522d7ed6dc
child 137 18785575aa7a
permissions -rw-r--r--
2006-09-11 Mikael Hallendal <micke@imendio.com> * Release 1.0.5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     1
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
     2
/*
99
81e9d035de02 2004-10-05 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 96
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
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    16
 * License along with this program; if not, write to the
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    17
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    18
 * Boston, MA 02111-1307, USA.
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    19
 */
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    20
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    21
/* Private functions that are internal to the library */
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    22
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    23
#ifndef __LM_INTERNALS_H__
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    24
#define __LM_INTERNALS_H__
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    25
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    26
#include "lm-message.h"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    27
#include "lm-message-handler.h"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    28
#include "lm-message-node.h"
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    29
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    30
typedef struct {
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    31
	gpointer       func;
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    32
	gpointer       user_data;
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    33
	GDestroyNotify notify;
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    34
} LmCallback;
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    35
82
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    36
typedef struct {
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    37
	LmConnection    *connection;
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    38
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    39
	/* struct to save resolved address */
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    40
	struct addrinfo *resolved_addrs;
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    41
	struct addrinfo *current_addr;
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    42
	int              fd;
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    43
	GIOChannel           *io_channel;
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    44
} LmConnectData;
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    45
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    46
void             _lm_connection_failed_with_error (LmConnectData *connect_data,
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    47
                                                   int error);
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    48
void             _lm_connection_failed            (LmConnectData *connect_data);
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    49
gboolean         _lm_connection_succeeded (LmConnectData *connect_data);
66
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    50
LmCallback *     _lm_utils_new_callback             (gpointer          func, 
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    51
						     gpointer          data,
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    52
						     GDestroyNotify    notify);
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    53
void             _lm_utils_free_callback            (LmCallback       *cb);
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    54
66
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    55
gchar *          _lm_utils_generate_id              (void);
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    56
gchar *          _lm_utils_base64_encode            (const gchar      *str);
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    57
const gchar *    _lm_message_type_to_string         (LmMessageType     type);
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    58
const gchar *    _lm_message_sub_type_to_string     (LmMessageSubType  type);
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    59
LmMessage *      _lm_message_new_from_node          (LmMessageNode    *node);
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    60
void             _lm_message_node_add_child_node    (LmMessageNode    *node,
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    61
						     LmMessageNode    *child);
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    62
LmMessageNode *  _lm_message_node_new               (const gchar      *name);
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    63
void             _lm_debug_init                     (void);
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    64
86
cb65c1ec57a7 2004-08-08 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 84
diff changeset
    65
82
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    66
gboolean         _lm_proxy_connect_cb               (GIOChannel *source,
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    67
                                                     GIOCondition condition,
a32b54e654e2 2004-03-17 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 68
diff changeset
    68
                                                     gpointer data);
68
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
    69
void             _lm_ssl_initialize                 (LmSSL            *ssl);
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
    70
gboolean         _lm_ssl_begin                      (LmSSL            *ssl,
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
    71
						     gint              fd,
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
    72
						     const gchar      *server,
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
    73
						     GError          **error);
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
    74
GIOStatus        _lm_ssl_read                       (LmSSL            *ssl,
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
    75
						     gchar            *buf,
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
    76
						     gint              len,
96
f3abfc08f3ff 2004-09-20 Tollef Fog Heen <tfheen@raw.no>
hallski <hallski>
parents: 86
diff changeset
    77
						     gsize             *bytes_read);
133
f7522d7ed6dc 2006-04-03 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 99
diff changeset
    78
gint             _lm_ssl_send                       (LmSSL            *ssl,
68
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
    79
						     const gchar      *str,
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
    80
						     gint              len);
28203e15de0e 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 66
diff changeset
    81
void             _lm_ssl_close                      (LmSSL            *ssl);
66
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    82
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    83
LmHandlerResult    
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    84
_lm_message_handler_handle_message                (LmMessageHandler *handler,
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    85
						   LmConnection     *connection,
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    86
						   LmMessage        *messag);
577d5059b718 2004-01-15 Mikael Hallendal <micke@imendio.com>
hallski <hallski>
parents: 57
diff changeset
    87
1
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    88
50e230cf7818 Initial revision
hallski <hallski>
parents:
diff changeset
    89
#endif /* __LM_INTERNALS_H__ */