annotate plugins/perl/common/Gaim.pm @ 12686:5f65a0cca87c

[gaim-migrate @ 15029] Clean up the STUN / SRV API a bit. I don't use this stuff, so there was no testing beyond compiling it. I think it's right, though I couldn't find where the STUN discovery status was ever set to 1 (discovering). Anyone know something about that? committer: Tailor Script <tailor@pidgin.im>
author Richard Laager <rlaager@wiktel.com>
date Tue, 03 Jan 2006 00:23:24 +0000
parents 61d516a3d4a8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
1 package Gaim;
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
2
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
3 use 5.008;
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
4 use strict;
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
5 use warnings;
6588
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
6 use Carp;
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
7
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
8 require Exporter;
6588
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
9 use AutoLoader;
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
10
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
11 our @ISA = qw(Exporter);
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
12
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
13 # Items to export into callers namespace by default. Note: do not export
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
14 # names by default without a very good reason. Use EXPORT_OK instead.
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
15 # Do not simply export all your public functions/methods/constants.
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
16
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
17 # This allows declaration use Gaim ':all';
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
18 # If you do not need this, moving things directly into @EXPORT or @EXPORT_OK
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
19 # will save memory.
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
20 our %EXPORT_TAGS = ( 'all' => [ qw(
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
21
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
22 ) ] );
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
23
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
24 our @EXPORT_OK = ( @{ $EXPORT_TAGS{'all'} } );
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
25
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
26 our @EXPORT = qw(
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
27
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
28 );
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
29
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
30 our $VERSION = '0.01';
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
31
6588
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
32 sub AUTOLOAD {
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
33 # This AUTOLOAD is used to 'autoload' constants from the constant()
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
34 # XS function.
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
35
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
36 my $constname;
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
37 our $AUTOLOAD;
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
38 ($constname = $AUTOLOAD) =~ s/.*:://;
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
39 croak "&Gaim::constant not defined" if $constname eq 'constant';
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
40 my ($error, $val) = constant($constname);
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
41 if ($error) { croak $error; }
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
42 {
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
43 no strict 'refs';
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
44
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
45 *$AUTOLOAD = sub { $val };
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
46 }
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
47
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
48 goto &$AUTOLOAD;
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
49 }
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
50
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
51 require XSLoader;
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
52 XSLoader::load('Gaim', $VERSION);
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
53
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
54 # Preloaded methods go here.
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
55
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
56 1;
6619
61d516a3d4a8 [gaim-migrate @ 7143]
Christian Hammond <chipx86@chipx86.com>
parents: 6601
diff changeset
57 __END__
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
58
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
59 =head1 NAME
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
60
6594
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
61 Gaim - Perl extension the Gaim instant messenger.
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
62
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
63 =head1 SYNOPSIS
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
64
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
65 use Gaim;
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
66
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
67 =head1 ABSTRACT
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
68
6598
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
69 This module provides the interface for using perl scripts as plugins
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
70 in Gaim.
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
71
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
72 =head1 DESCRIPTION
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
73
6594
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
74 This module provides the interface for using perl scripts as plugins
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
75 in Gaim. With this, developers can write perl scripts that can be
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
76 loaded in Gaim as plugins. The scripts can interact with IMs, chats,
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
77 accounts, the buddy list, gaim signals, and more.
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
78
6594
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
79 The API for the perl interface is very similar to that of the Gaim C
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
80 API, which can be viewed at http://gaim.sourceforge.net/api/ or in
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
81 the header files in the Gaim source tree.
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
82
6598
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
83 =head1 FUNCTIONS
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
84
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
85 =over
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
86
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
87 =item @accounts = Gaim::accounts
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
88
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
89 Returns a list of all accounts, online or offline.
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
90
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
91 =item @chats = Gaim::chats
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
92
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
93 Returns a list of all chats currently open.
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
94
6601
1521c3b63d7f [gaim-migrate @ 7125]
Christian Hammond <chipx86@chipx86.com>
parents: 6598
diff changeset
95 =item @connections = Gaim::connections
6598
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
96
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
97 Returns a list of all active connections.
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
98
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
99 =item @conversations = Gaim::conversations
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
100
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
101 Returns a list of all conversations, both IM and chat, currently open.
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
102
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
103 =item @conv_windows = Gaim::conv_windows
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
104
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
105 Returns a list of all conversation windows currently open.
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
106
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
107 =item @ims = Gaim::ims
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
108
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
109 Returns a list of all instant messages currently open.
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
110
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
111 =back
2f6850c7d980 [gaim-migrate @ 7122]
Christian Hammond <chipx86@chipx86.com>
parents: 6594
diff changeset
112
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
113 =head1 SEE ALSO
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
114
6594
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
115 Gaim C API documentation - http//gaim.sourceforge.net/api/
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
116
6594
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
117 Gaim website - http://gaim.sourceforge.net/
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
118
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
119 =head1 AUTHOR
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
120
6588
7f5f57dd5cac [gaim-migrate @ 7110]
Christian Hammond <chipx86@chipx86.com>
parents: 6508
diff changeset
121 Christian Hammond, E<lt>chipx86@gnupdate.orgE<gt>
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
122
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
123 =head1 COPYRIGHT AND LICENSE
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
124
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
125 Copyright 2003 by Christian Hammond
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
126
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
127 This library is free software; you can redistribute it and/or modify
6594
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
128 it under the terms of the General Public License (GPL). For
47744949513f [gaim-migrate @ 7118]
Christian Hammond <chipx86@chipx86.com>
parents: 6588
diff changeset
129 more information, see http://www.fsf.org/licenses/gpl.txt
6508
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
130
cbd24b37350d [gaim-migrate @ 7025]
Christian Hammond <chipx86@chipx86.com>
parents:
diff changeset
131 =cut