/// <summary> /// Notify a number of new messages from router. /// </summary> /// <param name="newMessagesNum">number of new arriving messages</param> public void NotifyNewMessages(int newMessagesNum) { OCLogger.Debugging("Notified about new messages in Router."); lock (_unreadMessagesLock) { _unreadMessagesCount += newMessagesNum; OCLogger.Debugging("Unread messages [" + _unreadMessagesCount + "]"); } }
private string ParseAvailableElement(IEnumerator token) { UnityEngine.Debug.Log("OCMessageHandler::ParseAvailableElement"); string answer = null; if (token.MoveNext()) // Has more elements { string id = token.Current.ToString(); OCLogger.Debugging("onLine: Available element message received for [" + id + "]."); _networkElement.MarkAsAvailable(id); answer = OCNetworkElement.OK_MESSAGE; } else { answer = OCNetworkElement.FAILED_MESSAGE; } return(answer); }
private string ParseNotifyNewMessage(IEnumerator token) { UnityEngine.Debug.Log("OCMessageHandler::ParseNotifyNewMessage"); string answer = null; if (token.MoveNext()) // Has more elements { // Get new message number. int numberOfMessages = int.Parse(token.Current.ToString()); _networkElement.NotifyNewMessages(numberOfMessages); answer = OCNetworkElement.OK_MESSAGE; OCLogger.Debugging("onLine: Notified about [" + numberOfMessages + "] messages in Router."); } else { answer = OCNetworkElement.FAILED_MESSAGE; } return(answer); }
public void LoadFromFile(string fileName) { System.IO.StreamReader reader = new System.IO.StreamReader(fileName); char[] separator = { '=', ' ' }; int linenumber = 0; while (!reader.EndOfStream) { string line = reader.ReadLine(); linenumber++; // not a commentary or an empty line if (line.Length > 0 && line[0] != '#') { string[] tokens = line.Split(separator, System.StringSplitOptions.RemoveEmptyEntries); if (tokens.Length < 2) { // TODO: Debug.isDebugBuild?? //if (Debug.isDebugBuild) OCLogger.Debugging("Invalid format at line " + linenumber + ": '" + line + "'"); } if (table.ContainsKey(tokens[0])) { //if (Debug.isDebugBuild) Debug.Log(tokens[0] + "=" + tokens[1]); table[tokens[0]] = tokens[1]; } else { OCLogger.Debugging("Ignoring unknown parameter name '" + tokens[0] + "' at line " + linenumber + "."); } } } reader.Close(); }
private string ParseStartMessage(string inputLine, string command, IEnumerator token) { UnityEngine.Debug.Log("OCMessageHandler::ParseStartMessage"); string answer = null; if (_state == READING_MESSAGES) { // A previous message was already read. OCLogger.Debugging("onLine: From [" + _messageFrom + "] to [" + _messageTo + "] Type [" + _messageType + "]"); OCMessage message = OCMessage.CreateMessage(_messageFrom, _messageTo, _messageType, _message.ToString()); if (message == null) { OCLogger.Error("Could not factory message from the following string: " + _message.ToString()); } if (_useMessageBuffer) { _messageBuffer.Add(message); if (_messageBuffer.Count > _maxMessagesInBuffer) { _networkElement.PullMessage(_messageBuffer); _messageBuffer.Clear(); } } else { _networkElement.PullMessage(message); } _lineCount = 0; _messageTo = ""; _messageFrom = ""; _messageType = OCMessage.MessageType.NONE; _message.Remove(0, _message.Length); } else { if (_state == DOING_NOTHING) { // Enter reading state from idle state. _state = READING_MESSAGES; } else { OCLogger.Error("onLine: Unexepcted command [" + command + "]. Discarding line [" + inputLine + "]"); } } if (token.MoveNext()) { _messageFrom = token.Current.ToString(); if (token.MoveNext()) { _messageTo = token.Current.ToString(); if (token.MoveNext()) { _messageType = (OCMessage.MessageType) int.Parse(token.Current.ToString()); } else { answer = OCNetworkElement.FAILED_MESSAGE; } } else { answer = OCNetworkElement.FAILED_MESSAGE; } } else { answer = OCNetworkElement.FAILED_MESSAGE; } _lineCount = 0; return(answer); }