保健所の調理場検査をパスするための条件

NODULEにCleanとdoCleanという2つの仮想関数を導入した.これらは,ファイルをクローズしてシステムがコアスケルトンの状態に戻ったとき,アクティブな全オブジェクトを対象にクリーンアップを実施するための関数だ.これによってシステムは完全に初期化され,INITIALSTATEの状態に戻る.言ってみればINITIALSTATEというのは,すべての食器と調理具を洗い上げて食器棚に格納した状態と考えられる.それに続くINITIALIZINGフェーズはデータベースに接続し,系図データを外部からロードしているので,早朝長靴を履いて市場に出かけ野菜や肉・魚などを買い調える段階だろう.とすれば,INITIAIZEDは食材を洗ったり,カットしたりなどの下ごしらえに相当する.ここでシェフの登場を待って,TOPOLOGICALSORTからがいよいよクッキングの本番であり,シェフの腕の見せ所だ.厨房もこのくらいクリーンになっていれば,保健所の検査も通るかな?

ZTシステム構成図7.ZELを開いて,3つのカードを選択し,一括削除するとTRIBEBOX::setTribeRealnodeで(CheckTribe(funcname) && !OnmergeCardLink)エラーになる.削除されたのは#61 NLIST < LISTNODE, CID>,#187 GENEBOX,#230 GENEBOXだ.カード名がクラス名になっているのでかなり紛らわしいが,NAMEBOXの#2211 GENEBOX(0)が削除され,このノードが優先ノードとなっている系列枠#8440で先祖ノードと優先ノードがともに不在となっている.⇒#187 GENEBOXは一人系列先祖なので削除されると,その系列は消滅する.CHAOTICSTATEでは描画要素(系列枠・人名枠・結婚枠など)に関わる一切の操作・検査は無効とすべきだ.この修正はロジック本文を過剰に煩瑣なものにするので,むしろ関数の冒頭でゼロ復帰するようにした方がよい.その方が修正も極小で済む.

▲UNDOでは参照の付け替えを頻繁に実施しているため,参照リスト管理と矛盾が発生する.この件は保留とする.

C++のベタクラスからnoduleオブジェクトを参照している.たとえばMETRIX→ NAMBOX,metrix→ TREEVIEWなどがある.これらは廃止すべきだ.⇒METRIX→ NAMBOXを廃止しただけで広範な影響が出ている.理由はよく分からないが代替ロジックで置き換えてみよう.TREEVIEWは「基準ノードの代表人名枠」を持っていると思っていたが,持っていなかった.グローバル変数のBASEBOXというのもある.これもまずいと思う.TREEVIEWにNAMEBOX baseboxを設置し,SetBaseBoxでその値を設定するようにしただけで解決した.ただし,非参照カウントの残留が出ている.TREEVIEWからの参照だ.⇒TREEVIEW::CleanSansyoに項目を追加した.

metrix→ TREEVIEWも同様に廃止した.⇒ビルドは通ったが,TREEVIEW::ViewRectでエラーが出るようになった.⇒クリーンビルドして動作するようになった.グローバル変数のBASEBOXも廃止した.

仮想関数Disposeの実装を義務付ける必要がある.Disposeの実装を持たないクラスのデストラクタからDisposeが実行されると,nodule:Dispoeが実行されることになり,~noduleから実行されるnodule:Disposeとダブってしまう.実装を義務化するためには共通ヘッダ部で関数定義しておくのが早いのではないか?⇒却って裏目に出てしまった.未解決の外部シンボルが山ほど出てくる.⇒ARRAY,NLIST,nlist,BASETABLEの派生クラスを個別に点検するしかない.

▲ゴミ箱については何も修正していないつもりだが,カードを削除して終了すると,「生ゴミだ!」というエラーが出るようになった.DELETEDに-1という値が入っている.ノーマルなゴミの場合は1だ.始業時バックアップではこのようなエラーは出ていない.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA