activate() public method

public activate ( IoObject self, IoObject target, IoObject locals, IoMessage m ) : IoObject
self IoObject
target IoObject
locals IoObject
m IoMessage
return IoObject
示例#1
0
        // Object Public Raw Methods

        public IoObject initClone(IoObject target, IoObject locals, IoMessage m, IoObject newObject)
        {
            IoObject context  = null;
            IoObject initSlot = target.rawGetSlotContext(target.state.initMessage.messageName, out context);

            if (initSlot != null)
            {
                initSlot.activate(initSlot, newObject, locals, target.state.initMessage, context);
            }
            return(newObject);
        }
示例#2
0
        public IoObject perform(IoObject target, IoObject locals, IoObject message)
        {
            IoMessage msg       = message as IoMessage;
            IoObject  context   = null;
            IoObject  slotValue = target.rawGetSlotContext(msg.messageName, out context);

            if (slotValue == null)
            {
                slotValue = target.clrGetSlot(msg);
            }

            if (slotValue != null)
            {
                return(slotValue.activate(slotValue, target, locals, msg, context));
            }
            if (target.isLocals)
            {
                return(IoObject.slotLocalsForward(target, locals, message));
            }
            return(target.forward(target, locals, message));
        }
示例#3
0
 public static IoObject slotCall(IoObject target, IoObject locals, IoObject message)
 {
     return target.activate(target, locals, locals, message as IoMessage, locals);
 }
示例#4
0
 public virtual IoObject activate(IoObject self, IoObject target, IoObject locals, IoMessage m, IoObject slotContext)
 {
     return(self.isActivatable ? self.activate(self, target, locals, m) : self);
 }
示例#5
0
文件: IoObject.cs 项目: devaspot/io
 public virtual IoObject activate(IoObject self, IoObject target, IoObject locals, IoMessage m, IoObject slotContext)
 {
     return self.isActivatable ? self.activate(self, target, locals, m) : self;
 }
示例#6
0
 public static IoObject slotCall(IoObject target, IoObject locals, IoObject message)
 {
     return(target.activate(target, locals, locals, message as IoMessage, locals));
 }