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); }
public virtual void AddMessage(baseMessage message) { if (message != null) { delayedMessages.Add(message); } }
protected override bool IsPassTime(baseMessage newMessage, float time) { if (newMessage.DispatchTime <= time) { return(true); } return(false); }
protected override void discard(baseMessage newMessage) { if (newMessage.Receiver != null) { newMessage.Receiver.ReceiveMessage(newMessage); } delayedMessages.Remove(newMessage); }
protected override void discard(baseMessage newMessage) { if (newMessage.Receiver != null) { newMessage.Receiver.ReceiveMessage(newMessage); } else { if (broadcaster != null) { broadcaster.Invoke(newMessage); } } delayedMessages.Remove(newMessage); }
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; } } } }
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); }
protected abstract bool IsPassTime(baseMessage newMessage, float nowTime);
protected abstract void discard(baseMessage newMessage);
public abstract bool SendMsg(baseMessage newMessage, float time);
public bool SendMsg(baseMessage newMessage, float time) { return(queue != null?queue.SendMsg(newMessage, time) : false); }
public virtual bool ReceiveMessage(baseMessage message) { return(false); }