disco.h
author Myhailo Danylenko <isbear@ukrpost.net>
Mon, 20 Aug 2012 22:51:51 +0300
changeset 58 694833145b98
parent 32 14534d171215
permissions -rw-r--r--
Add a note about header
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
32
14534d171215 Update copyright data and API version
Mikael Berthe <mikael@lilotux.net>
parents: 25
diff changeset
     2
/* Copyright 2009,2010 Myhailo Danylenko
16
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
25
05469ec9c2e0 Add disco_cancel_request
Myhailo Danylenko <isbear@ukrpost.net>
parents: 16
diff changeset
    44
gpointer disco_info_request   (const gchar *jid, const gchar *node, disco_info_handler_t  handler, gpointer userdata, GDestroyNotify notify);
05469ec9c2e0 Add disco_cancel_request
Myhailo Danylenko <isbear@ukrpost.net>
parents: 16
diff changeset
    45
gpointer disco_items_request  (const gchar *jid, const gchar *node, disco_items_handler_t handler, gpointer userdata, GDestroyNotify notify);
05469ec9c2e0 Add disco_cancel_request
Myhailo Danylenko <isbear@ukrpost.net>
parents: 16
diff changeset
    46
void     disco_cancel_request (gpointer id);
16
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    47
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    48
#endif
e903da874e63 Provide public interface to disco requests
Myhailo Danylenko <isbear@ukrpost.net>
parents:
diff changeset
    49