Ignore:
Timestamp:
Jan 2, 2009, 5:46:22 PM (12 years ago)
Author:
charles
Message:

(trunk libT) inline parts of peer-io and bandwidth, too

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/libtransmission/peer-io.h

    r7576 r7579  
    2222**/
    2323
     24#include <assert.h>
     25
     26#include <event.h>
     27
     28#include "transmission.h"
     29#include "list.h" /* __tr_list */
     30#include "net.h" /* tr_address */
     31
    2432struct evbuffer;
    25 struct tr_address;
    2633struct tr_bandwidth;
    2734struct tr_crypto;
    28 typedef struct tr_peerIo tr_peerIo;
     35struct tr_peerIo;
     36
     37typedef enum
     38{
     39    READ_NOW,
     40    READ_LATER,
     41    READ_ERR
     42}
     43ReadState;
     44
     45typedef ReadState ( *tr_can_read_cb  )( struct tr_peerIo * io,
     46                                        void             * user_data,
     47                                        size_t           * setme_piece_byte_count );
     48
     49typedef void      ( *tr_did_write_cb )( struct tr_peerIo * io,
     50                                        size_t             bytesWritten,
     51                                        int                wasPieceData,
     52                                        void             * userData );
     53
     54typedef void      ( *tr_net_error_cb )( struct tr_peerIo * io,
     55                                        short              what,
     56                                        void             * userData );
     57
     58typedef struct tr_peerIo
     59{
     60    tr_bool            isEncrypted;
     61    tr_bool            isIncoming;
     62    tr_bool            peerIdIsSet;
     63    tr_bool            extendedProtocolSupported;
     64    tr_bool            fastExtensionSupported;
     65
     66    int                magicNumber;
     67
     68    uint8_t            encryptionMode;
     69    tr_port            port;
     70    int                socket;
     71
     72    uint8_t            peerId[SHA_DIGEST_LENGTH];
     73    time_t             timeCreated;
     74
     75    tr_session       * session;
     76
     77    tr_address         addr;
     78
     79    tr_can_read_cb     canRead;
     80    tr_did_write_cb    didWrite;
     81    tr_net_error_cb    gotError;
     82    void *             userData;
     83
     84    struct tr_bandwidth * bandwidth;
     85    struct tr_crypto    * crypto;
     86
     87    struct evbuffer  * inbuf;
     88    struct evbuffer  * outbuf;
     89    struct __tr_list   outbuf_datatypes; /* struct tr_datatype */
     90
     91    struct event       event_read;
     92    struct event       event_write;
     93}
     94tr_peerIo;
    2995
    3096/**
     
    84150tr_bool              tr_peerIoIsIncoming( const tr_peerIo * io );
    85151
    86 extern inline int    tr_peerIoGetAge( const tr_peerIo * io );
     152static inline int    tr_peerIoGetAge( const tr_peerIo * io )
     153{
     154    return time( NULL ) - io->timeCreated;
     155}
    87156
    88157
     
    99168***
    100169**/
    101 
    102 typedef enum
    103 {
    104     READ_NOW,
    105     READ_LATER,
    106     READ_ERR
    107 }
    108 ReadState;
    109 
    110 typedef ReadState ( *tr_can_read_cb  )( tr_peerIo        * io,
    111                                         void             * user_data,
    112                                         size_t           * setme_piece_byte_count );
    113 
    114 typedef void      ( *tr_did_write_cb )( tr_peerIo        * io,
    115                                         size_t             bytesWritten,
    116                                         int                wasPieceData,
    117                                         void             * userData );
    118 
    119 typedef void      ( *tr_net_error_cb )( tr_peerIo        * io,
    120                                         short              what,
    121                                         void             * userData );
    122170
    123171void    tr_peerIoSetIOFuncs      ( tr_peerIo        * io,
     
    164212                               size_t            byteCount );
    165213
    166 void      tr_peerIoWriteUint8( tr_peerIo *       io,
    167                                struct evbuffer * outbuf,
    168                                uint8_t           writeme );
    169 
    170 void      tr_peerIoWriteUint16( tr_peerIo *       io,
    171                                 struct evbuffer * outbuf,
    172                                 uint16_t          writeme );
    173 
    174 void      tr_peerIoWriteUint32( tr_peerIo *       io,
    175                                 struct evbuffer * outbuf,
    176                                 uint32_t          writeme );
     214static inline void  tr_peerIoWriteUint8( tr_peerIo *       io,
     215                                         struct evbuffer * outbuf,
     216                                         uint8_t           writeme )
     217{
     218    tr_peerIoWriteBytes( io, outbuf, &writeme, sizeof( uint8_t ) );
     219}
     220
     221static inline void tr_peerIoWriteUint16( tr_peerIo *       io,
     222                                         struct evbuffer * outbuf,
     223                                         uint16_t          writeme )
     224{
     225    const uint16_t tmp = htons( writeme );
     226    tr_peerIoWriteBytes( io, outbuf, &tmp, sizeof( uint16_t ) );
     227}
     228
     229static inline void tr_peerIoWriteUint32( tr_peerIo *       io,
     230                                         struct evbuffer * outbuf,
     231                                         uint32_t          writeme )
     232{
     233    const uint32_t tmp = htonl( writeme );
     234    tr_peerIoWriteBytes( io, outbuf, &tmp, sizeof( uint32_t ) );
     235}
    177236
    178237void      tr_peerIoReadBytes( tr_peerIo *       io,
     
    181240                              size_t            byteCount );
    182241
    183 extern inline void
    184           tr_peerIoReadUint8( tr_peerIo *       io,
    185                               struct evbuffer * inbuf,
    186                               uint8_t *         setme );
    187 
    188 extern inline void
    189           tr_peerIoReadUint16( tr_peerIo *       io,
    190                                struct evbuffer * inbuf,
    191                                uint16_t *        setme );
    192 
    193 extern inline void
    194           tr_peerIoReadUint32( tr_peerIo *       io,
    195                                struct evbuffer * inbuf,
    196                                uint32_t *        setme );
     242static inline void tr_peerIoReadUint8( tr_peerIo *       io,
     243                                       struct evbuffer * inbuf,
     244                                       uint8_t *         setme )
     245{
     246    tr_peerIoReadBytes( io, inbuf, setme, sizeof( uint8_t ) );
     247}
     248
     249static inline void tr_peerIoReadUint16( tr_peerIo *       io,
     250                                        struct evbuffer * inbuf,
     251                                        uint16_t *        setme )
     252{
     253    uint16_t tmp;
     254    tr_peerIoReadBytes( io, inbuf, &tmp, sizeof( uint16_t ) );
     255    *setme = ntohs( tmp );
     256}
     257
     258static inline void tr_peerIoReadUint32( tr_peerIo *       io,
     259                                        struct evbuffer * inbuf,
     260                                        uint32_t *        setme )
     261{
     262    uint32_t tmp;
     263    tr_peerIoReadBytes( io, inbuf, &tmp, sizeof( uint32_t ) );
     264    *setme = ntohl( tmp );
     265}
    197266
    198267void      tr_peerIoDrain( tr_peerIo *       io,
     
    214283                                  int                   isPieceData );
    215284
    216 /**
    217 ***
    218 **/
    219 
    220 extern inline tr_bool   tr_peerIoHasBandwidthLeft( const tr_peerIo  * io,
    221                                      tr_direction       direction );
     285tr_bool   tr_peerIoHasBandwidthLeft( const tr_peerIo  * io,
     286                                     tr_direction       dir );
     287
     288/**
     289***
     290**/
    222291
    223292void      tr_peerIoSetEnabled( tr_peerIo    * io,
     
    229298                          size_t          byteLimit );
    230299
    231 extern inline struct evbuffer * tr_peerIoGetReadBuffer( tr_peerIo * io );
    232 
    233 
     300/**
     301***
     302**/
     303
     304static inline struct evbuffer * tr_peerIoGetReadBuffer( tr_peerIo * io )
     305{
     306    assert( tr_isPeerIo( io ) );
     307
     308    return io->inbuf;
     309}
    234310
    235311
Note: See TracChangeset for help on using the changeset viewer.