public override void EmitPreRemoteCallStatements(CodeBuilder b, string var) { b.BeginIf("{0} != null", var); b.AppendLine("call.{0} = new IntPtr[{0}.Length];", var); b.BeginBlock("for(int i = 0; i < {0}.Length; ++i)", var); b.AppendLine("call.{0}[i] = {1};", var, StructPtr.RemoteUnwrapExpression(var + "[i]")); b.EndBlock(); b.EndBlock(); }
public override void EmitRemotePreCallStatements(CodeBuilder b, string var) { b.BeginIf("{0} != null", var); b.AppendLine("call.{0} = new IntPtr[{0}.Length];", var); b.BeginBlock("for(int i = 0; i < {0}.Length; ++i)", var); b.AppendLine("if(!CheckConnection({0}[i], connection)) throw new ArgumentException(\"Render process connection mismatch.\", \"{1}[\" + i + \"]\");", CSharp.Escape(var), var); b.AppendLine("call.{0}[i] = {1};", var, StructPtr.RemoteUnwrapExpression(var + "[i]")); b.EndBlock(); b.EndBlock(); }
public override void EmitPostRemoteRaiseEventStatements(CodeBuilder b, string var) { b.AppendLine("{0} = {1};", var, StructPtr.RemoteUnwrapExpression(string.Concat("e.m_", var, "_wrapped"))); }