loudmouth/lm-simple-io.h
author Mikael Hallendal <micke@imendio.com>
Sun, 22 Jun 2008 23:21:26 +0200
changeset 425 6045fa14c44f
child 426 ab47db6da589
permissions -rw-r--r--
Added LmSimpleIO. LmSimpleIO is meant to be the very simple implementation of the current LmConnection (send code) + lm_message_node_xml + LmParser. After this is properly refactored I can start looking into writing a more robust version of these using expat or LibXML.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
425
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     1
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     2
/*
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     3
 * Copyright (C) 2007 Imendio AB
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     4
 *
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     5
 * This program is free software; you can redistribute it and/or
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     6
 * modify it under the terms of the GNU Lesser General Public License as
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     7
 * published by the Free Software Foundation; either version 2 of the
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     8
 * License, or (at your option) any later version.
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
     9
 *
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    10
 * This program is distributed in the hope that it will be useful,
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    13
 * Lesser General Public License for more details.
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    14
 *
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    15
 * You should have received a copy of the GNU Lesser General Public
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    16
 * License along with this program; if not, write to the
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    17
 * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    18
 * Boston, MA 02111-1307, USA.
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    19
 */
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    20
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    21
#ifndef __LM_SIMPLE_IO_H__
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    22
#define __LM_SIMPLE_IO_H__
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    23
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    24
#include <glib-object.h>
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    25
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    26
G_BEGIN_DECLS
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    27
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    28
#define LM_TYPE_DUMMY            (lm_simple_io_get_type ())
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    29
#define LM_SIMPLE_IO(obj)            (G_TYPE_CHECK_INSTANCE_CAST ((obj), LM_TYPE_DUMMY, LmSimpleIO))
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    30
#define LM_SIMPLE_IO_CLASS(klass)    (G_TYPE_CHECK_CLASS_CAST ((klass), LM_TYPE_DUMMY, LmSimpleIOClass))
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    31
#define LM_IS_DUMMY(obj)         (G_TYPE_CHECK_INSTANCE_TYPE ((obj), LM_TYPE_DUMMY))
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    32
#define LM_IS_DUMMY_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), LM_TYPE_DUMMY))
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    33
#define LM_SIMPLE_IO_GET_CLASS(obj)  (G_TYPE_INSTANCE_GET_CLASS ((obj), LM_TYPE_DUMMY, LmSimpleIOClass))
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    34
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    35
typedef struct LmSimpleIO      LmSimpleIO;
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    36
typedef struct LmSimpleIOClass LmSimpleIOClass;
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    37
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    38
struct LmSimpleIO {
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    39
	GObject parent;
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    40
};
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    41
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    42
struct LmSimpleIOClass {
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    43
	GObjectClass parent_class;
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    44
	
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    45
	/* <vtable> */
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    46
	void  (*initialize)    (LmSimpleIO     *simple_io,
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    47
				const char *username,
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    48
				const char *server,
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    49
				const char *password);
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    50
	void  (*begin)         (LmSimpleIO     *simple_io);
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    51
	void  (*cancel)        (LmSimpleIO     *simple_io);
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    52
};
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    53
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    54
GType   lm_simple_io_get_type  (void);
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    55
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    56
G_END_DECLS
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    57
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    58
#endif /* __LM_SIMPLE_IO_H__ */
6045fa14c44f Added LmSimpleIO.
Mikael Hallendal <micke@imendio.com>
parents:
diff changeset
    59