disco.h
author Myhailo Danylenko <isbear@ukrpost.net>
Sat, 02 Jan 2010 12:42:27 +0200
changeset 16 e903da874e63
child 25 05469ec9c2e0
permissions -rw-r--r--
Provide public interface to disco requests
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
16
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     1
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     2
/* Copyright 2009 Myhailo Danylenko
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     3
 *
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     4
 * Service discovery requests
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     5
 *
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     6
 * This file is part of mcabber-disco
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     7
 *
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     8
 * mcabber-disco is free software: you can redistribute it and/or modify
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
     9
 * it under the terms of the GNU General Public License as published by
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    10
 * the Free Software Foundation, either version 2 of the License, or
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    11
 * (at your option) any later version.
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    12
 *
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    13
 * This program is distributed in the hope that it will be useful,
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    14
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    16
 * GNU General Public License for more details.
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    17
 *
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    18
 * You should have received a copy of the GNU General Public License
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    19
 * along with this program.  If not, see <http://www.gnu.org/licenses/>. */
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    20
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    21
#ifndef MCABBER_DISCO_H
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    22
#define MCABBER_DISCO_H
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    23
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    24
#include <glib.h>
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    25
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    26
typedef struct {
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    27
	const gchar *category;
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    28
	const gchar *type;
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    29
	const gchar *reserved; // FIXME: look up in standard, what is fourth parameter
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    30
	const gchar *name;
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    31
} disco_identity_t;
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    32
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    33
typedef const gchar *disco_feature_t;
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    34
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    35
typedef struct {
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    36
	const gchar *jid;
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    37
	const gchar *name;
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    38
	const gchar *node;
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    39
} disco_item_t;
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    40
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    41
typedef void (*disco_info_handler_t) (GSList *identities, GSList *features, gpointer userdata);
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    42
typedef void (*disco_items_handler_t) (GSList *items, gpointer userdata);
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    43
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    44
void disco_info_request  (const gchar *jid, const gchar *node, disco_info_handler_t  handler, gpointer userdata, GDestroyNotify notify);
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    45
void disco_items_request (const gchar *jid, const gchar *node, disco_items_handler_t handler, gpointer userdata, GDestroyNotify notify);
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    46
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    47
#endif
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    48