パスワードを忘れた? アカウント作成
499542 journal

tarosukeの日記: [talos]ソケット

日記 by tarosuke

今はNETPROTOの中にごたまぜになっているが、登録する対象のプロトコルごとのサブクラスを作れば今みたいに「やろうと思えば何でも繋がってしまう」状況を避けられるかも知れない。例えばEtherNetの上のプロトコルだったらETHERPROTOから導出して構築子の引数はプロトコル番号(IP4なら「IP4 : public ETHERPROTO」で引数は0x800)とか、UDPなら「UDP : public IPPROTO」で引数はuchar型で17だとか。

この場合の問題は例えばIP/ATMしたい時には「IP4 : public ATM」ができないので「ATMIP4 : public ATM」とかにしなければならない点。そもそも例えばIP4に何か受信させるときにはプロトコル番号とIPアドレスの両方をマッチングさせたりしているわけで、今みたいにNICそれぞれに専属のIP4インスタンスを作らずにIPv4レイヤを作った上でIP4をIPv4レイヤに...それをすると送信時にいちいち送信先を探さなきゃならんので困るんだ。

あるいはプロトコルを増やしたらそれを登録する先もいじらなきゃならないというメンテナンス性の悪化を許容すれば話はもっと簡単になる。要は各種プロトコル毎にRegisterメソッドを作ってしまえばいい。登録する先に該当プロトコルのRegisterがなければコンパイル時に検出できるからこのくらいは許容できる...かな? 処理は「プロトコル毎のキューに投入する」と、ほとんど同じだからテンプレートを使って生成したいような気もするけどな。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

アレゲはアレゲを呼ぶ -- ある傍観者

読み込み中...