50 lines
1.8 KiB
Plaintext
50 lines
1.8 KiB
Plaintext
// <auto-generated/>
|
|
using System.Collections.Generic;
|
|
using System.Reflection;
|
|
using System;
|
|
using mROA.Abstract;
|
|
using mROA.Implementation.Backend;
|
|
using mROA.Implementation;
|
|
|
|
namespace mROA.Codegen
|
|
{
|
|
public sealed class RemoteTypeBinder
|
|
{
|
|
static RemoteTypeBinder(){
|
|
InstanceRepository.EventBinders = new object[] {
|
|
<!I eventBinder r sep typesSep><!D typesSep>,
|
|
<!D>
|
|
<!T objectBinderTemplate>
|
|
new EventBinder<<!L type>>
|
|
{
|
|
BindAction = (instance, context, representationProducer, index) =>
|
|
{
|
|
var ownerId = context.OwnerId;
|
|
var module = representationProducer.Produce(ownerId);
|
|
<!I eventBinder r sep typesSep><!D typesSep>
|
|
<!D>
|
|
<!T eventBinderTemplate>
|
|
(instance as <!L type>).<!L eventName> += (<!L parametersDeclaration>) =>
|
|
{
|
|
<!I callFilter>
|
|
Console.WriteLine("Sending event...");
|
|
var request = new CallRequest
|
|
{
|
|
Id = RequestId.Generate(),
|
|
CommandId = <!L commandId>,
|
|
ObjectId = new ComplexObjectIdentifier(index, ownerId),
|
|
Parameters = new object[] { <!L transferParameters> }
|
|
};
|
|
|
|
module.PostCallMessageAsync(request.Id, EMessageType.EventRequest, request, context);
|
|
};
|
|
<!T>
|
|
}
|
|
}
|
|
<!T>
|
|
};
|
|
}
|
|
}
|
|
}
|
|
|