InorderPieceSelector.h 541 B

123456789101112131415161718192021222324252627
  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. CXX11_OVERRIDE
  11. {
  12. for(size_t i = 0; i < nbits; ++i) {
  13. if(bitfield::test(bitfield, nbits, i)) {
  14. index = i;
  15. return true;
  16. }
  17. }
  18. return false;
  19. }
  20. };
  21. } // namespace aria2
  22. #endif // D_IN_ORDER_PIECE_SELECTOR_H