Example #1
0
        protected override void OnShown(EventArgs e)
        {
            base.OnShown(e);
            FunctionInvoker <object> threadController = new FunctionInvoker <object>(this.DoWork);

            this._ThreadResult = threadController.BeginInvoke(this.WorkComplete, threadController);
        }
 Func <object> Func0(FunctionInvoker funcInvoke)
 {
     return(() =>
     {
         var child = funcInvoke.invoke.CreateChild(BlockType.Method);
         funcInvoke.body(child);
         return child.GotoValue;
     });
 }
		protected override void OnShown(EventArgs e){
			base.OnShown(e);
						
			//   Create Delegate
			FunctionInvoker<object> threadController = new FunctionInvoker<object>(DoWork);

			//   Execute on secondary thread.
			threadResult = threadController.BeginInvoke(WorkComplete, threadController);
    	}
Example #4
0
        protected override void OnShown(EventArgs e)
        {
            base.OnShown(e);

            //   Create Delegate
            FunctionInvoker <object> threadController = new FunctionInvoker <object>(this.DoWork);

            //   Execute on secondary thread.
            this.threadResult = threadController.BeginInvoke(this.WorkComplete, threadController);
        }
Example #5
0
        protected override void OnShown(EventArgs e)
        {
            // Execute default OnShown event handler
            base.OnShown(e);

            // Create Delegate
            var threadController = new FunctionInvoker <object>(DoWork);

            // Execute on secondary thread.
            threadController.BeginInvoke(WorkComplete, threadController);
        }
        Func <object, object> Func1(FunctionInvoker funcInvoke)
        {
            return((arg1) =>
            {
                var param1 = funcInvoke.arguments[0];
                var child = funcInvoke.invoke.CreateChild(BlockType.Method);
                var exprCtx = ((ExpressionContext)child.Context);
                exprCtx.AddVariable(param1.ValueType, param1.Name, arg1);
                funcInvoke.body(child);

                return child.GotoValue;
            });
        }
        public void Create_IfInstanceAndMethodIsInherited_UsesReflectedType()
        {
            // Arrange
            MethodInfo    method    = GetMethodInfo(typeof(Subclass), "InheritedReturnVoid");
            IJobActivator activator = CreateDummyActivator();

            // Act
            IFunctionInvoker invoker = FunctionInvokerFactory.Create(method, activator);

            // Assert
            Assert.IsType <FunctionInvoker <Subclass, object> >(invoker);
            FunctionInvoker <Subclass, object> typedInvoker = (FunctionInvoker <Subclass, object>)invoker;

            Assert.IsType <ActivatorInstanceFactory <Subclass> >(typedInvoker.InstanceFactory);
        }
        public void Create_IfStatic_UsesNullInstanceFactory()
        {
            // Arrange
            MethodInfo    method    = GetMethodInfo("StaticReturnVoid");
            IJobActivator activator = CreateDummyActivator();

            // Act
            IFunctionInvoker invoker = FunctionInvokerFactory.Create(method, activator);

            // Assert
            Assert.IsType <FunctionInvoker <FunctionInvokerFactoryTests, object> >(invoker);
            FunctionInvoker <FunctionInvokerFactoryTests, object> typedInvoker =
                (FunctionInvoker <FunctionInvokerFactoryTests, object>)invoker;

            Assert.IsType <NullInstanceFactory <FunctionInvokerFactoryTests> >(typedInvoker.InstanceFactory);
        }
 Func <object, object, object, object, object> Func4(FunctionInvoker funcInvoke)
 {
     return((arg1, arg2, arg3, arg4) =>
     {
         var ps = funcInvoke.arguments;
         var param1 = ps[0];
         var param2 = ps[1];
         var param3 = ps[2];
         var param4 = ps[3];
         var child = funcInvoke.invoke.CreateChild(BlockType.Method);
         var exprCtx = ((ExpressionContext)child.Context);
         exprCtx.AddVariable(param1.ValueType, param1.Name, arg1);
         exprCtx.AddVariable(param2.ValueType, param2.Name, arg2);
         exprCtx.AddVariable(param3.ValueType, param3.Name, arg3);
         exprCtx.AddVariable(param3.ValueType, param4.Name, arg4);
         funcInvoke.body(child);
         return child.GotoValue;
     });
 }
Example #10
0
        public FObject Invoke(FunctionInvoker fi, FObject[] args)
        {
            var  gotTypes = args.Select(x => x.Type).ToArray();
            bool j        = CallObjectTypes.Contains(gotTypes[0]);

            for (int i = 1; j && i < ArgumentTypes.Count; i++)
            {
                var item = ArgumentTypes[i];
                if (item != FObjectType.Any && item != gotTypes[i])
                {
                    j = false;
                    break;
                }
            }

            if (!j)
            {
                throw new RuntimeException($"Call did not match function signature of function '{Name}'. " +
                                           $"Expected {ArgumentTypes.PrettyArray()}, got {gotTypes.PrettyArray()}.");
            }
            return(Invokable.Invoke(fi, args));
        }
        public override CompiledDelegate Compile(CompileContext ctx)
        {
            var parent = CompileContext.Current;

            var func = CompileFunction(ctx);

            //if (!string.IsNullOrEmpty(name))
            //{
            //    parent.AddVariable(ValueType, name);

            //}
            return((invoke) =>
            {
                FunctionInvoker funcInvoke = new FunctionInvoker(invoke);

                var del = func(funcInvoke);
                if (!string.IsNullOrEmpty(name))
                {
                    ((ExpressionContext)invoke.Context).AddVariable <Delegate>(name, del);
                }
                return del;
            });
        }
Example #12
0
 public static Function From(string name, FunctionInvoker invoker)
 {
     return(new Function(name, invoker));
 }
Example #13
0
 public Function(string name, FunctionInvoker invoker)
 {
     Name    = name;
     Invoker = invoker;
 }
Example #14
0
 public static Function From(string name, FunctionInvoker invoker)
 {
     return new Function (name, invoker);
 }
Example #15
0
 public Function(string name, FunctionInvoker invoker)
 {
     Name = name;
     Invoker = invoker;
 }
Example #16
0
        public void WhenPressesTheSaveButton()
        {
            var invoker = new FunctionInvoker(new DelegateServiceProvider(TypeResolver));

            invoker.InvokeAsync(_createDocument);
        }