Codegen in modidier support

This commit is contained in:
2026-01-29 23:15:39 +03:00
parent b4280cd06d
commit 84f9840024
17 changed files with 316 additions and 75 deletions
@@ -10,34 +10,36 @@ namespace mROA.Codegen.Templates
private const string ParametersDeclarationTag = "parametersDeclaration";
private const string CommandIdTag = "commandId";
private const string TransferParametersTag = "transferParameters";
public EventBinderTemplate(TemplateDocument template) : base(template) { }
public EventBinderTemplate(TemplateDocument template) : base(template)
{
}
public void DefineCallFilter(string value)
{
Define(CallFilterTag, value);
}
public void DefineType(string value)
{
Define(TypeTag, value);
}
public void DefineEventName(string value)
{
Define(EventNameTag, value);
}
public void DefineParametersDeclaration(string value)
{
Define(ParametersDeclarationTag, value);
}
public void DefineCommandIdTag(string value)
{
Define(CommandIdTag, value);
}
public void DefineTransferParameters(string value)
{
Define(TransferParametersTag, value);
@@ -3,25 +3,27 @@ namespace mROA.Codegen.Templates
public class IndexProviderTemplate : TemplateView
{
private const string TemplateFile = "IndexProvider.cstmpl";
private const string NamespaceTag = "namespace";
private const string LevelTag = "level";
private const string LenTag = "len";
private const string IndexSpanTag = "indexSpan";
private const string RemoteTypePairTag = "remoteTypePair";
public IndexProviderTemplate() : base(TemplateFile) { }
public IndexProviderTemplate() : base(TemplateFile)
{
}
public void DefineNamespace(string value)
{
Define(NamespaceTag, value);
}
public void DefineLevel(string value)
{
Define(LevelTag, value);
}
public void DefineLen(string value)
{
Define(LenTag, value);
@@ -31,7 +33,7 @@ namespace mROA.Codegen.Templates
{
Insert(IndexSpanTag, value);
}
public void InsertRemoteTypePair(string value)
{
Insert(RemoteTypePairTag, value);
+8 -6
View File
@@ -12,33 +12,35 @@ namespace mROA.Codegen.Templates
private const string CancellationTag = "cancellation";
private const string IsTrustedTag = "isTrusted";
public InvokerTemplate(TemplateDocument template) : base(template) { }
public InvokerTemplate(TemplateDocument template) : base(template)
{
}
public void DefineIsVoid(string value)
{
Define(IsVoidTag, value);
}
public void DefineReturnType(string value)
{
Define(ReturnTypeTag, value);
}
public void DefineParametersType(string value)
{
Define(ParametersTypeTag, value);
}
public void DefineSuitableType(string value)
{
Define(SuitableTypeTag, value);
}
public void DefineFuncInvoking(string value)
{
Define(FuncInvokingTag, value);
}
public void DefineIsTrusted(string value)
{
Define(IsTrustedTag, value);
+7 -5
View File
@@ -3,25 +3,27 @@ namespace mROA.Codegen.Templates
public class MethodRepoTemplate : TemplateView
{
private const string TemplateFile = "MethodRepo.cstmpl";
private const string SyncInvokerTemplate = "syncInvoker";
private const string AsyncInvokerTemplate = "asyncInvoker";
private const string InvokerTag = "invoker";
public MethodRepoTemplate() : base(TemplateFile) { }
public MethodRepoTemplate() : base(TemplateFile)
{
}
public void InsertInvoke(string value)
{
Insert(InvokerTag, value);
}
public InvokerTemplate CloneInnerSyncInvoker()
{
var template = CloneInner(SyncInvokerTemplate);
return new InvokerTemplate(template);
}
public InvokerTemplate CloneInnerAsyncInvoker()
{
var template = CloneInner(AsyncInvokerTemplate);
@@ -5,11 +5,13 @@ namespace mROA.Codegen.Templates
public partial class ObjectBinderTemplate : TemplateView
{
private const string EventBinderTemplateTag = "eventBinderTemplate";
private const string TypeTag = "type";
private const string EventBinderTag = "eventBinder";
public ObjectBinderTemplate(TemplateDocument template) : base(template) { }
public ObjectBinderTemplate(TemplateDocument template) : base(template)
{
}
public void DefineType(string value)
{
@@ -20,7 +22,7 @@ namespace mROA.Codegen.Templates
{
Insert(EventBinderTag, value);
}
public EventBinderTemplate CloneInnerEventBinder()
{
var template = CloneInner(EventBinderTemplateTag);
@@ -3,18 +3,20 @@ namespace mROA.Codegen.Templates
public class PartialInterfaceTemplate : TemplateView
{
private const string TemplateFile = "PartialInterface.cstmpl";
private const string NameTag = "name";
private const string NamespaceTag = "namespace";
private const string SignatureTag = "signature";
public PartialInterfaceTemplate() : base(TemplateFile) { }
public PartialInterfaceTemplate() : base(TemplateFile)
{
}
public void DefineName(string value)
{
Define(NameTag, value);
}
public void DefineNamespace(string value)
{
Define(NamespaceTag, value);
+8 -6
View File
@@ -1,26 +1,28 @@
namespace mROA.Codegen.Templates
{
{
public class ProxyTemplate : TemplateView
{
private const string TemplateFile = "Proxy.cstmpl";
private const string ClassNameTag = "className";
private const string OriginalNameTag = "originalName";
private const string NamespaceNameTag= "namespaceName";
private const string NamespaceNameTag = "namespaceName";
private const string MethodsTag = "methods";
public ProxyTemplate() : base(TemplateFile) { }
public ProxyTemplate() : base(TemplateFile)
{
}
public void DefineClassName(string value)
{
Define(ClassNameTag, value);
}
public void DefineOriginalName(string value)
{
Define(OriginalNameTag, value);
}
public void DefineNamespaceName(string value)
{
Define(NamespaceNameTag, value);
@@ -3,18 +3,20 @@ namespace mROA.Codegen.Templates
public class RemoteTypeBinderTemplate : TemplateView
{
private const string TemplateFile = "RemoteTypeBinder.cstmpl";
private const string ObjectBinderTemplateTag = "objectBinderTemplate";
private const string EventBinderTag = "eventBinder";
public RemoteTypeBinderTemplate() : base(TemplateFile) { }
public RemoteTypeBinderTemplate() : base(TemplateFile)
{
}
public ObjectBinderTemplate CloneInnerObjectBinder()
{
var template = CloneInner(ObjectBinderTemplateTag);
return new ObjectBinderTemplate(template);
}
public void InsertEventBinder(string value)
{
Insert(EventBinderTag, value);
+2 -2
View File
@@ -6,12 +6,12 @@ namespace mROA.Codegen.Templates
public abstract class TemplateView
{
private readonly TemplateDocument _template;
protected TemplateView(string templateFile)
{
_template = TemplateReader.FromEmbeddedResource(templateFile);
}
protected TemplateView(TemplateDocument template)
{
_template = template;