public ActorMethodInvocationHandler(IActor root, object wrapped, MethodCaller methodCaller, ProxyFactory proxyFactory, Type returnType, MethodInfo targetMethod)
     : base(proxyFactory, methodCaller, wrapped)
 {
     m_Root = root;
     m_MethodCaller = methodCaller;
     m_ProxyFactory = proxyFactory;
     m_TargetMethod = targetMethod;
 }
Beispiel #2
0
        /// <summary>
        /// Creates an interceptor for an object that doesn't exist yet.
        ///
        /// This will trigger its asynchronous construction.
        /// </summary>
        public CreatorInterfaceInvocationHandler(ObjectCreator <IActor> creator, ProxyFactory proxyFactory)
        {
            ThreadPool.QueueUserWorkItem(
                delegate
            {
                Hooking.ActorCallWrapper(
                    () =>
                {
                    IActor newObject = creator();
                    ActorInterfaceInvocationHandler temp = new ActorInterfaceInvocationHandler(newObject, newObject, proxyFactory);

                    m_RealInvocationHandler = temp;
                    m_FinishedEvent.Set();
                });
            });
        }
        /// <summary>
        /// Creates a proxy for an actor component object and places it in an existing actor
        /// </summary>
        internal CreatorInterfaceInvocationHandler(ObjectCreator<IActorComponent> creator, IActor rootObject, ProxyFactory proxyFactory)
        {
            // We need to lock on the root when using an existing actor
            ThreadPool.QueueUserWorkItem(
                delegate
                {
                    Hooking.ActorCallWrapper(() =>
                    {
                        IActorComponent newObject = creator();
                        ActorInterfaceInvocationHandler temp = new ActorInterfaceInvocationHandler(newObject, rootObject, proxyFactory);

                        m_RealInvocationHandler = temp;
                        m_FinishedEvent.Set();
                    });
                });
        }
        /// <summary>
        /// Creates an interceptor for an object that doesn't exist yet.
        /// 
        /// This will trigger its asynchronous construction.
        /// </summary>
        public CreatorInterfaceInvocationHandler(ObjectCreator<IActor> creator, ProxyFactory proxyFactory)
        {
            ThreadPool.QueueUserWorkItem(
                delegate
                {
                    Hooking.ActorCallWrapper(
                        () =>
                        {
                            IActor newObject = creator();
                            ActorInterfaceInvocationHandler temp = new ActorInterfaceInvocationHandler(newObject, newObject, proxyFactory);

                            m_RealInvocationHandler = temp;
                            m_FinishedEvent.Set();
                        });
                });
        }
Beispiel #5
0
 public ActorMethodInvocationHandler(IActor root, object wrapped, MethodCaller methodCaller, ProxyFactory proxyFactory, Type returnType, MethodInfo targetMethod)
     : base(proxyFactory, methodCaller, wrapped)
 {
     m_Root         = root;
     m_MethodCaller = methodCaller;
     m_ProxyFactory = proxyFactory;
     m_TargetMethod = targetMethod;
 }
 public ActorInterfaceInvocationHandler(object original, IActor rootForObject, ProxyFactory proxyFactory)
 {
     m_Original      = original;
     m_ProxyFactory  = proxyFactory;
     m_RootForObject = rootForObject;
 }
 public AudienceMethodInvocationHandler(object wrapped, MethodCaller methodCaller, ProxyFactory proxyFactory)
     : base(proxyFactory, methodCaller, wrapped)
 {
 }
 protected MethodInvocationHandler(ProxyFactory proxyFactory, MethodCaller methodCaller, object wrapped)
 {
     m_ProxyFactory = proxyFactory;
     m_MethodCaller = methodCaller;
     m_Wrapped      = wrapped;
 }
Beispiel #9
0
 public AudienceMethodInvocationHandler(object wrapped, MethodCaller methodCaller, ProxyFactory proxyFactory)
     : base(proxyFactory, methodCaller, wrapped)
 {
 }
 protected MethodInvocationHandler(ProxyFactory proxyFactory, MethodCaller methodCaller, object wrapped)
 {
     m_ProxyFactory = proxyFactory;
     m_MethodCaller = methodCaller;
     m_Wrapped = wrapped;
 }
Beispiel #11
0
        public void TestReturningCallerDelegate()
        {
            m_MyInstanceMethodCalled = false;

            object[] parameters = new object[] { "world", 5, false };

            Func<object, object[], object> caller = new ProxyFactory().CreateMethodCaller(s_MyReturningInstanceMethodInfo).CallReturningMethod;

            object returned = caller(this, parameters);

            Assert.AreEqual("boo", returned);

            Assert.IsTrue(m_MyInstanceMethodCalled);
        }
Beispiel #12
0
        public void TestCallerDelegate()
        {
            m_MyInstanceMethodCalled = false;

            object[] parameters = new object[] { "world", 5, false };

            Action<object, object[]> caller = new ProxyFactory().CreateMethodCaller(s_MyInstanceMethodInfo).CallMethod;

            caller(this, parameters);

            Assert.IsTrue(m_MyInstanceMethodCalled);
        }
 public AudienceInterfaceInvocationHandler(object original, ProxyFactory proxyFactory)
 {
     m_Original = original;
     m_ProxyFactory = proxyFactory;
 }
Beispiel #14
0
 public AudienceInterfaceInvocationHandler(object original, ProxyFactory proxyFactory)
 {
     m_Original     = original;
     m_ProxyFactory = proxyFactory;
 }
 public ActorInterfaceInvocationHandler(object original, IActor rootForObject, ProxyFactory proxyFactory)
 {
     m_Original = original;
     m_ProxyFactory = proxyFactory;
     m_RootForObject = rootForObject;
 }
Beispiel #16
0
        /// <summary>
        /// Creates a proxy for an actor component object and places it in an existing actor
        /// </summary>
        internal CreatorInterfaceInvocationHandler(ObjectCreator <IActorComponent> creator, IActor rootObject, ProxyFactory proxyFactory)
        {
            // We need to lock on the root when using an existing actor
            ThreadPool.QueueUserWorkItem(
                delegate
            {
                Hooking.ActorCallWrapper(() =>
                {
                    IActorComponent newObject            = creator();
                    ActorInterfaceInvocationHandler temp = new ActorInterfaceInvocationHandler(newObject, rootObject, proxyFactory);

                    m_RealInvocationHandler = temp;
                    m_FinishedEvent.Set();
                });
            });
        }