/*
 * SDK Pullenti Unitext, version 4.33, fabruary 2026. Copyright (c) 2013-2026, Pullenti. All rights reserved. 
 * Non-Commercial Freeware and Commercial Software. 
 * This class is generated using the converter UniSharping (www.unisharping.ru) from Pullenti C# project. 
 * The latest version of the code is available on the site www.pullenti.ru
 */

const Stream = require("./../../../unisharp/Stream");

const IArchiveStorage = require("./IArchiveStorage");
const FileUpdateMode = require("./FileUpdateMode");

/**
 * An abstract <see cref="IArchiveStorage"/> suitable for extension by inheritance.
 */
class BaseArchiveStorage extends IArchiveStorage {
    
    /**
     * Initializes a new instance of the <see cref="BaseArchiveStorage"/> class.
     * @param _updateMode The update mode.
     */
    constructor(_updateMode) {
        super();
        this.updateMode_ = FileUpdateMode.SAFE;
        this.updateMode_ = _updateMode;
    }
    
    /**
     * Gets a temporary output <see cref="Stream"/>
     * @return Returns the temporary output stream.
     */
    getTemporaryOutput() {
        return null;
    }
    
    /**
     * Converts the temporary <see cref="Stream"/> to its final form.
     * @return Returns a <see cref="Stream"/> that can be used to read 
     * the final storage for the archive.
     */
    convertTemporaryToFinal() {
        return null;
    }
    
    /**
     * Make a temporary copy of a <see cref="Stream"/>.
     * @param stream The <see cref="Stream"/> to make a copy of.
     * @return Returns a temporary output <see cref="Stream"/> that is a copy of the input.
     */
    makeTemporaryCopy(stream) {
        return null;
    }
    
    /**
     * Return a stream suitable for performing direct updates on the original source.
     * @param stream The <see cref="Stream"/> to open for direct update.
     * @return Returns a stream suitable for direct updating.
     */
    openForDirectUpdate(stream) {
        return null;
    }
    
    /**
     * Disposes this instance.
     */
    close() {
        
    }
    
    get updateMode() {
        return this.updateMode_;
    }
}


module.exports = BaseArchiveStorage