/*
 * Copyright (c) 2004-2017, by Alex Leigh.
 * All rights reserved.
 *
 * THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE
 * The copyright notice above does not evidence any
 * actual or intended publication of such source code.
 */

package lc.mecha.lang;

/**
 * Classes implementing Handle represent a thick resource which must be explicitly released. Allowing a
 * <code>Handle</code> to garbage collect without calling <code>close()</code> may result in memory leaks.
 *
 * @author Alex Leigh
 */
public interface Handle {
    /**
     * Close the handle and release any associated resources. Close always succeeds even if the underlying
     * resource is in an error condition.
     */
    void close();
}
