Example #1
0
        public override bool SendMsg(baseMessage newMessage, float time)
        {
            if (newMessage == null)
            {
                return(false);
            }
            if (newMessage.Receiver == null)
            {
                return(false);
            }
            if (newMessage.Sender == null)
            {
                return(false);
            }

            if (newMessage.DispatchTime == baseMessageQueue.Immediately)
            {
                discard(newMessage);
                return(true);
            }

            // time class는 정리가 필요
            newMessage.DispatchTime += time;

            delayedMessages.Add(newMessage);

            return(true);
        }
Example #2
0
 public virtual void AddMessage(baseMessage message)
 {
     if (message != null)
     {
         delayedMessages.Add(message);
     }
 }
Example #3
0
 protected override bool IsPassTime(baseMessage newMessage, float time)
 {
     if (newMessage.DispatchTime <= time)
     {
         return(true);
     }
     return(false);
 }
Example #4
0
        protected override void discard(baseMessage newMessage)
        {
            if (newMessage.Receiver != null)
            {
                newMessage.Receiver.ReceiveMessage(newMessage);
            }

            delayedMessages.Remove(newMessage);
        }
Example #5
0
 protected override void discard(baseMessage newMessage)
 {
     if (newMessage.Receiver != null)
     {
         newMessage.Receiver.ReceiveMessage(newMessage);
     }
     else
     {
         if (broadcaster != null)
         {
             broadcaster.Invoke(newMessage);
         }
     }
     delayedMessages.Remove(newMessage);
 }
Example #6
0
        protected void broadcast(baseMessage newMessage)
        {
            var enumerator = subscribers.GetEnumerator();

            while (enumerator.MoveNext() == true)
            {
                if (enumerator.Current != null)
                {
                    if (enumerator.Current.ReceiveMessage(newMessage) == true && newMessage.SwallowMSG == true)
                    {
                        break;
                    }
                }
            }
        }
Example #7
0
        public void SendMessageToOwner(baseMessage newMessage)
        {
            if (newMessage.DispatchTime == baseMessageQueue.Immediately)
            {
                owner.ReceiveMessage(newMessage);
                return;
            }
            else
            {
                newMessage.SetReceiver(owner);
            }
            // time class는 정리가 필요
            newMessage.DispatchTime += Time.realtimeSinceStartup;

            queue.AddMessage(newMessage);
        }
Example #8
0
 protected abstract bool IsPassTime(baseMessage newMessage, float nowTime);
Example #9
0
 protected abstract void discard(baseMessage newMessage);
Example #10
0
 public abstract bool SendMsg(baseMessage newMessage, float time);
Example #11
0
 public bool SendMsg(baseMessage newMessage, float time)
 {
     return(queue != null?queue.SendMsg(newMessage, time) : false);
 }
Example #12
0
 public virtual bool ReceiveMessage(baseMessage message)
 {
     return(false);
 }