summaryrefslogtreecommitdiff
path: root/klm/util/stream/line_input.hh
blob: a870a6648494775d7c1169e17e2b0a375e984803 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#ifndef UTIL_STREAM_LINE_INPUT_H
#define UTIL_STREAM_LINE_INPUT_H
namespace util {namespace stream {

class ChainPosition;

/* Worker that reads input into blocks, ensuring that blocks contain whole
 * lines.  Assumes that the maximum size of a line is less than the block size
 */
class LineInput {
  public:
    // Takes ownership upon thread execution.
    explicit LineInput(int fd);

    void Run(const ChainPosition &position);

  private:
    int fd_;
};

}} // namespaces
#endif // UTIL_STREAM_LINE_INPUT_H