Exemplo n.º 1
0
 public void Serialize(XML.Writer writer)
 {
     writer.WriteStartElement("http-server");
     writer.WriteElement("port", this.port);
     writer.WriteElement("wwwroot", this.root);
     writer.WriteEndElement();
 }
Exemplo n.º 2
0
        public void Save(string path)
        {
            if (!readOnly)
            {
                this.path = path;
                var writer = new XML.Writer(path);

                try
                {
                    this.Serialize(writer);
                }
                catch
                {
                }

                writer.Close();
            }
        }
Exemplo n.º 3
0
        protected override void Serialize(XML.Writer writer)
        {
            try
            {
                writer.WriteElement("CommPort", CommPort);

                var root = ApplicationInfo.CurrentDirectory;
                foreach (var file in CamFiles)
                {
                    if (File.Exists(root + file))
                    {
                        writer.WriteElement("CamFile", file);
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Log(ex);
            }
        }
Exemplo n.º 4
0
        public void Serialize(XML.Writer writer)
        {
            writer.WriteStartElement("SocketMessage");
            writer.WriteAttributeString("id", this.id);
            writer.WriteAttributeString("command", this.command);
            writer.WriteAttributeString("member", this.member);
            writer.WriteAttributeString("from", this.fromID);
            writer.WriteAttributeString("to", this.toID);
            writer.WriteAttributeString("timestamp", this.timestamp);

            if (String.IsNullOrEmpty(this.data))
            {
                writer.WriteAttributeString("len", 0);
                writer.WriteValue("");
            }
            else
            {
                writer.WriteAttributeString("len", this.data.Length);
                writer.WriteValue(this.data);
            }

            writer.WriteEndElement();                           // SocketMessage
        }
Exemplo n.º 5
0
 protected abstract void Serialize(XML.Writer writer);
Exemplo n.º 6
0
        private void ServiceOutgoing()
        {
            if (socket == null)
            {
                return;
            }
            if (stream == null)
            {
                return;
            }
            if (messagesOut.Count == 0)
            {
                return;
            }

            var messageQueue = new List <SocketMessage>();

            try
            {
                // assemble packet
                lock (messagesOut)
                {
                    messageQueue.AddRange(messagesOut);
                    messagesOut.Clear();
                }

                string packetString = "";
                using (var sw = new StringWriter())
                {
                    using (var writer = new XML.Writer(sw))
                    {
                        writer.WriteStartElement("SocketMessages");

                        foreach (SocketMessage message in messageQueue)
                        {
                            message.Serialize(writer);
                        }

                        writer.WriteEndElement();
                    }

                    packetString = sw.ToString();
                }

                // write data to socket
                byte[] packetBytes = this.encoding.GetBytes(packetString.ToString());
                lock (socket)
                {
                    lock (stream)
                    {
                        stream.Write(packetBytes, 0, packetBytes.Length);
                    }
                }

                this.packetsOut += messageQueue.Count;
            }
            catch (System.IO.IOException)
            {
                lock (messagesOut)
                {
                    messagesOut.AddRange(messageQueue);
                }

                resendAttempts++;
                if (resendAttempts > 3)
                {
                    this.Log("Failed three send attempts");
                    Thread.Sleep(1000);
                    // TODO: log error
                    //this.messagesOut.Clear();
                    resendAttempts = 0;
                    //this.Disconnect();
                }
            }
            catch (ObjectDisposedException)
            {
                lock (messagesOut)
                {
                    messagesOut.AddRange(messageQueue);
                }

                //this.Disconnect();
            }
        }