package com.easyagents.federation.sql.source;

/**
 * 尚未发布到节点本地 Source Slot 的预构建 Runtime。
 *
 * <p>调用方应使用 try-with-resources 持有该对象。发布成功后由 SourceManager 接管资源；
 * 放弃发布或发生异常时，{@link #close()} 会关闭预构建的 DataSource Handle。</p>
 */
public interface PreparedSourceRuntime extends AutoCloseable {

    /**
     * 返回该 Runtime 对应的不可变 Definition。
     *
     * @return 数据源 Definition
     */
    FederationSourceDefinition definition();

    /**
     * 放弃尚未提交的 Runtime，并确定性关闭其资源。
     */
    @Override
    void close();
}
