/usr/include/libyahoo2/yahoo2_callbacks.h is in libyahoo2-dev 1.0.1-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 | /*
* libyahoo2: yahoo2_callbacks.h
*
* Copyright (C) 2002-2004, Philip S Tellis <philip.tellis AT gmx.net>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
/*
* The functions in this file *must* be defined in your client program
* If you want to use a callback structure instead of direct functions,
* then you must define USE_STRUCT_CALLBACKS in all files that #include
* this one.
*
* Register the callback structure by calling yahoo_register_callbacks -
* declared in this file and defined in libyahoo2.c
*/
#ifndef YAHOO2_CALLBACKS_H
#define YAHOO2_CALLBACKS_H
#ifdef __cplusplus
extern "C" {
#endif
#include "yahoo2_types.h"
/*
* yahoo2_callbacks.h
*
* Callback interface for libyahoo2
*/
typedef enum {
YAHOO_INPUT_READ = 1 << 0,
YAHOO_INPUT_WRITE = 1 << 1,
YAHOO_INPUT_EXCEPTION = 1 << 2
} yahoo_input_condition;
/*
* A callback function called when an asynchronous connect completes.
*
* Params:
* fd - The file descriptor object that has been connected, or NULL on
* error
* error - The value of errno set by the call to connect or 0 if no error
* Set both fd and error to 0 if the connect was cancelled by the
* user
* callback_data - the callback_data passed to the ext_yahoo_connect_async
* function
*/
typedef void (*yahoo_connect_callback) (void *fd, int error,
void *callback_data);
/*
* The following functions need to be implemented in the client
* interface. They will be called by the library when each
* event occurs.
*/
/*
* should we use a callback structure or directly call functions
* if you want the structure, you *must* define USE_STRUCT_CALLBACKS
* both when you compile the library, and when you compile your code
* that uses the library
*/
#define YAHOO_CALLBACK_TYPE(x) (*x)
struct yahoo_callbacks {
/*
* Name: ext_yahoo_login_response
* Called when the login process is complete
* Params:
* id - the id that identifies the server connection
* succ - enum yahoo_login_status
* url - url to reactivate account if locked
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_login_response) (int id, int succ,
const char *url);
/*
* Name: ext_yahoo_got_buddies
* Called when the contact list is got from the server
* Params:
* id - the id that identifies the server connection
* buds - the buddy list
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_buddies) (int id, YList *buds);
/*
* Name: ext_yahoo_got_ignore
* Called when the ignore list is got from the server
* Params:
* id - the id that identifies the server connection
* igns - the ignore list
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_ignore) (int id, YList *igns);
/*
* Name: ext_yahoo_got_identities
* Called when the contact list is got from the server
* Params:
* id - the id that identifies the server connection
* ids - the identity list
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_identities) (int id, YList *ids);
/*
* Name: ext_yahoo_got_cookies
* Called when the cookie list is got from the server
* Params:
* id - the id that identifies the server connection
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_cookies) (int id);
/*
* Name: ext_yahoo_got_ping
* Called when the ping packet is received from the server
* Params:
* id - the id that identifies the server connection
* errormsg - optional error message
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_ping) (int id,
const char *errormsg);
/*
* Name: ext_yahoo_status_changed
* Called when remote user's status changes.
* Params:
* id - the id that identifies the server connection
* who - the handle of the remote user
* stat - status code (enum yahoo_status)
* msg - the message if stat == YAHOO_STATUS_CUSTOM
* away - whether the contact is away or not (YAHOO_STATUS_CUSTOM)
* idle - this is the number of seconds he is idle [if he is idle]
* mobile - this is set for mobile users/buddies
* TODO: add support for pager, chat, and game states
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_status_changed) (int id,
const char *who, int stat, const char *msg, int away, int idle,
int mobile);
/*
* Name: ext_yahoo_got_buzz
* Called when remote user sends you a buzz.
* Params:
* id - the id that identifies the server connection
* me - the identity the message was sent to
* who - the handle of the remote user
* tm - timestamp of message if offline
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_buzz) (int id, const char *me,
const char *who, long tm);
/*
* Name: ext_yahoo_got_im
* Called when remote user sends you a message.
* Params:
* id - the id that identifies the server connection
* me - the identity the message was sent to
* who - the handle of the remote user
* msg - the message - NULL if stat == 2
* tm - timestamp of message if offline
* stat - message status - 0
* 1
* 2 == error sending message
* 5
* utf8 - whether the message is encoded as utf8 or not
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_im) (int id, const char *me,
const char *who, const char *msg, long tm, int stat, int utf8);
/*
* Name: ext_yahoo_got_conf_invite
* Called when remote user sends you a conference invitation.
* Params:
* id - the id that identifies the server connection
* me - the identity the invitation was sent to
* who - the user inviting you
* room - the room to join
* msg - the message
* members - the initial members of the conference (null terminated list)
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_conf_invite) (int id,
const char *me, const char *who, const char *room,
const char *msg, YList *members);
/*
* Name: ext_yahoo_conf_userdecline
* Called when someone declines to join the conference.
* Params:
* id - the id that identifies the server connection
* me - the identity in the conference
* who - the user who has declined
* room - the room
* msg - the declining message
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_conf_userdecline) (int id,
const char *me, const char *who, const char *room,
const char *msg);
/*
* Name: ext_yahoo_conf_userjoin
* Called when someone joins the conference.
* Params:
* id - the id that identifies the server connection
* me - the identity in the conference
* who - the user who has joined
* room - the room joined
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_conf_userjoin) (int id,
const char *me, const char *who, const char *room);
/*
* Name: ext_yahoo_conf_userleave
* Called when someone leaves the conference.
* Params:
* id - the id that identifies the server connection
* me - the identity in the conference
* who - the user who has left
* room - the room left
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_conf_userleave) (int id,
const char *me, const char *who, const char *room);
/*
* Name: ext_yahoo_chat_cat_xml
* Called when ?
* Params:
* id - the id that identifies the server connection
* xml - ?
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_cat_xml) (int id,
const char *xml);
/*
* Name: ext_yahoo_chat_join
* Called when joining the chatroom.
* Params:
* id - the id that identifies the server connection
* me - the identity in the chatroom
* room - the room joined, used in all other chat calls, freed by
* library after call
* topic - the topic of the room, freed by library after call
* members - the initial members of the chatroom (null terminated YList
* of yahoo_chat_member's) Must be freed by the client
* fd - the object where the connection is coming from (for tracking)
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_join) (int id, const char *me,
const char *room, const char *topic, YList *members, void *fd);
/*
* Name: ext_yahoo_chat_userjoin
* Called when someone joins the chatroom.
* Params:
* id - the id that identifies the server connection
* me - the identity in the chatroom
* room - the room joined
* who - the user who has joined, Must be freed by the client
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_userjoin) (int id,
const char *me, const char *room,
struct yahoo_chat_member *who);
/*
* Name: ext_yahoo_chat_userleave
* Called when someone leaves the chatroom.
* Params:
* id - the id that identifies the server connection
* me - the identity in the chatroom
* room - the room left
* who - the user who has left (Just the User ID)
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_userleave) (int id,
const char *me, const char *room, const char *who);
/*
* Name: ext_yahoo_chat_message
* Called when someone messages in the chatroom.
* Params:
* id - the id that identifies the server connection
* me - the identity in the chatroom
* room - the room
* who - the user who messaged (Just the user id)
* msg - the message
* msgtype - 1 = Normal message
* 2 = /me type message
* utf8 - whether the message is utf8 encoded or not
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_message) (int id,
const char *me, const char *who, const char *room,
const char *msg, int msgtype, int utf8);
/*
*
* Name: ext_yahoo_chat_yahoologout
* called when yahoo disconnects your chat session
* Note this is called whenver a disconnect happens, client or server
* requested. Care should be taken to make sure you know the origin
* of the disconnect request before doing anything here (auto-join's etc)
* Params:
* id - the id that identifies this connection
* me - the identity in the chatroom
* Returns:
* nothing.
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_yahoologout) (int id,
const char *me);
/*
*
* Name: ext_yahoo_chat_yahooerror
* called when yahoo sends back an error to you
* Note this is called whenver chat message is sent into a room
* in error (fd not connected, room doesn't exists etc)
* Care should be taken to make sure you know the origin
* of the error before doing anything about it.
* Params:
* id - the id that identifies this connection
* me - the identity in the chatroom
* Returns:
* nothing.
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_chat_yahooerror) (int id,
const char *me);
/*
* Name: ext_yahoo_conf_message
* Called when someone messages in the conference.
* Params:
* id - the id that identifies the server connection
* me - the identity the conf message was sent to
* who - the user who messaged
* room - the room
* msg - the message
* utf8 - whether the message is utf8 encoded or not
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_conf_message) (int id,
const char *me, const char *who, const char *room,
const char *msg, int utf8);
/*
* Name: ext_yahoo_got_file
* Called when someone sends you a file
* Params:
* id - the id that identifies the server connection
* me - the identity the file was sent to
* who - the user who sent the file
* msg - the message
* fname- the file name if direct transfer
* fsize- the file size if direct transfer
* trid - transfer id. Unique for this transfer
*
* NOTE: Subsequent callbacks for file transfer do not send all of this
* information again since it is wasteful. Implementations are expected to
* save this information and supply it as callback data when the file or
* confirmation is sent
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_file) (int id, const char *me,
const char *who, const char *msg, const char *fname,
unsigned long fesize, char *trid);
/*
* Name: ext_yahoo_got_ft_data
* Called multiple times when parts of the file are received
* Params:
* id - the id that identifies the server connection
* in - The data
* len - Length of the data
* data - callback data
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_ft_data) (int id,
const unsigned char *in, int len, void *data);
/*
* Name: ext_yahoo_file_transfer_done
* File transfer is done
* Params:
* id - the id that identifies the server connection
* result - To notify if it finished successfully or with a failure
* data - callback data
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_file_transfer_done) (int id,
int result, void *data);
/*
* Name: ext_yahoo_contact_added
* Called when a contact is added to your list
* Params:
* id - the id that identifies the server connection
* myid - the identity he was added to
* who - who was added
* msg - any message sent
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_contact_added) (int id,
const char *myid, const char *who, const char *msg);
/*
* Name: ext_yahoo_rejected
* Called when a contact rejects your add
* Params:
* id - the id that identifies the server connection
* who - who rejected you
* msg - any message sent
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_rejected) (int id, const char *who,
const char *msg);
/*
* Name: ext_yahoo_typing_notify
* Called when remote user starts or stops typing.
* Params:
* id - the id that identifies the server connection
* me - the handle of the identity the notification is sent to
* who - the handle of the remote user
* stat - 1 if typing, 0 if stopped typing
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_typing_notify) (int id,
const char *me, const char *who, int stat);
/*
* Name: ext_yahoo_game_notify
* Called when remote user starts or stops a game.
* Params:
* id - the id that identifies the server connection
* me - the handle of the identity the notification is sent to
* who - the handle of the remote user
* stat - 1 if game, 0 if stopped gaming
* msg - game description and/or other text
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_game_notify) (int id, const char *me,
const char *who, int stat, const char *msg);
/*
* Name: ext_yahoo_mail_notify
* Called when you receive mail, or with number of messages
* Params:
* id - the id that identifies the server connection
* from - who the mail is from - NULL if only mail count
* subj - the subject of the mail - NULL if only mail count
* cnt - mail count - 0 if new mail notification
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_mail_notify) (int id,
const char *from, const char *subj, int cnt);
/*
* Name: ext_yahoo_system_message
* System message
* Params:
* id - the id that identifies the server connection
* me - the handle of the identity the notification is sent to
* who - the source of the system message (there are different types)
* msg - the message
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_system_message) (int id,
const char *me, const char *who, const char *msg);
/*
* Name: ext_yahoo_got_buddyicon
* Buddy icon received
* Params:
* id - the id that identifies the server connection
* me - the handle of the identity the notification is sent to
* who - the person the buddy icon is for
* url - the url to use to load the icon
* checksum - the checksum of the icon content
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_buddyicon) (int id,
const char *me, const char *who, const char *url, int checksum);
/*
* Name: ext_yahoo_got_buddyicon_checksum
* Buddy icon checksum received
* Params:
* id - the id that identifies the server connection
* me - the handle of the identity the notification is sent to
* who - the yahoo id of the buddy icon checksum is for
* checksum - the checksum of the icon content
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_buddyicon_checksum) (int id,
const char *me, const char *who, int checksum);
/*
* Name: ext_yahoo_got_buddyicon_request
* Buddy icon request received
* Params:
* id - the id that identifies the server connection
* me - the handle of the identity the notification is sent to
* who - the yahoo id of the buddy that requested the buddy icon
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_buddyicon_request) (int id,
const char *me, const char *who);
/*
* Name: ext_yahoo_got_buddyicon_request
* Buddy icon request received
* Params:
* id - the id that identifies the server connection
* url - remote url, the uploaded buddy icon can be fetched from
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_buddyicon_uploaded) (int id,
const char *url);
/*
* Name: ext_yahoo_got_webcam_image
* Called when you get a webcam update
* An update can either be receiving an image, a part of an image or
* just an update with a timestamp
* Params:
* id - the id that identifies the server connection
* who - the user who's webcam we're viewing
* image - image data
* image_size - length of the image in bytes
* real_size - actual length of image data
* timestamp - milliseconds since the webcam started
*
* If the real_size is smaller then the image_size then only part of
* the image has been read. This function will keep being called till
* the total amount of bytes in image_size has been read. The image
* received is in JPEG-2000 Code Stream Syntax (ISO/IEC 15444-1).
* The size of the image will be either 160x120 or 320x240.
* Each webcam image contains a timestamp. This timestamp should be
* used to keep the image in sync since some images can take longer
* to transport then others. When image_size is 0 we can still receive
* a timestamp to stay in sync
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_webcam_image) (int id,
const char *who, const unsigned char *image,
unsigned int image_size, unsigned int real_size,
unsigned int timestamp);
/*
* Name: ext_yahoo_webcam_invite
* Called when you get a webcam invitation
* Params:
* id - the id that identifies the server connection
* me - identity the invitation is to
* from - who the invitation is from
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_webcam_invite) (int id,
const char *me, const char *from);
/*
* Name: ext_yahoo_webcam_invite_reply
* Called when you get a response to a webcam invitation
* Params:
* id - the id that identifies the server connection
* me - identity the invitation response is to
* from - who the invitation response is from
* accept - 0 (decline), 1 (accept)
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_webcam_invite_reply) (int id,
const char *me, const char *from, int accept);
/*
* Name: ext_yahoo_webcam_closed
* Called when the webcam connection closed
* Params:
* id - the id that identifies the server connection
* who - the user who we where connected to
* reason - reason why the connection closed
* 1 = user stopped broadcasting
* 2 = user cancelled viewing permission
* 3 = user declines permission
* 4 = user does not have webcam online
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_webcam_closed) (int id,
const char *who, int reason);
/*
* Name: ext_yahoo_got_search_result
* Called when the search result received from server
* Params:
* id - the id that identifies the server connection
* found - total number of results returned in the current result set
* start - offset from where the current result set starts
* total - total number of results available (start + found <= total)
* contacts - the list of results as a YList of yahoo_found_contact
* these will be freed after this function returns, so
* if you need to use the information, make a copy
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_search_result) (int id,
int found, int start, int total, YList *contacts);
/*
* Name: ext_yahoo_error
* Called on error.
* Params:
* id - the id that identifies the server connection
* err - the error message
* fatal- whether this error is fatal to the connection or not
* num - Which error is this
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_error) (int id, const char *err,
int fatal, int num);
/*
* Name: ext_yahoo_webcam_viewer
* Called when a viewer disconnects/connects/requests to connect
* Params:
* id - the id that identifies the server connection
* who - the viewer
* connect - 0=disconnect 1=connect 2=request
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_webcam_viewer) (int id,
const char *who, int connect);
/*
* Name: ext_yahoo_webcam_data_request
* Called when you get a request for webcam images
* Params:
* id - the id that identifies the server connection
* send - whether to send images or not
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_webcam_data_request) (int id,
int send);
/*
* Name: ext_yahoo_log
* Called to log a message.
* Params:
* fmt - the printf formatted message
* Returns:
* 0
*/
int YAHOO_CALLBACK_TYPE(ext_yahoo_log) (const char *fmt, ...);
/*
* Name: ext_yahoo_add_handler
* Add a listener for the fd. Must call yahoo_read_ready
* when a YAHOO_INPUT_READ fd is ready and yahoo_write_ready
* when a YAHOO_INPUT_WRITE fd is ready.
* Params:
* id - the id that identifies the server connection
* fd - the fd object on which to listen
* cond - the condition on which to call the callback
* data - callback data to pass to yahoo_*_ready
*
* Returns: a tag to be used when removing the handler
*/
int YAHOO_CALLBACK_TYPE(ext_yahoo_add_handler) (int id, void *fd,
yahoo_input_condition cond, void *data);
/*
* Name: ext_yahoo_remove_handler
* Remove the listener for the fd.
* Params:
* id - the id that identifies the connection
* tag - the handler tag to remove
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_remove_handler) (int id, int tag);
/*
* Name: ext_yahoo_connect
* Connect to a host:port
* Params:
* host - the host to connect to
* port - the port to connect on
* Returns:
* a unix file descriptor to the socket
*/
int YAHOO_CALLBACK_TYPE(ext_yahoo_connect) (const char *host, int port);
/*
* Name: ext_yahoo_connect_async
* Connect to a host:port asynchronously. This function should return
* immediately returing a tag used to identify the connection handler,
* or a pre-connect error (eg: host name lookup failure).
* Once the connect completes (successfully or unsuccessfully), callback
* should be called (see the signature for yahoo_connect_callback).
* The callback may safely be called before this function returns, but
* it should not be called twice.
* Params:
* id - the id that identifies this connection
* host - the host to connect to
* port - the port to connect on
* callback - function to call when connect completes
* callback_data - data to pass to the callback function
* use_ssl - Whether we need an SSL connection
* Returns:
* a tag signifying the connection attempt
*/
int YAHOO_CALLBACK_TYPE(ext_yahoo_connect_async) (int id,
const char *host, int port, yahoo_connect_callback callback,
void *callback_data, int use_ssl);
/*
* Name: ext_yahoo_get_ip_addr
* get IP Address for a domain name
* Params:
* domain - Domain name
* Returns:
* Newly allocated string containing the IP Address in IPv4 notation
*/
char *YAHOO_CALLBACK_TYPE(ext_yahoo_get_ip_addr) (const char *domain);
/*
* Name: ext_yahoo_write
* Write data from the buffer into the socket for the specified connection
* Params:
* fd - the file descriptor object that identifies this connection
* buf - Buffer to write the data from
* len - Length of the data
* Returns:
* Number of bytes written or -1 for error
*/
int YAHOO_CALLBACK_TYPE(ext_yahoo_write) (void *fd, char *buf, int len);
/*
* Name: ext_yahoo_read
* Read data into a buffer from socket for the specified connection
* Params:
* fd - the file descriptor object that identifies this connection
* buf - Buffer to read the data into
* len - Max length to read
* Returns:
* Number of bytes read or -1 for error
*/
int YAHOO_CALLBACK_TYPE(ext_yahoo_read) (void *fd, char *buf, int len);
/*
* Name: ext_yahoo_close
* Close the file descriptor object and free its resources. Libyahoo2 will not
* use this object again.
* Params:
* fd - the file descriptor object that identifies this connection
* Returns:
* Nothing
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_close) (void *fd);
/*
* Name: ext_yahoo_got_buddy_change_group
* Acknowledgement of buddy changing group
* Params:
* id: client id
* me: The user
* who: Buddy name
* old_group: Old group name
* new_group: New group name
* Returns:
* Nothing
*/
void YAHOO_CALLBACK_TYPE(ext_yahoo_got_buddy_change_group) (int id,
const char *me, const char *who, const char *old_group,
const char *new_group);
};
/*
* if using a callback structure, call yahoo_register_callbacks
* before doing anything else
*/
void yahoo_register_callbacks(struct yahoo_callbacks *tyc);
#undef YAHOO_CALLBACK_TYPE
#ifdef __cplusplus
}
#endif
#endif
|