uIP@スタバ


久しぶりにスタバで作業。
ネットワークAPIの実装をしているのにIP Unreachableな場所で作業するのがなんとも。


TcpClientのコードをほぼ書き上げる。
Effective STLを読みながら、試験的にSTLを使ってみています。

typedef std::vector Buffer;


TcpClientのコードではSend/Receiveの際に必ずバッファのやり取りが発生するのでですが、vectorを使うとかなりすっきりします。
例えばAckedHandlerで既に送信済みの部分を削除するコードはこんな感じ。

buffer->erase(buffer->begin(), buffer->begin() + uip_conn->len);


あとコネクション(IP Address, Port)毎に、バッファを保持しないといけないので

typedef std::map SendBuffersMap;

std::mapで管理しています。(あとでhash_mapにしよう)


STL周りはまだいろいろと不勉強なところがありEffective STLを熟読中です。
vectorがAuto変数のときとnewされたときとかのコピーの挙動とかいろいろそのあたりが。



今後の作業としては

という順序で進めます。


それにしてもスタバでコンパイルだけ通したこのコードは家に帰ったらきちんと動くのでしょうか。
外でコードを書くことが増えると、X40の長時間バッテリーが欲しくなるなぁ。