/// <summary> /// 处理ADD消息 /// </summary> /// <param name="callerID"></param> /// <param name="lineHash"></param> /// <param name="content"></param> /// <param name="sc"></param> public static void DoAdd(string callerID, int lineHash, string content, SynchronousController sc) { TextLine targetLine = sc.TextDoc.GetLineByHash(lineHash); TextLine newLine = new TextLine(content, lineHash); if (targetLine == null) { throw new Exception("不存在的lineHash值"); } if (targetLine.NewLines.Count > 0) { TextLine oldLine = targetLine.NewLines.Dequeue(); if (oldLine.ID < lineHash) { TextLine positionLine = sc.TextDoc.ToAddNewLineAfterLine(newLine, oldLine); int position = sc.TextDoc.GetIndexByHash(positionLine.ID); sc.ToAddNewLine(position, content); } else if (oldLine.ID > lineHash) { int positon = sc.TextDoc.GetIndexByHash(oldLine.ID) - 1; sc.ToAddNewLine(positon, content); sc.TextDoc.ToAddNewLineBeforeLine(newLine, oldLine); } } sc.MessageQueues.MessagesToSend.Enqueue(MessageWrapper.WriteMsg(callerID, sc.Identity, MessageType.VRF, lineHash, "ADD")); }
/// <summary> /// 处理INI消息 /// </summary> /// <param name="lineHash"></param> /// <param name="content"></param> /// <param name="sc"></param> public static void DoIni(int lineHash, string content, SynchronousController sc) { sc.ToAddNewLine(lineHash, content); }