package com.r35157.nenjim.service.journal;

import java.io.IOException;
import java.nio.file.Path;

/** Lifecycle and administrative access for one filesystem-backed Journal service. */
public interface JournalServiceManager {
    /** Starts the service and completes its initial Journal loading before returning. */
    void start() throws IOException;

    /** Stops service-owned maintenance without changing Journal files. */
    void stop();

    /** Returns the normalized configured Journal data root. */
    Path journalRoot();

    /** Returns the read-only service after successful initialization. */
    JournalService journalService();

    /** Explicitly reloads the configured runtime Journal files. */
    void refresh() throws IOException;
}
