uIP@スタバ
久しぶりにスタバで作業。
ネットワークAPIの実装をしているのにIP Unreachableな場所で作業するのがなんとも。
TcpClientのコードをほぼ書き上げる。
Effective STLを読みながら、試験的にSTLを使ってみています。
typedef std::vectorBuffer;
TcpClientのコードではSend/Receiveの際に必ずバッファのやり取りが発生するのでですが、vector
例えばAckedHandlerで既に送信済みの部分を削除するコードはこんな感じ。
buffer->erase(buffer->begin(), buffer->begin() + uip_conn->len);
あとコネクション(IP Address, Port)毎に、バッファを保持しないといけないので
typedef std::mapSendBuffersMap;
std::mapで管理しています。(あとでhash_mapにしよう)
STL周りはまだいろいろと不勉強なところがありEffective STLを熟読中です。
vectorがAuto変数のときとnewされたときとかのコピーの挙動とかいろいろそのあたりが。
今後の作業としては
- TcpClientを動作させる
- wgetっぽいものをuIPサーバー内部に実装
- Monaのデバイスドライバをタイムアウトに対応させる
- TcpClientをMonaに移植
- TcpClientを利用したAPIをMonaで実装
- TcpClientの外部にwgetっぽいものを実装
という順序で進めます。
それにしてもスタバでコンパイルだけ通したこのコードは家に帰ったらきちんと動くのでしょうか。
外でコードを書くことが増えると、X40の長時間バッテリーが欲しくなるなぁ。