… | |
… | |
2638 | PPCODE: |
2638 | PPCODE: |
2639 | EXTEND (SP, clients.size ()); |
2639 | EXTEND (SP, clients.size ()); |
2640 | for (sockvec::iterator i = clients.begin (); i != clients.end (); ++i) |
2640 | for (sockvec::iterator i = clients.begin (); i != clients.end (); ++i) |
2641 | PUSHs (sv_2mortal (to_sv (*i))); |
2641 | PUSHs (sv_2mortal (to_sv (*i))); |
2642 | |
2642 | |
|
|
2643 | STRLEN |
|
|
2644 | client::inbuf_append (SV *data) |
|
|
2645 | CODE: |
|
|
2646 | { |
|
|
2647 | STRLEN len; |
|
|
2648 | char *ptr = SvPVbyte (data, len); |
|
|
2649 | |
|
|
2650 | min_it (len, sizeof (THIS->inbuf) - THIS->inbuf_len); |
|
|
2651 | memcpy (THIS->inbuf + THIS->inbuf_len, ptr, len); |
|
|
2652 | THIS->inbuf_len += len; |
|
|
2653 | |
|
|
2654 | THIS->inbuf_handle (); |
|
|
2655 | |
|
|
2656 | RETVAL = len; |
|
|
2657 | } |
|
|
2658 | OUTPUT: RETVAL |
|
|
2659 | |
2643 | void |
2660 | void |
2644 | client::send_packet (SV *packet) |
2661 | client::send_packet (SV *packet) |
2645 | CODE: |
2662 | CODE: |
2646 | { |
2663 | { |
2647 | STRLEN len; |
2664 | STRLEN len; |
… | |
… | |
2787 | if (!d) XSRETURN_UNDEF; |
2804 | if (!d) XSRETURN_UNDEF; |
2788 | RETVAL = newSVpvn ((char *)d->chksum, d->chksum_len); |
2805 | RETVAL = newSVpvn ((char *)d->chksum, d->chksum_len); |
2789 | OUTPUT: |
2806 | OUTPUT: |
2790 | RETVAL |
2807 | RETVAL |
2791 | |
2808 | |
|
|
2809 | int get_type (faceidx idx) |
|
|
2810 | CODE: |
|
|
2811 | faceinfo *f = face_info (idx); |
|
|
2812 | if (!f) XSRETURN_UNDEF; |
|
|
2813 | RETVAL = f->type; |
|
|
2814 | OUTPUT: |
|
|
2815 | RETVAL |
|
|
2816 | |
2792 | SV *get_data (faceidx idx, int faceset = 0) |
2817 | SV *get_data (faceidx idx, int faceset = 0) |
2793 | CODE: |
2818 | CODE: |
2794 | facedata *d = face_data (idx, faceset); |
2819 | facedata *d = face_data (idx, faceset); |
2795 | if (!d) XSRETURN_UNDEF; |
2820 | if (!d) XSRETURN_UNDEF; |
2796 | RETVAL = newSVpvn (d->data, d->data.size ()); |
2821 | RETVAL = newSVpvn (d->data, d->data.size ()); |