InorderPieceSelector.h 522 B

1234567891011121314151617181920212223242526
  1. #ifndef D_IN_ORDER_PIECE_SELECTOR_H
  2. #define D_IN_ORDER_PIECE_SELECTOR_H
  3. #include "PieceSelector.h"
  4. #include "bitfield.h"
  5. namespace aria2 {
  6. class InorderPieceSelector:public PieceSelector {
  7. public:
  8. virtual bool select
  9. (size_t& index, const unsigned char* bitfield, size_t nbits) const
  10. {
  11. for(size_t i = 0; i < nbits; ++i) {
  12. if(bitfield::test(bitfield, nbits, i)) {
  13. index = i;
  14. return true;
  15. }
  16. }
  17. return false;
  18. }
  19. };
  20. } // namespace aria2
  21. #endif // D_IN_ORDER_PIECE_SELECTOR_H