//============================================================ // <T>从输入流中反序列化数据。</T> // // @param input 输入流 // @return 处理结果 //============================================================ public EResult Unserialize(IDataInput input) { int count = input.ReadInt32(); for (int n = 0; n < count; n++) { FLoggerInfo loggerInfo = new FLoggerInfo(); loggerInfo.Unserialize(input); _loggers.Push(loggerInfo); } return(EResult.Success); }
//============================================================ // <T>序列化数据到输出流。</T> // // @param output 输出流 // @return 处理结果 //============================================================ public EResult Serialize(IDataOutput output) { int count = _loggers.Count; output.WriteInt32(count); for (int n = 0; n < count; n++) { FLoggerInfo loggerInfo = _loggers.Get(n); loggerInfo.Serialize(output); } return(EResult.Success); }
//============================================================ // <T>执行处理。</T> //============================================================ public void ProcessMessage() { // 读取头信息 int length = _data.ReadInt32(); int type = _data.ReadUint8(); int level = _data.ReadUint8(); long tick = _data.ReadInt64(); int dataLength = length - 14; // 读取数据 byte[] data = new byte[dataLength]; _data.Read(data, 0, dataLength); string message = Encoding.ASCII.GetString(data); // 创建日志 FLoggerInfo loggerInfo = new FLoggerInfo(); loggerInfo.Tick = tick; loggerInfo.Level = level; loggerInfo.Message = message; // 放入应用中 FFrameInfo info = _applicationInfo.SyncFrame(tick); info.Loggers.Push(loggerInfo); }