Ejemplo n.º 1
0
        //============================================================
        // <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);
        }
Ejemplo n.º 2
0
        //============================================================
        // <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);
        }
Ejemplo n.º 3
0
        //============================================================
        // <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);
        }