1

私はゲームを開発していて、永続性の部分にHappstackを選択しました。私はそれを非常に使いやすいと思います、私はそれを理解するために私自身のために簡単な例を作りました:

getAllObjects :: MonadIO m => m [Thing]
getAllObjects = do
            elems <- query GetObjects           
            return elems
addAnObject :: (MonadIO m) => Thing -> m ()
addAnObject thing = do  update $ AddObject thing
test command = do
                control <- startSystemState macidProxy
                result  <- command
                shutdownSystem control
                return result
checkpoint = do
        control <- startSystemState macidProxy
        createCheckpoint control
        shutdownSystem control

そして、私がそれを「テスト」するたびに、それはevent.fileを作成します。次に、「チェックポイント」を実行して新しいチェックポイントファイルを作成します。問題は、古いイベントファイルが増え続けることです。すべてのファイルを手動で削除します(最後のチェックポイントと現在のチェックポイントを除く)。'古いものを削除する'を行うためにhappstackから欠落しているコードがありますか?

4

1 に答える 1

2

古いイベントファイルを削除するための組み込みのメカニズムはありません。Lemmihは、ある時点でそのような施設を酸性状態に追加することについて話しました。

編集:darcsバージョンのacid-stateには、現在の状態を復元するために不要になった古いログファイルをアーカイブするための関数'createArchive'が含まれるようになりました。

于 2011-09-29T03:14:42.727 に答える