libpurple/plugins/perl/common/Account.xs

Thu, 30 Oct 2008 22:40:49 +0000

author
Richard Laager <rlaager@pidgin.im>
date
Thu, 30 Oct 2008 22:40:49 +0000
changeset 24569
5dbd0617a27d
parent 23987
3d41ccd1f8bf
child 25106
2d9389f32256
permissions
-rw-r--r--

Build everything with the *_DISABLE_DEPRECATED flags set. This allows us
to detect when we're still using deprecated functions internally (and by
extension, when we've deprecated something we shouldn't have). In the
course of developing this changeset, I fixed a few such cases.

Given that the plan is to switch from PURPLE_HIDE_STRUCTS to
PURPLE_DISABLE_DEPRECATED as each struct is fully dealt with, this will
also ensure we have no regressions on the struct hiding work.

Deprecated functions are still available to the respective .c file, to
avoid missing prototype errors. Also, Perl and DBus undef the
*_DISABLE_DEPRECATED defines as appropriate so that deprecated functions
will still be exported to Perl plugins and via DBus. (Otherwise, we'd
be breaking backwards compatibility.)

#include "module.h"

MODULE = Purple::Account  PACKAGE = Purple::Account  PREFIX = purple_account_
PROTOTYPES: ENABLE

Purple::Presence
purple_account_get_presence(account)
    Purple::Account account

Purple::Account
purple_account_new(class, username, protocol_id)
    const char * username
    const char * protocol_id
    C_ARGS:
    username, protocol_id

void
purple_account_destroy(account)
    Purple::Account account

void
purple_account_connect(account)
    Purple::Account account

void
purple_account_register(account)
    Purple::Account account

void
purple_account_disconnect(account)
    Purple::Account account

void
purple_account_request_change_password(account)
    Purple::Account account

void
purple_account_request_change_user_info(account)
    Purple::Account account

void
purple_account_set_username(account, username)
    Purple::Account account
    const char * username

void
purple_account_set_password(account, password)
    Purple::Account account
    const char * password

void
purple_account_set_alias(account, alias)
    Purple::Account account
    const char * alias

void
purple_account_set_user_info(account, user_info)
    Purple::Account account
    const char *user_info

void
purple_account_set_buddy_icon_path(account, icon)
    Purple::Account account
    const char *icon

void
purple_account_set_connection(account, gc)
    Purple::Account account
    Purple::Connection gc

void
purple_account_set_remember_password(account, value)
    Purple::Account account
    gboolean value

void
purple_account_set_check_mail(account, value)
    Purple::Account account
    gboolean value

void purple_account_set_enabled(account, ui, value)
    Purple::Account account
    const char *ui
    gboolean value

void
purple_account_set_proxy_info(account, info)
    Purple::Account account
    Purple::ProxyInfo info

void
purple_account_set_status(account, status_id, active)
    Purple::Account account
    const char *status_id
    gboolean active
CODE:
    purple_account_set_status(account, status_id, active, NULL);

void
purple_account_set_status_types(account, status_types)
    Purple::Account account
    SV * status_types
PREINIT:
    GList *t_GL;
    int i, t_len;
PPCODE:
    t_GL = NULL;
    t_len = av_len((AV *)SvRV(status_types));

    for (i = 0; i < t_len; i++)
        t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(status_types), i, 0)));

    purple_account_set_status_types(account, t_GL);

void
purple_account_clear_settings(account)
    Purple::Account account

void
purple_account_set_int(account, name, value)
    Purple::Account account
    const char *name
    int value

gboolean
purple_account_is_connected(account)
    Purple::Account account

const char *
purple_account_get_username(account)
    Purple::Account account

const char *
purple_account_get_password(account)
    Purple::Account account

const char *
purple_account_get_alias(account)
    Purple::Account account

const char *
purple_account_get_user_info(account)
    Purple::Account account

const char *
purple_account_get_buddy_icon_path(account)
    Purple::Account account

const char *
purple_account_get_protocol_id(account)
    Purple::Account account

const char *
purple_account_get_protocol_name(account)
    Purple::Account account

