상속: Serializing
예제 #1
0
 public override void Serialize(Serializer wr)
 {
     wr.Serialize((byte)Magic.Filter);
     wr.Serialize(Tablenames.Count);
     foreach (var table in Tablenames)
         wr.Serialize(table);
 }
        private void OutputThreadFunc() {
            var writer = new Serializer(new BufferedStream(_stream));
            Message msg;
            try {
                while (!IsStopped) {
                    _outputAlive = 0;

                    if (State == RunState.SendQuit) {
                        if (SetState(RunState.SendClose)) {
                            Send(new Message.Quit(_sendQuitMessage));
                            _sendQuitMessage = null;
                        }
                    }

                    if (State == RunState.SendClose) {
                        if (SetState(RunState.Stopping)) {
                            Log(Logger.EntryKind.WsClosing, "Closing");
                            Send(null);
                        }
                    }
                    while (!IsStopped && _output.TryDequeue(out msg)) {
                        _outputAlive = 0;
                        if (msg == null) {
                            Stop();
                            break;
                        }
                        msg.Serialize(writer);
                        if (msg is Message.Transaction)
                            Interlocked.Increment(ref _transactionsSent);
                    }
                    if (!_outputSem.Wait(100))
                        writer.Flush();
                }
                writer.Close();
            } catch (Exception e) {
                Stop(e);
            }
        }
예제 #3
0
 public override void Serialize(Serializer wr)
 {
     wr.Serialize((byte)Magic.Transaction);
     wr.Serialize(LogReadResult);
 }
예제 #4
0
 public abstract void Serialize(Serializer wr);
예제 #5
0
 public override void Serialize(Serializer wr)
 {
     wr.Serialize((byte)Magic.TablePos);
     wr.Serialize(Table);
     wr.Serialize(Pos);
 }
예제 #6
0
 public override void Serialize(Serializer wr)
 {
     wr.Serialize((byte)Magic.StartStream);
 }
예제 #7
0
 public override void Serialize(Serializer wr)
 {
     wr.Serialize((byte)Magic.Quit);
     wr.Serialize(Message);
 }
예제 #8
0
 public override void Serialize(Serializer wr)
 {
     wr.Serialize((byte)Magic.OpenLog);
 }
예제 #9
0
 public override void Serialize(Serializer wr)
 {
     wr.Serialize((byte)Magic.Id);
     wr.Serialize(DatabaseName);
     wr.Serialize(Guid);
     wr.Serialize(FirstUserOid);
     wr.Serialize(LastUserOid);
 }