C++高速ファイルディスクリプタライブラリ

FDIO(仮)というものを作ってます。ファイルディスクリプタをおいしくいじるライブラリ。


まずはFDIO::Multiplexerを実装。

FDIO::LinuxEpollMultiplexer
FDIO::BSDKqueueMultiplexer
FDIO::PollMultiplexer
FDIO::SelectMultiplexer


他に作っておきたいものは、FDIO::write_sureとFDIO::read_sure。シグナルで中断されようが、カーネルのバッファが足りなかろうが、必ず指定されたバイト数まで読み込む。


それから、sendfieとかvmspliceとかをラップするおいしくラップする関数があると嬉しい。

template
FDIO::copy(int in, int out, size_t count);
みたいなもの。

FDIO::copy(fd1, fd2, 1024);ならsendfile()を使ってくれたり。


とりあえず今作っている共有擬似端末にはFDIO::MultiplexerがあればOK。