static internal void Convert(object[] inValues, RSValue[] ioRSValues) { for (int i = 0; i < inValues.Length; ++i) { ioRSValues[i] = RSInterop.ToRSValue(inValues[i]); } }
static internal RSValue[] Convert(params object[] inValues) { RSValue[] converted = new RSValue[inValues.Length]; for (int i = 0; i < inValues.Length; ++i) { converted[i] = RSInterop.ToRSValue(inValues[i]); } return(converted); }
internal override void Link(RSTypeAssembly inAssembly) { m_MethodSettings.Configure(m_MethodInfo, m_Parameters, true); OwnerType = m_MethodSettings.BoundType; ReturnType = RSInterop.RSTypeFor(m_MethodInfo.ReturnType, inAssembly); m_DefaultValue = m_DefaultSystemValue != null?RSInterop.ToRSValue(m_DefaultSystemValue) : ReturnType.DefaultValue; GenerateParameters(inAssembly); }
internal void PrepArguments(RSValue[] inArgs, ExecutionScope inScope) { if (inArgs != null && inArgs.Length > 0) { for (int i = 0; i < inArgs.Length && i + m_MethodSettings.EditorArgsStartIndex < m_CachedArguments.Length; ++i) { int idx = m_MethodSettings.EditorArgsStartIndex + i; m_CachedArguments[idx] = RSInterop.ToObject(m_Parameters[idx].ParameterType, inArgs[i], inScope); } } }
internal void Link(RSTypeAssembly inAssembly) { Type = RSInterop.RSTypeFor(m_ParameterType, inAssembly); if (m_ParameterInfo != null && m_ParameterInfo.HasDefaultValue) { Default = RSInterop.ToRSValue(m_ParameterInfo.DefaultValue); } else { Default = Type.DefaultValue; } if (m_TriggerParameterType != null) { TriggerParameterType = RSInterop.RSTypeFor(m_TriggerParameterType, inAssembly); } }
public RSTypeInfo TypeInfo(RSTriggerInfo inTriggerContext, RSLibrary inLibrary) { switch (Mode) { case ResolvableValueMode.Value: return(RSInterop.RSTypeFor(Value, inLibrary.TypeAssembly)); case ResolvableValueMode.Query: return(inLibrary.GetQuery(Query.Id)?.ReturnType); case ResolvableValueMode.Argument: return(inTriggerContext?.ParameterType?.Type); case ResolvableValueMode.Register: return(RSBuiltInTypes.Any); default: throw new InvalidOperationException("Unknown ResolvableValueMode " + Mode); } }
internal RSValue InvokeWithCachedArgs(IRSRuntimeEntity inTarget, ExecutionScope inContext) { object thisArg; bool bValid = PrepContext(inTarget, inContext, out thisArg); if (!bValid) { if (m_MethodSettings.ComponentType != null) { inContext.Logger?.Warn("Unable to evaluate query {0} on Entity \"{1}\" ({2}) - missing component type {3}", Id, inTarget?.Name, inTarget != null ? inTarget.Id : RSEntityId.Null, m_MethodSettings.ComponentType); } else { inContext.Logger?.Warn("Unable to evaluate query {0} on Entity \"{1}\" ({2})", Id, inTarget?.Name, inTarget != null ? inTarget.Id : RSEntityId.Null); } return(m_DefaultValue); } object returnVal = m_MethodInfo.Invoke(thisArg, m_CachedArguments); return(RSInterop.ToRSValue(returnVal)); }
internal void Restore(IRSRuntimeComponent inComponent, RSValue inValue, RSEnvironment inEnvironment) { object restoreValue = RSInterop.ToObject(m_FieldType, inValue, inEnvironment.StaticScope); m_FieldInfo.SetValue(inComponent, restoreValue); }
internal RSValue Persist(IRSRuntimeComponent inComponent) { object persistValue = m_FieldInfo.GetValue(inComponent); return(RSInterop.ToRSValue(persistValue)); }
internal void Link(RSTypeAssembly inAssembly) { Type = RSInterop.RSTypeFor(m_FieldType, inAssembly); }