using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Tango.Protobuf { /// /// Represents a protobuf messages compiler. /// public interface IProtoCompiler : IDisposable { /// /// Occurs when the compiler has made some progress. /// event EventHandler CompilationProgress; /// /// Compiles the specified .proto message file. /// /// .proto file to compile /// A list of compiled results. IEnumerable CompileFile(String inputFile); /// /// Compiles the specified .proto message file asynchronously. /// /// .proto file to compile /// A list of compiled results. Task> CompileFileAsync(String inputFile); /// /// Compiles all files in the specified folder recursively. /// /// The source folder /// Compilation result. CompilerFolderResult CompileFolder(String sourceFolder, params String[] includeFolders); /// /// Compiles all files in the specified folder recursively and asynchronously. /// /// The source folder /// Compilation result. Task CompileFolderAsync(String sourceFolder); /// /// Gets the compiler language. /// CompilerLanguage Language { get; } /// /// Gets the proto imports folders. /// List ImportsFolders { get; } /// /// Gets a value indicating whether this compiler uses the default folder structure when generating code. /// bool UsesDefaultStructure { get; } } }