bindings/ruby/src/rblm-connection.c
author Mikael Hallendal <micke@imendio.com>
Thu, 10 Apr 2008 21:30:17 +0200
changeset 390 8623ce9ef39d
permissions -rw-r--r--
moved extension code to src
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
390
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     1
#include "rblm.h"
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     2
#include "rblm-private.h"
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     3
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     4
VALUE lm_cConnection;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     5
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     6
VALUE conn_set_server (VALUE self, VALUE server);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     7
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     8
/* -- START of GMainContext hack -- 
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     9
 * This is a hack to get the GMainContext from a ruby VALUE, this will break if
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    10
 * internals change in Ruby/GLib.
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    11
 */
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    12
typedef struct {
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    13
    gpointer boxed;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    14
    gboolean own;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    15
    gsize    type;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    16
} boxed_holder;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    17
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    18
static GMainContext *
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    19
rb_lm_hack_get_main_context_from_rval (VALUE ctx_rval)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    20
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    21
	boxed_holder *holder;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    22
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    23
	Data_Get_Struct (ctx_rval, boxed_holder, holder);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    24
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    25
	return holder->boxed;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    26
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    27
/* -- END of GMainContext hack -- */
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    28
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    29
LmConnection *
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    30
rb_lm_connection_from_ruby_object (VALUE obj)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    31
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    32
	LmConnection *conn;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    33
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    34
	if (!rb_lm__is_kind_of (obj, lm_cConnection)) {
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    35
		rb_raise (rb_eTypeError, "not a LmConnection");
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    36
	}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    37
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    38
	Data_Get_Struct (obj, LmConnection, conn);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    39
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    40
	return conn;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    41
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    42
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    43
void
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    44
conn_free (LmConnection *self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    45
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    46
	lm_connection_unref (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    47
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    48
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    49
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    50
conn_allocate (VALUE klass)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    51
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    52
	return Data_Wrap_Struct (klass, NULL, conn_free, NULL);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    53
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    54
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    55
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    56
conn_initialize (int argc, VALUE *argv, VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    57
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    58
	LmConnection *conn;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    59
	char         *srv_str = NULL;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    60
	VALUE         server, context;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    61
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    62
	rb_scan_args (argc, argv, "02", &server, &context);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    63
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    64
	if (!NIL_P (context)) {
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    65
		GMainContext *ctx;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    66
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    67
		ctx = rb_lm_hack_get_main_context_from_rval (context);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    68
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    69
		conn = lm_connection_new_with_context (NULL, ctx);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    70
	} else {
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    71
		conn = lm_connection_new (NULL);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    72
	}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    73
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    74
	DATA_PTR (self) = conn;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    75
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    76
	if (!NIL_P (server)) {
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    77
		conn_set_server (self, server);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    78
	}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    79
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    80
	return self;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    81
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    82
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    83
static void
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    84
open_callback (LmConnection *conn, gboolean success, gpointer user_data)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    85
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    86
	rb_funcall((VALUE)user_data, rb_intern ("call"), 1,
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    87
		   GBOOL2RVAL (success));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    88
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    89
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    90
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    91
conn_open (int argc, VALUE *argv, VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    92
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    93
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    94
	VALUE         func;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    95
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    96
	rb_scan_args (argc, argv, "0&", &func);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    97
	if (NIL_P (func)) {
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    98
		func = rb_block_proc ();
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    99
	}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   100
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   101
	return GBOOL2RVAL (lm_connection_open (conn, open_callback, 
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   102
					       (gpointer) func, NULL, NULL));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   103
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   104
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   105
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   106
conn_close (VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   107
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   108
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   109
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   110
	return GBOOL2RVAL (lm_connection_close (conn, NULL));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   111
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   112
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   113
static void
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   114
auth_callback (LmConnection *conn, gboolean success, gpointer user_data)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   115
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   116
	rb_funcall((VALUE)user_data, rb_intern ("call"), 1,
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   117
		   GBOOL2RVAL (success));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   118
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   119
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   120
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   121
conn_auth (int argc, VALUE *argv, VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   122
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   123
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   124
	VALUE         name, password, resource, func; 
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   125
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   126
	rb_scan_args (argc, argv, "21&", &name, &password, &resource, &func);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   127
	if (NIL_P (func)) {
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   128
		func = rb_block_proc ();
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   129
	}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   130
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   131
	return GBOOL2RVAL (lm_connection_authenticate (conn, 
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   132
						       StringValuePtr (name),
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   133
						       StringValuePtr (password), 
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   134
						       StringValuePtr (resource),
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   135
						       auth_callback,
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   136
						       (gpointer) func, NULL,
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   137
						       NULL));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   138
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   139
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   140
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   141
conn_set_keep_alive_rate (VALUE self, VALUE rate)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   142
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   143
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   144
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   145
	lm_connection_set_keep_alive_rate (conn, NUM2UINT (rate));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   146
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   147
	return Qnil;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   148
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   149
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   150
/*
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   151
 * VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   152
conn_get_keep_alive_rate (VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   153
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   154
	LmConnection *connection;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   155
} */
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   156
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   157
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   158
conn_is_open (VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   159
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   160
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   161
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   162
	return GBOOL2RVAL (lm_connection_is_open (conn));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   163
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   164
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   165
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   166
conn_is_authenticated (VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   167
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   168
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   169
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   170
	return GBOOL2RVAL (lm_connection_is_authenticated (conn));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   171
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   172
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   173
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   174
conn_get_server (VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   175
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   176
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   177
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   178
	return rb_str_new2 (lm_connection_get_server (conn));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   179
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   180
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   181
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   182
conn_set_server (VALUE self, VALUE server)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   183
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   184
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   185
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   186
	if (!rb_respond_to (server, rb_intern ("to_s"))) {
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   187
		rb_raise (rb_eArgError, "server should respond to to_s");
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   188
	} else {
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   189
		VALUE str_val = rb_funcall (server, rb_intern ("to_s"), 0);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   190
		lm_connection_set_server (conn, StringValuePtr (str_val));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   191
	}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   192
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   193
	return Qnil;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   194
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   195
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   196
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   197
conn_get_jid (VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   198
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   199
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   200
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   201
	return rb_str_new2 (lm_connection_get_jid (conn));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   202
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   203
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   204
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   205
conn_set_jid (VALUE self, VALUE jid)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   206
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   207
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   208
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   209
	if (!rb_respond_to (jid, rb_intern ("to_s"))) {
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   210
		rb_raise (rb_eArgError, "jid should respond to to_s");
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   211
	} else {
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   212
		VALUE str_val = rb_funcall (jid, rb_intern ("to_s"), 0);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   213
		lm_connection_set_jid (conn, StringValuePtr (str_val));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   214
	}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   215
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   216
	return Qnil;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   217
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   218
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   219
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   220
conn_get_port (VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   221
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   222
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   223
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   224
	return UINT2NUM (lm_connection_get_port (conn));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   225
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   226
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   227
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   228
conn_set_port (VALUE self, VALUE port)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   229
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   230
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   231
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   232
	lm_connection_set_port (conn, NUM2UINT (port));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   233
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   234
	return Qnil;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   235
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   236
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   237
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   238
conn_get_ssl (VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   239
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   240
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   241
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   242
	return LMSSL2RVAL (lm_connection_get_ssl (conn));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   243
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   244
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   245
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   246
conn_set_ssl (VALUE self, VALUE ssl_rval)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   247
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   248
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   249
	LmSSL        *ssl  = rb_lm_ssl_from_ruby_object (ssl_rval);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   250
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   251
	lm_connection_set_ssl (conn, ssl);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   252
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   253
	return Qnil;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   254
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   255
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   256
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   257
conn_get_proxy (VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   258
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   259
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   260
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   261
	return LMPROXY2RVAL (lm_connection_get_proxy (conn));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   262
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   263
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   264
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   265
conn_set_proxy (VALUE self, VALUE proxy_rval)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   266
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   267
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   268
	LmProxy      *proxy = rb_lm_proxy_from_ruby_object (proxy_rval);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   269
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   270
	lm_connection_set_proxy (conn, proxy);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   271
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   272
	return Qnil;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   273
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   274
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   275
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   276
conn_send (VALUE self, VALUE msg)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   277
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   278
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   279
	LmMessage    *m = rb_lm_message_from_ruby_object (msg);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   280
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   281
	return GBOOL2RVAL (lm_connection_send (conn, m, NULL));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   282
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   283
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   284
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   285
conn_get_state (VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   286
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   287
	LmConnection *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   288
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   289
	return INT2FIX (lm_connection_get_state (conn));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   290
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   291
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   292
static LmHandlerResult
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   293
msg_handler_cb (LmMessageHandler *handler,
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   294
		LmConnection     *connection,
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   295
		LmMessage        *message,
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   296
		gpointer          user_data)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   297
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   298
	rb_funcall ((VALUE)user_data, rb_intern ("call"), 1, 
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   299
		    LMMESSAGE2RVAL (message));
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   300
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   301
	return LM_HANDLER_RESULT_ALLOW_MORE_HANDLERS;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   302
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   303
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   304
VALUE
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   305
conn_add_msg_handler (int argc, VALUE *argv, VALUE self)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   306
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   307
	LmConnection     *conn = rb_lm_connection_from_ruby_object (self);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   308
	VALUE             type, func;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   309
	LmMessageHandler *handler;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   310
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   311
	rb_scan_args (argc, argv, "1&", &type, &func);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   312
	if (NIL_P (func)) {
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   313
		func = rb_block_proc ();
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   314
	}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   315
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   316
	handler = lm_message_handler_new (msg_handler_cb, (gpointer) func, NULL);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   317
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   318
	lm_connection_register_message_handler (conn, handler,
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   319
						rb_lm_message_type_from_ruby_object (type),
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   320
						LM_HANDLER_PRIORITY_NORMAL);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   321
	lm_message_handler_unref (handler);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   322
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   323
	return Qnil;
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   324
}
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   325
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   326
void
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   327
Init_lm_connection (VALUE lm_mLM)
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   328
{
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   329
	lm_cConnection = rb_define_class_under (lm_mLM, "Connection", 
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   330
						rb_cObject);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   331
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   332
	rb_define_alloc_func (lm_cConnection, conn_allocate);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   333
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   334
	rb_define_method (lm_cConnection, "initialize", conn_initialize, -1);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   335
	rb_define_method (lm_cConnection, "open", conn_open, -1);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   336
	rb_define_method (lm_cConnection, "close", conn_close, 0);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   337
	rb_define_method (lm_cConnection, "authenticate", conn_auth, -1);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   338
	rb_define_method (lm_cConnection, "keep_alive_rate=", conn_set_keep_alive_rate, 1);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   339
	/* rb_define_method (lm_cConnection, "keep_alive_rate", conn_get_keep_alive_rate, 0); */
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   340
	rb_define_method (lm_cConnection, "open?", conn_is_open, 0);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   341
	rb_define_method (lm_cConnection, "authenticated?", conn_is_authenticated, 0);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   342
	rb_define_method (lm_cConnection, "server", conn_get_server, 0);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   343
	rb_define_method (lm_cConnection, "server=", conn_set_server, 1);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   344
	rb_define_method (lm_cConnection, "jid", conn_get_jid, 0);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   345
	rb_define_method (lm_cConnection, "jid=", conn_set_jid, 1);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   346
	rb_define_method (lm_cConnection, "port", conn_get_port, 0);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   347
	rb_define_method (lm_cConnection, "port=", conn_set_port, 1);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   348
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   349
	rb_define_method (lm_cConnection, "ssl", conn_get_ssl, 0);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   350
	rb_define_method (lm_cConnection, "ssl=", conn_set_ssl, 1);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   351
	rb_define_method (lm_cConnection, "proxy", conn_get_proxy, 0);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   352
	rb_define_method (lm_cConnection, "proxy=", conn_set_proxy, 1);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   353
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   354
	/* Use one send message and check if there is a block passed? */
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   355
	
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   356
	rb_define_method (lm_cConnection, "send", conn_send, 1);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   357
	/*
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   358
	rb_define_method (lm_cConnection, "send_with_reply", conn_send_with_reply, -1);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   359
	rb_define_method (lm_cConnection, "send_raw", conn_send_raw, 1);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   360
	*/
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   361
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   362
	rb_define_method (lm_cConnection, "state", conn_get_state, 0);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   363
	rb_define_method (lm_cConnection, "add_message_handler", conn_add_msg_handler, -1);
8623ce9ef39d moved extension code to src
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
   364
}