示例#1
0
 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();
 }
示例#3
0
 public override void EmitPostRemoteRaiseEventStatements(CodeBuilder b, string var)
 {
     b.AppendLine("{0} = {1};", var, StructPtr.RemoteUnwrapExpression(string.Concat("e.m_", var, "_wrapped")));
 }