summaryrefslogtreecommitdiff
path: root/test/InorderPieceSelector.h
blob: a84f78ee41933bdc7bffd4dae2f4a5b13c042b90 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#ifndef D_IN_ORDER_PIECE_SELECTOR_H
#define D_IN_ORDER_PIECE_SELECTOR_H

#include "PieceSelector.h"
#include "bitfield.h"

namespace aria2 {

class InorderPieceSelector:public PieceSelector {
public:
  virtual bool select
  (size_t& index, const unsigned char* bitfield, size_t nbits) const
  {
    for(size_t i = 0; i < nbits; ++i) {
      if(bitfield::test(bitfield, nbits, i)) {
        index = i;
        return true;
      }
    }
    return false;
  }
};

} // namespace aria2

#endif // D_IN_ORDER_PIECE_SELECTOR_H