Purple::Connection
purple_account_get_connection(account)
    Purple::Account account

gboolean
purple_account_get_remember_password(account)
    Purple::Account account

gboolean
purple_account_get_check_mail(account)
    Purple::Account account

gboolean
purple_account_get_enabled(account, ui)
    Purple::Account account
    const char *ui

Purple::ProxyInfo
purple_account_get_proxy_info(account)
    Purple::Account account

Purple::Status
purple_account_get_active_status(account)
    Purple::Account account

void
purple_account_get_status_types(account)
    Purple::Account account
PREINIT:
    GList *l;
PPCODE:
    for (l = purple_account_get_status_types(account); l != NULL; l = l->next) {
        XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::StatusType")));
    }

Purple::Log
purple_account_get_log(account, create)
    Purple::Account account
    gboolean create

void
purple_account_destroy_log(account)
    Purple::Account account

void
purple_account_add_buddies(account, list)
    Purple::Account account
    SV * list
PREINIT:
    GList *t_GL;
    int i, t_len;
PPCODE:
    t_GL = NULL;
    t_len = av_len((AV *)SvRV(list));

    for (i = 0; i < t_len; i++)
        t_GL = g_list_append(t_GL, SvPVutf8_nolen(*av_fetch((AV *)SvRV(list), i, 0)));

    purple_account_add_buddies(account, t_GL);
    g_list_free(t_GL);

void
purple_account_add_buddy(account, buddy)
    Purple::Account account
    Purple::BuddyList::Buddy  buddy

void
purple_account_change_password(account, a, b)
    Purple::Account account
    const char *    a
    const char *    b

void
purple_account_remove_buddies(account, A, B)
    Purple::Account account
    SV * A
    SV * B
PREINIT:
    GList *t_GL1, *t_GL2;
    int i, t_len;
PPCODE:
    t_GL1 = NULL;
    t_len = av_len((AV *)SvRV(A));

    for (i = 0; i < t_len; i++)
        t_GL1 = g_list_append(t_GL1, SvPVutf8_nolen(*av_fetch((AV *)SvRV(A), i, 0)));

    t_GL2 = NULL;
    t_len = av_len((AV *)SvRV(B));

    for (i = 0; i < t_len; i++)
        t_GL2 = g_list_append(t_GL2, SvPVutf8_nolen(*av_fetch((AV *)SvRV(B), i, 0)));

    purple_account_remove_buddies(account, t_GL1, t_GL2);
    g_list_free(t_GL1);
    g_list_free(t_GL2);

void
purple_account_remove_buddy(account, buddy, group)
    Purple::Account account
    Purple::BuddyList::Buddy buddy
    Purple::BuddyList::Group group

void
purple_account_remove_group(account, group)
    Purple::Account account
    Purple::BuddyList::Group group

MODULE = Purple::Account  PACKAGE = Purple::Accounts  PREFIX = purple_accounts_
PROTOTYPES: ENABLE

void
purple_accounts_add(account)
    Purple::Account account

void
purple_accounts_remove(account)
    Purple::Account account

void
purple_accounts_delete(account)
    Purple::Account account

void
purple_accounts_reorder(account, new_index)
    Purple::Account account
    size_t new_index

void
purple_accounts_get_all()
PREINIT:
    GList *l;
PPCODE:
    for (l = purple_accounts_get_all(); l != NULL; l = l->next) {
        XPUSHs(sv_2mortal(purple_perl_bless_object(l->data, "Purple::Account")));
    }

void
purple_accounts_get_all_active()
PREINIT:
    GList *list, *iter;
PPCODE:
    list = purple_accounts_get_all_active();
    for (iter = list; iter != NULL; iter = iter->next) {
        XPUSHs(sv_2mortal(purple_perl_bless_object(iter->data, "Purple::Account")));
    }
    g_list_free(list);

void
purple_accounts_restore_current_statuses()

Purple::Account
purple_accounts_find(name, protocol)
    const char * name
    const char * protocol

Purple::Handle
purple_accounts_get_handle()

mercurial