tr_completeness tr_cpGetStatus( const tr_completion * cp ) { if( cp->sizeNow == cp->tor->info.totalSize ) return TR_SEED; if( cp->sizeNow == tr_cpSizeWhenDone( cp ) ) return TR_PARTIAL_SEED; return TR_LEECH; }
tr_completeness tr_cpGetStatus( const tr_completion * cp ) { if( cp->sizeNow == cp->tor->info.totalSize ) return TR_CP_COMPLETE; if( cp->sizeNow == tr_cpSizeWhenDone( cp ) ) return TR_CP_DONE; return TR_CP_INCOMPLETE; }
tr_completeness tr_cpGetStatus( const tr_completion * cp ) { if( tr_cpHasAll( cp ) ) return TR_SEED; if( !tr_torrentHasMetadata( cp->tor ) ) return TR_LEECH; if( cp->sizeNow == tr_cpSizeWhenDone( cp ) ) return TR_PARTIAL_SEED; return TR_LEECH; }
uint64_t tr_cpLeftUntilDone(tr_completion const* cp) { uint64_t const sizeWhenDone = tr_cpSizeWhenDone(cp); TR_ASSERT(sizeWhenDone >= cp->sizeNow); return sizeWhenDone - cp->sizeNow; }
uint64_t tr_cpLeftUntilDone( const tr_completion * cp ) { const uint64_t sizeWhenDone = tr_cpSizeWhenDone( cp ); assert( sizeWhenDone >= cp->sizeNow ); return sizeWhenDone - cp->sizeNow; }
uint64_t tr_cpLeftUntilDone( const tr_completion * cp ) { return tr_cpSizeWhenDone( cp ) - cp->sizeNow; }
float tr_cpPercentDone( const tr_completion * cp ) { return tr_getRatio( cp->sizeNow, tr_cpSizeWhenDone( cp ) ); }