rawGetSlotContext() public method

public rawGetSlotContext ( IoSeq slot, IoObject &context ) : IoObject
slot IoSeq
context IoObject
return IoObject
Ejemplo n.º 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);
        }
Ejemplo n.º 2
0
        public IoObject forward(IoObject target, IoObject locals, IoObject message)
        {
            IoMessage m           = message as IoMessage;
            IoObject  context     = null;
            IoObject  forwardSlot = target.rawGetSlotContext(target.state.forwardMessage.messageName, out context);

            //if (forwardSlot != null)
            //    return forwardSlot.activate(forwardSlot, locals, m, context);

            Console.WriteLine("Exception: '{0}' does not respond to message '{1}'",
                              target.name, m.messageName.ToString());
            return(target);
        }
Ejemplo n.º 3
0
 public IoObject activate(IoObject self, IoObject target, IoObject locals, IoMessage m)
 {
     if (self.isActivatable)
     {
         IoObject context   = null;
         IoObject slotValue = self.rawGetSlotContext(self.state.activateMessage.messageName, out context);
         if (slotValue != null)
         {
             // ?? �� �� � ����� ???
             return(activate(slotValue, target, locals, m, context));
         }
         return(state.ioNil);
     }
     else
     {
         return(self);
     }
 }
Ejemplo n.º 4
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));
        }
Ejemplo n.º 5
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);
        }
Ejemplo n.º 6
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;
 }
Ejemplo n.º 7
0
        public IoObject forward(IoObject target, IoObject locals, IoObject message)
        {
            IoMessage m = message as IoMessage;
            IoObject context = null;
            IoObject forwardSlot = target.rawGetSlotContext(target.state.forwardMessage.messageName, out context);

            //if (forwardSlot != null)
            //    return forwardSlot.activate(forwardSlot, locals, m, context);

            Console.WriteLine("'{0}' does not respond to message '{1}'",
                target.name, m.messageName.ToString());
            return target;
        }
Ejemplo n.º 8
0
 public IoObject activate(IoObject self, IoObject target, IoObject locals, IoMessage m)
 {
     if (self.isActivatable)
     {
         IoObject context = null;
         IoObject slotValue = self.rawGetSlotContext(self.state.activateMessage.messageName, out context);
         if (slotValue != null)
         {
             // ?? мы шо в цикле ???
             return activate(slotValue, target, locals, m, context);
         }
         return state.ioNil;
     } else
         return self;
 }