// IResourceTool.cs // SPDX-License-Identifier: GPL-3.0-or-later // SPDX-FileCopyrightText: 2025 Catswords OSS and WelsonJS Contributors // https://github.com/gnh1201/welsonjs // using System.Net; using System.Threading.Tasks; namespace WelsonJS.Launcher { /// <summary> /// Defines a contract for resource tools that can handle specific HTTP requests. /// </summary> public interface IResourceTool { /// <summary> /// Determines whether this tool can handle the specified path. /// </summary> /// <param name="path">The request path to check.</param> /// <returns>True if this tool can handle the request; otherwise, false.</returns> bool CanHandle(string path); /// <summary> /// Asynchronously processes the HTTP request for the specified path. /// </summary> /// <param name="context">The HTTP listener context containing request and response objects.</param> /// <param name="path">The request path to handle.</param> /// <returns>A task representing the asynchronous operation.</returns> Task HandleAsync(HttpListenerContext context, string path); } }